;================================================================================ ; The Legend of Zelda, A Link to the Past - Randomizer General Development & Bugfixes ;================================================================================ lorom ;================================================================================ ;org $00FFC0 ; <- 7FC0 - Bank00.asm : 9173 (db "THE LEGEND OF ZELDA " ; 21 bytes) ;db #$23, $4E org $00FFD5 ; <- 7FD5 - Bank00.asm : 9175 (db $20 ; rom layout) db #$30 ; set fast lorom ;org $00FFD6 ; <- 7FD6 - Bank00.asm : 9176 (db $02 ; cartridge type) ;db #$55 ; enable S-RTC org $00FFD7 ; <- 7FD7 - Bank00.asm : 9177 (db $0A ; rom size) db #$0B ; mark rom as 16mbit org $00FFD8 ; <- 7FD8 - Bank00.asm : 9178 (db $03 ; ram size (sram size)) db #$05 ; mark sram as 32k org $3FFFFF ; <- 1FFFFF db #$00 ; expand file to 2mb org $1FFFF8 ; <- FFFF8 timestamp rom db #$20, #$19, #$08, #$31 ; year/month/day ;================================================================================ !ROM_VERSION_LOW ?= 1 ; ROM version (two 16-bit integers) !ROM_VERSION_HIGH ?= 2 ; org $00FFE0 ; Unused hardware vector RomVersion: dw !ROM_VERSION_LOW dw !ROM_VERSION_HIGH ;================================================================================ !ADD = "CLC : ADC" !SUB = "SEC : SBC" !BLT = "BCC" !BGE = "BCS" function hexto555(h) = ((((h&$FF)/8)<<10)|(((h>>8&$FF)/8)<<5)|(((h>>16&$FF)/8)<<0)) ; Feature flags, run asar with -DFEATURE_X=1 to enable !FEATURE_NEW_TEXT ?= 0 ;================================================================================ incsrc hooks.asm incsrc treekid.asm incsrc spriteswap.asm incsrc hashalphabethooks.asm incsrc sharedplayerpalettefix.asm incsrc ram.asm incsrc sram.asm incsrc registers.asm incsrc vanillalabels.asm ;org $208000 ; bank #$20 org $A08000 ; bank #$A0 incsrc newitems.asm ; LEAVE THIS AS FIRST incsrc itemdowngrade.asm incsrc bugfixes.asm incsrc darkworldspawn.asm incsrc lampmantlecone.asm incsrc floodgatesoftlock.asm incsrc heartpieces.asm incsrc npcitems.asm incsrc utilities.asm incsrc flipperkill.asm incsrc pendantcrystalhud.asm incsrc potions.asm incsrc shopkeeper.asm incsrc bookofmudora.asm incsrc crypto.asm incsrc tablets.asm incsrc fairyfixes.asm incsrc rngfixes.asm incsrc medallions.asm incsrc inventory.asm incsrc zelda.asm incsrc maidencrystals.asm incsrc zoraking.asm incsrc catfish.asm incsrc flute.asm incsrc dungeondrops.asm incsrc halfmagicbat.asm incsrc mantle.asm incsrc swordswap.asm incsrc stats.asm incsrc dialog.asm incsrc entrances.asm incsrc accessibility.asm incsrc heartbeep.asm incsrc capacityupgrades.asm incsrc timer.asm incsrc doorframefixes.asm incsrc music.asm incsrc roomloading.asm incsrc icepalacegraphics.asm warnpc $A18000 org $1C8000 ; text tables for translation incbin i18n_en.bin warnpc $1CF356 org $A18000 ; static mapping area incsrc framehook.asm warnpc $A186B0 org $A186B0 ; static mapping area, do not move incsrc hud.asm warnpc $A18800 org $A18800 ; static mapping area incsrc zsnes.asm warnpc $A19000 org $A1A000 ; static mapping area. Referenced by front end. Do not move. incsrc invertedstatic.asm warnpc $A1A100 org $A1B000 incsrc failure.asm warnpc $A1FF00 org $A1FF00 ; static mapping area incsrc init.asm org $A48000 ; code bank - PUT NEW CODE HERE incsrc glitched.asm incsrc hardmode.asm incsrc goalitem.asm incsrc quickswap.asm incsrc endingsequence.asm incsrc cuccostorm.asm incsrc compression.asm incsrc retro.asm incsrc controllerjank.asm incsrc boots.asm incsrc events.asm incsrc fileselect.asm incsrc playername.asm incsrc decryption.asm incsrc hashalphabet.asm incsrc inverted.asm incsrc invertedmaps.asm incsrc newhud.asm incsrc compasses.asm incsrc save.asm incsrc password.asm incsrc enemy_adjustments.asm incsrc hudtext.asm incsrc servicerequest.asm incsrc elder.asm incsrc toast.asm incsrc darkroomitems.asm incsrc fastcredits.asm incsrc msu.asm incsrc dungeonmap.asm if !FEATURE_NEW_TEXT incsrc textrenderer.asm endif warnpc $A58000 org $A28000 org $A38000 incsrc stats/main.asm org $308000 ; bank #$30 incsrc tables.asm org $348000 incsrc spc.asm org $318000 ; bank #$31 GFX_Mire_Bombos: incbin 99ff1_bombos.gfx warnpc $318800 org $318800 GFX_Mire_Quake: incbin 99ff1_quake.gfx warnpc $319000 org $319000 GFX_TRock_Bombos: incbin a6fc4_bombos.gfx warnpc $319800 org $319800 GFX_TRock_Ether: incbin a6fc4_ether.gfx warnpc $31A000 org $31A000 GFX_HUD_Items: incbin c2807_v4.gfx warnpc $31A800 org $31A800 GFX_New_Items: incbin newitems.gfx ;incbin eventitems.gfx ; *EVENT* warnpc $31B000 org $31B000 GFX_HUD_Main: incbin c2e3e.gfx warnpc $31B800 org $31C000 IcePalaceFloorGfx: incbin ice_palace_floor.bin warnpc $31C801 org $31C800 Damage_Table: incbin damage_table.bin warnpc $31D001 org $31D000 FileSelectNewGraphics: incbin fileselect.chr.gfx warnpc $31E001 org $31E000 InvertedCastleHole: ;address used by front end. DO NOT MOVE! incbin sheet73.gfx warnpc $31E501 org $338000 GFX_HUD_Palette: incbin hudpalette.pal warnpc $338041 org $339000 incbin sheet178.gfx warnpc $339600 org $339600 BossMapIconGFX: incbin bossicons.4bpp if !FEATURE_NEW_TEXT org $339C00 NewFont: incbin newfont.bin NewFontInverted: incbin newfont_inverted.bin org $0CD7DF incbin text_unscramble1.bin org $0CE4D5 incbin text_unscramble2.bin endif org $328000 Extra_Text_Table: incsrc itemtext.asm incsrc externalhooks.asm ;================================================================================ org $119100 ; PC 0x89100 incbin map_icons.gfx warnpc $119401 ;================================================================================ org $AF8000 ; PC 0x178000 Static_RNG: ; each line below is 512 bytes of rng incsrc staticrng.asm warnpc $AF8401 ;================================================================================ org $AF8400 incsrc tournament.asm incsrc eventdata.asm warnpc $B08000 ;================================================================================ ;Bank Map ;$20 Code Bank ;$21 Reserved (Frame Hook & Init) ;$22 Unused ;$23 Stats & Credits ;$24 Code Bank ;$29 External hooks (rest of bank not used) ;$2E Reserved for Tournament Use ;$2F Static RNG (rest is reserved for tournament use) ;$30 Main Configuration Table ;$31 Graphics Bank ;$32 Text Bank ;$33 Graphics Bank ;$36 reserved for Enemizer ;$3A reserved for downstream use ;$3B reserved for downstream use ;$3F reserved for internal debugging ;================================================================================ ;RAM ;See ram.asm for label assignments ;$7E021B[0x1]: Used by race game instead of $0ABF to avoid witch item conflict ;$7EC900[0x1F00]: BigRAM buffer ;$7EF000[0x500]: SRAM mirror First 0x500 bytes of SRAM ; See sram.asm for labels and assignments ;$7F5000[0x800]: Rando's main free ram region ; See tables.asm for specific assignments ;$7F6000[0x1000]: SRAM buffer mapped to vanilla save slots 1 and 2 ; See sram.asm for labels and assignments ;$7F7667[0x6719] - free ram ;================================================================================ ;SRAM Map ;See sram.asm for label assignments and documentation ;$70:0000 (5K) Game state ; 0000-04FF Vanilla Slot 1 (mirrored at $7EF000) ; 0500-14FF Ext Slot 1 (mirrored at $7F6000) ;$70:2000 (0x25) ROM Name and version number ;$70:3000 (0x16) Password ;$70:6000 (8K) Scratch buffers ;================================================================================ org $00D09C ; 0x509C - HUD Items H db GFX_HUD_Items>>16 org $00D17B ; 0x517B - HUD Items M db GFX_HUD_Items>>8 org $00D25A ; 0x525A - HUD Items L db GFX_HUD_Items ; this used to be a pointer to a dummy file org $00D065 ; 005065 - New Items H db GFX_New_Items>>16 org $00D144 ; 005114 - New Items M db GFX_New_Items>>8 org $00D223 ; 005223 - New Items L db GFX_New_Items org $00D09D ; 0x509D - HUD Main H db GFX_HUD_Main>>16 org $00D17C ; 0x517C - HUD Main M db GFX_HUD_Main>>8 org $00D25B ; 0x525B - HUD Main L db GFX_HUD_Main ;================================================================================