Sega Racing Classic 2 ROM
Posted: Sat Nov 11, 2023 9:27 pm
Anyone up for trying to get src2 up and running in Supermodel? Not sure if it's possible. My initial attempt results in an invalid PowerPC instruction being hit after pressing the test button at the "Network Board Not Present" screen.
The "Sega Racing Classic 2" ROM is named src2.par and is a PAR archive. The files within can be extracted using ParTool:
In order to load these, I've made a change to how ROM loading works in Supermodel, allowing byte layout to be specified directly (only for strides <= 8, I'll need to extend this for stride=32, for VROM). Make sure to use git version ccca9af once it appears on the download page.
Here's what I've got so far. Use this Games.xml file:
You should be able to take a dayto2pe ROM set and drop the SRC2 files in there. "crom" is laid out correctly: "32107654". This string is a series of byte indices for every 8-byte stride chunk. So, eprom.bin is loaded into the "crom" region, and then the layout is reshuffled so that byte 3 goes first, byte 2 next, byte 1 next, byte 0 next, etc.
I'm pretty sure this is the same for banked CROM.
The "Sega Racing Classic 2" ROM is named src2.par and is a PAR archive. The files within can be extracted using ParTool:
Code: Select all
eprom.bin
crom0x.bin
crom1x.bin
crom2x.bin
crom3x.bin
vrom.bin
Here's what I've got so far. Use this Games.xml file:
Code: Select all
<games>
<game name="src2">
<identity>
<title>Sega Racing Classic 2</title>
<version>Japan, Revision A</version>
<manufacturer>Sega</manufacturer>
<year>1998</year>
</identity>
<hardware>
<platform>Sega Model 3</platform>
<stepping>2.1</stepping>
<mpeg_board>DSB2</mpeg_board>
<drive_board>Wheel</drive_board>
<real3d_status_bit_set_percent_of_frame>24</real3d_status_bit_set_percent_of_frame>
<netboard>true</netboard>
<audio>QuadFrontRear</audio>
<inputs>
<input type="common" />
<input type="vehicle" />
<input type="shift4" />
<input type="vr4" />
</inputs>
<encryption_key>0x29250e16</encryption_key>
</hardware>
<roms>
<region name="crom" stride="8" chunk_size="8" byte_layout="32107654">
<file offset="0" name="eprom.bin" />
</region>
<!--
<region name="crom" stride="8" chunk_size="2" byte_swap="true">
<file offset="0" name="epr-21181.20" crc32="0xBF0007ED" />
<file offset="2" name="epr-21180.19" crc32="0x6E7B98ED" />
<file offset="4" name="epr-21179.18" crc32="0xD5FFB4D6" />
<file offset="6" name="epr-21178.17" crc32="0x230BF8AC" />
</region>
-->
<region name="banked_crom" stride="8" chunk_size="8" byte_layout="32107654">
<!-- CROM0 -->
<file offset="0x0000000" name="crom0x.bin" />
<!-- CROM1 -->
<file offset="0x2000000" name="crom1x.bin" />
<!-- CROM2 -->
<file offset="0x4000000" name="crom2x.bin" />
<!-- CROM3 -->
<file offset="0x6000000" name="crom3x.bin" />
<!-- CROM0 -->
<!--
<file offset="0x0000000" name="mpr-21185.4" crc32="0xB6D5D2A1" />
<file offset="0x0000002" name="mpr-21184.3" crc32="0x25616403" />
<file offset="0x0000004" name="mpr-21183.2" crc32="0xB4B44805" />
<file offset="0x0000006" name="mpr-21182.1" crc32="0xBA8E667F" />
-->
<!-- CROM1 -->
<!--
<file offset="0x2000000" name="mpr-21189.8" crc32="0xCB439C45" />
<file offset="0x2000002" name="mpr-21188.7" crc32="0x753FC2A5" />
<file offset="0x2000004" name="mpr-21187.6" crc32="0x3BD14EE6" />
<file offset="0x2000006" name="mpr-21186.5" crc32="0xA6128662" />
-->
<!-- CROM2 -->
<!--
<file offset="0x4000000" name="mpr-21193.12" crc32="0x4638FEF4" />
<file offset="0x4000002" name="mpr-21192.11" crc32="0x60CBB1FA" />
<file offset="0x4000004" name="mpr-21191.10" crc32="0xA2BDCFE0" />
<file offset="0x4000006" name="mpr-21190.9" crc32="0x984D56EB" />
-->
<!-- CROM3 -->
<!--
<file offset="0x6000000" name="mpr-21197.16" crc32="0x04015247" />
<file offset="0x6000002" name="mpr-21196.15" crc32="0x0AB46DB5" />
<file offset="0x6000004" name="mpr-21195.14" crc32="0x7F39761C" />
<file offset="0x6000006" name="mpr-21194.13" crc32="0x12C7A414" />
-->
</region>
<region name="vrom" stride="32" chunk_size="2">
<file offset="0" name="mpr-21198.26" crc32="0x42EC9ED4" />
<file offset="2" name="mpr-21199.27" crc32="0xFA28088C" />
<file offset="4" name="mpr-21200.28" crc32="0xFBB5AA1D" />
<file offset="6" name="mpr-21201.29" crc32="0xE6B13469" />
<file offset="8" name="mpr-21202.30" crc32="0xE6B4C2BE" />
<file offset="10" name="mpr-21203.31" crc32="0x32D08D33" />
<file offset="12" name="mpr-21204.32" crc32="0xEF18FE0A" />
<file offset="14" name="mpr-21205.33" crc32="0x4687BEA6" />
<file offset="16" name="mpr-21206.34" crc32="0xEC2D6884" />
<file offset="18" name="mpr-21207.35" crc32="0xEEAA510B" />
<file offset="20" name="mpr-21208.36" crc32="0xB222FEF0" />
<file offset="22" name="mpr-21209.37" crc32="0x170A28CE" />
<file offset="24" name="mpr-21210.38" crc32="0x460CEFE0" />
<file offset="26" name="mpr-21211.39" crc32="0xC84759CE" />
<file offset="28" name="mpr-21212.40" crc32="0x6F8A75E0" />
<file offset="30" name="mpr-21213.41" crc32="0xDE75BEC6" />
</region>
<region name="sound_program" stride="1" chunk_size="1" byte_swap="true">
<file offset="0" name="epr-21325.21" crc32="0x004AD6AD" />
</region>
<region name="sound_samples" stride="1" chunk_size="1" byte_swap="true">
<file offset="0x000000" name="mpr-21285.22" crc32="0x7CDCA6AC" />
<file offset="0x400000" name="mpr-21287.24" crc32="0x06B66F17" />
<file offset="0x800000" name="mpr-21286.23" crc32="0x749DFEF0" />
<file offset="0xC00000" name="mpr-21288.25" crc32="0x14BEE38E" />
</region>
<region name="mpeg_program" stride="1" chunk_size="1" byte_swap="true">
<file offset="0" name="epr-20886.ic2" crc32="0x65B05F98" />
</region>
<region name="mpeg_music" stride="1" chunk_size="1">
<file offset="0x000000" name="mpr-20887.ic18" crc32="0xA0757684" />
<file offset="0x400000" name="mpr-20888.ic20" crc32="0xB495FE65" />
<file offset="0x800000" name="mpr-20889.ic22" crc32="0x18EEC79E" />
<file offset="0xC00000" name="mpr-20890.ic24" crc32="0xAAC96FA2" />
</region>
<!--
<region name="driveboard_program" stride="1" chunk_size="1" required="false">
<file offset="0" name="epr-20985.bin" crc32="0xB139481D" />
</region>
-->
</roms>
</game>
</games>
I'm pretty sure this is the same for banked CROM.