269 lines
6.5 KiB
HTML
269 lines
6.5 KiB
HTML
{% extends "sega.html" %}
|
|
{% block title %}SEGA Partition Structure{% endblock %}
|
|
{% block body %}
|
|
<h1>SEGA Partition Structure</h1>
|
|
|
|
<p>Games on the Ring* series use MBR partitioned drives. The core partition structure is as follows:</p>
|
|
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<td>Partition</td>
|
|
<td>Size</td>
|
|
<td>Format</td>
|
|
<td>Content</td>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>1</td>
|
|
<td>1.5GiB</td>
|
|
<td>NTFS</td>
|
|
<td>Windows XP Embedded 2009</td>
|
|
</tr>
|
|
<tr>
|
|
<td>2</td>
|
|
<td>1.5GiB</td>
|
|
<td>NTFS</td>
|
|
<td>Windows recovery partition</td>
|
|
</tr>
|
|
<tr>
|
|
<td>3</td>
|
|
<td><i>remaining space</i></td>
|
|
<td>Extended Partition (LBA)</td>
|
|
<td>Game data</td>
|
|
</tr>
|
|
<tr>
|
|
<td>4</td>
|
|
<td></td>
|
|
<td></td>
|
|
<td></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<p>Extended partitions are structed by a linked list of partition headers at the beginning of each partition. These
|
|
headers reserve 3F<sub>h</sub> blocks for their information, however only use a single block at the start of this
|
|
for actual data. SEGA make use of the remaining blocks in the first extended partition header for SEGA boot records.
|
|
</p>
|
|
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<td>Partition offset (blocks)</td>
|
|
<td>Content</td>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>0</td>
|
|
<td>Extended partition header</td>
|
|
</tr>
|
|
<tr>
|
|
<td>1</td>
|
|
<td>SEGA Partition Description</td>
|
|
</tr>
|
|
<tr>
|
|
<td>2</td>
|
|
<td>SEGA Boot Record (1)</td>
|
|
</tr>
|
|
<tr>
|
|
<td>3</td>
|
|
<td>SEGA Boot Record (2)</td>
|
|
</tr>
|
|
<tr>
|
|
<td>4-63</td>
|
|
<td>Additional data storage</td>
|
|
</tr>
|
|
<tr>
|
|
<td>64-...</td>
|
|
<td>Actual partition data</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<p>Two identical copies of the SEGA Boot Record are present. This is for redundancy; if either is corrupted, an attempt
|
|
will be made to restore it from the other copy.</p>
|
|
|
|
<h2>SEGA Partition Description</h2>
|
|
|
|
<p>The SEGA Partition Description (SPD) largely echos the structure laid out by the extended partition headers, however
|
|
is the table SEGA loaders preferentially read. It takes up all 512 bytes of the block; it's structure is as follows:
|
|
</p>
|
|
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<td></td>
|
|
<td>0</td>
|
|
<td>1</td>
|
|
<td>2</td>
|
|
<td>3</td>
|
|
<td>4</td>
|
|
<td>5</td>
|
|
<td>6</td>
|
|
<td>7</td>
|
|
<td>8</td>
|
|
<td>9</td>
|
|
<td>A</td>
|
|
<td>B</td>
|
|
<td>C</td>
|
|
<td>D</td>
|
|
<td>E</td>
|
|
<td>F</td>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>00<sub>h</sub></td>
|
|
<td colspan="4">CRC32</td>
|
|
<td>Ver</td>
|
|
<td colspan="11"></td>
|
|
</tr>
|
|
<tr>
|
|
<td>10<sub>h</sub></td>
|
|
<td>Slot content</td>
|
|
<td>?</td>
|
|
<td colspan="2">Block size</td>
|
|
<td colspan="4">Block count</td>
|
|
<td colspan="8"></td>
|
|
</tr>
|
|
<tr>
|
|
<td>20<sub>h</sub></td>
|
|
<td>Slot content</td>
|
|
<td>?</td>
|
|
<td colspan="2">Block size</td>
|
|
<td colspan="4">Block count</td>
|
|
<td colspan="8"></td>
|
|
</tr>
|
|
<tr>
|
|
<td>30<sub>h</sub></td>
|
|
<td>Slot content</td>
|
|
<td>?</td>
|
|
<td colspan="2">Block size</td>
|
|
<td colspan="4">Block count</td>
|
|
<td colspan="8"></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="17">...</td>
|
|
</tr>
|
|
<tr>
|
|
<td>F0<sub>h</sub></td>
|
|
<td>Slot content</td>
|
|
<td>?</td>
|
|
<td colspan="2">Block size</td>
|
|
<td colspan="4">Block count</td>
|
|
<td colspan="8"></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<p>The slot content types are:</p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<td>Value</td>
|
|
<td>Meaning</td>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>10<sub>h</sub></td>
|
|
<td>original0</td>
|
|
</tr>
|
|
<tr>
|
|
<td>11<sub>h</sub></td>
|
|
<td>original1</td>
|
|
</tr>
|
|
<tr>
|
|
<td>20<sub>h</sub></td>
|
|
<td>patch0</td>
|
|
</tr>
|
|
<tr>
|
|
<td>21<sub>h</sub></td>
|
|
<td>patch1</td>
|
|
</tr>
|
|
<tr>
|
|
<td>30<sub>h</sub></td>
|
|
<td>os</td>
|
|
</tr>
|
|
<tr>
|
|
<td>40<sub>h</sub></td>
|
|
<td>app_data</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
<h2>SEGA Boot Record</h2>
|
|
|
|
<p>The SEGA Boot Record (SBR) contains detailed information about the content of each slot.</p>
|
|
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<td></td>
|
|
<td>0</td>
|
|
<td>1</td>
|
|
<td>2</td>
|
|
<td>3</td>
|
|
<td>4</td>
|
|
<td>5</td>
|
|
<td>6</td>
|
|
<td>7</td>
|
|
<td>8</td>
|
|
<td>9</td>
|
|
<td>A</td>
|
|
<td>B</td>
|
|
<td>C</td>
|
|
<td>D</td>
|
|
<td>E</td>
|
|
<td>F</td>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>00<sub>h</sub></td>
|
|
<td colspan="4">CRC32</td>
|
|
<td>Ver</td>
|
|
<td colspan="11"></td>
|
|
</tr>
|
|
<tr>
|
|
<td>10<sub>h</sub></td>
|
|
<td colspan="16"></td>
|
|
</tr>
|
|
<tr>
|
|
<td>20<sub>h</sub></td>
|
|
<td>Bootslot</td>
|
|
<td colspan="2"></td>
|
|
<td colspan="5">5x slot status</td>
|
|
<td colspan="8"></td>
|
|
</tr>
|
|
<tr>
|
|
<td>30<sub>h</sub></td>
|
|
<td rowspan="3" colspan="16"></td>
|
|
</tr>
|
|
<tr>
|
|
<td>...</td>
|
|
</tr>
|
|
<tr>
|
|
<td>A0<sub>h</sub></td>
|
|
</tr>
|
|
<tr>
|
|
<td>B0<sub>h</sub></td>
|
|
</tr>
|
|
<tr>
|
|
<td>C0<sub>h</sub></td>
|
|
</tr>
|
|
<tr>
|
|
<td>D0<sub>h</sub></td>
|
|
</tr>
|
|
<tr>
|
|
<td>E0<sub>h</sub></td>
|
|
</tr>
|
|
<tr>
|
|
<td>F0<sub>h</sub></td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
|
|
{% endblock %} |