Thursday, 27 November 2014

Quick update

As mentioned, the re-think has reduced the PCB design count from 3 to 1.

This does make the cartridge configuration of the adapters obsolete, unfortunately. Whilst the PCB's themselves won't be wasted (same PCB for cartridge and system adapters) there's a few connectors that may be.

After taking a closer look at the protection and bank switching on the existing commercial cartridges, it soon became clear that an all-encompassing design would require an FPGA capable of snooping and/or routing almost every pin on the cartridge bus. So I've decided to scrap the analyzer/programmer PCB and have the flash cartridge capable of analyzing the bus and also programming itself.

The prototype design will be over-engineered somewhat; I want to address the Neo Geo technical issues without a half-baked design getting in the way. There may be scope for a limited run of this design, but it will be expensive. In any case I'd look at possibly two (2) products from this - a cheaper, cut-down Homebrew Edition that is suited to testing and playing homebrew titles only, and the full-blown Pro Gamer Edition that could, well, play any Neo Geo title.

I've also included some SRAM on the design, for the purpose of experimenting with dynamic sprite tile data. This would in effect allow for a bitmap display mode, opening up all sorts of possibilities for ports from other platforms (Defender, anyone?)

As for progress, all the devices have been specified and chosen, and schematic capture is under way. On the firmware side, the FPGA projects have been mapped out at the top level and a NIOS core has been added to the PRG project - mainly to gauge adequacy of the chosen FPGA.

I'm hoping things will progress quickly from here, as the design really is simple, and it's possible we could have the PCB's ready for manufacture this calendar year! It's not going to be a cheap process as they will need to be assembled externally, so timing may also depend on available funds.

Wednesday, 19 November 2014

Let there be only one

Major rethink of the project over the last few days. All good news though!

I won't go into too much detail as it's very late, but in a nutshell the programmer/analyzer board has been scrapped, and the 2-PCB flash cartridge (PRG & CHA) in the pipeline has been brought forward and replaced with a single PCB that is also a programmer/analyzer. IOW, a single PCB design will do everything that previously three (3) were intended to do!

This has all been prompted by more detailed analysis of the various cartridge protection (banking and encryption) schemes which, although not overly complex, require a lot of routing through an FPGA if it is to cater for every cartridge.

And adding to the mix is the possibility of adding a 'bitmap' mode to the Neo Geo via the cartridge!

More details in a subsequent post.

Thursday, 13 November 2014

Back in a flash!

Copping a lot of heat to get the Neo Geo flash cartridge finished off. To be honest, I'm feeling burnt out at work and the knock-on effect is that I don't feel motivated to do any computer-related activities in my own time either - even fun stuff like Neo Geo. So I find myself riding my bike and surfing the net...

However I'm making a concerted effort to get the grey matter ticking over and move things along now, particularly in light of the fact that come Jan 27th 2015 - or thereabouts - I'll have a lot less time for leisurely pursuits with the arrival of a little boy.

To this end, I decided to look at cartridge capacities and try to work out what size flash devices I'd need on a programmable flash cartridge. Keeping in mind that the prototype need only be large enough for a single game, I'd like the option for that to be ideally any game currently available for the Neo Geo! For the purposes of this exercise, I chose to use The King Of Fighters 2003 as a benchmark.

The numbers I ended up with (KOF2003 bracketed) are:
  • P-ROM (9MB) = 16MB/128Mb (x16)
  • C-ROM (64MB) = 64MB/512Mb (x32)
  • V-ROM (16MB) = 16MB/128Mb (TBA)
  • S-ROM (none) = 512KB/4Mb (x8)
  • M-ROM (512KB) = 512KB/4Mb (x8)
These are reasonable numbers for single/dual device solutions per bus, and flash is surprisingly cheap, so no big deal here. I could probably even double it if I felt the need. As it stands though, the proposed flash cartridge will therefore have a capacity of 776 MBits.

I want to get a preliminary design of the flash cartridge drafted before I commit the programmer/analyzer PCB to manufacture. However I need to do some more research on the bank switching and protection on the various carts before this task is complete. Either that or throw a large CPLD into the mix, and pass most of the address lines through it...