Difference between revisions of "Miscellaneous:Menu screens"

From TLoZ: ALTTP Hacking Resources
Jump to: navigation, search
(Created page with "{{subpage|Miscellaneous}} == Original ROM == === Special pointers === <pre> Special pointers from 137D: =========================== 6D 1B BF A8 3C 56 9C 10 10 DD 02 E7 E2 E6...")
 
m
 
(11 intermediate revisions by the same user not shown)
Line 3: Line 3:
 
== Original ROM ==
 
== Original ROM ==
  
=== Special pointers ===
+
=== Special Pointers ===
 
<pre>
 
<pre>
 
Special pointers from 137D:
 
Special pointers from 137D:
Line 13: Line 13:
  
 
* {{hex|0C DD 6D -> 0x065D6D}}({{hex|225}}) = Title screen BG1
 
* {{hex|0C DD 6D -> 0x065D6D}}({{hex|225}}) = Title screen BG1
* {{hex|00 02 1B}} / nothing
+
* {{hex|00 02 1B}} = Unused
 
* {{hex|0C E7 BF -> 0x0667BF}}({{hex|4E9}}) = Naming screen BG1
 
* {{hex|0C E7 BF -> 0x0667BF}}({{hex|4E9}}) = Naming screen BG1
 
* {{hex|0C E2 A8 -> 0x0662A8}}({{hex|0E0}}) = Player select screen BG3 upper
 
* {{hex|0C E2 A8 -> 0x0662A8}}({{hex|0E0}}) = Player select screen BG3 upper
Line 20: Line 20:
 
* {{hex|0E DA 9C -> 0x075A9C}}({{hex|2A4}}) = Map Screen when you press the X button indoors
 
* {{hex|0E DA 9C -> 0x075A9C}}({{hex|2A4}}) = Map Screen when you press the X button indoors
  
=== Other ===
+
===Title Screen===
 
 
== Original ROM (before saved with HM) ==
 
  
 
* {{address|0x|65D6D||225}} (pointer {{hex|0C DD 6D}}, at {{address|0x|137D||3}}, pointer is global, each byte separate)
 
* {{address|0x|65D6D||225}} (pointer {{hex|0C DD 6D}}, at {{address|0x|137D||3}}, pointer is global, each byte separate)
Line 33: Line 31:
 
** Title screen BG2
 
** Title screen BG2
 
** Ends with {{hex|FF}}*
 
** Ends with {{hex|FF}}*
 +
 +
===Player Select Screen===
 +
 
* {{address|0x|661C8||E0}} (pointer {{hex|C8 E1}}, at {{address|0x|64E5F||2}} ({{hex|0C}} missing, pointer is local, bytes not separate)
 
* {{address|0x|661C8||E0}} (pointer {{hex|C8 E1}}, at {{address|0x|64E5F||2}} ({{hex|0C}} missing, pointer is local, bytes not separate)
 
** Player select screen BG1
 
** Player select screen BG1
Line 42: Line 43:
 
** Player select screen BG3 lower
 
** Player select screen BG3 lower
 
** Ends with {{hex|FF}}
 
** Ends with {{hex|FF}}
* {{address|0x|66456||E9}} (pointer {{hex|0C 54 E6}}, at {{address|0x|137D||3}}, pointer is global, each byte separate)
+
 
 +
===Erase Player Screen===
 +
 
 +
* {{address|0x|66456||E9}} (pointer {{hex|0C 56 E4}}, at {{address|0x|137D||3}}, pointer is global, each byte separate)
 
** Erase player screen BG3
 
** Erase player screen BG3
 
** Ends with {{hex|FF}}
 
** Ends with {{hex|FF}}
 
* {{address|0x|6653F||FD}} (pointer should be {{hex|3F E5}}, but it is -1= {{hex|3E E5}}, at {{address|0x|654C0||2}} ({{hex|0C}} missing, pointer is local, bytes not separate)
 
* {{address|0x|6653F||FD}} (pointer should be {{hex|3F E5}}, but it is -1= {{hex|3E E5}}, at {{address|0x|654C0||2}} ({{hex|0C}} missing, pointer is local, bytes not separate)
 
** Erase player screen BG1
 
** Erase player screen BG1
** ends with {{hex|FF}}
+
** Ends with {{hex|FF}}
 
* {{address|0x|6663C||51}} (pointer {{hex|0C E6 3C}}, at {{address|0x|137D||3}}, pointer is global, each byte separate)
 
* {{address|0x|6663C||51}} (pointer {{hex|0C E6 3C}}, at {{address|0x|137D||3}}, pointer is global, each byte separate)
** is "copy player screen" bg3, ends with {{hex|FF}}
+
** Copy player screen BG3
* {{address|0x|6668D||AD}} (pointer {{hex|8D E6}}, at {{0x|65148}} = 2 byte pointer ({{hex|0C}} missing, pointer is local, bytes not separate)
+
** Ends with {{hex|FF}}
 +
 
 +
===Copy Player===
 +
 
 +
* {{address|0x|6668D||AD}} (pointer {{hex|8D E6}}, at {{address|0x|65148||2}} ({{hex|0C}} missing, pointer is local, bytes not separate)
 
** copy player screen BG1
 
** copy player screen BG1
 
** ends with {{hex|FF}}
 
** ends with {{hex|FF}}
* {{address|0x|6673A||85}} (pointer {{hex|3A E7}}, at {{0x|65292}} = 2 byte pointer ({{hex|0C}} missing, pointer is local, bytes not separate)
+
* {{address|0x|6673A||85}} (pointer {{hex|3A E7}}, at {{address|0x|65292||2}} ({{hex|0C}} missing, pointer is local, bytes not separate)
 
** Sub copy player screen BG3
 
** Sub copy player screen BG3
 
** Ends with {{hex|FF}}
 
** Ends with {{hex|FF}}
 
** I.e. when you copy 1 player game file to other, a small quadrant appears.
 
** I.e. when you copy 1 player game file to other, a small quadrant appears.
 +
 +
===Naming Screen===
 +
 
* {{address|0x|667BF||4E9}} (pointer {{hex|0C E7 BF}}, at {{address|0x|137D||3}}, pointer is global, each byte separate)
 
* {{address|0x|667BF||4E9}} (pointer {{hex|0C E7 BF}}, at {{address|0x|137D||3}}, pointer is global, each byte separate)
** Naming screen bg1
+
** Naming screen BG1
 
** Ends with {{hex|FF}}
 
** Ends with {{hex|FF}}
 
* {{address|0x|66CA8||D2}} (no pointers)
 
* {{address|0x|66CA8||D2}} (no pointers)
 
** Naming screen BG3
 
** Naming screen BG3
 
** Ends with {{hex|FF}}
 
** Ends with {{hex|FF}}
 +
 +
===Nintendo Logo Screen===
 +
 
* {{address|0x|66D7A|66D79}}
 
* {{address|0x|66D7A|66D79}}
 
** Nintendo logo screen
 
** Nintendo logo screen
 +
 
All screens are thus from {{address|0x|65D6D|66D79|100D}}.
 
All screens are thus from {{address|0x|65D6D|66D79|100D}}.
  
{{source|Puzzledude}}
+
== Hyrule Magic ROM ==
 +
 
 +
<pre>
 +
Special pointers from 137D:
 +
===========================
 +
79 1B BF D4 6E 85 9C 10 10
 +
E1 02 E7 E5 E7 E6 DA 00 00
 +
0C 00 0C 0C 0C 0C 0E
 +
</pre>
 +
 
 +
* {{hex|0C E1 79 -> 0x066179}}({{hex|225}}) = Title screen BG1
 +
* {{hex|00 02 1B}} = Unused
 +
* {{hex|0C E7 BF -> 0x0667BF}}({{hex|4E9}}) = Naming screen BG1
 +
* {{hex|0C E5 D4 -> 0x0665D4}}({{hex|0B1}}) = Player select screen BG3 upper
 +
* {{hex|0C E7 6E -> 0x06676E}}({{hex|051}}) = Copy player screen BG3
 +
* {{hex|0C E6 85 -> 0x066685}}({{hex|0E9}}) = Erase player screen BG3
 +
* {{hex|0E DA 9C -> 0x075A9C}}({{hex|---}}) = Map screen when you press the X button indoors
 +
 
 +
=== Other stuff ===
 +
 
 +
It is the same thing, only HM moved the data around, all pointers remain on place. It moves the data around, mainly to group all the data for BG1 and all the data for BG3, allocating the title screen, while leaving the naming screen and map screen on place.
 +
 
 +
But the original game has it better: it focuses on the screen type and lists all backgrounds first, then moves onto the new screen in an exact order, until all screen are covered.
 +
 
 +
Note: The length of the screens can be shorter or longer.
 +
 
 +
{{source|1=[http://www.zeldix.net/t229-all-screens-title-naming-screen-etc Puzzledude]}}
 
{{toc}}
 
{{toc}}

Latest revision as of 19:22, 12 January 2017

This is a subpage of Miscellaneous

Original ROM

Special Pointers

Special pointers from 137D:
===========================
6D 1B BF A8 3C 56 9C 10 10
DD 02 E7 E2 E6 E4 DA 00 00
0C 00 0C 0C 0C 0C 0E
  • 0C DD 6D -> 0x065D6D(225) = Title screen BG1
  • 00 02 1B = Unused
  • 0C E7 BF -> 0x0667BF(4E9) = Naming screen BG1
  • 0C E2 A8 -> 0x0662A8(0E0) = Player select screen BG3 upper
  • 0C E6 3C -> 0x06663C(051) = Copy player screen BG3
  • 0C E4 56 -> 0x066456(0E9) = Erase player screen BG3
  • 0E DA 9C -> 0x075A9C(2A4) = Map Screen when you press the X button indoors

Title Screen

  • 0x65D6D (225) (pointer 0C DD 6D, at 0x137D (3), pointer is global, each byte separate)
    • Title screen BG1
    • Ends with FF
  • 0x65F92 (AE) (no pointers)
    • Title screen BG2
    • Ends with FF
  • 0x66040 (188) (no pointers)
    • Title screen BG2
    • Ends with FF*

Player Select Screen

  • 0x661C8 (E0) (pointer C8 E1, at 0x64E5F (2) (0C missing, pointer is local, bytes not separate)
    • Player select screen BG1
    • Does not end with FF, ends with 35, i.e. where the global pointer definition points= 0x662A8, so it ends with 0x662A7
  • 0x0662A8 (B1) (pointer 0C E2 A8, at 0x137D (3) pointer is global, each byte separate)
    • Player select screen BG3 upper
    • Ends with FF
  • 0x66359 (FD) (pointer should be 59 E3, but it is -1= 58 E3, at 0x64ED0 (2) (0C missing, pointer is local, bytes not separate)
    • Player select screen BG3 lower
    • Ends with FF

Erase Player Screen

  • 0x66456 (E9) (pointer 0C 56 E4, at 0x137D (3), pointer is global, each byte separate)
    • Erase player screen BG3
    • Ends with FF
  • 0x6653F (FD) (pointer should be 3F E5, but it is -1= 3E E5, at 0x654C0 (2) (0C missing, pointer is local, bytes not separate)
    • Erase player screen BG1
    • Ends with FF
  • 0x6663C (51) (pointer 0C E6 3C, at 0x137D (3), pointer is global, each byte separate)
    • Copy player screen BG3
    • Ends with FF

Copy Player

  • 0x6668D (AD) (pointer 8D E6, at 0x65148 (2) (0C missing, pointer is local, bytes not separate)
    • copy player screen BG1
    • ends with FF
  • 0x6673A (85) (pointer 3A E7, at 0x65292 (2) (0C missing, pointer is local, bytes not separate)
    • Sub copy player screen BG3
    • Ends with FF
    • I.e. when you copy 1 player game file to other, a small quadrant appears.

Naming Screen

  • 0x667BF (4E9) (pointer 0C E7 BF, at 0x137D (3), pointer is global, each byte separate)
    • Naming screen BG1
    • Ends with FF
  • 0x66CA8 (D2) (no pointers)
    • Naming screen BG3
    • Ends with FF

Nintendo Logo Screen

  • 0x66D7A to 0x66D79 (----)
    • Nintendo logo screen

All screens are thus from 0x65D6D to 0x66D79 (100D).

Hyrule Magic ROM

Special pointers from 137D:
===========================
79 1B BF D4 6E 85 9C 10 10
E1 02 E7 E5 E7 E6 DA 00 00
0C 00 0C 0C 0C 0C 0E
  • 0C E1 79 -> 0x066179(225) = Title screen BG1
  • 00 02 1B = Unused
  • 0C E7 BF -> 0x0667BF(4E9) = Naming screen BG1
  • 0C E5 D4 -> 0x0665D4(0B1) = Player select screen BG3 upper
  • 0C E7 6E -> 0x06676E(051) = Copy player screen BG3
  • 0C E6 85 -> 0x066685(0E9) = Erase player screen BG3
  • 0E DA 9C -> 0x075A9C(---) = Map screen when you press the X button indoors

Other stuff

It is the same thing, only HM moved the data around, all pointers remain on place. It moves the data around, mainly to group all the data for BG1 and all the data for BG3, allocating the title screen, while leaving the naming screen and map screen on place.

But the original game has it better: it focuses on the screen type and lists all backgrounds first, then moves onto the new screen in an exact order, until all screen are covered.

Note: The length of the screens can be shorter or longer.

(Source: Puzzledude)

Navigate

Table of Contents
SpritesDungeonsOverworldUnderworldSRAM MapRAM MapROM MapMusicMonologueCreditsDumpsMiscellaneousTo-Do/Suggestions