GameKing multicart

 Projects  Comments Off on GameKing multicart
Mar 122017

I seemed to be one of the first to get the ball rolling with Gameking dumping.

I had to make my own part for the cartridge connector. This allowed me to make the breakout PCB.

This worked well enough for my dumping needs but I also wanted to test the dumps on a real Gamking. This led me to the first cartridge test. It has a bunch on things on that weren’t really needed but I was just playing about with ideas at this point.

It sort of worked but would do with some refinement.

This one worked much better but after dumping some 4in1 cartridges we found they didn’t always work properly using the homebrew cartridge. This led to the analyser PCB.

I never did get hold of any 4in1 carts myself so thats as far as that project actually got, although I don’t think its required anymore.

The final product is this cartridge. I believe one of these was used to aid in dumping the internal ROM.

It works fine for single games and a few 4in1 titles.

 Posted by at 1:03 pm
Mar 122017

This has been my main project for a long time now. Its something I started initially on the ABI Boardmaster 4000 as simple pin toggle routine. This allowed me to toggle the logic states of any pin and get a live update of the state of all the pins.
When I first got my Arduino MEGA I decided to port the program over to that as my first project.


It ran through a terminal window and was pretty much identical to the BM4K version I made.
It has a jumper on the board to switch power between 20 and 24 pin devices.

Revision 1

From this point I wanted to have a Windows GUI so I could have a graphical environment when using my ‘pin toggler’.

I also moved to using the ports of the Arduino to speed accessing up so with this in place I added the ability to brute force the operation of the chips so Caius could recreate 24 pin devices. The method used was identical to the way Charles MacDonald’s device worked so to keep compatibility with his analyser program. I don’t really require the ‘dumping’ feature of this as I use the hardware from Charles and its a lot faster to use but this option is there if I ever need it.
There were a couple of other things I wanted to add too from a hardware point of view. I added two reset buttons to the ‘shield’. One was to reset the Arduino itself and one was to reset the PAL/GAL in the socket. The jumper was still present on this revision to select 20 and 24 pin devices.

Revision 2

Not too long after revision 1 I decided I wanted to be able to control the power to the chip from the software. As you can see the jumper is gone and got replaced by a couple of transistors and resistors. Using this setup I could easily select 20 and 24 pin devices using software. I don’t think there were any other changes here.

Revision 3

This is where things started to gain momentum within the project. I spent a lot of time changing the software for this one.
So the hardware had a couple of obvious changes. First was I added LED’s to show which device type was being used.
Second was the socket itself. I had bought a ZIF socket for the project but it had 0.6″ spacing so in order to let me select between the two should I need to, I added both to the layout

The software got a big update this time around with many things being rewritten.
Myself and Caius had started to realise that there were quite a lot of PAL’s out there that used latches. Latches can be implemented in a non registered IC by using the feedback from an output pin. In some cases we haven’t even realised that latches were being used and it was only later we found out when people raised an issue.
To check for latches I added the ability to dump the PAL backwards so instead of counting the applied address up it counted down. It performed a forward and reverse operation then compared the results. If they were a match then it was a good bet that latches weren’t being used. I also added the option to use random addresses too which would give a more thorough test but took a lot longer to complete. I have never really needed to use this so far.

Revision 3a

This revision moved to surface mount components, removed the ability to use 0.3″ space ZIF socket and also added extra resistors. The resistors on the input only pins were there for protection in case of shorts.
Aesthetically, this one had rounded corners.

The software added support for those 20 pin devices that had an extra IO pin at pin 9 like the PLS153 and GAL18V10 although the supporting analyser software didnt support this so it never got used but it meant the pin toggle part of the software could use it.

Version 2

So here we have Version 2. All the previous iterations were what I called version 1. This one never turned out as I had hoped. I moved away from using ports on the Arduino which was a massive mistake. I did gain complete flexibility though. I had been studying some strange devices with a non standard IO configuration. This was going to be my of dealing with those devices. Unfortunately it became painfully clear that my software was so rigid that it didn’t allow changes to be easily made.
At this point I decided to rewrite my software from scratch opting for more of a suite environment for all this PLD rather than a simple bit of software.

The software as it stands right now is my proudest creation. It has GUI’s for MAME’s JEDutil and Charles’ analyser program and also the commandline version of WinCUPL too allowing everything to be done in the same place easily. It can also be set to automatically analyse a ‘dump’ and compile to a fusemap.

That’s where this project is right now. I’ve not finished with it yet but its not actively being developed either.
Hopefully I will get back to it at some point but at this moment there isn’t too much need

 Posted by at 12:45 pm

Atari Lynx cartridge dumper

 Projects  Comments Off on Atari Lynx cartridge dumper
Feb 122017

This project and doesn’t really have much of a purpose as most things are already dumped but as there wasn’t an easy option for dumping a Lynx cart I thought id throw something together.
Like most of my projects it uses the Arduino MEGA 2560. I got hold of a scrap Lynx of eBay and harvested the cartridge connector from and quickly threw together a PCB.
The end result is pretty rough and if there was any need I would probably revisit this and make it a little better.

I made some Windows software too.

The Arduino software has the job of detecting how big the cartridge being dumped is then sends all the data to the PC. The PC software saves the binary file and can also detect any anomalies. For example, the game Block Out that I have actually skips an address pin but the one higher is connected. This results in garbage data being sent if it is not dealt with properly. I’m not sure if all Block Out carts have this or what but its the only one i’ve found that has it.
The PC software can also save the dumped files CRC32 to a file so I can easily compare my dumps against ones that are already out there. Im not expecting to find anything wrong or different versions but you never know.

 Posted by at 3:30 pm

Outrun Music Extender

 Projects  Comments Off on Outrun Music Extender
Jan 222017

Cmonkey and me worked on this project back in March 2015.
Cmonkey found that the new tunes added to the 3DS release of Outrun were in the same format as the original arcade. With that in mind he set about adding the tunes to his Outrun arcade PCB. He succeeded but the problem was there wasn’t enough room in the standard EPROM’s to add these alongside the existing music.
My contribution started here and found one of the pins of the PLD used to select chips was essentially unused so I could use this to switch the new music in and out. Cmonkey modified the code so that the gear shift lever switched in the new tunes.
I designed a PCB which will slot directly into the Z80 code EPROM socket on the Out Run board set. The PCB incorporates a PLCC32 socket and map the pins of a 28-pin 27512 EPROM to the equivalent pins of a PLCC32 memory (39SF010A or equivalent).

Original mock up of the PCB

Parts required for this are
1 x PLCC32 socket
1 x 1Mbit PLCC32 flash memory (39SF010A or equivalent)
4 x 27512 EPROM’s for the patched 68000 code
1 x GAL16V8 for new Z80 address decoding
2 x 14-way pin headers
1 flying wire to link the A16 point on the PCB to pin 18 of the GAL

Note: Pin 18 of the GAL needs to be removed from the socket in order to work

 Posted by at 8:56 am