Samurai Shodown V Perfect on real hardware?

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Samurai Shodown V Perfect on real hardware?

      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
      Darksoft/Apocalypse: CPS2, CPS3, F3-β, MVS, S16-β
      Marqs: OSSC v1.5/1.6 VGP, OSSC v1.6 Kaico
      invzim: Jammafier v1.6b/1.7c, Tri-Sync Helper, JVSPAC2
      XianXi: JNX Raiden, SC Taito Classic, SC Sega S16/24, Namco S11/12 KHA
      Frank_fjs: JAMMA Extender SE-HAS, Jassifier v1.6

      The post was edited 4 times, last by jassin000 ().

    • jassin000 wrote:

      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.
    • Try doing this for the program rom

      Source Code

      1. dd if=samsh5sp.cslot1_maincpu.dec of=samsh5sp.cslot1_maincpu.swap conv=swab
      2. dd if=samsh5sp.cslot1_maincpu.swap of=0.bin bs=1048576 skip=0 count=1
      3. dd if=samsh5sp.cslot1_maincpu.swap of=1.bin bs=1048576 skip=1 count=1
      4. dd if=samsh5sp.cslot1_maincpu.swap of=2.bin bs=1048576 skip=2 count=1
      5. dd if=samsh5sp.cslot1_maincpu.swap of=3.bin bs=1048576 skip=3 count=1
      6. dd if=samsh5sp.cslot1_maincpu.swap of=4.bin bs=1048576 skip=4 count=1
      7. dd if=samsh5sp.cslot1_maincpu.swap of=5.bin bs=1048576 skip=5 count=1
      8. dd if=samsh5sp.cslot1_maincpu.swap of=6.bin bs=1048576 skip=6 count=1
      9. dd if=samsh5sp.cslot1_maincpu.swap of=7.bin bs=1048576 skip=7 count=1
      10. cat 0.bin 7.bin 3.bin 6.bin > 272-p1.p1
      11. cat 1.bin 2.bin 4.bin 5.bin > 272-p2.sp2
      Display All

      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.

      The post was edited 1 time, last by ack ().

    • 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?
    • plasia wrote:

      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



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



      Continuing: samsho.cslot1_fixed matches the srom



      Continuing with this:
      samsho.cslot1_ymsnd matches vroma0

      Didn't find any other matches

      So umm.. that's a start
    • 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:

      Source Code

      1. Samurai Shodown 5 Special.......(NGM-2720)......SamuraiShodown5Special_NGM......SNK/SamuraiShodown5Special......samsh5sp........
      2. samsh5sp.cslot1_maincpu.dec.....
      3. samsh5sp.cslot1_fixed.dec.......
      4. samsh5sp.cslot1_audiocrypt.dec..
      5. #samsh5sp.ymsnd.
      6. samsh5sp.cslot1_ymsnd.dec.......
      7. SamuraiShodown5Special_NGM.sprites.swizzled.....
      vs

      Source Code

      1. Samurai Shodown 5 FE....('Final Edition').......SamuraiShodown5_FE......SNK/SamuraiShodown5_FE..samsho5_se......
      2. samsho5_fe.cslot1_maincpu.......
      3. SamuraiShodown5_FE.sprites.swizzled.....
      4. SamuraiShodown5_FE.nv...
      5. 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

    • bytestorm wrote:

      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.
      Buy 3D Printed Parts: bit-district.com
      Projects: instagram | blog
      Games: VAPS | VOOT | UMK3 | RFM | Vewlix | FiF Jr. | KI2 | E29 | Net City | DDR | Flash Beats
      Wanted | For Sale/Trade
    • 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.

      C Source Code: neocrypt.c

      1. void neogeo_state::samsh5sp_decrypt_68k()
      2. {
      3. int i;
      4. static const int sec[]={0x000000,0x080000,0x500000,0x480000,0x600000,0x580000,0x700000,0x280000,0x100000,0x680000,0x400000,0x780000,0x200000,0x380000,0x300000,0x180000};
      5. UINT8 *src = memregion("maincpu")->base();
      6. dynamic_buffer dst(0x800000);
      7. memcpy( dst, src, 0x800000 );
      8. for( i=0; i<16; ++i )
      9. {
      10. memcpy( src+i*0x80000, dst+sec[i], 0x80000 );
      11. }
      12. }
      Display All