Difference between revisions of "Rom/Bank 00"

From TLoZ: ALTTP Hacking Resources
Jump to: navigation, search
Line 1: Line 1:
 
{{subpage|ROM}}
 
{{subpage|ROM}}
  
* {{0x|0000}} to {{0x|0489}} ({{hex|489}}) = Code
+
* {{address|0x|0000|0489|489}} = Code
* {{0x|048A}} to {{0x|0493}} ({{hex|00A}}) = 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)}}
 
{{note|DMA offsets for Bank {{$|7E}} (usage undetermined as of yet. Probably pointers to font tiles)}}
  
* {{0x|0494}} to {{0x|05FB}} ({{hex|167}}) = 1 word each.
+
* {{address|0x|0494|05FB|167}} = 1 word each.
* {{0x|0494}} to {{0x|049B}} ({{hex|###}}) = Used in DMA transfers as local addresses in Bank {{$|7E}}. See {{$|0AD8}} in the RAM addresses.
+
* {{address|0x|0494|049B|---}} = Used in DMA transfers as local addresses in Bank {{$|7E}}. See {{$|0AD8}} in the RAM addresses.
* {{0x|049C}} to {{0x|04AB}} ({{hex|###}}) = Used in DMA transfers as local addresses in Bank {{$|7E}}. See {{$|0AC0}} and {{$|0AC2}} in the RAM addresses.
+
* {{address|0x|049C|04AB|---}} = Used in DMA transfers as local addresses in Bank {{$|7E}}. See {{$|0AC0}} and {{$|0AC2}} in the RAM addresses.
* {{0x|04AC}} to {{0x|04B1}} ({{hex|###}}) = Used in DMA transfers as local addresses in Bank {{$|7E}}. See {{$|0AC4}} and {{$|0AC6}} 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.
* {{0x|04B2}} to {{0x|05B1}} ({{hex|###}}) = Used in DMA transfers as local addresses in Bank {{$|7E}}. See {{$|0AC8}} in the RAM addresses.
+
* {{address|0x|04B2|05B1|---}} = Used in DMA transfers as local addresses in Bank {{$|7E}}. See {{$|0AC8}} in the RAM addresses.
* {{0x|05B2}} to {{0x|05D1}} ({{hex|###}}) = Used in DMA transfers as local addresses in Bank {{$|7E}}. See {{$|0ACA}} in the RAM addresses.
+
* {{address|0x|05B2|05D1|---}} = Used in DMA transfers as local addresses in Bank {{$|7E}}. See {{$|0ACA}} in the RAM addresses.
* {{0x|05D2}} to {{0x|05DD}} ({{hex|###}}) = Stored to {{$|7EC013}}. The value stored is indexed by {{$|7EC015}}.
+
* {{address|0x|05D2|05DD|---}} = Stored to {{$|7EC013}}. The value stored is indexed by {{$|7EC015}}.
* {{0x|05DE}} to {{0x|05FB}} ({{hex|###}}) = Used in DMA transfers as local addresses in Bank {{$|7E}}. See {{$|0AE0}} and {{$|0AE2}} 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.
* {{0x|05FC}} to {{0x|0E4B}} ({{hex|###}}) = Code
+
* {{address|0x|05FC|0E4B|---}} = Code
* {{0x|0E4C}} to {{0x|0E53}} ({{hex|008}}) =  
+
* {{address|0x|0E4C|0E53|008}} =  
* {{0x|0E54}} to {{0x|110E}} ({{hex|###}}) = Code
+
* {{address|0x|0E54|110E|---}} = Code
* {{0x|110F}} to {{0x|113E}} ({{hex|02F}}) =  
+
* {{address|0x|110F|113E|02F}} =  
* {{0x|137B}} to {{0x|1395}} ({{hex|01B}}) =  
+
* {{address|0x|137B|1395|01B}} =  
* {{0x|1396}} to {{0x|15F3}} ({{hex|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|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
* {{0x|15F4}} to {{0x|1851}} ({{hex|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|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
* {{0x|1852}} to {{0x|1887}} ({{hex|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
+
* {{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
* {{0x|1888}} to {{0x|18AA}} ({{hex|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|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}}
* {{0x|18AB}} to {{0x|18BF}} ({{hex|###}}) =  NULL
+
* {{address|0x|18AB|18BF|---}} =  NULL
* {{0x|18C0}} to {{0x|18DF}} ({{hex|###}}) =  
+
* {{address|0x|18C0|18DF|---}} =  
* {{0x|1B52}} to {{0x|????}} ({{hex|###}}) =  
+
* {{address|0x|1B52|????|---}} =  
* {{0x|4FF3}} to {{0x|528F}} ({{hex|29B}}) =  Indexed (long) table to compressed graphics packets. Each of these packets is treated differently: i.e. {{$|0A}} = Dungeon sprite
+
* {{address|0x|4FF3|528F|29B}} =  Indexed (long) table to compressed graphics packets. Each of these packets is treated differently: i.e. {{$|0A}} = Dungeon sprite
* {{0x|5B57}} to {{0x|6072}} ({{hex|###}}) = ???
+
* {{address|0x|5B57|6072|---}} = ???
* {{0x|6073}} to {{0x|----}} ({{hex|001}}) = graphics data? Appears to come in {{hex|8}} byte chunks.
+
* {{address|0x|6073|----|001}} = graphics data? Appears to come in {{hex|8}} byte chunks.
* {{0x|7C9C}} to {{0x|----}} ({{hex|001}}) = ???
+
* {{address|0x|7C9C|----|001}} = ???
  
 
{{toc}}
 
{{toc}}

Revision as of 03:55, 21 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???? (---) =
  • 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