What's new

Reverse engineering 161 in 1 cartridge to change Rom games

One thing I want to ask. Does these games come prepared for using the combination of P1 = 1MB and P2 = 4MB in the Vortex romset?

Snk VS Capcom Chaos
The King of Fighters 2003
Samurai Shodown 5 Special

PROGBK1 boards only admit a total of 5MB with P1+P2.
 
One thing I want to ask. Does these games come prepared for using the combination of P1 = 1MB and P2 = 4MB in the Vortex romset?
From the point of view of the CPU, it doesn't matter. All it cares about is the program data loaded into the correct address space when it executes. I looked at KoF2003 and 12MB is allocated on the cart for PROM data. The CP1 FPGA on the PRG cart PCB marshals all the address lines; the P ROMs output data lines directly to the cart edge connector when enabled.
 
From the point of view of the CPU, it doesn't matter. All it cares about is the program data loaded into the correct address space when it executes. I looked at KoF2003 and 12MB is allocated on the cart for PROM data. The CP1 FPGA on the PRG cart PCB marshals all the address lines; the P ROMs output data lines directly to the cart edge connector when enabled.
So KOF2003 needs a CPU mapper that PROGBK1 doesn't have, if I understand you (NEO PCM2 in this case)
 
The CPU has 2x 1MB memory regions dedicated to the program roms on the cart.

0x000000 - 0x0fffff = maps to P1 rom on the cart. This is a static mapping
0x200000 - 0x2fffff = is for P2 roms and can be dynamic since P2 roms can be bigger then 1MB. Bank switching is used for mapping that 1MB address space to other regions of the P2 rom(s). Bank switching is handled by the cart and is usually done by the game sending a write command to the P2 region, where the lower bits on the data bus set what bank to switch to.

VTXCart has cpld logic to handle those P2 writes and bankswitching

https://github.com/xvortex/VTXCart/...bfdacbc33/CPLD/MVS/PROG_CP1/rtl/cp1_top.v#L70

Info on the PROGBK1 bank switching can be found here

https://wiki.neogeodev.org/index.php?title=PROGBK1

looks like its handled by the 74 series logic chips on the board.
 
The CPU has 2x 1MB memory regions dedicated to the program roms on the cart.

0x000000 - 0x0fffff = maps to P1 rom on the cart. This is a static mapping
0x200000 - 0x2fffff = is for P2 roms and can be dynamic since P2 roms can be bigger then 1MB. Bank switching is used for mapping that 1MB address space to other regions of the P2 rom(s). Bank switching is handled by the cart and is usually done by the game sending a write command to the P2 region, where the lower bits on the data bus set what bank to switch to.

VTXCart has cpld logic to handle those P2 writes and bankswitching

https://github.com/xvortex/VTXCart/...bfdacbc33/CPLD/MVS/PROG_CP1/rtl/cp1_top.v#L70

Info on the PROGBK1 bank switching can be found here

https://wiki.neogeodev.org/index.php?title=PROGBK1

looks like its handled by the 74 series logic chips on the board.
In neogeodev says PROGBK1 works with a max combination of 1MB P1 rom and 4MB P2 rom. So more CPU above that size requires PROM bankswitching, as used in NEO PCM2
 
Do you guys replace the 2 electrolitic capacitors close to the regulator? (100 25V VT)
What's the capacitance? 10 uF, 100 uF?
 
I'm having problems with my weact (brand new one)

It shows multiple capacitance issues.

I've checked several times bridges and continuity, and I'm 100% sure it's OK.

The thing is that if I touch the pins that show capacitance problems, the issue disappears ...

I've recorded a video showing this:

View: https://youtu.be/N3KIrRN3PAY


With all these capacitance errors, I can't properly program the P rom
 
Last edited:
I also had errors on almost all the boards on the third cartridge from time to time - try inserting the adapter card not all the way in, but with a small gap in the programmer. So flash it, make a dump and compare the dump with the original P file - if it matches, then everything flashed fine despite the errors.
I compared the files using the corresponding function in Total Commander, but you can just calculate the CRC of both files and compare them
 
I also had errors on almost all the boards on the third cartridge from time to time - try inserting the adapter card not all the way in, but with a small gap in the programmer. So flash it, make a dump and compare the dump with the original P file - if it matches, then everything flashed fine despite the errors.
I compared the files using the corresponding function in Total Commander, but you can just calculate the CRC of both files and compare them
I've tried this trick several times before, sometimes it helped, sometimes it didn't.
In this particular issue, it doesn't work.

I'll have to desolder and solder again, and maybe try another programming board (I have lost count of how many boards I have prepared ...)

Baseline capacitance values is a guesstimate the developer made based on what he was able to measure on his setup. I would ignore it. If it's able to test, program and verify on the programmer, then you are done.
Ok, good to know. Nevertheless, in this occasion, I can program it, but when verifying it gives several bad blocks.

I'm getting rather desperate with this mod.
I have two carts, and the first one I was able to get it working (except for the C3 rom that I have pending).

Now with the second cart, everything is a battle. Every chip I try has some kind of trouble. And troubleshooting is a nightmare, some errors seem random, the majority of errors I can't trace them ... I've used 3 different weact, a lot of programming boards, different kinds of pin headers, ...

I though it would be easier on this second board, but I doubt I'll ever finished ...
 
As requested I have forked the repo from @zardam with the changes I made to get PickNMix up and running on the @leonk cart.



https://github.com/kuzearcade/ub_vortex_multicart/



**** DISCLAIMER ****

I had an issue with PICKnMIX occasionally freezing on a game during attract mode and usually just switching to the next game would fix the problem. I tried to fix it with the latest code, but I'm not sure if it is fully resolved or not. In general though, it "works" but may still have a bug. Maybe don't leave it running unattended on a cab without further testing or if it freezes you may end up with some burn in on your CRT! Then again the problem may be fixed.



Consider this a YMMV warning and use at your own risk! I'm not responsible if your CRT is destroyed or your cab/MVS catches fire.

**** DISCLAIMER ****



Ultimately it was a lot more work than simply updating the game list. If you take a look at the files in the 'src' folder you'll see that all files required changes except the two soft dips related ASM files.



The long and short of it is there's not much space in the Unibios for additional code and the original @zardam repo hardcodes everything to overwrite certain sections of the Unibios and expects all patches to be a certain size. This can make it tricky to make further edits.



For those with an @leonk cart you can simply download the xdelta from the main directory of the repo and apply it against a stock Unibios v4 ROM. See the repo for example syntax. You will likely need a version of xdelta (or xdelta UI) based on the newer v3.x xdelta code.



Enjoy!

Coming back to this, it looks like the game list is not the same as the game list on my cart from leonk either. I believe the changes are that I don't have Xevious but do have two Magician Lord romsets (MVS and AES) and two Shock Troopers romsets (the shared vs separate character lifebars on team mode).

Unfortunately I was a dummy and only really inspected the game list in detail after having someone make a bios for me. I do not have an eprom programmer myself, maybe I should get one but it seemed like another thing to fuss with and I needed a diagnostic bios anyway so I used the opportunity to get both.

I don't have it in hand yet but now I'm suspecting it's not going to work for me, but maybe for someone with this other gamelist I can send it to you when I get it.

But I would still like a PickNMix bios for my all in one, unfortunately programming/patching a bios is not anywhere close to my wheelhouse. So I'll just ask that if anyone tackles it, please post details!

Edit: I should also note that if a discussion about a patched bios should be spun off into its own thread I'm open to that too, there was some discussion in rewrite's vortex cart thread but since that was for interest about getting a modded cart I didn't want to clutter up in there.
 
Last edited:
Coming back to this, it looks like the game list is not the same as the game list on my cart from leonk either. I believe the changes are that I don't have Xevious but do have two Magician Lord romsets (MVS and AES) and two Shock Troopers romsets (the shared vs separate character lifebars on team mode).

Unfortunately I was a dummy and only really inspected the game list in detail after having someone make a bios for me. I do not have an eprom programmer myself, maybe I should get one but it seemed like another thing to fuss with and I needed a diagnostic bios anyway so I used the opportunity to get both.

I don't have it in hand yet but now I'm suspecting it's not going to work for me, but maybe for someone with this other gamelist I can send it to you when I get it.

But I would still like a PickNMix bios for my all in one, unfortunately programming/patching a bios is not anywhere close to my wheelhouse. So I'll just ask that if anyone tackles it, please post details!

Edit: I should also note that if a discussion about a patched bios should be spun off into its own thread I'm open to that too, there was some discussion in rewrite's vortex cart thread but since that was for interest about getting a modded cart I didn't want to clutter up in there.
You're right, it won't work correctly unless your cart has been built with this game list:

https://github.com/kuzearcade/ub_vortex_multicart/blob/main/uni-bios_4_0_PICKnMIX.csv
 
Kuze has an older version of my Vortex cart. About a year ago, I did change the line-up. I added 2 game variations, removed 1, and punted 240p test suite to the end because it doesn't make sense to see it first every time.

We also need to be realistic about getting the Pick N Mix to work with these carts. Razoola removed a lot of games from the list to make it fit. Kuze had to remove some games and find enough free space in the BIOS to fit the new game list as the old location Razoola used did not have enough space for all the game names in a single list; there's a lot more games you want to keep on a Vortex cart than an unmodified cart. As Kuze previously said, he had to use a hex editor along with the MAME debugger to find the space and insert his trimmed modified code. He's coding at the machine level, not human readable source code level.

If you want Pick N Mix + Vortex cart, it's a compromise. The 27C1024 does not have enough free continuous space to hold all the game names and Kuze also mentioned that it sometimes crashed on him.
 
Absolutely understand, and please don't take my previous post or anything in this one as complaining that kuze's patch won't work for me or that I'm upset the gamelist changed. It was specifically why I didn't quote kuze's post to ping him or tag you. I didn't want anyone to think I was laying blame or suggesting I was owed something.

I just wanted to note that if anyone comes looking later, to double check your game list. But like I said, I was the dummy, the gamelist was right there and understandable even for someone like me that has no idea what he's looking at in the bios code itself.

So yeah, if anyone has the right gamelist version cart and wants to try it out, I'll happily forward this bios to you once it comes in. And a PickNMix for the All in One will remain a wishlist item for me so if someone does pick up the work for the version of the game list I have, I wanted to express my interest. Cycling attract modes on the cab is just one of those things I enjoy, however silly.
 
Does the PROM unified binary of these games works like this?:

First 1MB - P1 rom

Rage of the Dragons - rest 7MB P2 rom
Samurai Shodown V Special - rest 7MB P2 rom
SNK VS Capcom Chaos - rest 5MB P2 rom
The king of Fighters 2003 - rest 7MB P2 rom
 
Last edited:
Now that I have more info on the chips, I'm going to try using TopJTAG Flash Programmer to see if contents can be read and written in an easier way.

I always assumed hacked games were reusing assets from their non hacked counterparts (it all wouldn't fit otherwise). If games are called at their specific start and end addresses, assuming there's no other checks, then full games could possibly be replaced. Are the address calls done by the menu ROM or the CLPD?

So for now the most impressive thing we understand how to do is physically erase the program files of rom hacks. A bit of a challenge in the meantime would be to fix SNK vs Capcom, which only has hacked versions and not the official version. The official programming could replace the hacked programming's address space

@rockbottom Didn't you say earlier that Waku and Windjammers were in there but unused? How does that work?
 
small hint in regards to the patched unibios:
I always thought I did something wrong, as the reset via the start button did not work at all anymore with the patched bios and the vortex cart.
Nobody mentioned that you can only reset via the unibios ingame menu:whistling:

that would have saved me from erasing the bios chip and programming it again ...
 
small hint in regards to the patched unibios:
I always thought I did something wrong, as the reset via the start button did not work at all anymore with the patched bios and the vortex cart.
Nobody mentioned that you can only reset via the unibios ingame menu:whistling:

that would have saved me from erasing the bios chip and programming it again ...
I think this has been common knowledge.

Hold start to return to menu is not a unibios function. It is a function of the 161 in 1.

Start to return to menu was lost when the 161 was converted to vortex.
 
If you want Pick N Mix + Vortex cart, it's a compromise. The 27C1024 does not have enough free continuous space to hold all the game names and Kuze also mentioned that it sometimes crashed on him.
Just to circle back on this, I've been testing this further with the version I put on Github and haven't been able to trigger the previous bug (which the patch on Github was already updated to try and fix) after multiple hours of testing. If anyone else has given this a try and had a game get "stuck" during attract mode I would be interested to hear about it. Obviously you would need to be using the same version of the leonk cart as me.
 
And if it's ok to offer, I have a spare eprom of kuze's bios that I would gladly send along to someone in the US free of charge if they have the right leonk cart and want to try it out.

And for what it's worth it does 'work' for mine in that it boots up, cycles random attract modes, and changes games with the menu, except the titles in the menu don't match up with the game.

I left it running for an hour and it continued to cycle just fine. At some point when I'm not fussing around with other things I might do a longer test.
 
Back
Top