If you are still using the old URL (datacrystal.romhacking.net), please update your bookmarks! The old URL may stop working soon.
The current URL is datacrystal.tcrf.net.
The current URL is datacrystal.tcrf.net.
Panic Restaurant/Tutorials: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
(Added tutorial for reading the ROM object batches.) |
||
Line 74: | Line 74: | ||
|111 || style="background:#4C4C4C;color:#FFFFFF" | '''4C4C4C''' || style="background:#818181" | '''818181''' || style="background:#BFBFBF" | '''BFBFBF''' | |111 || style="background:#4C4C4C;color:#FFFFFF" | '''4C4C4C''' || style="background:#818181" | '''818181''' || style="background:#BFBFBF" | '''BFBFBF''' | ||
|} | |} | ||
==Reading the ROM's Batches of Objects (0x01401C/583, 0x0145CC/853)== | |||
Each object is 4 bytes long. | |||
* 1st byte is the X position. | |||
* 2nd byte is the Y position. | |||
* 3rd byte is the [[Panic_Restaurant:Notes#Object_Type_List|object's type]]. | |||
* 4th byte is miscellaneous, depending on the object's type (usually used for defining which way it's facing). | |||
For how X/Y are read: | |||
{| border="1" align="center" cellpadding="4" cellspacing="0" style="margin: 0 0 1em 1em; background: #f7f8ff; border: 1px #8888cc solid; border-collapse: collapse; font-size: 95%" | |||
|- style=background:#ccccff | |||
!'''ROM's Value''' || '''RAM's X/Y 2''' || '''RAM's X/Y 1''' | |||
|- | |||
| 0xAB || 0x0A || 0xB0 | |||
|} | |||
Batches are split into stages; that is, the segments can only be used in specific stages. The second batch is split into checkpoints (from entering doors or bonus minigames) as well. | |||
{| border="1" align="center" cellpadding="4" cellspacing="0" style="margin: 0 0 1em 1em; background: #f7f8ff; border: 1px #8888cc solid; border-collapse: collapse; font-size: 95%" | |||
|- style=background:#ccccff | |||
!'''ROM''' || '''Stage''' || '''Checkpoint''' | |||
|- | |||
| 0x01401C/83 || 1 || Any | |||
|- | |||
| 0x014084/14F || 2 || Any | |||
|- | |||
| 0x014150/207 || 3 || Any | |||
|- | |||
| 0x014208/317 || 4 || Any | |||
|- | |||
| 0x014318/41F || 5 || Any | |||
|- | |||
| 0x014420/583 || 6 || Any | |||
|- | |||
| 0x0145CC/D7 || 1 || 0 | |||
|- | |||
| 0x0145D8/E3 || || 1 | |||
|- | |||
| 0x0145E4/F3 || || 2 | |||
|- | |||
| 0x0145F4/607 || 2 || 0 | |||
|- | |||
| 0x014608/2F || || 1 | |||
|- | |||
| 0x014630/47 || || 2 | |||
|- | |||
| 0x014648/53 || || 3 | |||
|- | |||
| 0x01465/F || 3 || 0 | |||
|- | |||
| 0x014660/93 || || 1 | |||
|- | |||
| 0x014694/AB || || 2 | |||
|- | |||
| 0x0146AC/D7 || || 3 | |||
|- | |||
| 0x0146D8/E3 || || 4 | |||
|- | |||
| 0x0146E4/F3 || 4 || 0 | |||
|- | |||
| 0x0146F4/F || || 1 | |||
|- | |||
| 0x014700/17 || || 2 | |||
|- | |||
| 0x014718/27 || || 3 | |||
|- | |||
| 0x014728/33 || || 4 | |||
|- | |||
| 0x014734/47 || || 5 | |||
|- | |||
| 0x014748/6F || 5 || 0 | |||
|- | |||
| 0x014770/9B || || 1 | |||
|- | |||
| 0x01479C/A7 || || 2 | |||
|- | |||
| 0x0147A8/C3 || || 3 | |||
|- | |||
| 0x0147C4/CF || || 4 | |||
|- | |||
| 0x0147D0/E3 || 6 || 0 | |||
|- | |||
| 0x0147E4/F7 || || 1 | |||
|- | |||
| 0x0147F8/803 || || 2 | |||
|- | |||
| 0x014804/1B || || 3 | |||
|- | |||
| 0x01481C/2B || || 4 | |||
|- | |||
| 0x01482C/3F || || 5; Cutscene | |||
|- | |||
| 0x014840/53 || || 6 | |||
|} | |||
===Example Object=== | |||
* ROM: 0x01433C/F | |||
* Only in Stage 5, but can be used with any checkpoint. | |||
* 1st Byte: 0x32; X2 is 0x03, and X1 is 0x20. | |||
* 2nd Byte: 0x0C; Y2 is 0x00, and Y1 is 0xC0. | |||
* 3rd Byte: 0x09; object type is Pizza. | |||
* 4th Byte: 0x01; causes the object to face right. | |||
{{Internal Data|game=Panic Restaurant}} | {{Internal Data|game=Panic Restaurant}} |
Revision as of 01:28, 17 September 2016
The following article is a Tutorial for Panic Restaurant.
Input Explanation
The value is in binary.
Bit Location | Input |
---|---|
0000000x | Right |
000000x0 | Left |
00000x00 | Down |
0000x000 | Up |
000x0000 | Start |
00x00000 | Select |
0x000000 | B |
x0000000 | A |
Example: Holding Right, B, and A will give 11000001 (or 0xC1).
PPU Type Explanation
The value is in binary.
Bit Location | Function |
---|---|
0000000x | Disable Color Blend |
000000x0 | Extend BG to Left |
00000x00 | (Doesn't do anything) |
0000x000 | Render BG (Background) |
000x0000 | Render OBJ (Object) |
00x00000 | Red Color Overlay |
0x000000 | Green Color Overlay |
x0000000 | Blue Color Overlay |
Example: 011 01 010 (00101010, or 2A in hexadecimal) will add a yellow color overlay, rendering non-objects (such as the background and the HUD), as well extending the background to the left.
PPU Color Overlay List
Value | Color 1 | Color 2 | Color 3 |
---|---|---|---|
000 | 666666 | ADADAD | FFFFFF |
001 | 7E5D4B | D69E80 | FFE9BD |
010 | 506E59 | 89BB98 | CAFFE0 |
011 | 676342 | B0A970 | FFF9A6 |
100 | 5C6882 | 9CB1DC | E6FFFF |
101 | 685C63 | B09DA9 | FFE7F9 |
110 | 4B640A | 80AA11 | BCFB19 |
111 | 4C4C4C | 818181 | BFBFBF |
Reading the ROM's Batches of Objects (0x01401C/583, 0x0145CC/853)
Each object is 4 bytes long.
- 1st byte is the X position.
- 2nd byte is the Y position.
- 3rd byte is the object's type.
- 4th byte is miscellaneous, depending on the object's type (usually used for defining which way it's facing).
For how X/Y are read:
ROM's Value | RAM's X/Y 2 | RAM's X/Y 1 |
---|---|---|
0xAB | 0x0A | 0xB0 |
Batches are split into stages; that is, the segments can only be used in specific stages. The second batch is split into checkpoints (from entering doors or bonus minigames) as well.
ROM | Stage | Checkpoint |
---|---|---|
0x01401C/83 | 1 | Any |
0x014084/14F | 2 | Any |
0x014150/207 | 3 | Any |
0x014208/317 | 4 | Any |
0x014318/41F | 5 | Any |
0x014420/583 | 6 | Any |
0x0145CC/D7 | 1 | 0 |
0x0145D8/E3 | 1 | |
0x0145E4/F3 | 2 | |
0x0145F4/607 | 2 | 0 |
0x014608/2F | 1 | |
0x014630/47 | 2 | |
0x014648/53 | 3 | |
0x01465/F | 3 | 0 |
0x014660/93 | 1 | |
0x014694/AB | 2 | |
0x0146AC/D7 | 3 | |
0x0146D8/E3 | 4 | |
0x0146E4/F3 | 4 | 0 |
0x0146F4/F | 1 | |
0x014700/17 | 2 | |
0x014718/27 | 3 | |
0x014728/33 | 4 | |
0x014734/47 | 5 | |
0x014748/6F | 5 | 0 |
0x014770/9B | 1 | |
0x01479C/A7 | 2 | |
0x0147A8/C3 | 3 | |
0x0147C4/CF | 4 | |
0x0147D0/E3 | 6 | 0 |
0x0147E4/F7 | 1 | |
0x0147F8/803 | 2 | |
0x014804/1B | 3 | |
0x01481C/2B | 4 | |
0x01482C/3F | 5; Cutscene | |
0x014840/53 | 6 |
Example Object
- ROM: 0x01433C/F
- Only in Stage 5, but can be used with any checkpoint.
- 1st Byte: 0x32; X2 is 0x03, and X1 is 0x20.
- 2nd Byte: 0x0C; Y2 is 0x00, and Y1 is 0xC0.
- 3rd Byte: 0x09; object type is Pizza.
- 4th Byte: 0x01; causes the object to face right.
Internal Data for Panic Restaurant
| |
---|---|