Nov 182024
 

Hello everyone, this time I have a SNK Neo-Geo MVS game cartridge on my desk. It has glitches with some of the graphics.

MVS cartridges consist of 2 boards – the PROG board and the CHA Board.

This particular PROG Board holds 16-bit P ROMs and V ROMs.

P ROMs are Program ROMs. Some other Neo-Geo games use 8-bit parts instead for the P ROMs labeled either SP1/2 or EP1/2.

V ROMs are audio ROMs which holds ADPCM audio samples.

Since this game boots up and runs, and the sound is perfect, we don’t need to examine the PROG board at the moment.

Let’s take a look at CHA board. CHA Boards hold C ROMs, an S ROMs and a M ROM.

M ROM is a 8-bit ROM containing the Z80 Sound CPU program and data. Without it, you don’t get any sound.

S ROMs are Graphics ROMs containing tiles for the “fix” layer. The fix layer is a non-scrollable, tile-based layer with transparency which has the highest priority on the display (it always overlaps sprites). It is most often used to display text or HUDs like scores and health bars.

And finally we have C ROMs. C ROMs are 16 bit sprite graphics ROMs organized in pairs, each containing half of the bitplanes for sprite tiles.

Let’s see the fault with this particular cart before proceeding further. This white square is supposed to display a video:

Where’s the background???

There’s supposed to be two Dragons showing here instead of glitches.

Also you can see a video of the graphics corruption here:

Okay, since the graphics issues are with sprite tiles, we know the problem is with the CHA board, and we know that there’s something wrong with the C ROMs. But which ones?

For this situation, let’s consult the MAME ROMs. MAME’s dump of this game is “doubledr.zip”. Here are the contents – there’s one file for each ROM chip on both boards.

What I will do now is simulate the same error I’m seeing with my physical cart on MAME by corrupting each C ROM file one by one.

Normally, MAME does a hash check on each file when booting up a game – if the hashes don’t match for a file, it won’t start the game. But if you launch MAME from a command prompt, it only warns you and it will start the game.

I’ll start with corrupting the C8 ROM since it is 1MB in size, and thus equivalent to a 27C800 EPROM (of which I have plenty).

That’s looks like it – when MAME runs with a corrupt C8 then the same sprites look glitched as on my cart. The glitches look different glitches but the same sprites are affected.

Let’s desolder the C8 ROM from the board:

The MAME file for this part is 1MB in size. As mentioned above, the EPROM equivalent is a 27C800. Be careful when replacing a mask ROM part with an EPROM part – don’t always do this by size, because some ROMs like M1/S1 use different pinouts.

Here is the CHA board with a socket and programmed 27C800 installed:

Time to power up and give it a shot!

Well, the graphics are looking better than before, but they’re still bad. Here’s the video:

Next, I simulate a corrupt C7 ROM in MAME in the same manner and see that the same sprites glitch. So I go ahead and change out the C7 mask ROM for a 27C800 EPROM on the board too:

Now this is the result:

Everything fixed! Here’s the video:

It turns out that you cannot close up the cartridge shell when using sockets. Therefore, I desolder the sockets out and solder in the replacement EPROMs without sockets.

Best Regards

Oguz

[Editor Note: Check out the Neo-Geo Development Wiki for extensive technical information on the Neo-Geo platform]

 Posted by at 7:16 pm

Sorry, the comment form is closed at this time.