Catching up part 1: Claire in the dark

About 5 years ago, I released one of my 1st Dreamcast 60Hz-VGA patches: Resident Evil: Code Veronica. I have always been scared to play that kind of games, to the point that I just played the very beginning to do my testing and missed that the patch was not fixing the video output settings everywhere in the code. A new version of the patch was then necessary. But why did it take me that long to make a new one? Let’s dig into the details.

What was wrong with the first patch? Let me explain some technical details first. All SEGA licensed Dreamcast games were built with the official SDK, for either Katana or Windows CE operating system, providing libraires and code snippets to speed up development. In Katana SDK, used for Resident Evil CV, sbInitSystem is a piece of code in charge of initializing the system main components. It’s in this file that the video stack chosen by the development team (Ninja, Kamui or Kamui2) is initialized to whatever video mode the game developers want. Quite often, the video mode is set only once by sbInitSystem routine, early in the execution. The developers can however decide to change it later on to for instance switch to 60hz after asking the player whether her screen supports that frequency. It can also happen when the game plays a FMV as the playback is handled by a dedicated middleware (remember my post about Dino Crisis VGA patch?). If your patch only changes the sbInitSystem parameters, It may miss other entry points and it is exactly what happened with my first patch! The new version fixes the source of those parameters, used everywhere in the code rather than just the parameters themselves.

Now that we have the patch fixed, it is time to release it, right? Wait, not yet, it was just the easy part. The torment is now about to begin…

Unlike most PAL Dreamcast games but with Capcom staying true to itself, there isn’t one PAL version but one per language region. The countries like Germany, Spain or else France have their own localized version whereas other European countries had to deal with the English one. Note that Italy which has several localized Dreamcast games did not get one for this game. When it comes to patch the game, the main executable (read 1ST_READ.BIN) is almost the same across the versions. And unfortunately almost doesn’t mean equal in terms of programming!

Each version of the main executable embeds region specificities: subtitles, new font characters, new sentence layout, etc. It means you have to make not 1 but 4 different patches, even though the patching logic remains the same. And remember you also have two discs per version which could theoretically lead up to 8 different patches! And if you also want to release patched GDI images along with a patch as I do, it means you have to prepare as many images as discs… But luckily, disc 1 and 2 share the same main binary file and it’s located at the same offset. Phew!

So I think now you understand: releasing all the patches and the patched images took me a long time for good reasons. Usually we say no pain no gain but I save it for later as playing Resident Evil has never been a big thing to me. Anyway, I hope all the Resident Evil CV fans will enjoy playing the Dreamcast version!


Patched GDI images:

19 replies on “Catching up part 1: Claire in the dark”

Thank you! Don’t hesitate to contact me if again the patch is just partially working. With the 1st version of my patch, when getting in the gold luger room (and probably many other places) the video output changes back to PAL/50Hz. With the new patch, it works now correctly, at least in that room. The new patch changes the code setting up the video mode rather than just hooking up the method that does the video initialization. And as I haven’t find any other references to the video settings I think the problem is now solved.

Not able to test that sorry just patiently awaiting limitless BIOS!

Sorry if misinterpret, you’re working on booting Bleem!cast? And the cracked with no game check? And also Codebreaker works?

I’m working with truemaster and pitito on RECVX version (from japanese kazenban complete version)
In vga the game is running in 60Hz so the subtitles are too fast…
Same problem if we import datas from ps2 or gamecube version. The dreamcast is the only one to run in 60Hz…
The english version of RECVX is release, the first disc of spanish version is release too, and I’m polishing the french version, with good subtitles sync.
Anyway the two projects can live together 🙂
Thanks to be back 😀 and congratulations for your new blog. Very good job.

truemaster here. the fans that prefer original version over complete (yes they are lot) will love you. if the subtitles are patched on rest of europe versions fafadou can take a look. looking forward for bleem and new bios

Thank you Japanese Cake, for all your great work for our Dreamcast community 🙂

Hopefully one day, you can bring us new VGA patches, there are a few titles that still need it, like Deadly Skies, Kof, etccc ..

Unfortunately I haven’t tested on a CRT device to check that the sync was ok. But as the vga and ntsc mode share the same framerate and I didn’t notice any sync issue I assumed the 50/60 sync was already implemented (just like Dino Crisis). So what you are saying is that the subtitles get out of sync right? Could you please tell me where do you see it? In cut scenes? In FMVs? Thanks!

That’s it, the subtitles are out of sync only during FMV, in first RECV disc there are intro and ending issue only. Because there are no voices during others FMVs.
Watch the full intro with your release in vga, then replace the two files I shared with you below. And watch again.

The .RDX are compressed format (PRS with puyo tools), I played the FMVs so many times in order to have a good sync (something you have done in order to have a perfect dino crisis vga patch 😉 ). So please Use them, here the pack RECV 60hz with good names 🙂 :

I’ll share with you the second disc files sync patch until I’ll finish them.

Hi there!
I’m sure you know about the “tiger bug” when playing disc 2 (Code Veronica) on a GDEMU or emulators.
When you try to insert the 2 jewels into tiger eyes, the head doesn’t moves, so you cannot progress in game. There are 2 main solutions: Editing the save with VMUtool, or play this part of the game with a Dreamcast with real GDrom drive.
I really want to introduce myself into rom hacking to bring a fix for this “bug”. My idea is to make a special patch for GDEMU users.
So, my question is: ¿Do you know this “bug”? ¿Are you already working on it?
If not… ¿Do you believe that a noob like me can learn about rom hacking to bring a fix for this?
I’m registered in romhacking website and I know there’s a lot of tools for Dreamcast hacking (one of this tools is yours) and I just want to know if one of this tools is useful to edit the “game behavior” to force the game to bring the tiger’s item to the player.
My only experience as a programmer was in college,… where I developed a small tool for image editing (change contrast, brightness, size, morphings, etc…) and I made it with c++.

Sorry for my horrible english. LoL

Leave a Reply