Cartridge Logic

Hewitson

Metal Slug Mechanic
Joined
Mar 6, 2008
Posts
2,198
I've been quite familiar with how the mvs works for quite some time, however I've never looked into how the carts operate.

What I would like, if anyone is able to do so, is a detailed description of what the extra circuitry in the cartridges actually does. Theres obviously a lot of bankswitching going on, but how exactly is this achieved?

Cheers
 
Last edited:

smkdan

Galford's Armourer
Joined
Dec 30, 2009
Posts
452
I know a few things about this but not as much as one of the tech experts would.

-Every game after 1990 or so has NEO-PCM or equivalent. YM2610 has ADPCM-A + ADPCM-B buses that run in parallel and the earliest games had two banks of V ROMs for each. This can waste alot of space though so PCM chip allows for both to run from single 16MB space.
-If a board can take more than 2MB of P ROM it's equipped for bank switching. At least on PROGBK1, bank # is written by 68k to LS74, outputting to LS139->LS08. Same 139 is used by PCM to select one of 4 V ROMs. IT varies how later carts do it but it seems to always be 1MB fixed, 1MB switchable.
-C/V ROMS were never bank switched
-NEO-ZMC is for Z80 bank switch, Z80 sees 62KB of ROM at a time only. It's out ports select a bank for a given region. Some games don't have it or an equivalent despite having large ROMs. NAM for instance has a large M1 but only 62KB is used.
-NEO-273 is for addressing for video hardware. C/S ROMs are addressed with the output
-Fatal Fury 2 and a few other games have the earliest protection attempt with SNK-9201. If 68k doesn't get expected values back from it the game crashes.
-Games with 128K of SROM don't bankswitch, later titles do where the cart looks at FIX layer fetches in offscreen areas

Don't know anything about the later protection stuff. Slug X has that PLD sitting between 68k and P1 and it gets more involved with later titles.

also, @channelmaniac/kyuusakku or whoever else knows better, do any of you have info on jumper layouts on carts? I know there's cart pinouts available and I can do it myself, if I can avoid doing all of that though it would be nice.
 

channelmaniac

Mr Neo Fix-it
15 Year Member
Joined
Nov 29, 2005
Posts
4,316
I don't have that info. I've never delved into carts to pinout the various chips and jumper settings.
 

Kyuusaku

B. Jenet's Firstmate
Joined
Mar 26, 2003
Posts
419
The ZMC is kinda interesting, it has a wacky register file with a 32k, 16k, 8k, 4k and 2k banks. The registers are also loaded by predecoded port address reads.

The 273 just latches C and S addresses multiplexed on the same bus from the LSPC. IIRC it also decodes a few ROMs.

The PCM works pretty much the same way; latches the port addresses, then multiplexes those out as the ROM address, latches the data for each port to service.

Haven't bothered with jumpers either.
 
Last edited:

channelmaniac

Mr Neo Fix-it
15 Year Member
Joined
Nov 29, 2005
Posts
4,316
If the 273 chip follows the same format as the NEO-257 and other chips then it'll simply be a few 74LS273 chips in a single package.
 

Hewitson

Metal Slug Mechanic
Joined
Mar 6, 2008
Posts
2,198
I know a few things about this but not as much as one of the tech experts would.

-Every game after 1990 or so has NEO-PCM or equivalent. YM2610 has ADPCM-A + ADPCM-B buses that run in parallel and the earliest games had two banks of V ROMs for each. This can waste alot of space though so PCM chip allows for both to run from single 16MB space.
-If a board can take more than 2MB of P ROM it's equipped for bank switching. At least on PROGBK1, bank # is written by 68k to LS74, outputting to LS139->LS08. Same 139 is used by PCM to select one of 4 V ROMs. IT varies how later carts do it but it seems to always be 1MB fixed, 1MB switchable.
-C/V ROMS were never bank switched
-NEO-ZMC is for Z80 bank switch, Z80 sees 62KB of ROM at a time only. It's out ports select a bank for a given region. Some games don't have it or an equivalent despite having large ROMs. NAM for instance has a large M1 but only 62KB is used.
-NEO-273 is for addressing for video hardware. C/S ROMs are addressed with the output
-Fatal Fury 2 and a few other games have the earliest protection attempt with SNK-9201. If 68k doesn't get expected values back from it the game crashes.
-Games with 128K of SROM don't bankswitch, later titles do where the cart looks at FIX layer fetches in offscreen areas

Don't know anything about the later protection stuff. Slug X has that PLD sitting between 68k and P1 and it gets more involved with later titles.

also, @channelmaniac/kyuusakku or whoever else knows better, do any of you have info on jumper layouts on carts? I know there's cart pinouts available and I can do it myself, if I can avoid doing all of that though it would be nice.
Wow, thats interesting stuff. Thanks a lot for posting that.

I think we as a community should attempt to fully document the neo geo cartridge system.
 

Kyuusaku

B. Jenet's Firstmate
Joined
Mar 26, 2003
Posts
419
If the 273 chip follows the same format as the NEO-257 and other chips then it'll simply be a few 74LS273 chips in a single package.
Yep, 5x 273 (though not all bits used) and an inverter.

I think we as a community should attempt to fully document the neo geo cartridge system.
OK, you RE the LSPC and I'll take the B0 and C0 :P (And I'm talking gate level.)
 

Hewitson

Metal Slug Mechanic
Joined
Mar 6, 2008
Posts
2,198
Heh, I wasn't talking about doing it quite to that extent.

But it would be great to know exactly how the bankswitching and jumpering works.
 

norton9478

So Many Posts
No Time
For Games.
20 Year Member
Joined
Oct 30, 2003
Posts
34,075
My advice is this..

MVS carts only work on MVS machines.

NGH carts only work on NGH machines.
 

Hewitson

Metal Slug Mechanic
Joined
Mar 6, 2008
Posts
2,198
Let me say that I am not after this information for the purpose of making a new converter.

I couldn't agree with you more norton.
 

Kyuusaku

B. Jenet's Firstmate
Joined
Mar 26, 2003
Posts
419
The bankswitching is in discrete logic and very simple. Basically there's an area of 68K memory ($200000-2FFFFF) which is NOT part of the contiguous program space ($000000-0FFFFF), called the "PORT" by SNK. This space is used by the FF2 protection and later for an extra megabyte of ROM (running code off it would complicate code/performance so it's typically used for data). The cartridge connector has 4 predecoded signals for high/low reads/writes in that area. (This is why the 7408 is needed, upper AND lower reads == word read.) The low write signal clocks a register on D0-7 (theoretically) which directly drives A20-whatever on the ROM decoded with port reads.
 
Last edited:

joe8

Legend of Threadless Joe
15 Year Member
Joined
Oct 25, 2007
Posts
4,329
My advice is this..

MVS carts only work on MVS machines.

NGH carts only work on NGH machines.
It's probably possible to make a converter that would play all MVS games perfectly on the AES. And vice-versa.
 

Xian Xi

JammaNationX,
15 Year Member
Joined
Dec 1, 2005
Posts
27,762
It's probably possible to make a converter that would play all MVS games perfectly on the AES. And vice-versa.

Anything is possible. I don't think people want to pay $500+ for an MVS >AES converter though.
 

Kyuusaku

B. Jenet's Firstmate
Joined
Mar 26, 2003
Posts
419
It's possible to make a MVS->home converter that supports all games, and somewhat cheaply, it'd just require hardware like a Game Genie to patch a few games' P ROMs. It however is not possible to make a home->MVS converter because home carts only expose 8 bits of the 32-bit C bus; it would require 4x speed fetches, which the ROMs can't handle.
 

Kyuusaku

B. Jenet's Firstmate
Joined
Mar 26, 2003
Posts
419
Any code that prevents the game (intentionally or not) from running on an AES.
 

SNKorSWM

So Many Posts
No Time
For Games.
10 Year Member
Joined
Feb 5, 2010
Posts
15,149
There are some games that requires the backup RAM of mvs to work correctly (Jockey GP I think?). How would that be implemented on a converter? Battery + RAM?

On the other hand, a CMVS that uses the AES deck as its A/V and joystick ports (and maybe power source) would be a bit far fetched, but nonetheless can substitute as and maybe even cheaper than an actual converter. Of course, it might as well just be a standalone cmvs in the first place.
 
Last edited:

Xian Xi

JammaNationX,
15 Year Member
Joined
Dec 1, 2005
Posts
27,762
When in AES mode it doesn't check that sort of thing but as a work around most likely you would need to have a mem card inserted on boot I'm guessing.
 

Kyuusaku

B. Jenet's Firstmate
Joined
Mar 26, 2003
Posts
419
There are some games that requires the backup RAM of mvs to work correctly (Jockey GP I think?). How would that be implemented on a converter? Battery + RAM?
Yep, and it would be very easy to, but the game would still likely need patching. Worth it for one game? I guess the patches/codes/a UniBIOS could be stored in it too :)

When in AES mode it doesn't check that sort of thing but as a work around most likely you would need to have a mem card inserted on boot I'm guessing.
Memory cards are in a different area of memory and much much smaller and a little bit slower than the backup RAM. If the backup RAM REALLY is used by games, it's possible to hack the game to use an oversized memory card if the speed isn't critical.
 

SNKorSWM

So Many Posts
No Time
For Games.
10 Year Member
Joined
Feb 5, 2010
Posts
15,149
In the Metal Slug games, a second save file can be created on the memory card regarding setting changes a la softdip normally saved on backup RAM on mvs. So the two types of RAM are at least somewhat interchangeable. The question is what exactly is the backup RAM used for in Jockey JP, and whether the 2K bytes in a standard memory card would be enough to accomodate should the interconversion prove to be viable.
 
Joined
Aug 21, 2010
Posts
9
Very interesting post, i'm tying to make an MVS Ghostlop on a MVS Fatal Fury 2 Board, and the game crash as you describe it. I don't kown how to make it works but nice to know why :cool:
 

Xian Xi

JammaNationX,
15 Year Member
Joined
Dec 1, 2005
Posts
27,762
Very interesting post, i'm tying to make an MVS Ghostlop on a MVS Fatal Fury 2 Board, and the game crash as you describe it. I don't kown how to make it works but nice to know why :cool:

What chips did you use for all of them?
 
Joined
Aug 21, 2010
Posts
9
Sefer Halilović (Xian Xi --if you refuse to deal with him over a name change a mod will stab*;3049074 said:
What chips did you use for all of them?

I've used :
P1 : 27c800
V1 : 27c160
C1 and C2 split in two part so they became C1 - C3 : 27c160 and C2 - C4 : 27c160
M1 : 27c1001
S1 : 27c301
 

Neo Alec

So Many Posts
No Time
For Games.
25 Year Member
Joined
Dec 7, 2000
Posts
15,804
Let me say that I am not after this information for the purpose of making a new converter.
Someone should.

Any code that prevents the game (intentionally or not) from running on an AES.
The Super MVS II already does that. The scaling issue is the next thing that needs to be addressed.

On the other hand, a CMVS that uses the AES deck as its A/V and joystick ports (and maybe power source) would be a bit far fetched, but nonetheless can substitute as and maybe even cheaper than an actual converter.
It's already been made.

Sefer Halilović (Xian Xi --if you refuse to deal with him over a name change a mod will stab*;2933681 said:
When in AES mode it doesn't check that sort of thing but as a work around most likely you would need to have a mem card inserted on boot I'm guessing.
Jockey Grandprix and V-Liner don't have an AES mode. They simply don't boot on a home console.
 
Top