Friday, 17 May 2013


The penultimate goal of this project is to produce a commercially viable replacement Neo Geo system board that can be used either as an AES (a console connected to a TV) or as an MVS (installed in an arcade arcade). Beyond that, I have aspirations of enhancing the design to eliminate the need for physical game cartridges (for example load ROM's from SD card), and eventually even a miniaturized variant of the latter in a hand-held device much like what the Neo Geo X should have been.

But all this is further down the track.

The initial hardware that I'm designing is not meant to be a commercially viable product; rather it is designed to assist in the development of the IP for the FPGA. And by assist, I mean - make the job as painless as possible. It is going to be ridiculously over-specified, seriously expensive, and I only plan on ever making 4-6 of them. This board will also serve as my PACE platform of choice for the foreseeable future. I have rather broad interests in emulation aside from the Neo Geo, and this board will be designed to cater for most - if not all - of those interests.

First and foremost, I made the decision that this board would use physical AES/MVS cartridges. This alleviates the need to emulate cartridge hardware in the design, and a true replacement system board would use cartridges anyway. So this board will have one AES slot, and one MVS slot. The other plus is that I'd effectively be implementing the logic for an MVS-to-AES cartridge adapter in the FPGA, so that gives me an option for a spin-off product.

Secondly, the cartridge-based Neo Geo system boards contain no less than four (4) ROM devices; the system BIOS, the default FIX layer tile set, the sprite look-up table and the default Z80 sound driver. It has two banks of RAM; the 68K work RAM and the battery-backed RAM. These devices span four different system buses and, whilst not huge, would require a relatively large FPGA to implement using on-chip memory. To both eliminate on-chip resource requirements and provide external flash storage for other projects, I decided to use four distinct external flash devices and a single (battery-backed) SRAM device for these memories.

The flash devices are also several times larger than strictly required; there is adequate capacity, for example, to have the AES, MVS, UniBIOS and Debug BIOS images all programmed at the same time (and of course, be soft-selectable).

Analogue video output is available at both a VGA connector and the JAMMA connector, keeping in mind that the design can drive either 15kHz or 31kHz video on both interfaces. A HDMI port also provides digital video (and audio) with only a simple passive adapter required for DVI monitors.

Analogue stereo audio is available via a pair of RCA connectors. Digital stereo audio (e.g. LPCM) is available via the HDMI connector. It's also worth noting that the hardware will support 8 channels!

Controller input options include the standard JAMMA interface, plus a pair of DB15 AES controller ports. Additionally, there will be two PS/2 ports (keyboard & mouse) and a single USB port will allow devices such as HID gamepads or the Blaze-produced Neo Geo X AES Controller to be used. Finally, a select few 'legacy console ports' such as Dreamcast and Gamecube will allow the respective controllers to be used to play Neo Geo games.

I'll cover the FPGA itself and other board components not strictly required for Neo Geo emulation in my next post.

No comments:

Post a Comment