Using Extended RAM Cartridge to boost data loading

paul_met

Member
Not so long ago, I learned that a Chinese hacker made support for a 4MB Extended RAM Cartridge for the Castlevania: SotN to boost data loading. I decided to pick up on this idea and did a similar thing for the game Vandal Hearts. The results are shown in the video.
--------------------------------------------
 
Be sure to test on real hardware. I found with the SotN hack that on real hardware a lot of the improvements being claimed about the hack went out the window. It only improved loading the Menu and Map screens, which makes sense considering that's what's being stored in the RAM cart.
 

slinga

Member
What's the strategy for this? Hook all file loading functions and cache the results to the RAM cart? Preemptively load files that are repeatedly read from disc?
 

paul_met

Member
Be sure to test on real hardware. I found with the SotN hack that on real hardware a lot of the improvements being claimed about the hack went out the window. It only improved loading the Menu and Map screens, which makes sense considering that's what's being stored in the RAM cart.
I have no way to test on the original hardware.
------------------------------------------------------
What's the strategy for this? Hook all file loading functions and cache the results to the RAM cart? Preemptively load files that are repeatedly read from disc?
Something like that.
 

slinga

Member
I'm curious to learn more if you are willing to share. How are you finding these functions to hook? Are you using a debugger in an emulator or are you reverse engineering?
 
What I'd honestly be more interested in finding out is what these KCEN ports are doing that's causing them to have such bad load times compared to their PS1 counterparts. Both the Saturn and PS1 have 2X Speed CD-ROM drives and 2MB of main RAM. So it shouldn't be a hardware reason for the worse load times.

I know with SotN the loading hallways aren't even used to start preloading the next area like they are on the PS1, so that at least explains what's going on there, but it doesn't seem to be as obvious what's going on with Suikoden and Vandal Hearts. Yeah using the 4MB RAM cart to fix it is nice, but it seems like an unnecessary way to go about fixing it.
 

paul_met

Member
What I'd honestly be more interested in finding out is what these KCEN ports are doing that's causing them to have such bad load times compared to their PS1 counterparts. Both the Saturn and PS1 have 2X Speed CD-ROM drives and 2MB of main RAM. So it shouldn't be a hardware reason for the worse load times.

I know with SotN the loading hallways aren't even used to start preloading the next area like they are on the PS1, so that at least explains what's going on there, but it doesn't seem to be as obvious what's going on with Suikoden and Vandal Hearts. Yeah using the 4MB RAM cart to fix it is nice, but it seems like an unnecessary way to go about fixing it.
There may be many reasons for this. KCEN had no experience working with Saturn and therefore their ports were of poor quality. A large amount of uncompressed data is loaded from CD (as in Vandal Hearts for example), which increases the loading time of levels.
But if there is no other way to reduce data loading time (unless you rewrite the game engine), then using a memory expansion cartridge is the only way.
----------------------------------
I'm curious to learn more if you are willing to share. How are you finding these functions to hook? Are you using a debugger in an emulator or are you reverse engineering?
Of course, I use the debugger. I couldn't have done it without it. I found the procedure for reading files from disk and changed it so that it loads the files I need.
 

mrkotfw

Member
The ports themselves might just be fundamentally broken, as is the case with SS SoTN.

But it would be interesting to start a quick decompilation to see if there are any clues as to what they're doing.
 

paul_met

Member
It seems to me that the time to read data from CD increases significantly if the game frequently accesses CD (loads many different files). As a result , you have to access files that are scattered across different sectors of the disk many times. This is the situation with Konami games on the Sega Saturn.
 
It seems to me that the time to read data from CD increases significantly if the game frequently accesses CD (loads many different files). As a result , you have to access files that are scattered across different sectors of the disk many times. This is the situation with Konami games on the Sega Saturn.
You'd have that issue on PS1 as well, so I'm guessing KCEN didn't organize things on the disc in a way to reduce load times like the PS1 teams did.
 
Top