Difference between revisions of "Sonic the Hedgehog CD (prototype 510)/MMD Breakdown"
From Sonic Retro
(→Palettes: Making table) |
(Merging file locations with main page) |
||
Line 1: | Line 1: | ||
__NOTOC__ | __NOTOC__ | ||
{{SCHG SCD 510}} | {{SCHG SCD 510}} | ||
− | ==Object | + | |
− | The object layout of an *.MMD starts at 7320. The object positioning of | + | == File Locations == |
+ | As said in the introduction, SCD consists of many files. You can either extract each file using WinRAR or use this part of the guide to extract them through hex. | ||
+ | |||
+ | This guide will tell you what offset each file is located at in the ISO. Note that this list is incomplete; only 71 of the 88 files in SCD 510 are listed here. | ||
+ | |||
+ | === Level *.MMD locations === | ||
+ | This list runs from $B800 to $188B7FF. | ||
+ | {| class="prettytable" | ||
+ | ! Level !! Start Location !! End Location | ||
+ | |- | ||
+ | | PPZ1 Present || $B800 || $4B7FF | ||
+ | |- | ||
+ | | PPZ1 Past || $4B800 || $8B7FF | ||
+ | |- | ||
+ | | PPZ1 Bad Future || $8B800 || $CB7FF | ||
+ | |- | ||
+ | | PPZ1 Good Future || $CB800 || $10B7FF | ||
+ | |- | ||
+ | | PPZ2 Present || $10B800 || $14B7FF | ||
+ | |- | ||
+ | | PPZ2 Past || $14B800 || $18B7FF | ||
+ | |- | ||
+ | | PPZ2 Bad Future || $18B800 || $1CB7FF | ||
+ | |- | ||
+ | | PPZ2 Good Future || $1CB800 || $20B7FF | ||
+ | |- | ||
+ | | PPZ3 Bad Future || $20B800 || $24B7FF | ||
+ | |- | ||
+ | | PPZ3 Good Future || $24B800 || $28B7FF | ||
+ | |- | ||
+ | | CCZ1 Present || $28B800 || $3CB7FF | ||
+ | |- | ||
+ | | CCZ1 Past || $3CB800 || $40B7FF | ||
+ | |- | ||
+ | | CCZ1 Bad Future || $40B800 || $44B7FF | ||
+ | |- | ||
+ | | CCZ1 Good Future || $44B800 || $48B7FF | ||
+ | |- | ||
+ | | CCZ2 Present || $48B800 || $4CB7FF | ||
+ | |- | ||
+ | | CCZ2 Past || $4CB800 || $50B7FF | ||
+ | |- | ||
+ | | CCZ2 Bad Future || $50B800 || $54B7FF | ||
+ | |- | ||
+ | | CCZ2 Good Future || $54B800 || $58B7FF | ||
+ | |- | ||
+ | | CCZ3 Bad Future || $58B800 || $5CB7FF | ||
+ | |- | ||
+ | | CCZ3 Good Future || $5CB800 || $60B7FF | ||
+ | |- | ||
+ | | TTZ1 Present || $60B800 || $64B7FF | ||
+ | |- | ||
+ | | TTZ1 Past || $64B800 || $68B7FF | ||
+ | |- | ||
+ | | TTZ1 Bad Future || $68B800 || $6CB7FF | ||
+ | |- | ||
+ | | TTZ1 Good Future || $6CB800 || $70B7FF | ||
+ | |- | ||
+ | | TTZ2 Present || $70B800 || $74B7FF | ||
+ | |- | ||
+ | | TTZ2 Past || $74B800 || $78B7FF | ||
+ | |- | ||
+ | | TTZ2 Bad Future || $78B800 || $7CB7FF | ||
+ | |- | ||
+ | | TTZ2 Good Future || $7CB800 || $80B7FF | ||
+ | |- | ||
+ | | TTZ3 Bad Future || $80B800 || $84B7FF | ||
+ | |- | ||
+ | | TTZ3 Good Future || $84B800 || $88B7FF | ||
+ | |- | ||
+ | | QQZ1 Present || $88B800 || $8CB7FF | ||
+ | |- | ||
+ | | QQZ1 Past || $8CB800 || $90B7FF | ||
+ | |- | ||
+ | | QQZ1 Bad Future || $60B800 || $94B7FF | ||
+ | |- | ||
+ | | QQZ1 Good Future || $94B800 || $98B7FF | ||
+ | |- | ||
+ | | QQZ2 Present || $98B800 || $9CB7FF | ||
+ | |- | ||
+ | | QQZ2 Past || $9CB800 || $100B7FF | ||
+ | |- | ||
+ | | QQZ2 Bad Future || $100B800 || $104B7FF | ||
+ | |- | ||
+ | | QQZ2 Good Future || $104B800 || $108B7FF | ||
+ | |- | ||
+ | | QQZ3 Bad Future || $108B800 || $10CB7FF | ||
+ | |- | ||
+ | | QQZ3 Good Future || $10CB800 || $110B7FF | ||
+ | |- | ||
+ | | WWZ1 Present || $110B800 || $114B7FF | ||
+ | |- | ||
+ | | WWZ1 Past || $114B800 || $118B7FF | ||
+ | |- | ||
+ | | WWZ1 Bad Future || $118B800 || $11CB7FF | ||
+ | |- | ||
+ | | WWZ1 Good Future || $11CB800 || $120B7FF | ||
+ | |- | ||
+ | | WWZ2 Present || $120B800 || $124B7FF | ||
+ | |- | ||
+ | | WWZ2 Past || $124B800 || $128B7FF | ||
+ | |- | ||
+ | | WWZ2 Bad Future || $128B800 || $12CB7FF | ||
+ | |- | ||
+ | | WWZ2 Good Future || $12CB800 || $130B7FF | ||
+ | |- | ||
+ | | WWZ3 Bad Future || $130B800 || $134B7FF | ||
+ | |- | ||
+ | | WWZ3 Good Future || $134B800 || $138B7FF | ||
+ | |- | ||
+ | | SSZ1 Present || $138B800 || $13CB7FF | ||
+ | |- | ||
+ | | SSZ1 Past || $13CB800 || $140B7FF | ||
+ | |- | ||
+ | | SSZ1 Bad Future || $140B800 || $144B7FF | ||
+ | |- | ||
+ | | SSZ1 Good Future || $144B800 || $148B7FF | ||
+ | |- | ||
+ | | SSZ2 Present || $148B800 || $14CB7FF | ||
+ | |- | ||
+ | | SSZ2 Past || $14CB800 || $150B7FF | ||
+ | |- | ||
+ | | SSZ2 Bad Future || $150B800 || $154B7FF | ||
+ | |- | ||
+ | | SSZ2 Good Future || $154B800 || $158B7FF | ||
+ | |- | ||
+ | | SSZ3 Bad Future || $158B800 || $15CB7FF | ||
+ | |- | ||
+ | | SSZ3 Good Future || $15CB800 || $160B7FF | ||
+ | |- | ||
+ | | MMZ1 Present || $160B800 || $164B7FF | ||
+ | |- | ||
+ | | MMZ1 Past || $164B800 || $168B7FF | ||
+ | |- | ||
+ | | MMZ1 Bad Future || $168B800 || $16CB7FF | ||
+ | |- | ||
+ | | MMZ1 Good Future || $16CB800 || $170B7FF | ||
+ | |- | ||
+ | | MMZ2 Present || $170B800 || $174B7FF | ||
+ | |- | ||
+ | | MMZ2 Past || $174B800 || $178B7FF | ||
+ | |- | ||
+ | | MMZ2 Bad Future || $178B800 || $17CB7FF | ||
+ | |- | ||
+ | | MMZ2 Good Future || $17CB800 || $180B7FF | ||
+ | |- | ||
+ | | MMZ3 Bad Future || $180B800 || $184B7FF | ||
+ | |- | ||
+ | | MMZ3 Good Future || $184B800 || $188B7FF | ||
+ | |} | ||
+ | |||
+ | === *.BIN locations === | ||
+ | {| class="prettytable" | ||
+ | ! Name !! Start Location !! End Location | ||
+ | |- | ||
+ | | ATTACK.BIN || $1203000 || $1203A77 | ||
+ | |} | ||
+ | |||
+ | == Object Layout == | ||
+ | The object layout of an *.MMD starts at 7320. The object positioning of an object is formatted as follows: | ||
XXXX YYYY OOSS FFFF | XXXX YYYY OOSS FFFF | ||
Line 8: | Line 167: | ||
I think this is the same type of positioning as S1. XXXX is 2 bytes long, and is the X location of the object. YYYY is 2 bytes long as well, and is the Y location of the object. OO is a byte long, and is the primary object type. SS is also a byte long, and is the object's subtype. An object's subtype is a value that is used to determine what type of one object it is. For example, take the Orbinaut from LZ in S1. If you changed its subtype to a certain value, it would never fire its spikes like the Orbinaut in SLZ. | I think this is the same type of positioning as S1. XXXX is 2 bytes long, and is the X location of the object. YYYY is 2 bytes long as well, and is the Y location of the object. OO is a byte long, and is the primary object type. SS is also a byte long, and is the object's subtype. An object's subtype is a value that is used to determine what type of one object it is. For example, take the Orbinaut from LZ in S1. If you changed its subtype to a certain value, it would never fire its spikes like the Orbinaut in SLZ. | ||
− | ==Level | + | == Level Layout == |
The level layout of an *.MMD begins at 3AB76. It's basically an array of tile values. An array is just a huge collection of data, to put it simply. The values go left to right for one row, and then after that row is cleared go to the next row. Let's say I wanted to make the following level layout. | The level layout of an *.MMD begins at 3AB76. It's basically an array of tile values. An array is just a huge collection of data, to put it simply. The values go left to right for one row, and then after that row is cleared go to the next row. Let's say I wanted to make the following level layout. | ||
Line 24: | Line 183: | ||
This would appear in hex as 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 09 09 09 09 09 09 11 10. I hope that you understood this section. | This would appear in hex as 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 09 09 09 09 09 09 11 10. I hope that you understood this section. | ||
− | ==Palettes== | + | == Palettes == |
The palettes are in the same format as the Genesis; 0BGR. For example, 068A would be blue to 6 lightness, green to 8 lightness, and red to A lightness. Note that the colors can only be in increments of two. | The palettes are in the same format as the Genesis; 0BGR. For example, 068A would be blue to 6 lightness, green to 8 lightness, and red to A lightness. Note that the colors can only be in increments of two. | ||
Revision as of 05:06, 31 August 2008
SCHG: Sonic CD 510 Beta |
---|
Main Article |
File Locations |
File Locations |
Art Editing |
Compressed Art |
*.MMD Editing |
*.MMD Breakdown |
General Tweaking |
General Tweaking |
File Locations
As said in the introduction, SCD consists of many files. You can either extract each file using WinRAR or use this part of the guide to extract them through hex.
This guide will tell you what offset each file is located at in the ISO. Note that this list is incomplete; only 71 of the 88 files in SCD 510 are listed here.
Level *.MMD locations
This list runs from $B800 to $188B7FF.
Level | Start Location | End Location |
---|---|---|
PPZ1 Present | $B800 | $4B7FF |
PPZ1 Past | $4B800 | $8B7FF |
PPZ1 Bad Future | $8B800 | $CB7FF |
PPZ1 Good Future | $CB800 | $10B7FF |
PPZ2 Present | $10B800 | $14B7FF |
PPZ2 Past | $14B800 | $18B7FF |
PPZ2 Bad Future | $18B800 | $1CB7FF |
PPZ2 Good Future | $1CB800 | $20B7FF |
PPZ3 Bad Future | $20B800 | $24B7FF |
PPZ3 Good Future | $24B800 | $28B7FF |
CCZ1 Present | $28B800 | $3CB7FF |
CCZ1 Past | $3CB800 | $40B7FF |
CCZ1 Bad Future | $40B800 | $44B7FF |
CCZ1 Good Future | $44B800 | $48B7FF |
CCZ2 Present | $48B800 | $4CB7FF |
CCZ2 Past | $4CB800 | $50B7FF |
CCZ2 Bad Future | $50B800 | $54B7FF |
CCZ2 Good Future | $54B800 | $58B7FF |
CCZ3 Bad Future | $58B800 | $5CB7FF |
CCZ3 Good Future | $5CB800 | $60B7FF |
TTZ1 Present | $60B800 | $64B7FF |
TTZ1 Past | $64B800 | $68B7FF |
TTZ1 Bad Future | $68B800 | $6CB7FF |
TTZ1 Good Future | $6CB800 | $70B7FF |
TTZ2 Present | $70B800 | $74B7FF |
TTZ2 Past | $74B800 | $78B7FF |
TTZ2 Bad Future | $78B800 | $7CB7FF |
TTZ2 Good Future | $7CB800 | $80B7FF |
TTZ3 Bad Future | $80B800 | $84B7FF |
TTZ3 Good Future | $84B800 | $88B7FF |
QQZ1 Present | $88B800 | $8CB7FF |
QQZ1 Past | $8CB800 | $90B7FF |
QQZ1 Bad Future | $60B800 | $94B7FF |
QQZ1 Good Future | $94B800 | $98B7FF |
QQZ2 Present | $98B800 | $9CB7FF |
QQZ2 Past | $9CB800 | $100B7FF |
QQZ2 Bad Future | $100B800 | $104B7FF |
QQZ2 Good Future | $104B800 | $108B7FF |
QQZ3 Bad Future | $108B800 | $10CB7FF |
QQZ3 Good Future | $10CB800 | $110B7FF |
WWZ1 Present | $110B800 | $114B7FF |
WWZ1 Past | $114B800 | $118B7FF |
WWZ1 Bad Future | $118B800 | $11CB7FF |
WWZ1 Good Future | $11CB800 | $120B7FF |
WWZ2 Present | $120B800 | $124B7FF |
WWZ2 Past | $124B800 | $128B7FF |
WWZ2 Bad Future | $128B800 | $12CB7FF |
WWZ2 Good Future | $12CB800 | $130B7FF |
WWZ3 Bad Future | $130B800 | $134B7FF |
WWZ3 Good Future | $134B800 | $138B7FF |
SSZ1 Present | $138B800 | $13CB7FF |
SSZ1 Past | $13CB800 | $140B7FF |
SSZ1 Bad Future | $140B800 | $144B7FF |
SSZ1 Good Future | $144B800 | $148B7FF |
SSZ2 Present | $148B800 | $14CB7FF |
SSZ2 Past | $14CB800 | $150B7FF |
SSZ2 Bad Future | $150B800 | $154B7FF |
SSZ2 Good Future | $154B800 | $158B7FF |
SSZ3 Bad Future | $158B800 | $15CB7FF |
SSZ3 Good Future | $15CB800 | $160B7FF |
MMZ1 Present | $160B800 | $164B7FF |
MMZ1 Past | $164B800 | $168B7FF |
MMZ1 Bad Future | $168B800 | $16CB7FF |
MMZ1 Good Future | $16CB800 | $170B7FF |
MMZ2 Present | $170B800 | $174B7FF |
MMZ2 Past | $174B800 | $178B7FF |
MMZ2 Bad Future | $178B800 | $17CB7FF |
MMZ2 Good Future | $17CB800 | $180B7FF |
MMZ3 Bad Future | $180B800 | $184B7FF |
MMZ3 Good Future | $184B800 | $188B7FF |
*.BIN locations
Name | Start Location | End Location |
---|---|---|
ATTACK.BIN | $1203000 | $1203A77 |
Object Layout
The object layout of an *.MMD starts at 7320. The object positioning of an object is formatted as follows:
XXXX YYYY OOSS FFFF
I think this is the same type of positioning as S1. XXXX is 2 bytes long, and is the X location of the object. YYYY is 2 bytes long as well, and is the Y location of the object. OO is a byte long, and is the primary object type. SS is also a byte long, and is the object's subtype. An object's subtype is a value that is used to determine what type of one object it is. For example, take the Orbinaut from LZ in S1. If you changed its subtype to a certain value, it would never fire its spikes like the Orbinaut in SLZ.
Level Layout
The level layout of an *.MMD begins at 3AB76. It's basically an array of tile values. An array is just a huge collection of data, to put it simply. The values go left to right for one row, and then after that row is cleared go to the next row. Let's say I wanted to make the following level layout.
00 00 00 00
00 00 00 12
09 09 11 10
Pretend that the 09 is normal ground, 10 is deeper ground, 11 is the first part of a slope going up, and 12 is the second part of a slope going up. This would appear in a grid of tiles as:
This would appear in hex as 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 09 09 09 09 09 09 11 10. I hope that you understood this section.
Palettes
The palettes are in the same format as the Genesis; 0BGR. For example, 068A would be blue to 6 lightness, green to 8 lightness, and red to A lightness. Note that the colors can only be in increments of two.
So color 066C would be blue to 6 lightness, green to 6 lightness, and red to C lightness. This would make this color. Hopefully you understand this.
These are the palette locations in the *.MMDs:
Offset | Name |
---|---|
$5D0 | Sonic 1 Palette (line 1) |
$5F0 | Sonic 1 Palette (line 2) |
$610 | Sonic 1 Palette (line 3) |
$630 | Sonic 1 Palette (line 4) |
$650 | Sonic 1 level select Palette (line 1) |
$670 | Sonic 1 level select Palette (line 2) |
$690 | Sonic 1 level select Palette (line 3) |
$6B0 | Sonic 1 level select Palette (line 4) |
$6D0 | Sonic's Palette |
$6F0 | Zone Palette (line 1) |
$710 | Zone Palette (line 2) |
$730 | Zone Palette (line 3) |
$750 | Mirror of Zone Palette (line 1) |
$770 | Mirror of Zone Palette (line 2) |
$790 | Cycling Palette of Level |
$7B0 | Mirror |
$7D0 | Mirror |
$7F0 | Mirror |
$EDE4 | Amy's Palette (used to substitute zone palette line 1) |