What's new
What would happen with the pic'n'mix option in the Unibios now?
I guess the game list is probably hard coded in the bios, but the game ID or 'slot' (for want of a better term) may work to start a new game.. and handle the menu/reset angle?

If I remember, the unibios is writing to 0x2FFFxx and trigger a reset to game switch. If the patched MCU code is looking at the same address, this should game switch.
It would also be possible to "hack" the unibios to fix game list/address.
 
This is amazing. I hope this is something we can accomplish and have it be something somewhat simple so non-hardware people like myself can modify the carts.

Unless someone were to end up providing modding them as a service, I guess?
 
You could probably just ask Razoola what he needs to update Pic'n'mix to play nice with your cart.
That way you can change game with a hard reset. A unibios reset, or a custom pic'n'mix option.
 
One issue that is still not clear to me is how to return to the game select menu.
Now in EACH game has a injected code in the vblank int. to check if the <start> button is pressed for 5 seconds, and if it is pressed, then a reset occurs with ID=0 (menu) for the CPLD's.
The disadvantage of this method is 1) the original game code is broken (unibios CRC check will not PASS). 2) the method uses user RAM and thus also breaks the original game.
Therefore, some games runs with glitches or may not work at all. I want to get away from this. But I still don't know how to do this without changing the game code.
Surely there is another way to intercept buttons.
Any ideas?
Could we use a external circuit to inject a similar reset? A small AVR/PIC for example?
 
On the cart you have access to the RESET line and this can be driven by any external circuit. The real painpoint for this circuit is to set a value in memory before this so you come back to menu instead of the last game.

A software option would be to always go back to menu on reset. This way, when you do a reset using unibios you go back to game selection.
 
On the cart you have access to the RESET line and this can be driven by any external circuit. The real painpoint for this circuit is to set a value in memory before this so you come back to menu instead of the last game.

A software option would be to always go back to menu on reset. This way, when you do a reset using unibios you go back to game selection.
mm that would be nice.. but that would needed to be implemented in unibios then? Dont think Raz works on it anymore?
 
Reset in unibios is already there.
But it would need that the "card ID" is reset too by software after first start or just before reset. It implies patching bios or game. Failing to do this will result in restarting the latest game.
 
Not everyone has unibios.
I wonder how it's done in MultiMVS/AES and NeoSD... (I don’t think that they patch the proms on the fly during flashing ...)
 
What would happen with the pic'n'mix option in the Unibios now?
I guess the game list is probably hard coded in the bios, but the game ID or 'slot' (for want of a better term) may work to start a new game.. and handle the menu/reset angle?
If my memory is correct the 161 in 1 menu works by pointing at a memory address for each game.

If you have moved things around in memory (to add new games) those addresses are very likely going to change. If pick n mix is hard coded, that probably won't work.
 
I'd be interested in helping with this, I have a fair amount of experience hacking on the NeoGeo.
Can you provide some assembly of what it's doing? I'd like to understand this further.
Maybe hit me up on discord? I'm in the mame and finalburn neo chats.
 
At this point, I can successfully dump, erase, write, and verify all three flash chips: F0095H0 AKA stilt - (CV), MSP55LV100S (P), and JS28F512 (SM).
I've finished RE-tracing of the 161-in-1 V3 cartridge and creating definitions for the CPLD for Quartus. You can view the spreadsheet documents here.
I've (almost) finished a PC program that compiles dumps for all ROMs, patch menus, etc.
Now I'm starting to write the design of the CPLD's on the verilog. However, I still have a few questions and knowledge gaps to be resolved.
Stay tuned.
Thanks for all your work on this.

Looking over your spreadsheet, it shows SDA0/1 are only connected to the M1 flash chip. However those address lines also get used for picking which bank zone is having its latches updated with M1 rom bank switching, so I think its likely they are also connected to the CPLD.
 
This dev board that you use, is it made by you or can I buy it anywhere? :)

1689856609926.png
 
Updates...

1. Since I got a real AES system, it was also decided to make a custom multi-game cartridge for it.
here you can find information on reverse engineering the AES V3 cartridge as well: link
2. I started compiling a set of games that will go into a custom cartridge. It was decided to take only original ROMS no Chinese +++ or other crap. A few good and stable bootlegs like Crossed Swords 2 (CD conversion) have also been added. I also added a couple of modern games like xenocrisis and teot as well as a 240p test suite.
3. I ran into a lack of space in the flash chips on one cartridge. Even if I throw out games that are unnecessary in my opinion, there is still not enough space for a full NEO GEO romset on one one cart. Therefore, it was decided to make TWO romsets. first - game-series like Metal Slug, KOF and Samurai Samurai Shodown. and second - everything else.
4. I programmed the P-ROM, S-ROM, and M-ROM, as well as the CPLD's, and started testing on real hardware. There is no sound and C-sprites yet, since I still can not program C-ROM and V-ROM (no PCB's). But the overall result is good.

Stay tuned.

 
Updates...

1. Since I got a real AES system, it was also decided to make a custom multi-game cartridge for it.
here you can find information on reverse engineering the AES V3 cartridge as well: link
2. I started compiling a set of games that will go into a custom cartridge. It was decided to take only original ROMS no Chinese +++ or other crap. A few good and stable bootlegs like Crossed Swords 2 (CD conversion) have also been added. I also added a couple of modern games like xenocrisis and teot as well as a 240p test suite.
3. I ran into a lack of space in the flash chips on one cartridge. Even if I throw out games that are unnecessary in my opinion, there is still not enough space for a full NEO GEO romset on one one cart. Therefore, it was decided to make TWO romsets. first - game-series like Metal Slug, KOF and Samurai Samurai Shodown. and second - everything else.
4. I programmed the P-ROM, S-ROM, and M-ROM, as well as the CPLD's, and started testing on real hardware. There is no sound and C-sprites yet, since I still can not program C-ROM and V-ROM (no PCB's). But the overall result is good.

Stay tuned.

This is still crazy! I am excited when we get a guide to do this ourselves!
 
Back
Top