The Lexibook JG7415 is an 120in1 games- console, which just used the popularity of the WII to get sold as much as possible.
I bought this console locally here just to see if these games are also Sunplus based.
When i opened the console i was surprised that the case was 90% empty. The complete pcb of the console would have easily fit inside one controller.
But what was more surprisingly is the marking Zone 100 110728 v2.1 on the board! Zone is known for it's own Multigame-Consoles, like Zone40 and Zone60, which are both also already emulated in MAME.
So this console was likely be an emulation-target for MAME too.
Next step was to dump this rom!
As the Zone60 (which has 60 games) has a 64mb rom, i was pretty sure that this console (which has 120 games) will have a 128mb rom.
But the rom has A0-A26, which would indicate a 256mb rom!
As this is nothing you can just desolder and put in your programmer for reading, some soldering had to be done.
Luckily the ArduinoMega is an amazing tool for this.
Soldering everything together and checking all connections just took about 1,5 hours.
The only problem with the Arduino, dumping a 256mb rom with it takes about 3,5hours!
First dump was done over night and i sent the dump to Haze for checking! The games booted, but the interesting fact was that only 128mb (split up over the complete romarea) of the 256mb were used.
To verify the dump it was needed to at least dump it one more time...so we had to wait another 3,5hours for verification.
Sad thing, the dumps did not match!
So i dumped it another time, which took another 3,5hours!
While i dumped it the third time, Haze sent me the following message, as he was thinking, that they used known faulty flashroms for this console. And that's why they used 256mb flashroms and only used 128mb of it:
if you divide the ROM into 8MB chunks this is how it maps in terms of used / unusedif the bad bytes are in the not selectable or unused blocks then there's probably nothing to worry about, might even be just bad ROM they used on purpose
0x0000000 0x07fffff - used
0x0800000 0x0ffffff - used
0x1000000 0x17fffff - not selectable, unused
0x1800000 0x1ffffff - not selectable, unused
0x2000000 0x27fffff - not selectable, unused
0x2800000 0x2ffffff - not selectable, unused
0x3000000 0x37fffff - used
0x3800000 0x3ffffff - used
0x4000000 0x47fffff - used
0x4800000 0x4ffffff - used
0x5000000 0x57fffff - not selectable, unused
0x5800000 0x5ffffff - not selectable, unused
0x6000000 0x67fffff - not selectable, unused
0x6800000 0x6ffffff - not selectable, unused
0x7000000 0x77fffff - used
0x7800000 0x7ffffff - used
0x8000000 0x87fffff - used
0x8800000 0x8ffffff - used
0x9000000 0x97fffff - not selectable, unused
0x9800000 0x9ffffff - not selectable, unused
0xa000000 0xa7fffff - not selectable, unused
0xa800000 0xaffffff - not selectable, unused
0xb000000 0xb7fffff - used
0xb800000 0xbffffff - used
0xc000000 0xc7fffff - used
0xc800000 0xcffffff - selectable but unused
0xd000000 0xd7fffff - not selectable, unused
0xd800000 0xdffffff - not selectable, unused
0xe000000 0xe7fffff - not selectable, unused
0xe800000 0xeffffff - not selectable, unused
0xf000000 0xf7fffff - selectable but unused
0xf800000 0xfffffff - selectable but unused
I rechecked this with my (now three) dumps and guess what! All three dumps matched exactly in these area's :
0x0000000 0x07fffff - used
0x0800000 0x0ffffff - used
0x1000000 0x17fffff - not selectable, unused
0x1800000 0x1ffffff - not selectable, unused
0x2000000 0x27fffff - not selectable, unused
0x2800000 0x2ffffff - not selectable, unused
0x3000000 0x37fffff - used
0x3800000 0x3ffffff - used
0x4000000 0x47fffff - used
0x4800000 0x4ffffff - used
0x5000000 0x57fffff - not selectable, unused
0x5800000 0x5ffffff - not selectable, unused
0x6000000 0x67fffff - not selectable, unused
0x6800000 0x6ffffff - not selectable, unused
0x7000000 0x77fffff - used
0x7800000 0x7ffffff - used
0x8000000 0x87fffff - used
0x8800000 0x8ffffff - used
0x9000000 0x97fffff - not selectable, unused
0x9800000 0x9ffffff - not selectable, unused
0xa000000 0xa7fffff - not selectable, unused
0xa800000 0xaffffff - not selectable, unused
0xb000000 0xb7fffff - used
0xb800000 0xbffffff - used
0xc000000 0xc7fffff - used
0xc800000 0xcffffff - selectable but unused
0xd000000 0xd7fffff - not selectable, unused
0xd800000 0xdffffff - not selectable, unused
0xe000000 0xe7fffff - not selectable, unused
0xe800000 0xeffffff - not selectable, unused
0xf000000 0xf7fffff - selectable but unused
0xf800000 0xfffffff - selectable but unused
Which mean's ALL used (selectable) area's are GOOD dumped and ALL unused (not selectable) area's are BAD dumped and were different between all three dumps!
Most likely they got the faulty 256mb roms for a very cheap price and just programmed the games around the not working area's!
Without Haze and the working emulation of the Sunplus system, we would have never been able to see this and most likely would have thought that the dumps are BAD. I would have also invested hours of work and checking if my dumping rig has faults are something like that, just because they used bad flashroms in their product's. ==> Are they crazy! ;-)
The rom is already added and the games are working with the next release of MAME, here are shots of it running in MAME:
Another challenge for me and another perfect teamwork with Haze!
Very cool work! Keep it up.
ReplyDeleteAnother games at JungleTAC!
ReplyDelete