What's new

DJLC

Professional
Joined
Jul 21, 2015
Messages
227
Reaction score
67
Location
Saint Louis, Missouri
I know the collection is out today and I am wondering if anyone has had a chance to rip it from the PC version and try on an Emulator? If it works there then it should work on real hardware right?

I know it's a new game but it's currently free on Epic game store. I only advocate doing this if you legally own a license for the game (by owning the collection).
 
Not sure if this breaks any rules but I'm also interested in getting samsho5p running on Mister, FBA, MAME or if I was lucky enough to own a Darksoft multicart.

So here's the deal, the game comes with a bunch of *.mbundle files. Those can be extracted like usual, the same method used for Street Fighter 30th collection and some other games.
Now the problem is that while we have:

SamuraiShodown5Special mbundle

we don't have a 5 perfect one.
If you extract the main mbundle file you will find some assets of the game, interviews, artwork.. and just a few files that seem related:

samsho5a.cslot1_maincpu.dec

samsho5_fe.cslot1_maincpu
SamuraiShodown5_FE.nv
SamuraiShodown5_FE.pbin


FE I guess means Final Edition and I'm guessing this because all artwork named samsho 5 FE is the perfect one.


So I guess someone with some more knowledge of the rom system of the neo geo could know how to replace those on a final burn alpha rom zip.
 
I'm assuming the pbin file is the actual program ROM binary?
We don't know how its been merged to separate for real hardware, however maybe we could get this information by comparison of a known ROM?

We need offsets/separations for...
  • crom0
  • m1rom
  • prom
  • srom
  • vroma0
MAME lists like this...
  • 272-c1.c1
  • 272-c2.c2
  • 272-c3.c3
  • 272-c4.c4
  • 272-c5.c5
  • 272-c6.c6
  • 272-c7.c7
  • 272-c8.c8
  • 272-m1.m1
  • 272-p1.p1
  • 272-p2.sp2
  • 272-v1.v1
  • 272-v2.v2
 
Last edited by a moderator:
I'm assuming the pbin file is the actual program ROM binary?
We don't know how its been merged to separate for real hardware, however maybe we could get this information by comparison of a known ROM?

We need offsets/separations for...
  • crom0
  • m1rom
  • prom
  • srom
  • vroma0
MAME lists like this...
  • 272-c1.c1
  • 272-c2.c2
  • 272-c3.c3
  • 272-c4.c4
  • 272-c5.c5
  • 272-c6.c6
  • 272-c7.c7
  • 272-c8.c8
  • 272-m1.m1
  • 272-p1.p1
  • 272-p2.sp2
  • 272-v1.v1
  • 272-v2.v2
I assume you have the mame or the fba rom to compare so the filesize might indicate we don't have everything we need in this.

samsho5a.cslot1_maincpu.dec and samsho5_fe.cslot1_maincpu both are 8192kb

SamuraiShodown5_FE.nv is a 72kb that starts with BACKUP RAM OK.

SamuraiShodown5_FE.pbin is a 18km file


My guess is that SS5P is patched over ss5s.


The samsho5_fe maincpu in HxD shows Samurai Shodown 5 Special.

So basically we have 8mb of files.
 
Well.. at least I got it to boot

bank-error.png
 
Try doing this for the program rom

Code:
dd if=samsh5sp.cslot1_maincpu.dec of=samsh5sp.cslot1_maincpu.swap conv=swab

dd if=samsh5sp.cslot1_maincpu.swap of=0.bin bs=1048576 skip=0 count=1
dd if=samsh5sp.cslot1_maincpu.swap of=1.bin bs=1048576 skip=1 count=1
dd if=samsh5sp.cslot1_maincpu.swap of=2.bin bs=1048576 skip=2 count=1
dd if=samsh5sp.cslot1_maincpu.swap of=3.bin bs=1048576 skip=3 count=1
dd if=samsh5sp.cslot1_maincpu.swap of=4.bin bs=1048576 skip=4 count=1
dd if=samsh5sp.cslot1_maincpu.swap of=5.bin bs=1048576 skip=5 count=1
dd if=samsh5sp.cslot1_maincpu.swap of=6.bin bs=1048576 skip=6 count=1
dd if=samsh5sp.cslot1_maincpu.swap of=7.bin bs=1048576 skip=7 count=1

cat 0.bin 7.bin 3.bin 6.bin > 272-p1.p1
cat 1.bin 2.bin 4.bin 5.bin > 272-p2.sp2
In mame this will get is past the bank error and will display a blinking insert coin. It will however crash or watchdog if you insert a coin. I haven't look at the m1/s1/vrom/crom's yet.
 
Last edited:
SSVSP has PCM2 with P-ROM scramble. The right way of going about with this (if the goal is run this as SSVSP on mame) is figure out this particular rom scramble first, unscramble it and finally scramble it with the correct scramble for the old SSVSP ROM.
 
You can extract using the sf30 mbundle extractor thingie.

I don't know that much about these things. I found the most interesting things in the main bundle.

There are some _NGM.nv files, something to do with neo geo mini? (total guess)
there's a combo.patch.vrom file, 53,760 bytes
SamuraiShodown5_FE.nv 73,728 bytes
samsho5_fe.cslot1_maincpu 8mb exact 8,388,608 bytes
SamuraiShodown5_FE.pbin 18,126 bytes

I don't know how to re-create any of the roms, let alone V Perfect :(

Maybe the .sav files? What are these sprites.swizzled files?
 
You can extract using the sf30 mbundle extractor thingie.

I don't know that much about these things. I found the most interesting things in the main bundle.

There are some _NGM.nv files, something to do with neo geo mini? (total guess)
there's a combo.patch.vrom file, 53,760 bytes
SamuraiShodown5_FE.nv 73,728 bytes
samsho5_fe.cslot1_maincpu 8mb exact 8,388,608 bytes
SamuraiShodown5_FE.pbin 18,126 bytes

I don't know how to re-create any of the roms, let alone V Perfect :(

Maybe the .sav files? What are these sprites.swizzled files?
.sprites.swizzled files (from the "MAIN" folder) contain the ROMs IMO
 
the .swizzle being it would be a good guess. My investigation:

This is the SamuraiShodown_NGM.sprites.swizzled in hex.

Blanked out after offset 00900000

swizzlemynizzle.PNG

It's the same size as the crom but when comparing is different. Using SmokeMonster rollup Beta 3.1

checksum.PNG


Continuing: samsho.cslot1_fixed matches the srom
checksum2.PNG



Continuing with this:
samsho.cslot1_ymsnd matches vroma0

Didn't find any other matches

So umm.. that's a start
 
Someone look at prom vs samsho.cslot1_maincpu in hex editor.

They look almost the same? Weird, they seem to be swapping every 2nd byte.
 
If you dump the running process and search around you can find mame hiding in it. You need to look at the .pbin file that is encrypted as it seems to house everything outside of the prg rom.

Excuse the excessive .s this is just a copy/paste from hex and formatted to be a little more readable:
Code:
Samurai Shodown 5 Special.......(NGM-2720)......SamuraiShodown5Special_NGM......SNK/SamuraiShodown5Special......samsh5sp........
samsh5sp.cslot1_maincpu.dec.....
samsh5sp.cslot1_fixed.dec.......
samsh5sp.cslot1_audiocrypt.dec..
#samsh5sp.ymsnd.
samsh5sp.cslot1_ymsnd.dec.......
SamuraiShodown5Special_NGM.sprites.swizzled.....
vs

Code:
Samurai Shodown 5 FE....('Final Edition').......SamuraiShodown5_FE......SNK/SamuraiShodown5_FE..samsho5_se......
samsho5_fe.cslot1_maincpu.......
SamuraiShodown5_FE.sprites.swizzled.....
SamuraiShodown5_FE.nv...
SamuraiShodown5_FE.pbin.patch/PATCH_IMG_SPIRITS_FILL.
you'll notice that there's nothing at all mentioned past maincpu. While the char data might be in the swizzled file there's important data in the encrypted pbin that needs retrieved. I have no interest in looking further but might as well drop what I did find somewhere.

Edit: As for the byte swap reference MAME's source and you'll see that the prg roms are swapped when loaded.
 
Would it be possible to run a fully decrypted set of this on a BK1/CHA512 pcb set?

I have been trying to understand how to getting the bankswitching for the decrypted P rom to work, but the BK1 pcb can not handle the size SSVFE uses from what I can tell..
Any way around this 27C800+27C322 eprom limit for the P1 & SP2 slots? (or could the SSVFE P roms contain dummy data at the en that we could cut like ms5 P roms does?)

Would be frekkin awesome to put this baby on a single pcb set :D

bk1.jpg
 
Maybe let's look at getting it working first...
 
I have been trying to understand how to getting the bankswitching for the decrypted P rom to work, but the BK1 pcb can not handle the size SSVFE uses from what I can tell..
Any way around this 27C800+27C322 eprom limit for the P1 & SP2 slots? (or could the SSVFE P roms contain dummy data at the en that we could cut like ms5 P roms does?)
you'll also likely have problems with the V-Roms and C-ROMs there is only room for 4x 27c160 V-ROMs (64Mbit total) and 6x 27c322 C-ROMs (192Mbit total) original carts had special Mask ROMs that doubled those numbers.

pretty much everything that released on the BK1 or newer PROG board used those special over-sized V-ROMs, and everything that released on the 512Y or newer CHA board used the special over-sized C-ROMs.
 
Guys, focus on de-scrambling the program roms first.

old MAME release neocrypt.c, this code de-scramble the released samsho 5 Special, This ROM has a different scramble which is why it tosses a bank error when you try to boot it on mame while using the scramble from another game.
Code:
void neogeo_state::samsh5sp_decrypt_68k()
{
	int i;
	static const int sec[]={0x000000,0x080000,0x500000,0x480000,0x600000,0x580000,0x700000,0x280000,0x100000,0x680000,0x400000,0x780000,0x200000,0x380000,0x300000,0x180000};
	UINT8 *src = memregion("maincpu")->base();
	dynamic_buffer dst(0x800000);

	memcpy( dst, src, 0x800000 );
	for( i=0; i<16; ++i )
	{
		memcpy( src+i*0x80000, dst+sec[i], 0x80000 );
	}
}
 
I wonder what the legality of this all is. It looks like they set up some fairly decent copy protection to make sure it's not easily pulled into MAME.

If you own the collection are you only legally allowed to play the game via this collection or any emulator or hardware?...
 
Back
Top