Difference between revisions of "Rom/Bank 00"

From TLoZ: ALTTP Hacking Resources
Jump to: navigation, search
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
{{subpage|ROM}}
 
{{subpage|ROM}}
  
* {{$|0000}} to {{$|0489}} = Code
+
* {{address|0x|0000|0489|489}} = Code
* {{$|048A}} to {{$|0493}}, size = Ah, 1 word each.
+
* {{address|0x|048A|0493|00A}} = 1 word each.
 
** Offsets for reading from SRAM. Based on an index stored at {{$|70:1FFE}}, it will load the value {{$|0000}}, {{$|0500}}, {{$|0A00}}, or (possibly) {{$|0F00}}. The last value seems sketchy because that is an offset for the mirror of the first save slot.
 
** Offsets for reading from SRAM. Based on an index stored at {{$|70:1FFE}}, it will load the value {{$|0000}}, {{$|0500}}, {{$|0A00}}, or (possibly) {{$|0F00}}. The last value seems sketchy because that is an offset for the mirror of the first save slot.
---------------------------------------------------------------------------------------------------------------------
 
  
 +
{{note|DMA offsets for Bank {{$|7E}} (usage undetermined as of yet. Probably pointers to font tiles)}}
  
 
+
* {{address|0x|0494|05FB|167}} = 1 word each.
 
+
* {{address|0x|0494|049B|---}} = Used in DMA transfers as local addresses in Bank {{$|7E}}. See {{$|0AD8}} in the RAM addresses.
DMA offsets for Bank {{$|7E}} (usage undetermined as of yet. Probably pointers to font tiles):
+
* {{address|0x|049C|04AB|---}} = Used in DMA transfers as local addresses in Bank {{$|7E}}. See {{$|0AC0}} and {{$|0AC2}} in the RAM addresses.
---------------------------------------------------------------------------------------------------------------------
+
* {{address|0x|04AC|04B1|---}} = Used in DMA transfers as local addresses in Bank {{$|7E}}. See {{$|0AC4}} and {{$|0AC6}} in the RAM addresses.
* {{$|494}} to {{$|5FB}}, size = 168h, 1 word each.
+
* {{address|0x|04B2|05B1|---}} = Used in DMA transfers as local addresses in Bank {{$|7E}}. See {{$|0AC8}} in the RAM addresses.
* {{$|494}} to {{$|49B}}: Used in DMA transfers as local addresses in Bank {{$|7E}}. See {{$|0AD8}} in the RAM addresses.
+
* {{address|0x|05B2|05D1|---}} = Used in DMA transfers as local addresses in Bank {{$|7E}}. See {{$|0ACA}} in the RAM addresses.
* {{$|49C}} to {{$|4AB}}: Used in DMA transfers as local addresses in Bank {{$|7E}}. See {{$|0AC0}} and {{$|0AC2}} in the RAM addresses.
+
* {{address|0x|05D2|05DD|---}} = Stored to {{$|7EC013}}. The value stored is indexed by {{$|7EC015}}.
* {{$|4AC}} to {{$|4B1}}: Used in DMA transfers as local addresses in Bank {{$|7E}}. See {{$|0AC4}} and {{$|0AC6}} in the RAM addresses.
+
* {{address|0x|05DE|05FB|---}} = Used in DMA transfers as local addresses in Bank {{$|7E}}. See {{$|0AE0}} and {{$|0AE2}} in the RAM addresses.
* {{$|4B2}} to {{$|5B1}}: Used in DMA transfers as local addresses in Bank {{$|7E}}. See {{$|0AC8}} in the RAM addresses.
+
* {{address|0x|05FC|0E4B|---}} = Code
* {{$|5B2}} to {{$|5D1}}: Used in DMA transfers as local addresses in Bank {{$|7E}}. See {{$|0ACA}} in the RAM addresses.
+
* {{address|0x|0E4C|0E53|008}} =  
* {{$|5D2}} to {{$|5DD}}: Stored to {{$|7EC013}}. The value stored is indexed by {{$|7EC015}}.
+
* {{address|0x|0E54|110E|---}} = Code
* {{$|5DE}} to {{$|5FB}}: Used in DMA transfers as local addresses in Bank {{$|7E}}. See {{$|0AE0}} and {{$|0AE2}} in the RAM addresses.
+
* {{address|0x|110F|113E|02F}} =  
* {{$|5FC}} to {{$|E4B}} - Code:
+
* {{address|0x|137B|1395|01B}} =  
 
+
* {{address|0x|1396|15F3|25D}} = 1 word each. Pointers to ROM Addresses used in DMA transfers. While these are local addresses, the DMA transfers generally use Bank {{$|10}}. See {{$|0ACC}} and {{$|0ACE}} in the RAM addresses
-------------------------
+
* {{address|0x|15F4|1851|024}} = Pointers to ROM Addresses used in DMA transfers. While these are local addresses. The DMA transfers generally use Bank {{$|10}}. See {{$|0AD0}} and {{$|0AD2}} in the RAM addresses
 
+
* {{address|0x|1852|1887|345}} = 1 word each. Pointers to ROM Addresses used in DMA transfers. While these are local addresses, the DMA transfers generally use Bank {{$|10}}. See {{$|0AD4}} and {{$|0AD6}} in the RAM addresses
* {{$|E4C}} to {{$|E53}}, size = 9h
+
* {{address|0x|1888|18AA|022}} = 1 byte each. Upper byte of a series of VRAM Target addresses, that are used depending on the situation. Table is indexed by {{$|7E0116}}
** ????
+
* {{address|0x|18AB|18BF|---}} NULL
* {{$|E54}} to {{$|110E Code:
+
* {{address|0x|18C0|18DF|---}} =
 
+
* {{address|0x|1B52|????|---}} =
-------------------------
+
* {{address|0x|47C7|48D7|110}} = Dictionary for monologues (no delimiter)
 
+
* {{address|0x|4FF3|528F|29B}} = Indexed (long) table to compressed graphics packets. Each of these packets is treated differently: i.e. {{$|0A}} = Dungeon sprite
* {{$|110F}} to {{$|113E}}, size = 30h
+
* {{address|0x|5B57|6072|---}} = ???
** ????
+
* {{address|0x|6073|----|001}} = graphics data? Appears to come in {{hex|8}} byte chunks.
* {{$|137B}} to {{$|1395}} size = 1Ch
+
* {{address|0x|7C9C|----|001}} = ???
** ????
 
* {{$|1396}} to {{$|15F3}}, size = 25Eh, 1 word each.
 
Pointers to ROM Addresses used in DMA transfers. While these are local addresses,
 
The DMA transfers generally use Bank {{$|10}}. See {{$|0ACC}} and {{$|0ACE}} in the RAM addresses
 
* {{$|15F4}} to {{$|1851}}, size = 25Eh, 1 word each.
 
Pointers to ROM Addresses used in DMA transfers. While these are local addresses,
 
The DMA transfers generally use Bank {{$|10}}. See {{$|0AD0}} and {{$|0AD2}} in the RAM addresses
 
* {{$|1852}} to {{$|1887}}, size = 36h, 1 word each.
 
Pointers to ROM Addresses used in DMA transfers. While these are local addresses,
 
The DMA transfers generally use Bank {{$|10}}. See {{$|0AD4}} and {{$|0AD6}} in the RAM addresses
 
* {{$|1888}} to {{$|18AA}}, size = 23h, 1 byte each.
 
Upper byte of a series of VRAM Target addresses, that are used depending on the situation.
 
Table is indexed by {{$|7E0116}}
 
* {{$|18AB}} to {{$|18BF}} NULL
 
* {{$|18C0}} to {{$|18DF}}
 
* {{$|1B52}} to {{$|????}}
 
* {{$|4FF3}} to {{$|528F}}, size = 29Dh - indexed (long) table to compressed graphics packets
 
Each of these packets is treated differently: i.e. {{$|0A}} = Dungeon sprite
 
* {{$|5B57}} to {{$|????}}
 
** ?????
 
* {{$|6073}} = graphics data? Appears to come in 8 byte chunks.
 
* {{$|7C9C}} =
 
  
 
{{toc}}
 
{{toc}}

Latest revision as of 03:11, 23 December 2016

This is a subpage of ROM
  • 0x0000 to 0x0489 (489) = Code
  • 0x048A to 0x0493 (00A) = 1 word each.
    • Offsets for reading from SRAM. Based on an index stored at $70:1FFE, it will load the value $0000, $0500, $0A00, or (possibly) $0F00. The last value seems sketchy because that is an offset for the mirror of the first save slot.


  • 0x0494 to 0x05FB (167) = 1 word each.
  • 0x0494 to 0x049B (---) = Used in DMA transfers as local addresses in Bank $7E. See $0AD8 in the RAM addresses.
  • 0x049C to 0x04AB (---) = Used in DMA transfers as local addresses in Bank $7E. See $0AC0 and $0AC2 in the RAM addresses.
  • 0x04AC to 0x04B1 (---) = Used in DMA transfers as local addresses in Bank $7E. See $0AC4 and $0AC6 in the RAM addresses.
  • 0x04B2 to 0x05B1 (---) = Used in DMA transfers as local addresses in Bank $7E. See $0AC8 in the RAM addresses.
  • 0x05B2 to 0x05D1 (---) = Used in DMA transfers as local addresses in Bank $7E. See $0ACA in the RAM addresses.
  • 0x05D2 to 0x05DD (---) = Stored to $7EC013. The value stored is indexed by $7EC015.
  • 0x05DE to 0x05FB (---) = Used in DMA transfers as local addresses in Bank $7E. See $0AE0 and $0AE2 in the RAM addresses.
  • 0x05FC to 0x0E4B (---) = Code
  • 0x0E4C to 0x0E53 (008) =
  • 0x0E54 to 0x110E (---) = Code
  • 0x110F to 0x113E (02F) =
  • 0x137B to 0x1395 (01B) =
  • 0x1396 to 0x15F3 (25D) = 1 word each. Pointers to ROM Addresses used in DMA transfers. While these are local addresses, the DMA transfers generally use Bank $10. See $0ACC and $0ACE in the RAM addresses
  • 0x15F4 to 0x1851 (024) = Pointers to ROM Addresses used in DMA transfers. While these are local addresses. The DMA transfers generally use Bank $10. See $0AD0 and $0AD2 in the RAM addresses
  • 0x1852 to 0x1887 (345) = 1 word each. Pointers to ROM Addresses used in DMA transfers. While these are local addresses, the DMA transfers generally use Bank $10. See $0AD4 and $0AD6 in the RAM addresses
  • 0x1888 to 0x18AA (022) = 1 byte each. Upper byte of a series of VRAM Target addresses, that are used depending on the situation. Table is indexed by $7E0116
  • 0x18AB to 0x18BF (---) = NULL
  • 0x18C0 to 0x18DF (---) =
  • 0x1B52 to 0x???? (---) =
  • 0x47C7 to 0x48D7 (110) = Dictionary for monologues (no delimiter)
  • 0x4FF3 to 0x528F (29B) = Indexed (long) table to compressed graphics packets. Each of these packets is treated differently: i.e. $0A = Dungeon sprite
  • 0x5B57 to 0x6072 (---) = ???
  • 0x6073 to 0x---- (001) = graphics data? Appears to come in 8 byte chunks.
  • 0x7C9C to 0x---- (001) = ???

Navigate

Table of Contents
SpritesDungeonsOverworldUnderworldSRAM MapRAM MapROM MapMusicMonologueCreditsDumpsMiscellaneousTo-Do/Suggestions