Actions

SCHG

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 layout==
+
 
The object layout of an *.MMD starts at 7320. The object positioning of a object is formatted as follows:
+
== 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 layout==
+
== 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
Object Layout
Level Layout
Palettes
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:

SCD510LL.png


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)


Sonic Community Hacking Guide
General
SonED2 Manual | Subroutine Equivalency List
Game-Specific
Sonic the Hedgehog (16-bit) | Sonic the Hedgehog (8-bit) | Sonic CD (prototype 510) | Sonic CD | Sonic CD (PC) | Sonic CD (2011) | Sonic 2 (Simon Wai prototype) | Sonic 2 (16-bit) | Sonic 2 (Master System) | Sonic 3 | Sonic 3 & Knuckles | Chaotix | Sonic Jam | Sonic Jam 6 | Sonic Adventure | Sonic Adventure DX: Director's Cut | Sonic Adventure DX: PC | Sonic Adventure (2010) | Sonic Adventure 2 | Sonic Adventure 2: Battle | Sonic Adventure 2 (PC) | Sonic Heroes | Sonic Riders | Sonic the Hedgehog (2006) | Sonic & Sega All-Stars Racing | Sonic Unleashed (Xbox 360/PS3) | Sonic Colours | Sonic Generations | Sonic Forces
Technical information
Sonic Eraser | Sonic 2 (Nick Arcade prototype) | Sonic CD (prototype; 1992-12-04) | Dr. Robotnik's Mean Bean Machine | Sonic Triple Trouble | Tails Adventures | Sonic Crackers | Sonic 3D: Flickies' Island | Sonic & Knuckles Collection | Sonic R | Sonic Shuffle | Sonic Advance | Sonic Advance 3 | Sonic Battle | Shadow the Hedgehog | Sonic Rush | Sonic Classic Collection | Sonic Free Riders | Sonic Lost World
Legacy Guides
The Nemesis Hacking Guides The Esrael Hacking Guides
ROM: Sonic 1 | Sonic 2 | Sonic 2 Beta | Sonic 3

Savestate: Sonic 1 | Sonic 2 Beta/Final | Sonic 3

Sonic 1 (English / Portuguese) | Sonic 2 Beta (English / Portuguese) | Sonic 2 and Knuckles (English / Portuguese)
Move to Sega Retro
Number Systems (or scrap) | Assembly Hacking Guide | 68000 Instruction Set | 68000 ASM-to-Hex Code Reference | SMPS Music Hacking Guide | Mega Drive technical information