farmerbb / RED-Project

ROM Extraction Documentation Project
216 stars 10 forks source link

SNK VS Capcom: SVC Chaos - ROM extraction from Steam #170

Open DrAzathoth opened 4 months ago

DrAzathoth commented 4 months ago

The ROMset is loose in a folder, but they are in a format similar to Code Mystics' other Neo Geo rereleases.

DrAzathoth commented 4 months ago

It seems like someone got it working with FBN!

https://milkchoco.info/archives/8252#comment-4598

RealRelativeEase commented 3 months ago

An update on SVC Chaos: https://milkchoco.info/archives/8363

I don't think there are any detailed instructions on how to extract the ROM yet, and it seems that Genjuro's name has been spelled differently and that it might cause issues with emulators.

RealRelativeEase commented 2 months ago

Another update: https://milkchoco.info/archives/8545

I think something in the second batch doesn't work for me, since I don't end up with any C-ROM files. Maybe I'm missing something in the instructions, I don't speak Japanese, unfortunately.

Edit: Follow these instructions to extract a ROM faithful to the 2003 original with the correct CRC values. You'll need to manually edit the pixels for Genjuro's name on the character select screen as per these instructions (adding a "Y" to the nameplate): https://milkchoco.info/page-8564

If you want to leave Genjuro's name as is, you'll need to perform CRC edits in order for the game to boot in FB Neo. https://github.com/farmerbb/RED-Project/issues/170#issuecomment-2343255222

DrAzathoth commented 2 months ago

Another update: https://milkchoco.info/archives/8545

I think something in the second batch doesn't work for me, since I don't end up with any C-ROM files. Maybe I'm missing something in the instructions, I don't speak Japanese, unfortunately.

Worked perfectly fine for me, albeit with a minor caveat.

Did you compile "ss_unswizzle" and place the .exe in the same directory? That is what deinterleaves the C-ROM.

Make sure to rename c7.c7 and c8.c8 to 269-c7r.c7 and 269-c8r.c8 respectively.

The final C-ROMs in the romset all have different CRCs; not just c7 and c8. Make sure to follow the force CRC guide in this issue and just accommodate for the different ROM size. You can check what the correct CRCs are here. Example: python forcecrc32.py 269-c1r.c1 8388604 887b4068

RealRelativeEase commented 2 months ago

Did you compile "ss_unswizzle" and place the .exe in the same directory? That is what deinterleaves the C-ROM.

How do I compile "ss_unswizzle" on a Windows system? I've been using "ss_unswizzle.c" and then entered this command in bash: gcc -o ss_unswizzle ss_unswizzle.c

But it doesn't build an exe file, and adding the .exe extension manually causes the batch to end with an error due to 16-bit incompatibility.

Edit: Never mind, the blog has a download link for the exe: https://milkchoco.info/bin/ss_unswizzle.zip

Edit²: And in case anyone else is lazy like me, here are the commands I've used for my batch file to edit the CRC hashes:

python forcecrc32.py 269-c1r.c1 8388604 887B4068 python forcecrc32.py 269-c2r.c2 8388604 4E8903E4 python forcecrc32.py 269-c3r.c3 8388604 7D9C55B0 python forcecrc32.py 269-c4r.c4 8388604 8ACB5BB6 python forcecrc32.py 269-c5r.c5 8388604 097A4157 python forcecrc32.py 269-c6r.c6 8388604 E19DF344 python forcecrc32.py 269-c7r.c7 8388604 D8F0340B python forcecrc32.py 269-c8r.c8 8388604 2570B71B

alhumbra commented 2 months ago

Code Mystic has modified the C7/C8 ROM for SVC CHAOS. To correct this, it is necessary to manually redraw the images using NGFX and other tools. This decision was made to avoid using IPS patches due to copyright issues. If done correctly, SVC CHAOS ROMs can be extracted with the correct CRCs. You ignored everything and did a great job.

Code Mystic Inc. ’Genjuro’ codemystic_SVCCHAOS

Fix ’genjyuro' svcfixed

redraw C7/C8 fixs

Np CRC. SVC CHAOS

Shigeshigeru commented 2 months ago

Edit: Never mind, the blog has a download link for the exe: https://milkchoco.info/bin/ss_unswizzle.zip

Edit²: And in case anyone else is lazy like me, here are the commands I've used for my batch file to edit the CRC hashes:

python forcecrc32.py 269-c1r.c1 8388604 887B4068 python forcecrc32.py 269-c2r.c2 8388604 4E8903E4 python forcecrc32.py 269-c3r.c3 8388604 7D9C55B0 python forcecrc32.py 269-c4r.c4 8388604 8ACB5BB6 python forcecrc32.py 269-c5r.c5 8388604 097A4157 python forcecrc32.py 269-c6r.c6 8388604 E19DF344 python forcecrc32.py 269-c7r.c7 8388604 D8F0340B python forcecrc32.py 269-c8r.c8 8388604 2570B71B

Dear RealRelativeEase. If you are lazy, no one cares. However, if you are citing a blog created by someone else and not yourself to do the work, you should be responsible for the end result regarding it. If you are working alone from the beginning, then by all means be lazy.

If you neglect to do so after citing the blog, then you are only inconveniencing the author of the blog.

That blog post was not written for you. It was written to share information. If you are writing the same information elsewhere, Please correct it to the correct information.

English is difficult for us, but even with such poor English Remember we are doing our best.

Shigeru

RealRelativeEase commented 2 months ago

Code Mystic has modified the C7/C8 ROM for SVC CHAOS. To correct this, it is necessary to manually redraw the images using NGFX and other tools. This decision was made to avoid using IPS patches due to copyright issues. If done correctly, SVC CHAOS ROMs can be extracted with the correct CRCs.

The Code Mystics version uses the official romanized spelling of his name that SNK used in international versions since his first appearance: samsho2

I couldn't find any other examples of games using the "Genjyuro" spelling on a search engine, other than the official website for the 2003 release of SVC Chaos. That's why I assumed that Playmore made an error in the original version of SVC Chaos and that SNK instructed Code Mystics to edit the spelling on the character select screen to make it consistent with other titles. I didn't edit the dot graphics because it's the spelling I'm familiar with and I wanted it to be consistent with my other Neo Geo ROMs.

I am aware that I essentially used a pair of scissors to make a jigsaw piece fit into place, but I didn't mean to disparage any of the work that went into compiling the instructions on how to extract the ROM and how to edit the graphics. I linked your blogpost with the instructions in an earlier post on this thread, which in turn also references the blogpost you wrote on how to edit the graphics. The way I interpreted the machine translation of the "Second Half" section of your post, you left it up to the user to decide whether they edited the graphics or whether they wanted to deal with the C-ROM not having the correct CRC, so I went from there.

Dear RealRelativeEase. If you are lazy, no one cares. However, if you are citing a blog created by someone else and not yourself to do the work, you should be responsible for the end result regarding it. If you are working alone from the beginning, then by all means be lazy.

If you neglect to do so after citing the blog, then you are only inconveniencing the author of the blog.

I'll try to explain what I mean by "lazy" in this context. I'm not a programmer or an expert in general when it comes to computers, just a person who loves classic games. About two years ago, I hadn't even heard of methods such as hex edits, UART or CRC edits to extract ROMs and make them playable in a third-party emulator. But thanks to the communities releasing their findings to the public, I've been (mostly) successful in recreating the processes and extracting those titles for my own use. But I'm also prone to making errors and if I'm not able to replicate the instructions, it's through my own fault and it shouldn't reflect badly on the persons releasing the instructions, at least that's not my intention.

Please keep in mind that a lot of the processes that are second nature to more well-versed persons still pose a challenge to less skilled people like me and it may result in a dead end. I don't know how many other amateur level readers other than me are on this thread, or this repository in general. But in any event, I wanted to share what I did to make the ROM playable because it might benefit someone else if they should decide not to edit the graphics for whatever reason, because it might make a difference for them between being stuck and being able to play the SVC Chaos ROM.

I make an effort to always provide a source link to the instructions or tools in my posts because I don't want to pass off someone else's work as my own. I am not trying to badmouth you, alhumbra-san or anyone else. Quite the opposite, I'm grateful for all the knowledge that's being shared freely because it has helped to add so many games to my collection. Due to the decentralized nature of communities or even the individual threads on this repository, I've been sharing your posts because of the value they provide. If you, alhumbra-san or anyone else don't want me to share your findings on here, then I'll refrain from doing so.

It was not my intention to offend either of you and I apologize if it came off that way.

alhumbra commented 2 months ago

@RealRelativeEase has no issue with sharing information. However, I do not want to be misunderstood as a blog that publishes inaccurate extractions. In this case, I would like the link to state that there is a correct method for extracting CRCs.

If you want to use the 'GENJURO' notation extraction method, please explain it and clarify that this is your approach. Be respectful of your sources and take care to avoid misrepresenting them. Thank you for your patience and understanding.

Shigeshigeru commented 2 months ago

Dear @RealRelativeEase. Please be assured that this is not because I am offended. We understand that you are not an expert. We also understand that your efforts and enthusiasm are very impressive. Of course, there are many things I am not good at. To be honest, we are not experts either.

I can assure you that if you operate as described in the article, it will convert perfectly.

We just don't want to mislead you into thinking that Alhambra is wrong.

I can assure you that if you operate it as described in the article, it will convert perfectly. I just want to make sure that it is described correctly.

It may indeed be difficult to operate. There are certainly people who cannot operate it due to technical problems.

I hope that is your way of doing things, Writing your own instructions is never a bad thing. It will help those who can't convert as well as your explanation. (I understand that it works, but there is definitely some strange behavior in the display.)

However, as I mentioned before, I would like to make sure to mention that perfect conversion is guaranteed if you operate as described in the article.

Thank you in advance for your understanding and cooperation.

Perhaps the CRC of the file you created is would look something like this (If I'm not mistaken.)

If you are using the Windows version of FBneo, you can use an external DAT I think you can use an external DAT to play the game.

I hope this helps you.

Shigeru

// SNK vs. Capcom - SVC Chaos (Code Mystics Version)
/* Encrypted Set */ /* This set does not Perfect fix GENJURO */
// S1 data in c7,c8 have the same CRC 0xad184232 as the original, but the CRC of the s2.bin is 0xaf105364
// S1 data in c7,c8 do not match the original CRC

static struct BurnRomInfo svccmoRomDesc[] = {
    { "269-p1.p1",    0x400000, 0x38e2005e, 1 | BRF_ESS | BRF_PRG }, //  0 68K code
    { "269-p2.p2",    0x400000, 0x6d13797c, 1 | BRF_ESS | BRF_PRG }, //  1

    /* The Encrypted Boards do not have an s1 rom, data for it comes from the Cx ROMs */
    /* Encrypted */
    { "269-c1cmo.c1",  0x800000, 0xed134176, 3 | BRF_GRA },           //  2 Sprite data
    { "269-c2cmo.c2",  0x800000, 0x8b5fd526, 3 | BRF_GRA },           //  3
    { "269-c3cmo.c3",  0x800000, 0xaac66319, 3 | BRF_GRA },           //  4
    { "269-c4cmo.c4",  0x800000, 0x859dfd89, 3 | BRF_GRA },           //  5
    { "269-c5cmo.c5",  0x800000, 0xe4f20b43, 3 | BRF_GRA },           //  6
    { "269-c6cmo.c6",  0x800000, 0xa9d62fa7, 3 | BRF_GRA },           //  7
    { "269-c7cmo.c7",  0x800000, 0x94742c9b, 3 | BRF_GRA },           //  8
    { "269-c8cmo.c8",  0x800000, 0x115af8da, 3 | BRF_GRA },           //  9

    /* Encrypted */
    { "269-m1.m1",    0x080000,  0xf6819d00, 4 | BRF_ESS | BRF_PRG }, //  10 Z80 code

    /* Encrypted */
    { "269-v1.v1",    0x800000, 0xc659b34c, 5 | BRF_SND },           // 11 Sound data
    { "269-v2.v2",    0x800000, 0xdd903835, 5 | BRF_SND },           // 12
};

STDROMPICKEXT(svccmo, svccmo, neogeo)
STD_ROM_FN(svccmo)

struct BurnDriver BurnDrvSvccmo = {
    "svccmo", "svc", "neogeo", NULL, "2003",
    "SNK vs. Capcom - SVC Chaos (Code Mystics Version)\0", NULL, "Playmore / Capcom", "Neo Geo MVS",
    NULL, NULL, NULL, NULL,
    BDF_GAME_WORKING | BDF_CLONE, 2, HARDWARE_PREFIX_CARTRIDGE | HARDWARE_SNK_NEOGEO | HARDWARE_SNK_CMC50 | HARDWARE_SNK_ALTERNATE_TEXT | HARDWARE_SNK_P32 | HARDWARE_SNK_ENCRYPTED_M1, GBF_VSFIGHT, FBF_KOF | FBF_SF,
    NULL, svccmoRomInfo, svccmoRomName, NULL, NULL, NULL, NULL, neogeoInputInfo, neogeoDIPInfo,
    svcpcbInit, NeoPVCExit, NeoFrame, NeoRender, NeoScan, &NeoRecalcPalette,
    0x1000, 304, 224, 4, 3
};
RealRelativeEase commented 2 months ago

While I didn't encounter any corrupted graphics with the decrypted C-ROM (at least so far), I still wanted to take a shot at editing the nameplate to extract a ROM with the correct CRC out of the box. I wasn't able to operate Pixelorama on my laptop properly, so I tried to use Edge instead. As it turns out, the drop-down menu was illegible for me, even though Japanese characters were on display for some of the options and I couldn't figure out on my own how to deselect dots. edge

Still, editing the nameplate was fairly easy in the end, as per the guide. I just filled the empty space between "GEN" and "JURO" with blue dots using the paint bucket tool and inserted the "Y" and its outline by copying and pasting rectangular shapes of matching colors from other spots in the file, which felt easier to me than coloring each dot individually.

Thanks again for the instructions!

alhumbra commented 2 months ago

Hi, @RealRelativeEase Edge is an old software, and unfortunately, it seems to display garbled text in English environments. However, I couldn't find any equivalent software. NGFX, though inconvenient, might be easier to use as it doesn't have garbling issues.

I’m glad to hear that your work went smoothly. :+1:

DrAzathoth commented 2 months ago

@Shigeshigeru and @alhumbra,

Once we publish the instructions to the wiki, we will make sure to add appropriate accreditation and clarity in regard to where the extraction information came from. We are greatly indebted to your work and do not want to misrepresent it as inaccurate in any way. Some of us (myself included) like the new spelling of Genjuro’s name and would like to keep Code Mystics’ changes rather than modify the graphics to restore the original spelling.

I promise you, we will make sure to have both sets of instructions for whoever wants either the original romset or the new one.