Panic Restaurant/Tutorials: Difference between revisions

From Data Crystal
Jump to navigation Jump to search
No edit summary
m (Xkeeper moved page Panic Restaurant:Tutorials to Panic Restaurant/Tutorials: normalize subpages and titles)
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
=Input Explanation=
{{tutorials|game=Panic Restaurant}}
The value is in binary [http://datacrystal.romhacking.net/wiki/Binary].
==Input Explanation==
The value is in [[binary]].


{| 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%"
{| 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%"
Line 25: Line 26:
'''Example:''' Holding Right, B, and A will give 11000001 (or 0xC1).
'''Example:''' Holding Right, B, and A will give 11000001 (or 0xC1).


=PPU Type Explanation=
==PPU Type Explanation==
The value is in binary.
The value is in binary.


Line 49: Line 50:
|}
|}


'''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.
'''Example:''' 011 01 010 (01101010, or 6A 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==
===PPU Color Overlay List===


{| 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%"
{| 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%"
Line 73: 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 Special Events) 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}}

Latest revision as of 02:42, 24 January 2024

Chip tiny.png 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 (01101010, or 6A 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 Special Events) 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.