Palette handling & sprite props data tables
Statically assign item data tables Fix some save-related bugs Fix dungeon item notice in "this dungeon" with free dungeon items
This commit is contained in:
@@ -82,7 +82,6 @@ incsrc tablets.asm
|
|||||||
incsrc fairyfixes.asm
|
incsrc fairyfixes.asm
|
||||||
incsrc rngfixes.asm
|
incsrc rngfixes.asm
|
||||||
incsrc medallions.asm
|
incsrc medallions.asm
|
||||||
incsrc inventory.asm
|
|
||||||
incsrc zelda.asm
|
incsrc zelda.asm
|
||||||
incsrc maidencrystals.asm
|
incsrc maidencrystals.asm
|
||||||
incsrc flute.asm
|
incsrc flute.asm
|
||||||
@@ -155,7 +154,6 @@ incsrc hudtext.asm
|
|||||||
incsrc servicerequest.asm
|
incsrc servicerequest.asm
|
||||||
incsrc elder.asm
|
incsrc elder.asm
|
||||||
incsrc toast.asm
|
incsrc toast.asm
|
||||||
incsrc darkroomitems.asm
|
|
||||||
incsrc fastcredits.asm
|
incsrc fastcredits.asm
|
||||||
incsrc msu.asm
|
incsrc msu.asm
|
||||||
incsrc dungeonmap.asm
|
incsrc dungeonmap.asm
|
||||||
@@ -166,9 +164,17 @@ endif
|
|||||||
warnpc $A58000
|
warnpc $A58000
|
||||||
|
|
||||||
org $A28000
|
org $A28000
|
||||||
|
ItemReceiptGraphicsROM:
|
||||||
|
; we need some empty space here so that 0000 can mean nothing
|
||||||
|
fillbyte $00 : fill 32
|
||||||
|
incbin "data/customitems.4bpp"
|
||||||
|
warnpc $A2B000
|
||||||
|
org $A2B000
|
||||||
|
incsrc itemdatatables.asm ; Statically mapped
|
||||||
incsrc decompresseditemgraphics.asm
|
incsrc decompresseditemgraphics.asm
|
||||||
incsrc newitems.asm
|
incsrc newitems.asm
|
||||||
incsrc utilities.asm
|
incsrc utilities.asm
|
||||||
|
incsrc inventory.asm
|
||||||
|
|
||||||
org $A38000
|
org $A38000
|
||||||
incsrc stats/main.asm
|
incsrc stats/main.asm
|
||||||
@@ -270,6 +276,10 @@ org $919100 ; PC 0x89100
|
|||||||
incbin "data/map_icons.gfx"
|
incbin "data/map_icons.gfx"
|
||||||
warnpc $919401
|
warnpc $919401
|
||||||
;================================================================================
|
;================================================================================
|
||||||
|
org $9BB1E0
|
||||||
|
incsrc custompalettes.asm
|
||||||
|
warnpc $9BB880
|
||||||
|
;================================================================================
|
||||||
org $AF8000 ; PC 0x178000
|
org $AF8000 ; PC 0x178000
|
||||||
Static_RNG: ; each line below is 512 bytes of rng
|
Static_RNG: ; each line below is 512 bytes of rng
|
||||||
incsrc staticrng.asm
|
incsrc staticrng.asm
|
||||||
|
|||||||
@@ -3,8 +3,9 @@
|
|||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
LoadLibraryItemGFX:
|
LoadLibraryItemGFX:
|
||||||
%GetPossiblyEncryptedItem(LibraryItem, SpriteItemValues)
|
%GetPossiblyEncryptedItem(LibraryItem, SpriteItemValues)
|
||||||
|
JSL.l ResolveLootIDLong
|
||||||
STA.w SpriteItemType, X ; Store item type
|
STA.w SpriteItemType, X ; Store item type
|
||||||
JSL.l PrepDynamicTile
|
JSL.l PrepDynamicTile_loot_resolved
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
DrawLibraryItemGFX:
|
DrawLibraryItemGFX:
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ FixBunnyOnExitToLightWorld:
|
|||||||
STZ.b LinkState ; set player mode to Normal
|
STZ.b LinkState ; set player mode to Normal
|
||||||
STZ.w BunnyFlag : STZ.b BunnyFlagDP ; return player graphics to normal
|
STZ.w BunnyFlag : STZ.b BunnyFlagDP ; return player graphics to normal
|
||||||
+
|
+
|
||||||
RTS
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|||||||
17
custompalettes.asm
Normal file
17
custompalettes.asm
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
PalettesCustom:
|
||||||
|
.master_sword
|
||||||
|
dw $0000, $7E4E, $6FF4, $1CF5, $7FFF, $1CE7, $7A10, $64A5
|
||||||
|
.tempered_sword
|
||||||
|
dw $0000, $093B, $169F, $7E8D, $7FFF, $1CE7, $7A10, $64A5
|
||||||
|
.golden_sword
|
||||||
|
dw $0000, $033F, $7FFF, $2640, $7FFF, $1CE7, $7A10, $64A5
|
||||||
|
.fighter_shield
|
||||||
|
dw $0000, $7FFF, $27FF, $5E2D, $7FFF, $1CE7, $7A10, $64A5
|
||||||
|
.red_shield
|
||||||
|
dw $0000, $7FFF, $27FF, $5E2D, $4F5F, $1CE7, $2E9C, $14B6
|
||||||
|
.mirror_shield
|
||||||
|
dw $0000, $7FFF, $27FF, $5E2D, $7399, $1CE7, $02F9, $0233
|
||||||
|
.crystal
|
||||||
|
dw $7FFF, $7FFF, $5F9F, $000A, $7E15, $2C24, $75D0, $612B
|
||||||
|
.off_black
|
||||||
|
dw $0000, $14A5, $14A5, $14A5, $14A5, $14A5, $14A5, $14A5
|
||||||
@@ -1,11 +1,3 @@
|
|||||||
;===================================================================================================
|
|
||||||
; Up here at the top of ROM for easy viewing
|
|
||||||
;===================================================================================================
|
|
||||||
ItemReceiptGraphicsROM:
|
|
||||||
; we need some empty space here so that 0000 can mean nothing
|
|
||||||
fillbyte $00 : fill 32
|
|
||||||
incbin "data/customitems.4bpp"
|
|
||||||
|
|
||||||
;===================================================================================================
|
;===================================================================================================
|
||||||
; Get the item's graphic from WRAM/ROM
|
; Get the item's graphic from WRAM/ROM
|
||||||
; Bit 7 set indicates an explicit WRAM address
|
; Bit 7 set indicates an explicit WRAM address
|
||||||
@@ -544,538 +536,4 @@ Unrolled3BPPConvert:
|
|||||||
|
|
||||||
;===================================================================================================
|
;===================================================================================================
|
||||||
|
|
||||||
ItemReceiptGraphicsOffsets:
|
|
||||||
dw $0860 ; 00 - Fighter Sword and Shield
|
|
||||||
dw BigDecompressionBuffer+$11C0 ; 01 - Master Sword
|
|
||||||
dw BigDecompressionBuffer+$11C0 ; 01 - Tempered Sword
|
|
||||||
dw BigDecompressionBuffer+$11C0 ; 03 - Butter Sword
|
|
||||||
dw BigDecompressionBuffer+$09E0 ; 04 - Fighter Shield
|
|
||||||
dw BigDecompressionBuffer+$1940 ; 05 - Fire Shield
|
|
||||||
dw BigDecompressionBuffer+$0C80 ; 06 - Mirror Shield
|
|
||||||
dw BigDecompressionBuffer+$1C80 ; 07 - Fire Rod
|
|
||||||
dw BigDecompressionBuffer+$1C80 ; 08 - Ice Rod
|
|
||||||
dw BigDecompressionBuffer+$1CA0 ; 09 - Hammer
|
|
||||||
dw BigDecompressionBuffer+$1C60 ; 0A - Hookshot
|
|
||||||
dw BigDecompressionBuffer+$1C00 ; 0B - Bow
|
|
||||||
dw BigDecompressionBuffer+$1DE0 ; 0C - Boomerang
|
|
||||||
dw BigDecompressionBuffer+$1CC0 ; 0D - Powder
|
|
||||||
dw BigDecompressionBuffer+$09A0 ; 0E - Bottle Refill (bee)
|
|
||||||
dw BigDecompressionBuffer+$1440 ; 0F - Bombos
|
|
||||||
dw BigDecompressionBuffer+$1400 ; 10 - Ether
|
|
||||||
dw BigDecompressionBuffer+$1480 ; 11 - Quake
|
|
||||||
dw BigDecompressionBuffer+$10C0 ; 12 - Lamp
|
|
||||||
dw BigDecompressionBuffer+$11E0 ; 13 - Shovel
|
|
||||||
dw BigDecompressionBuffer+$0C40 ; 14 - Flute
|
|
||||||
dw BigDecompressionBuffer+$1C40 ; 15 - Somaria
|
|
||||||
dw BigDecompressionBuffer+$14C0 ; 16 - Bottle
|
|
||||||
dw BigDecompressionBuffer+$0C00 ; 17 - Heartpiece
|
|
||||||
dw BigDecompressionBuffer+$1C40 ; 18 - Byrna
|
|
||||||
dw BigDecompressionBuffer+$1100 ; 19 - Cape
|
|
||||||
dw BigDecompressionBuffer+$1040 ; 1A - Mirror
|
|
||||||
dw BigDecompressionBuffer+$1D40 ; 1B - Glove
|
|
||||||
dw BigDecompressionBuffer+$1D40 ; 1C - Mitts
|
|
||||||
dw BigDecompressionBuffer+$1D80 ; 1D - Book
|
|
||||||
dw BigDecompressionBuffer+$1000 ; 1E - Flippers
|
|
||||||
dw BigDecompressionBuffer+$1180 ; 1F - Pearl
|
|
||||||
dw BigDecompressionBuffer+$08A0 ; 20 - Crystal
|
|
||||||
dw BigDecompressionBuffer+$0860 ; 21 - Net
|
|
||||||
dw BigDecompressionBuffer+$1900 ; 22 - Blue Mail
|
|
||||||
dw BigDecompressionBuffer+$1900 ; 23 - Red Mail
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; 24 - Small Key
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 25 - Compbutt
|
|
||||||
dw BigDecompressionBuffer+$18C0 ; 26 - Heart Container from 4/4
|
|
||||||
dw BigDecompressionBuffer+$1080 ; 27 - Bomb
|
|
||||||
dw BigDecompressionBuffer+$1840 ; 28 - 3 bombs
|
|
||||||
dw BigDecompressionBuffer+$1540 ; 29 - Mushroom
|
|
||||||
dw BigDecompressionBuffer+$1DE0 ; 2A - Red boomerang
|
|
||||||
dw BigDecompressionBuffer+$1500 ; 2B - Full bottle (red)
|
|
||||||
dw BigDecompressionBuffer+$1500 ; 2C - Full bottle (green)
|
|
||||||
dw BigDecompressionBuffer+$1500 ; 2D - Full bottle (blue)
|
|
||||||
dw BigDecompressionBuffer+$1500 ; 2E - Potion refill (red)
|
|
||||||
dw BigDecompressionBuffer+$1500 ; 2F - Potion refill (green)
|
|
||||||
dw BigDecompressionBuffer+$1500 ; 30 - Potion refill (blue)
|
|
||||||
dw BigDecompressionBuffer+$1D00 ; 31 - 10 bombs
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 32 - Big key
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 33 - Map
|
|
||||||
dw BigDecompressionBuffer+$0800 ; 34 - 1 rupee
|
|
||||||
dw BigDecompressionBuffer+$0800 ; 35 - 5 rupees
|
|
||||||
dw BigDecompressionBuffer+$0800 ; 36 - 20 rupees
|
|
||||||
dw BigDecompressionBuffer+$0080 ; 37 - Green pendant
|
|
||||||
dw BigDecompressionBuffer+$0080 ; 38 - Blue pendant
|
|
||||||
dw BigDecompressionBuffer+$0080 ; 39 - Red pendant
|
|
||||||
dw BigDecompressionBuffer+$0920 ; 3A - Tossed bow
|
|
||||||
dw BigDecompressionBuffer+$08E0 ; 3B - Silvers
|
|
||||||
dw BigDecompressionBuffer+$09A0 ; 3C - Full bottle (bee)
|
|
||||||
dw BigDecompressionBuffer+$0960 ; 3D - Full bottle (fairy)
|
|
||||||
dw BigDecompressionBuffer+$18C0 ; 3E - Boss heart
|
|
||||||
dw BigDecompressionBuffer+$18C0 ; 3F - Sanc heart
|
|
||||||
dw BigDecompressionBuffer+$0D20 ; 40 - 100 rupees
|
|
||||||
dw BigDecompressionBuffer+$0D60 ; 41 - 50 rupees
|
|
||||||
dw BigDecompressionBuffer+$0CC0 ; 42 - Heart
|
|
||||||
dw BigDecompressionBuffer+$0DD0 ; 43 - Arrow
|
|
||||||
dw BigDecompressionBuffer+$1880 ; 44 - 10 arrows
|
|
||||||
dw BigDecompressionBuffer+$0CE0 ; 45 - Small magic
|
|
||||||
dw BigDecompressionBuffer+$0DA0 ; 46 - 300 rupees
|
|
||||||
dw BigDecompressionBuffer+$0000 ; 47 - 20 rupees green
|
|
||||||
dw BigDecompressionBuffer+$09A0 ; 48 - Full bottle (good bee)
|
|
||||||
dw BigDecompressionBuffer+$1C20 ; 49 - Tossed fighter sword
|
|
||||||
dw BigDecompressionBuffer+$09A0 ; 4A - Bottle refill (good bee)
|
|
||||||
dw BigDecompressionBuffer+$0040 ; 4B - Boots
|
|
||||||
|
|
||||||
; Rando items
|
|
||||||
dw $04A0 ; 4C - Bomb capacity (50)
|
|
||||||
dw $05A0 ; 4D - Arrow capacity (70)
|
|
||||||
dw $01A0 ; 4E - 1/2 magic
|
|
||||||
dw $01E0 ; 4F - 1/4 magic
|
|
||||||
dw $0 ; 50 - Safe master sword
|
|
||||||
dw $0420 ; 51 - Bomb capacity (+5)
|
|
||||||
dw $0460 ; 52 - Bomb capacity (+10)
|
|
||||||
dw $0520 ; 53 - Arrow capacity (+5)
|
|
||||||
dw $0560 ; 54 - Arrow capacity (+10)
|
|
||||||
dw $0 ; 55 - Programmable item 1
|
|
||||||
dw $0 ; 56 - Programmable item 2
|
|
||||||
dw $0 ; 57 - Programmable item 3
|
|
||||||
dw $05E0 ; 58 - Upgrade-only silver arrows
|
|
||||||
dw $0 ; 59 - Rupoor
|
|
||||||
dw $0020 ; 5A - Nothing
|
|
||||||
dw $0DE0 ; 5B - Red clock
|
|
||||||
dw $0DE0 ; 5C - Blue clock
|
|
||||||
dw $0DE0 ; 5D - Green clock
|
|
||||||
dw $0 ; 5E - Progressive sword
|
|
||||||
dw $0 ; 5F - Progressive shield
|
|
||||||
dw $0 ; 60 - Progressive armor
|
|
||||||
dw $0 ; 61 - Progressive glove
|
|
||||||
dw $0 ; 62 - RNG pool item (single)
|
|
||||||
dw $0 ; 63 - RNG pool item (multi)
|
|
||||||
dw $0 ; 64 - Progressive bow
|
|
||||||
dw $0 ; 65 - Progressive bow
|
|
||||||
dw $0 ; 66 -
|
|
||||||
dw $0 ; 67 -
|
|
||||||
dw $0 ; 68 -
|
|
||||||
dw $0 ; 69 -
|
|
||||||
dw $0060 ; 6A - Triforce
|
|
||||||
dw $11E0 ; 6B - Power star
|
|
||||||
dw $0 ; 6C -
|
|
||||||
dw $0 ; 6D - Server request item
|
|
||||||
dw $0 ; 6E - Server request item (dungeon drop)
|
|
||||||
dw $0 ; 6F -
|
|
||||||
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 70 - Map of Light World
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 71 - Map of Dark World
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 72 - Map of Ganon's Tower
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 73 - Map of Turtle Rock
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 74 - Map of Thieves' Town
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 75 - Map of Tower of Hera
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 76 - Map of Ice Palace
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 77 - Map of Skull Woods
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 78 - Map of Misery Mire
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 79 - Map of Dark Palace
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 7A - Map of Swamp Palace
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 7B - Map of Agahnim's Tower
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 7C - Map of Desert Palace
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 7D - Map of Eastern Palace
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 7E - Map of Hyrule Castle
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 7F - Map of Sewers
|
|
||||||
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 80 - Compass of Light World
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 81 - Compass of Dark World
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 82 - Compass of Ganon's Tower
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 83 - Compass of Turtle Rock
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 84 - Compass of Thieves' Town
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 85 - Compass of Tower of Hera
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 86 - Compass of Ice Palace
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 87 - Compass of Skull Woods
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 88 - Compass of Misery Mire
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 89 - Compass of Dark Palace
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 8A - Compass of Swamp Palace
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 8B - Compass of Agahnim's Tower
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 8C - Compass of Desert Palace
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 8D - Compass of Eastern Palace
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 8E - Compass of Hyrule Castle
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 8F - Compass of Sewers
|
|
||||||
dw $0 ; 90 - Skull key
|
|
||||||
dw $0 ; 91 - Reserved
|
|
||||||
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 92 - Big key of Ganon's Tower
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 93 - Big key of Turtle Rock
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 94 - Big key of Thieves' Town
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 95 - Big key of Tower of Hera
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 96 - Big key of Ice Palace
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 97 - Big key of Skull Woods
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 98 - Big key of Misery Mire
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 99 - Big key of Dark Palace
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 9A - Big key of Swamp Palace
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 9B - Big key of Agahnim's Tower
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 9C - Big key of Desert Palace
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 9D - Big key of Eastern Palace
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 9E - Big key of Hyrule Castle
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 9F - Big key of Sewers
|
|
||||||
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; A0 - Small key of Sewers
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; A1 - Small key of Hyrule Castle
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; A2 - Small key of Eastern Palace
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; A3 - Small key of Desert Palace
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; A4 - Small key of Agahnim's Tower
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; A5 - Small key of Swamp Palace
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; A6 - Small key of Dark Palace
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; A7 - Small key of Misery Mire
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; A8 - Small key of Skull Woods
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; A9 - Small key of Ice Palace
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; AA - Small key of Tower of Hera
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; AB - Small key of Thieves' Town
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; AC - Small key of Turtle Rock
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; AD - Small key of Ganon's Tower
|
|
||||||
dw $0 ; AE - Reserved
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; AF - Generic small key
|
|
||||||
|
|
||||||
dw $0 ; B0 -
|
|
||||||
dw $0 ; B1 -
|
|
||||||
dw $0 ; B2 -
|
|
||||||
dw $0 ; B3 -
|
|
||||||
dw $0 ; B4 -
|
|
||||||
dw $0 ; B5 -
|
|
||||||
dw $0 ; B6 -
|
|
||||||
dw $0 ; B7 -
|
|
||||||
dw $0 ; B8 -
|
|
||||||
dw $0 ; B9 -
|
|
||||||
dw $0 ; BA -
|
|
||||||
dw $0 ; BB -
|
|
||||||
dw $0 ; BC -
|
|
||||||
dw $0 ; BD -
|
|
||||||
dw $0 ; BE -
|
|
||||||
dw $0 ; BF -
|
|
||||||
dw $0 ; C0 -
|
|
||||||
dw $0 ; C1 -
|
|
||||||
dw $0 ; C2 -
|
|
||||||
dw $0 ; C3 -
|
|
||||||
dw $0 ; C4 -
|
|
||||||
dw $0 ; C5 -
|
|
||||||
dw $0 ; C6 -
|
|
||||||
dw $0 ; C7 -
|
|
||||||
dw $0 ; C8 -
|
|
||||||
dw $0 ; C9 -
|
|
||||||
dw $0 ; CA -
|
|
||||||
dw $0 ; CB -
|
|
||||||
dw $0 ; CC -
|
|
||||||
dw $0 ; CD -
|
|
||||||
dw $0 ; CE -
|
|
||||||
dw $0 ; CF -
|
|
||||||
dw $0 ; D0 -
|
|
||||||
dw $0 ; D1 -
|
|
||||||
dw $0 ; D2 -
|
|
||||||
dw $0 ; D3 -
|
|
||||||
dw $0 ; D4 -
|
|
||||||
dw $0 ; D5 -
|
|
||||||
dw $0 ; D6 -
|
|
||||||
dw $0 ; D7 -
|
|
||||||
dw $0 ; D8 -
|
|
||||||
dw $0 ; D9 -
|
|
||||||
dw $0 ; DA -
|
|
||||||
dw $0 ; DB -
|
|
||||||
dw $0 ; DC -
|
|
||||||
dw $0 ; DD -
|
|
||||||
dw $0 ; DE -
|
|
||||||
dw $0 ; DF -
|
|
||||||
dw $0 ; E0 -
|
|
||||||
dw $0 ; E1 -
|
|
||||||
dw $0 ; E2 -
|
|
||||||
dw $0 ; E3 -
|
|
||||||
dw $0 ; E4 -
|
|
||||||
dw $0 ; E5 -
|
|
||||||
dw $0 ; E6 -
|
|
||||||
dw $0 ; E7 -
|
|
||||||
dw $0 ; E8 -
|
|
||||||
dw $0 ; E9 -
|
|
||||||
dw $0 ; EA -
|
|
||||||
dw $0 ; EB -
|
|
||||||
dw $0 ; EC -
|
|
||||||
dw $0 ; ED -
|
|
||||||
dw $0 ; EE -
|
|
||||||
dw $0 ; EF -
|
|
||||||
dw $0 ; F0 -
|
|
||||||
dw $0 ; F1 -
|
|
||||||
dw $0 ; F2 -
|
|
||||||
dw $0 ; F3 -
|
|
||||||
dw $0 ; F4 -
|
|
||||||
dw $0 ; F5 -
|
|
||||||
dw $0 ; F6 -
|
|
||||||
dw $0 ; F7 -
|
|
||||||
dw $0 ; F8 -
|
|
||||||
dw $0 ; F9 -
|
|
||||||
dw $0 ; FA -
|
|
||||||
dw $0 ; FB -
|
|
||||||
dw $0 ; FC -
|
|
||||||
dw $0 ; FD -
|
|
||||||
dw $0 ; FE - Server request (async)
|
|
||||||
dw $0 ; FF -
|
|
||||||
|
|
||||||
;===================================================================================================
|
|
||||||
; The table below is for "standing" items, either in heart piece locations, boss heart locations
|
|
||||||
; or shops etc. Generally we do not and shouldn't use different gfx for this purpose, so this is
|
|
||||||
; mostly a copy of the previous table. However some items, such as swords, use a separate sprite
|
|
||||||
; for receipt and non-receipt drawing.
|
|
||||||
;===================================================================================================
|
|
||||||
StandingItemGraphicsOffsets:
|
|
||||||
dw $0860 ; 00 - Fighter Sword and Shield
|
|
||||||
dw $00E0 ; 01 - Master Sword
|
|
||||||
dw $0120 ; 02 - Tempered Sword
|
|
||||||
dw $0160 ; 03 - Butter Sword
|
|
||||||
dw BigDecompressionBuffer+$09E0 ; 04 - Fighter Shield
|
|
||||||
dw BigDecompressionBuffer+$1940 ; 05 - Fire Shield
|
|
||||||
dw BigDecompressionBuffer+$0C80 ; 06 - Mirror Shield
|
|
||||||
dw BigDecompressionBuffer+$1C80 ; 07 - Fire Rod
|
|
||||||
dw BigDecompressionBuffer+$1C80 ; 08 - Ice Rod
|
|
||||||
dw BigDecompressionBuffer+$1CA0 ; 09 - Hammer
|
|
||||||
dw BigDecompressionBuffer+$1C60 ; 0A - Hookshot
|
|
||||||
dw BigDecompressionBuffer+$1C00 ; 0B - Bow
|
|
||||||
dw BigDecompressionBuffer+$1DE0 ; 0C - Boomerang
|
|
||||||
dw BigDecompressionBuffer+$1CC0 ; 0D - Powder
|
|
||||||
dw BigDecompressionBuffer+$09A0 ; 0E - Bottle Refill (bee)
|
|
||||||
dw BigDecompressionBuffer+$1440 ; 0F - Bombos
|
|
||||||
dw BigDecompressionBuffer+$1400 ; 10 - Ether
|
|
||||||
dw BigDecompressionBuffer+$1480 ; 11 - Quake
|
|
||||||
dw BigDecompressionBuffer+$10C0 ; 12 - Lamp
|
|
||||||
dw BigDecompressionBuffer+$11E0 ; 13 - Shovel
|
|
||||||
dw BigDecompressionBuffer+$0C40 ; 14 - Flute
|
|
||||||
dw BigDecompressionBuffer+$1C40 ; 15 - Somaria
|
|
||||||
dw BigDecompressionBuffer+$14C0 ; 16 - Bottle
|
|
||||||
dw BigDecompressionBuffer+$0C00 ; 17 - Heartpiece
|
|
||||||
dw BigDecompressionBuffer+$1C40 ; 18 - Byrna
|
|
||||||
dw BigDecompressionBuffer+$1100 ; 19 - Cape
|
|
||||||
dw BigDecompressionBuffer+$1040 ; 1A - Mirror
|
|
||||||
dw BigDecompressionBuffer+$1D40 ; 1B - Glove
|
|
||||||
dw BigDecompressionBuffer+$1D40 ; 1C - Mitts
|
|
||||||
dw BigDecompressionBuffer+$1D80 ; 1D - Book
|
|
||||||
dw BigDecompressionBuffer+$1000 ; 1E - Flippers
|
|
||||||
dw BigDecompressionBuffer+$1180 ; 1F - Pearl
|
|
||||||
dw BigDecompressionBuffer+$08A0 ; 20 - Crystal
|
|
||||||
dw BigDecompressionBuffer+$0860 ; 21 - Net
|
|
||||||
dw BigDecompressionBuffer+$1900 ; 22 - Blue Mail
|
|
||||||
dw BigDecompressionBuffer+$1900 ; 23 - Red Mail
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; 24 - Small Key
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 25 - Compbutt
|
|
||||||
dw BigDecompressionBuffer+$18C0 ; 26 - Heart Container from 4/4
|
|
||||||
dw BigDecompressionBuffer+$1080 ; 27 - Bomb
|
|
||||||
dw BigDecompressionBuffer+$1840 ; 28 - 3 bombs
|
|
||||||
dw BigDecompressionBuffer+$1540 ; 29 - Mushroom
|
|
||||||
dw BigDecompressionBuffer+$1DE0 ; 2A - Red boomerang
|
|
||||||
dw BigDecompressionBuffer+$1500 ; 2B - Full bottle (red)
|
|
||||||
dw BigDecompressionBuffer+$1500 ; 2C - Full bottle (green)
|
|
||||||
dw BigDecompressionBuffer+$1500 ; 2D - Full bottle (blue)
|
|
||||||
dw BigDecompressionBuffer+$1500 ; 2E - Potion refill (red)
|
|
||||||
dw BigDecompressionBuffer+$1500 ; 2F - Potion refill (green)
|
|
||||||
dw BigDecompressionBuffer+$1500 ; 30 - Potion refill (blue)
|
|
||||||
dw BigDecompressionBuffer+$1D00 ; 31 - 10 bombs
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 32 - Big key
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 33 - Map
|
|
||||||
dw BigDecompressionBuffer+$0800 ; 34 - 1 rupee
|
|
||||||
dw BigDecompressionBuffer+$0800 ; 35 - 5 rupees
|
|
||||||
dw BigDecompressionBuffer+$0800 ; 36 - 20 rupees
|
|
||||||
dw BigDecompressionBuffer+$0080 ; 37 - Green pendant
|
|
||||||
dw BigDecompressionBuffer+$0080 ; 38 - Blue pendant
|
|
||||||
dw BigDecompressionBuffer+$0080 ; 39 - Red pendant
|
|
||||||
dw BigDecompressionBuffer+$0920 ; 3A - Tossed bow
|
|
||||||
dw BigDecompressionBuffer+$08E0 ; 3B - Silvers
|
|
||||||
dw BigDecompressionBuffer+$09A0 ; 3C - Full bottle (bee)
|
|
||||||
dw BigDecompressionBuffer+$0960 ; 3D - Full bottle (fairy)
|
|
||||||
dw BigDecompressionBuffer+$18C0 ; 3E - Boss heart
|
|
||||||
dw BigDecompressionBuffer+$18C0 ; 3F - Sanc heart
|
|
||||||
dw BigDecompressionBuffer+$0D20 ; 40 - 100 rupees
|
|
||||||
dw BigDecompressionBuffer+$0D60 ; 41 - 50 rupees
|
|
||||||
dw BigDecompressionBuffer+$0CC0 ; 42 - Heart
|
|
||||||
dw BigDecompressionBuffer+$0DD0 ; 43 - Arrow
|
|
||||||
dw BigDecompressionBuffer+$1880 ; 44 - 10 arrows
|
|
||||||
dw BigDecompressionBuffer+$0CE0 ; 45 - Small magic
|
|
||||||
dw BigDecompressionBuffer+$0DA0 ; 46 - 300 rupees
|
|
||||||
dw BigDecompressionBuffer+$0000 ; 47 - 20 rupees green
|
|
||||||
dw BigDecompressionBuffer+$09A0 ; 48 - Full bottle (good bee)
|
|
||||||
dw $00A0 ; 49 - Tossed fighter sword
|
|
||||||
dw BigDecompressionBuffer+$09A0 ; 4A - Bottle refill (good bee)
|
|
||||||
dw BigDecompressionBuffer+$0040 ; 4B - Boots
|
|
||||||
|
|
||||||
; Rando items
|
|
||||||
dw $04A0 ; 4C - Bomb capacity (50)
|
|
||||||
dw $05A0 ; 4D - Arrow capacity (70)
|
|
||||||
dw $01A0 ; 4E - 1/2 magic
|
|
||||||
dw $01E0 ; 4F - 1/4 magic
|
|
||||||
dw $00E0 ; 50 - Safe master sword
|
|
||||||
dw $0420 ; 51 - Bomb capacity (+5)
|
|
||||||
dw $0460 ; 52 - Bomb capacity (+10)
|
|
||||||
dw $0520 ; 53 - Arrow capacity (+5)
|
|
||||||
dw $0560 ; 54 - Arrow capacity (+10)
|
|
||||||
dw $0 ; 55 - Programmable item 1
|
|
||||||
dw $0 ; 56 - Programmable item 2
|
|
||||||
dw $0 ; 57 - Programmable item 3
|
|
||||||
dw $05E0 ; 58 - Upgrade-only silver arrows
|
|
||||||
dw $0 ; 59 - Rupoor
|
|
||||||
dw $0020 ; 5A - Nothing
|
|
||||||
dw $0DE0 ; 5B - Red clock
|
|
||||||
dw $0DE0 ; 5C - Blue clock
|
|
||||||
dw $0DE0 ; 5D - Green clock
|
|
||||||
dw $0 ; 5E - Progressive sword
|
|
||||||
dw $0 ; 5F - Progressive shield
|
|
||||||
dw $0 ; 60 - Progressive armor
|
|
||||||
dw $0 ; 61 - Progressive glove
|
|
||||||
dw $0 ; 62 - RNG pool item (single)
|
|
||||||
dw $0 ; 63 - RNG pool item (multi)
|
|
||||||
dw $0 ; 64 - Progressive bow
|
|
||||||
dw $0 ; 65 - Progressive bow
|
|
||||||
dw $0 ; 66 -
|
|
||||||
dw $0 ; 67 -
|
|
||||||
dw $0 ; 68 -
|
|
||||||
dw $0 ; 69 -
|
|
||||||
dw $0060 ; 6A - Triforce
|
|
||||||
dw $11E0 ; 6B - Power star
|
|
||||||
dw $0 ; 6C -
|
|
||||||
dw $0 ; 6D - Server request item
|
|
||||||
dw $0 ; 6E - Server request item (dungeon drop)
|
|
||||||
dw $0 ; 6F -
|
|
||||||
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 70 - Map of Light World
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 71 - Map of Dark World
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 72 - Map of Ganon's Tower
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 73 - Map of Turtle Rock
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 74 - Map of Thieves' Town
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 75 - Map of Tower of Hera
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 76 - Map of Ice Palace
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 77 - Map of Skull Woods
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 78 - Map of Misery Mire
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 79 - Map of Dark Palace
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 7A - Map of Swamp Palace
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 7B - Map of Agahnim's Tower
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 7C - Map of Desert Palace
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 7D - Map of Eastern Palace
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 7E - Map of Hyrule Castle
|
|
||||||
dw BigDecompressionBuffer+$1580 ; 7F - Map of Sewers
|
|
||||||
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 80 - Compass of Light World
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 81 - Compass of Dark World
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 82 - Compass of Ganon's Tower
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 83 - Compass of Turtle Rock
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 84 - Compass of Thieves' Town
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 85 - Compass of Tower of Hera
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 86 - Compass of Ice Palace
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 87 - Compass of Skull Woods
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 88 - Compass of Misery Mire
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 89 - Compass of Dark Palace
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 8A - Compass of Swamp Palace
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 8B - Compass of Agahnim's Tower
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 8C - Compass of Desert Palace
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 8D - Compass of Eastern Palace
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 8E - Compass of Hyrule Castle
|
|
||||||
dw BigDecompressionBuffer+$1140 ; 8F - Compass of Sewers
|
|
||||||
dw $0 ; 90 - Skull key
|
|
||||||
dw $0 ; 91 - Reserved
|
|
||||||
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 92 - Big key of Ganon's Tower
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 93 - Big key of Turtle Rock
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 94 - Big key of Thieves' Town
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 95 - Big key of Tower of Hera
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 96 - Big key of Ice Palace
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 97 - Big key of Skull Woods
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 98 - Big key of Misery Mire
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 99 - Big key of Dark Palace
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 9A - Big key of Swamp Palace
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 9B - Big key of Agahnim's Tower
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 9C - Big key of Desert Palace
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 9D - Big key of Eastern Palace
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 9E - Big key of Hyrule Castle
|
|
||||||
dw BigDecompressionBuffer+$15C0 ; 9F - Big key of Sewers
|
|
||||||
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; A0 - Small key of Sewers
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; A1 - Small key of Hyrule Castle
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; A2 - Small key of Eastern Palace
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; A3 - Small key of Desert Palace
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; A4 - Small key of Agahnim's Tower
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; A5 - Small key of Swamp Palace
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; A6 - Small key of Dark Palace
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; A7 - Small key of Misery Mire
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; A8 - Small key of Skull Woods
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; A9 - Small key of Ice Palace
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; AA - Small key of Tower of Hera
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; AB - Small key of Thieves' Town
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; AC - Small key of Turtle Rock
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; AD - Small key of Ganon's Tower
|
|
||||||
dw $0 ; AE - Reserved
|
|
||||||
dw BigDecompressionBuffer+$1DC0 ; AF - Generic small key
|
|
||||||
|
|
||||||
dw $0 ; B0 -
|
|
||||||
dw $0 ; B1 -
|
|
||||||
dw $0 ; B2 -
|
|
||||||
dw $0 ; B3 -
|
|
||||||
dw $0 ; B4 -
|
|
||||||
dw $0 ; B5 -
|
|
||||||
dw $0 ; B6 -
|
|
||||||
dw $0 ; B7 -
|
|
||||||
dw $0 ; B8 -
|
|
||||||
dw $0 ; B9 -
|
|
||||||
dw $0 ; BA -
|
|
||||||
dw $0 ; BB -
|
|
||||||
dw $0 ; BC -
|
|
||||||
dw $0 ; BD -
|
|
||||||
dw $0 ; BE -
|
|
||||||
dw $0 ; BF -
|
|
||||||
dw $0 ; C0 -
|
|
||||||
dw $0 ; C1 -
|
|
||||||
dw $0 ; C2 -
|
|
||||||
dw $0 ; C3 -
|
|
||||||
dw $0 ; C4 -
|
|
||||||
dw $0 ; C5 -
|
|
||||||
dw $0 ; C6 -
|
|
||||||
dw $0 ; C7 -
|
|
||||||
dw $0 ; C8 -
|
|
||||||
dw $0 ; C9 -
|
|
||||||
dw $0 ; CA -
|
|
||||||
dw $0 ; CB -
|
|
||||||
dw $0 ; CC -
|
|
||||||
dw $0 ; CD -
|
|
||||||
dw $0 ; CE -
|
|
||||||
dw $0 ; CF -
|
|
||||||
dw $0 ; D0 -
|
|
||||||
dw $0 ; D1 -
|
|
||||||
dw $0 ; D2 -
|
|
||||||
dw $0 ; D3 -
|
|
||||||
dw $0 ; D4 -
|
|
||||||
dw $0 ; D5 -
|
|
||||||
dw $0 ; D6 -
|
|
||||||
dw $0 ; D7 -
|
|
||||||
dw $0 ; D8 -
|
|
||||||
dw $0 ; D9 -
|
|
||||||
dw $0 ; DA -
|
|
||||||
dw $0 ; DB -
|
|
||||||
dw $0 ; DC -
|
|
||||||
dw $0 ; DD -
|
|
||||||
dw $0 ; DE -
|
|
||||||
dw $0 ; DF -
|
|
||||||
dw $0 ; E0 -
|
|
||||||
dw $0 ; E1 -
|
|
||||||
dw $0 ; E2 -
|
|
||||||
dw $0 ; E3 -
|
|
||||||
dw $0 ; E4 -
|
|
||||||
dw $0 ; E5 -
|
|
||||||
dw $0 ; E6 -
|
|
||||||
dw $0 ; E7 -
|
|
||||||
dw $0 ; E8 -
|
|
||||||
dw $0 ; E9 -
|
|
||||||
dw $0 ; EA -
|
|
||||||
dw $0 ; EB -
|
|
||||||
dw $0 ; EC -
|
|
||||||
dw $0 ; ED -
|
|
||||||
dw $0 ; EE -
|
|
||||||
dw $0 ; EF -
|
|
||||||
dw $0 ; F0 -
|
|
||||||
dw $0 ; F1 -
|
|
||||||
dw $0 ; F2 -
|
|
||||||
dw $0 ; F3 -
|
|
||||||
dw $0 ; F4 -
|
|
||||||
dw $0 ; F5 -
|
|
||||||
dw $0 ; F6 -
|
|
||||||
dw $0 ; F7 -
|
|
||||||
dw $0 ; F8 -
|
|
||||||
dw $0 ; F9 -
|
|
||||||
dw $0 ; FA -
|
|
||||||
dw $0 ; FB -
|
|
||||||
dw $0 ; FC -
|
|
||||||
dw $0 ; FD -
|
|
||||||
dw $0 ; FE - Server request (async)
|
|
||||||
dw $0 ; FF -
|
|
||||||
|
|||||||
11
dialog.asm
11
dialog.asm
@@ -127,13 +127,22 @@ FreeDungeonItemNotice:
|
|||||||
.dungeon
|
.dungeon
|
||||||
LDA.l DialogReturnPointer : DEC #2 : STA.l DialogOffsetPointer
|
LDA.l DialogReturnPointer : DEC #2 : STA.l DialogOffsetPointer
|
||||||
LDA.w ScratchBufferV
|
LDA.w ScratchBufferV
|
||||||
AND.b #$0F ; looking at low bits only
|
AND.b #$0F
|
||||||
STA.w ScratchBufferNV+1
|
STA.w ScratchBufferNV+1
|
||||||
LDA.w ScratchBufferNV : BEQ +
|
LDA.w ScratchBufferNV : BEQ +
|
||||||
LDA.w ScratchBufferNV
|
LDA.w ScratchBufferNV
|
||||||
LDA.b #$0F : !SUB.w ScratchBufferNV+1 : STA.w ScratchBufferNV+1 ; flip the values for small keys
|
LDA.b #$0F : !SUB.w ScratchBufferNV+1 : STA.w ScratchBufferNV+1 ; flip the values for small keys
|
||||||
+
|
+
|
||||||
LDA.w ScratchBufferNV+1
|
LDA.w ScratchBufferNV+1
|
||||||
|
ASL : TAX
|
||||||
|
REP #$20
|
||||||
|
LDA.l DungeonItemIDMap,X : CMP.w DungeonID : BNE +
|
||||||
|
SEP #$20
|
||||||
|
%CopyDialog(Notice_Self)
|
||||||
|
JMP.w .done
|
||||||
|
+
|
||||||
|
SEP #$20
|
||||||
|
LDA.w ScratchBufferNV+1
|
||||||
CMP.b #$00 : BNE + ; ...light world
|
CMP.b #$00 : BNE + ; ...light world
|
||||||
%CopyDialog(Notice_LightWorld) : JMP .done
|
%CopyDialog(Notice_LightWorld) : JMP .done
|
||||||
+ : CMP.b #$01 : BNE + ; ...dark world
|
+ : CMP.b #$01 : BNE + ; ...dark world
|
||||||
|
|||||||
@@ -105,13 +105,14 @@ OnFileCreation:
|
|||||||
|
|
||||||
; Set validity value and do some cleanup. Jump to checksum.
|
; Set validity value and do some cleanup. Jump to checksum.
|
||||||
LDA.w #$55AA : STA.l FileValiditySRAM
|
LDA.w #$55AA : STA.l FileValiditySRAM
|
||||||
|
JSL.l WriteSaveChecksumAndBackup_from_sram
|
||||||
STZ.b Scrap00
|
STZ.b Scrap00
|
||||||
STZ.b Scrap01
|
STZ.b Scrap01
|
||||||
LDX.b Scrap00
|
LDX.b Scrap00
|
||||||
LDY.w #$0000
|
LDY.w #$0000
|
||||||
TYA
|
TYA
|
||||||
|
|
||||||
JML.l InitializeSaveFile_build_checksum
|
JML.l InitializeSaveFile_checksum_done
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
OnFileLoad:
|
OnFileLoad:
|
||||||
REP #$10 ; set 16 bit index registers
|
REP #$10 ; set 16 bit index registers
|
||||||
|
|||||||
@@ -31,26 +31,24 @@ HeartContainerGet:
|
|||||||
DrawHeartPieceGFX:
|
DrawHeartPieceGFX:
|
||||||
PHP
|
PHP
|
||||||
JSL.l Sprite_IsOnscreen : BCC .offscreen
|
JSL.l Sprite_IsOnscreen : BCC .offscreen
|
||||||
|
|
||||||
PHA : PHY
|
PHA : PHY
|
||||||
LDA.l RedrawFlag : BEQ .skipInit ; skip init if already ready
|
LDA.l RedrawFlag : BEQ .skipInit ; skip init if already ready
|
||||||
JSL.l HeartPieceSpritePrep
|
JSL.l HeartPieceSpritePrep
|
||||||
JMP .done ; don't draw on the init frame
|
JMP .done ; don't draw on the init frame
|
||||||
|
|
||||||
.skipInit
|
.skipInit
|
||||||
LDA.w SpriteItemType, X ; Retrieve stored item type
|
LDA.w SpriteItemType, X ; Retrieve stored item type
|
||||||
|
|
||||||
.skipLoad
|
.skipLoad
|
||||||
|
PHA : PHX
|
||||||
PHA
|
TAX
|
||||||
JSL.l IsNarrowSprite : BCC +
|
LDA.l SpriteProperties_standing_width,X : BNE +
|
||||||
LDA.w SpriteControl, X : ORA.b #$20 : STA.w SpriteControl, X
|
LDA.w SpriteControl, X : ORA.b #$20 : STA.w SpriteControl, X
|
||||||
|
PLX : PLA
|
||||||
|
BRA .draw
|
||||||
+
|
+
|
||||||
PLA
|
PLX : PLA
|
||||||
|
.draw
|
||||||
JSL.l DrawDynamicTile
|
JSL.l DrawDynamicTile
|
||||||
JSL.l Sprite_DrawShadowLong
|
JSL.l Sprite_DrawShadowLong
|
||||||
|
|
||||||
.done
|
.done
|
||||||
PLY : PLA
|
PLY : PLA
|
||||||
.offscreen
|
.offscreen
|
||||||
@@ -109,9 +107,10 @@ HeartPieceSpritePrep:
|
|||||||
LDA.b LinkState : CMP.b #$14 : BEQ .skip ; skip if we're mid-mirror
|
LDA.b LinkState : CMP.b #$14 : BEQ .skip ; skip if we're mid-mirror
|
||||||
|
|
||||||
LDA.b #$00 : STA.l RedrawFlag
|
LDA.b #$00 : STA.l RedrawFlag
|
||||||
JSL.l LoadHeartPieceRoomValue ; load item type
|
JSL.l LoadHeartPieceRoomValue
|
||||||
STA.w SpriteItemType, X ; Store item type
|
JSL.l ResolveLootIDLong
|
||||||
JSL.l PrepDynamicTile
|
STA.w SpriteItemType, X
|
||||||
|
JSL.l PrepDynamicTile_loot_resolved
|
||||||
|
|
||||||
.skip
|
.skip
|
||||||
PLA
|
PLA
|
||||||
@@ -122,8 +121,9 @@ HeartContainerSpritePrep:
|
|||||||
|
|
||||||
LDA.b #$00 : STA.l RedrawFlag
|
LDA.b #$00 : STA.l RedrawFlag
|
||||||
JSL.l LoadHeartContainerRoomValue ; load item type
|
JSL.l LoadHeartContainerRoomValue ; load item type
|
||||||
|
JSL.l ResolveLootIDLong
|
||||||
STA.w SpriteItemType, X ; Store item type
|
STA.w SpriteItemType, X ; Store item type
|
||||||
JSL.l PrepDynamicTile
|
JSL.l PrepDynamicTile_loot_resolved
|
||||||
|
|
||||||
PLA
|
PLA
|
||||||
RTL
|
RTL
|
||||||
|
|||||||
@@ -887,7 +887,6 @@ JSL GetAnimatedSpriteBufferPointer : NOP
|
|||||||
|
|
||||||
org $8799F7 ; 399F7 - Bank07.asm:4107 (JSL AddReceivedItem)
|
org $8799F7 ; 399F7 - Bank07.asm:4107 (JSL AddReceivedItem)
|
||||||
JSL AddReceivedItemLong
|
JSL AddReceivedItemLong
|
||||||
;JSL AddReceivedItemExpanded
|
|
||||||
|
|
||||||
org $898611 ; 48611 - ancilla_init.asm:720 (LDA .item_target_addr+0, X)
|
org $898611 ; 48611 - ancilla_init.asm:720 (LDA .item_target_addr+0, X)
|
||||||
LDA.w ItemReceipts_target+0, X
|
LDA.w ItemReceipts_target+0, X
|
||||||
@@ -915,7 +914,7 @@ org $89885B ; 4885B - ancilla_init.asm:1139 (LDA .x_offsets, X) - I think the di
|
|||||||
LDA.w ItemReceipts_offset_x, Y
|
LDA.w ItemReceipts_offset_x, Y
|
||||||
|
|
||||||
org $8988B7 ; 488B7 - ancilla_init.asm:1199 (LDA .wide_item_flag, Y)
|
org $8988B7 ; 488B7 - ancilla_init.asm:1199 (LDA .wide_item_flag, Y)
|
||||||
LDA.w ItemReceipts_width, Y
|
LDA.w SpriteProperties_chest_width, Y
|
||||||
|
|
||||||
org $8988EF ; 488EF - ancilla_init.asm:1248 (LDA $836C, Y)
|
org $8988EF ; 488EF - ancilla_init.asm:1248 (LDA $836C, Y)
|
||||||
LDA.w ItemReceipts_offset_y, Y
|
LDA.w ItemReceipts_offset_y, Y
|
||||||
@@ -926,7 +925,7 @@ org $88C6C8 ; 446C8 - ancilla_receive_item.asm:538 (LDA AddReceiveItem.propertie
|
|||||||
JSL CheckReceivedItemPropertiesBeforeLoad
|
JSL CheckReceivedItemPropertiesBeforeLoad
|
||||||
|
|
||||||
org $88C6DE ; 446DE - ancilla_receive_item.asm:550 (LDA .wide_item_flag, X)
|
org $88C6DE ; 446DE - ancilla_receive_item.asm:550 (LDA .wide_item_flag, X)
|
||||||
LDA.l ItemReceipts_width, X
|
LDA.l SpriteProperties_chest_width, X
|
||||||
|
|
||||||
org $88C6F9 ; 446F9 - ancilla_receive_item.asm:570 (LDA AddReceiveItem.properties, X)
|
org $88C6F9 ; 446F9 - ancilla_receive_item.asm:570 (LDA AddReceiveItem.properties, X)
|
||||||
JSL CheckReceivedItemPropertiesBeforeLoad
|
JSL CheckReceivedItemPropertiesBeforeLoad
|
||||||
@@ -938,7 +937,7 @@ org $8985ED ; 485ED - ancilla_init.asm:693 (LDA $02E9 : CMP.b #$01)
|
|||||||
JSL AddReceivedItemExpandedGetItem : NOP
|
JSL AddReceivedItemExpandedGetItem : NOP
|
||||||
|
|
||||||
org $87B57D ; 3B57D - Bank07.asm:8527 (LDA Link_ReceiveItemAlternates, Y : STA $03)
|
org $87B57D ; 3B57D - Bank07.asm:8527 (LDA Link_ReceiveItemAlternates, Y : STA $03)
|
||||||
JSL Link_ReceiveItemAlternatesExpanded_loadAlternate : NOP
|
BRA Link_PerformOpenChest_no_replacement
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $89892E ; 4892E - ancilla_init.asm:1307 (LDA BottleList, X)
|
org $89892E ; 4892E - ancilla_init.asm:1307 (LDA BottleList, X)
|
||||||
LDA.w BottleListExpanded, X
|
LDA.w BottleListExpanded, X
|
||||||
|
|||||||
276
inventory.asm
276
inventory.asm
@@ -265,280 +265,6 @@ IncrementByOne:
|
|||||||
.skip
|
.skip
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
; Properties: - - w o a y s t
|
|
||||||
; t = Count for total item counter | s = Count for total in shops
|
|
||||||
; y = Y item | a = A item
|
|
||||||
; o = Bomb item | w = Bow item
|
|
||||||
InventoryTable:
|
|
||||||
.properties : fillbyte $00 : fill 256 ; See above
|
|
||||||
.stamp : fillword $0000 : fill 256*2 ; Address to stamp with 32-bit time (bank $7E)
|
|
||||||
.stat : fillword $0000 : fill 256*2 ; Address to increment by one (bank $7E)
|
|
||||||
|
|
||||||
macro InventoryItem(id, props, stamp, stat)
|
|
||||||
pushpc
|
|
||||||
org InventoryTable_properties+<id> : db <props>
|
|
||||||
org InventoryTable_stamp+(<id>*2) : dw <stamp>
|
|
||||||
org InventoryTable_stat+(<id>*2) : dw <stat>
|
|
||||||
pullpc
|
|
||||||
endmacro
|
|
||||||
|
|
||||||
%InventoryItem($00, $01, SwordTime, $0000) ; 00 - Fighter sword & Shield
|
|
||||||
%InventoryItem($01, $01, SwordTime, $0000) ; 01 - Master sword
|
|
||||||
%InventoryItem($02, $01, SwordTime, $0000) ; 02 - Tempered sword
|
|
||||||
%InventoryItem($03, $01, SwordTime, $0000) ; 03 - Butter sword
|
|
||||||
%InventoryItem($04, $01, $0000, $0000) ; 04 - Fighter shield
|
|
||||||
%InventoryItem($05, $01, $0000, $0000) ; 05 - Fire shield
|
|
||||||
%InventoryItem($06, $01, $0000, $0000) ; 06 - Mirror shield
|
|
||||||
%InventoryItem($07, $05, $0000, $0000) ; 07 - Fire rod
|
|
||||||
%InventoryItem($08, $05, $0000, $0000) ; 08 - Ice rod
|
|
||||||
%InventoryItem($09, $05, $0000, $0000) ; 09 - Hammer
|
|
||||||
%InventoryItem($0A, $05, $0000, $0000) ; 0A - Hookshot
|
|
||||||
%InventoryItem($0B, $25, $0000, $0000) ; 0B - Bow
|
|
||||||
%InventoryItem($0C, $05, $0000, $0000) ; 0C - Blue Boomerang
|
|
||||||
%InventoryItem($0D, $05, $0000, $0000) ; 0D - Powder
|
|
||||||
%InventoryItem($0E, $01, $0000, $0000) ; 0E - Bottle refill (bee)
|
|
||||||
%InventoryItem($0F, $05, $0000, $0000) ; 0F - Bombos
|
|
||||||
%InventoryItem($10, $05, $0000, $0000) ; 10 - Ether
|
|
||||||
%InventoryItem($11, $05, $0000, $0000) ; 11 - Quake
|
|
||||||
%InventoryItem($12, $05, $0000, $0000) ; 12 - Lamp
|
|
||||||
%InventoryItem($13, $05, $0000, $0000) ; 13 - Shovel
|
|
||||||
%InventoryItem($14, $05, FluteTime, $0000) ; 14 - Flute (inactive)
|
|
||||||
%InventoryItem($15, $05, $0000, $0000) ; 15 - Somaria
|
|
||||||
%InventoryItem($16, $05, $0000, $0000) ; 16 - Bottle
|
|
||||||
%InventoryItem($17, $01, $0000, HeartPieceCounter) ; 17 - Heart piece
|
|
||||||
%InventoryItem($18, $05, $0000, $0000) ; 18 - Byrna
|
|
||||||
%InventoryItem($19, $05, $0000, $0000) ; 19 - Cape
|
|
||||||
%InventoryItem($1A, $05, MirrorTime, $0000) ; 1A - Mirror
|
|
||||||
%InventoryItem($1B, $09, $0000, $0000) ; 1B - Glove
|
|
||||||
%InventoryItem($1C, $09, $0000, $0000) ; 1C - Mitts
|
|
||||||
%InventoryItem($1D, $05, $0000, $0000) ; 1D - Book
|
|
||||||
%InventoryItem($1E, $09, $0000, $0000) ; 1E - Flippers
|
|
||||||
%InventoryItem($1F, $01, $0000, $0000) ; 1F - Pearl
|
|
||||||
%InventoryItem($20, $00, $0000, CrystalCounter) ; 20 - Crystal
|
|
||||||
%InventoryItem($21, $05, $0000, $0000) ; 21 - Net
|
|
||||||
%InventoryItem($22, $01, $0000, $0000) ; 22 - Blue mail
|
|
||||||
%InventoryItem($23, $01, $0000, $0000) ; 23 - Red mail
|
|
||||||
%InventoryItem($24, $01, $0000, SmallKeyCounter) ; 24 - Small key
|
|
||||||
%InventoryItem($25, $01, $0000, $0000) ; 25 - Compass
|
|
||||||
%InventoryItem($26, $00, $0000, $0000) ; 26 - Heart container from 4/4
|
|
||||||
%InventoryItem($27, $15, $0000, $0000) ; 27 - Bomb
|
|
||||||
%InventoryItem($28, $15, $0000, $0000) ; 28 - 3 bombs
|
|
||||||
%InventoryItem($29, $05, $0000, $0000) ; 29 - Mushroom
|
|
||||||
%InventoryItem($2A, $05, $0000, $0000) ; 2A - Red boomerang
|
|
||||||
%InventoryItem($2B, $05, $0000, $0000) ; 2B - Full bottle (red)
|
|
||||||
%InventoryItem($2C, $05, $0000, $0000) ; 2C - Full bottle (green)
|
|
||||||
%InventoryItem($2D, $05, $0000, $0000) ; 2D - Full bottle (blue)
|
|
||||||
%InventoryItem($2E, $00, $0000, $0000) ; 2E - Potion refill (red)
|
|
||||||
%InventoryItem($2F, $00, $0000, $0000) ; 2F - Potion refill (green)
|
|
||||||
%InventoryItem($30, $00, $0000, $0000) ; 30 - Potion refill (blue)
|
|
||||||
%InventoryItem($31, $11, $0000, $0000) ; 31 - 10 bombs
|
|
||||||
%InventoryItem($32, $01, $0000, $0000) ; 32 - Big key
|
|
||||||
%InventoryItem($33, $01, $0000, $0000) ; 33 - Map
|
|
||||||
%InventoryItem($34, $01, $0000, $0000) ; 34 - 1 rupee
|
|
||||||
%InventoryItem($35, $01, $0000, $0000) ; 35 - 5 rupees
|
|
||||||
%InventoryItem($36, $01, $0000, $0000) ; 36 - 20 rupees
|
|
||||||
%InventoryItem($37, $00, $0000, PendantCounter) ; 37 - Green pendant
|
|
||||||
%InventoryItem($38, $00, $0000, PendantCounter) ; 38 - Blue pendant
|
|
||||||
%InventoryItem($39, $00, $0000, PendantCounter) ; 39 - Red pendant
|
|
||||||
%InventoryItem($3A, $25, $0000, $0000) ; 3A - Bow And Arrows
|
|
||||||
%InventoryItem($3B, $25, $0000, $0000) ; 3B - Silver Bow
|
|
||||||
%InventoryItem($3C, $05, $0000, $0000) ; 3C - Full bottle (bee)
|
|
||||||
%InventoryItem($3D, $05, $0000, $0000) ; 3D - Full bottle (fairy)
|
|
||||||
%InventoryItem($3E, $01, $0000, HeartContainerCounter) ; 3E - Boss heart
|
|
||||||
%InventoryItem($3F, $01, $0000, HeartContainerCounter) ; 3F - Sanc heart
|
|
||||||
%InventoryItem($40, $01, $0000, $0000) ; 40 - 100 rupees
|
|
||||||
%InventoryItem($41, $01, $0000, $0000) ; 41 - 50 rupees
|
|
||||||
%InventoryItem($42, $01, $0000, $0000) ; 42 - Heart
|
|
||||||
%InventoryItem($43, $01, $0000, $0000) ; 43 - Arrow
|
|
||||||
%InventoryItem($44, $01, $0000, $0000) ; 44 - 10 arrows
|
|
||||||
%InventoryItem($45, $01, $0000, $0000) ; 45 - Small magic
|
|
||||||
%InventoryItem($46, $01, $0000, $0000) ; 46 - 300 rupees
|
|
||||||
%InventoryItem($47, $01, $0000, $0000) ; 47 - 20 rupees green
|
|
||||||
%InventoryItem($48, $05, $0000, $0000) ; 48 - Full bottle (good bee)
|
|
||||||
%InventoryItem($49, $01, $0000, $0000) ; 49 - Tossed fighter sword
|
|
||||||
%InventoryItem($4A, $05, FluteTime, $0000) ; 4A - Active Flute
|
|
||||||
%InventoryItem($4B, $09, BootsTime, $0000) ; 4B - Boots
|
|
||||||
%InventoryItem($4C, $15, $0000, CapacityUpgrades) ; 4C - Bomb capacity (50)
|
|
||||||
%InventoryItem($4D, $01, $0000, CapacityUpgrades) ; 4D - Arrow capacity (70)
|
|
||||||
%InventoryItem($4E, $01, $0000, CapacityUpgrades) ; 4E - 1/2 magic
|
|
||||||
%InventoryItem($4F, $01, $0000, CapacityUpgrades) ; 4F - 1/4 magic
|
|
||||||
%InventoryItem($50, $01, SwordTime, $0000) ; 50 - Master Sword (safe)
|
|
||||||
%InventoryItem($51, $15, $0000, CapacityUpgrades) ; 51 - Bomb capacity (+5)
|
|
||||||
%InventoryItem($52, $15, $0000, CapacityUpgrades) ; 52 - Bomb capacity (+10)
|
|
||||||
%InventoryItem($53, $01, $0000, CapacityUpgrades) ; 53 - Arrow capacity (+5)
|
|
||||||
%InventoryItem($54, $01, $0000, CapacityUpgrades) ; 54 - Arrow capacity (+10)
|
|
||||||
%InventoryItem($55, $01, $0000, $0000) ; 55 - Programmable item 1
|
|
||||||
%InventoryItem($56, $01, $0000, $0000) ; 56 - Programmable item 2
|
|
||||||
%InventoryItem($57, $01, $0000, $0000) ; 57 - Programmable item 3
|
|
||||||
%InventoryItem($58, $01, $0000, $0000) ; 58 - Upgrade-only Silver Arrows
|
|
||||||
%InventoryItem($59, $01, $0000, $0000) ; 59 - Rupoor
|
|
||||||
%InventoryItem($5A, $01, $0000, $0000) ; 5A - Nothing
|
|
||||||
%InventoryItem($5B, $01, $0000, $0000) ; 5B - Red clock
|
|
||||||
%InventoryItem($5C, $01, $0000, $0000) ; 5C - Blue clock
|
|
||||||
%InventoryItem($5D, $01, $0000, $0000) ; 5D - Green clock
|
|
||||||
%InventoryItem($5E, $01, $0000, $0000) ; 5E - Progressive sword
|
|
||||||
%InventoryItem($5F, $01, $0000, $0000) ; 5F - Progressive shield
|
|
||||||
%InventoryItem($60, $01, $0000, $0000) ; 60 - Progressive armor
|
|
||||||
%InventoryItem($61, $09, $0000, $0000) ; 61 - Progressive glove
|
|
||||||
%InventoryItem($62, $01, $0000, $0000) ; 62 - RNG pool item (single)
|
|
||||||
%InventoryItem($63, $01, $0000, $0000) ; 63 - RNG pool item (multi)
|
|
||||||
%InventoryItem($64, $25, $0000, $0000) ; 64 - Progressive bow
|
|
||||||
%InventoryItem($65, $25, $0000, $0000) ; 65 - Progressive bow
|
|
||||||
%InventoryItem($66, $01, $0000, $0000) ; 66 -
|
|
||||||
%InventoryItem($67, $01, $0000, $0000) ; 67 -
|
|
||||||
%InventoryItem($68, $01, $0000, $0000) ; 68 -
|
|
||||||
%InventoryItem($69, $01, $0000, $0000) ; 69 -
|
|
||||||
%InventoryItem($6A, $01, $0000, $0000) ; 6A - Triforce
|
|
||||||
%InventoryItem($6B, $01, $0000, $0000) ; 6B - Power star
|
|
||||||
%InventoryItem($6C, $01, $0000, $0000) ; 6C - Triforce Piece
|
|
||||||
%InventoryItem($6D, $01, $0000, $0000) ; 6D - Server request item
|
|
||||||
%InventoryItem($6E, $01, $0000, $0000) ; 6E - Server request item (dungeon drop)
|
|
||||||
%InventoryItem($6F, $01, $0000, $0000) ; 6F -
|
|
||||||
%InventoryItem($70, $01, $0000, $0000) ; 70 - Map of Light World
|
|
||||||
%InventoryItem($71, $01, $0000, $0000) ; 71 - Map of Dark World
|
|
||||||
%InventoryItem($72, $01, $0000, $0000) ; 72 - Map of Ganon's Tower
|
|
||||||
%InventoryItem($73, $01, $0000, $0000) ; 73 - Map of Turtle Rock
|
|
||||||
%InventoryItem($74, $01, $0000, $0000) ; 74 - Map of Thieves' Town
|
|
||||||
%InventoryItem($75, $01, $0000, $0000) ; 75 - Map of Tower of Hera
|
|
||||||
%InventoryItem($76, $01, $0000, $0000) ; 76 - Map of Ice Palace
|
|
||||||
%InventoryItem($77, $01, $0000, $0000) ; 77 - Map of Skull Woods
|
|
||||||
%InventoryItem($78, $01, $0000, $0000) ; 78 - Map of Misery Mire
|
|
||||||
%InventoryItem($79, $01, $0000, $0000) ; 79 - Map of Dark Palace
|
|
||||||
%InventoryItem($7A, $01, $0000, $0000) ; 7A - Map of Swamp Palace
|
|
||||||
%InventoryItem($7B, $01, $0000, $0000) ; 7B - Map of Agahnim's Tower
|
|
||||||
%InventoryItem($7C, $01, $0000, $0000) ; 7C - Map of Desert Palace
|
|
||||||
%InventoryItem($7D, $01, $0000, $0000) ; 7D - Map of Eastern Palace
|
|
||||||
%InventoryItem($7E, $01, $0000, $0000) ; 7E - Map of Hyrule Castle
|
|
||||||
%InventoryItem($7F, $01, $0000, $0000) ; 7F - Map of Sewers
|
|
||||||
%InventoryItem($80, $01, $0000, $0000) ; 80 - Compass of Light World
|
|
||||||
%InventoryItem($81, $01, $0000, $0000) ; 81 - Compass of Dark World
|
|
||||||
%InventoryItem($82, $01, $0000, $0000) ; 82 - Compass of Ganon's Tower
|
|
||||||
%InventoryItem($83, $01, $0000, $0000) ; 83 - Compass of Turtle Rock
|
|
||||||
%InventoryItem($84, $01, $0000, $0000) ; 84 - Compass of Thieves' Town
|
|
||||||
%InventoryItem($85, $01, $0000, $0000) ; 85 - Compass of Tower of Hera
|
|
||||||
%InventoryItem($86, $01, $0000, $0000) ; 86 - Compass of Ice Palace
|
|
||||||
%InventoryItem($87, $01, $0000, $0000) ; 87 - Compass of Skull Woods
|
|
||||||
%InventoryItem($88, $01, $0000, $0000) ; 88 - Compass of Misery Mire
|
|
||||||
%InventoryItem($89, $01, $0000, $0000) ; 89 - Compass of Dark Palace
|
|
||||||
%InventoryItem($8A, $01, $0000, $0000) ; 8A - Compass of4Swamp Palace
|
|
||||||
%InventoryItem($8B, $01, $0000, $0000) ; 8B - Compass of Agahnim's Tower
|
|
||||||
%InventoryItem($8C, $01, $0000, $0000) ; 8C - Compass of Desert Palace
|
|
||||||
%InventoryItem($8D, $01, $0000, $0000) ; 8D - Compass of Eastern Palace
|
|
||||||
%InventoryItem($8E, $01, $0000, $0000) ; 8E - Compass of Hyrule Castle
|
|
||||||
%InventoryItem($8F, $01, $0000, $0000) ; 8F - Compass of Sewers
|
|
||||||
%InventoryItem($90, $01, $0000, $0000) ; 90 - Skull key
|
|
||||||
%InventoryItem($91, $01, $0000, $0000) ; 91 - Reserved
|
|
||||||
%InventoryItem($92, $01, $0000, $0000) ; 92 - Big key of Ganon's Tower
|
|
||||||
%InventoryItem($93, $01, $0000, $0000) ; 93 - Big key of Turtle Rock
|
|
||||||
%InventoryItem($94, $01, $0000, $0000) ; 94 - Big key of Thieves' Town
|
|
||||||
%InventoryItem($95, $01, $0000, $0000) ; 95 - Big key of Tower of Hera
|
|
||||||
%InventoryItem($96, $01, $0000, $0000) ; 96 - Big key of Ice Palace
|
|
||||||
%InventoryItem($97, $01, $0000, $0000) ; 97 - Big key of Skull Woods
|
|
||||||
%InventoryItem($98, $01, $0000, $0000) ; 98 - Big key of Misery Mire
|
|
||||||
%InventoryItem($99, $01, $0000, $0000) ; 99 - Big key of Dark Palace
|
|
||||||
%InventoryItem($9A, $01, $0000, $0000) ; 9A - Big key of Swamp Palace
|
|
||||||
%InventoryItem($9B, $01, $0000, $0000) ; 9B - Big key of Agahnim's Tower
|
|
||||||
%InventoryItem($9C, $01, $0000, $0000) ; 9C - Big key of Desert Palace
|
|
||||||
%InventoryItem($9D, $01, $0000, $0000) ; 9D - Big key of Eastern Palace
|
|
||||||
%InventoryItem($9E, $01, $0000, $0000) ; 9E - Big key of Hyrule Castle
|
|
||||||
%InventoryItem($9F, $01, $0000, $0000) ; 9F - Big key of Sewers
|
|
||||||
%InventoryItem($A0, $01, $0000, SmallKeyCounter) ; A0 - Small key of Sewers
|
|
||||||
%InventoryItem($A1, $01, $0000, SmallKeyCounter) ; A1 - Small key of Hyrule Castle
|
|
||||||
%InventoryItem($A2, $01, $0000, SmallKeyCounter) ; A2 - Small key of Eastern Palace
|
|
||||||
%InventoryItem($A3, $01, $0000, SmallKeyCounter) ; A3 - Small key of Desert Palace
|
|
||||||
%InventoryItem($A4, $01, $0000, SmallKeyCounter) ; A4 - Small key of Agahnim's Tower
|
|
||||||
%InventoryItem($A5, $01, $0000, SmallKeyCounter) ; A5 - Small key of Swamp Palace
|
|
||||||
%InventoryItem($A6, $01, $0000, SmallKeyCounter) ; A6 - Small key of Dark Palace
|
|
||||||
%InventoryItem($A7, $01, $0000, SmallKeyCounter) ; A7 - Small key of Misery Mire
|
|
||||||
%InventoryItem($A8, $01, $0000, SmallKeyCounter) ; A8 - Small key of Skull Woods
|
|
||||||
%InventoryItem($A9, $01, $0000, SmallKeyCounter) ; A9 - Small key of Ice Palace
|
|
||||||
%InventoryItem($AA, $01, $0000, SmallKeyCounter) ; AA - Small key of Tower of Hera
|
|
||||||
%InventoryItem($AB, $01, $0000, SmallKeyCounter) ; AB - Small key of Thieves' Town
|
|
||||||
%InventoryItem($AC, $01, $0000, SmallKeyCounter) ; AC - Small key of Turtle Rock
|
|
||||||
%InventoryItem($AD, $01, $0000, SmallKeyCounter) ; AD - Small key of Ganon's Tower
|
|
||||||
%InventoryItem($AE, $01, $0000, $0000) ; AE - Reserved
|
|
||||||
%InventoryItem($AF, $01, $0000, SmallKeyCounter) ; AF - Generic small key
|
|
||||||
%InventoryItem($B0, $01, $0000, $0000) ; B0 -
|
|
||||||
%InventoryItem($B1, $01, $0000, $0000) ; B1 -
|
|
||||||
%InventoryItem($B2, $01, $0000, $0000) ; B2 -
|
|
||||||
%InventoryItem($B3, $01, $0000, $0000) ; B3 -
|
|
||||||
%InventoryItem($B4, $01, $0000, $0000) ; B4 -
|
|
||||||
%InventoryItem($B5, $01, $0000, $0000) ; B5 -
|
|
||||||
%InventoryItem($B6, $01, $0000, $0000) ; B6 -
|
|
||||||
%InventoryItem($B7, $01, $0000, $0000) ; B7 -
|
|
||||||
%InventoryItem($B8, $01, $0000, $0000) ; B8 -
|
|
||||||
%InventoryItem($B9, $01, $0000, $0000) ; B9 -
|
|
||||||
%InventoryItem($BA, $01, $0000, $0000) ; BA -
|
|
||||||
%InventoryItem($BB, $01, $0000, $0000) ; BB -
|
|
||||||
%InventoryItem($BC, $01, $0000, $0000) ; BC -
|
|
||||||
%InventoryItem($BD, $01, $0000, $0000) ; BD -
|
|
||||||
%InventoryItem($BE, $01, $0000, $0000) ; BE -
|
|
||||||
%InventoryItem($BF, $01, $0000, $0000) ; BF -
|
|
||||||
%InventoryItem($C0, $01, $0000, $0000) ; C0 -
|
|
||||||
%InventoryItem($C1, $01, $0000, $0000) ; C1 -
|
|
||||||
%InventoryItem($C2, $01, $0000, $0000) ; C2 -
|
|
||||||
%InventoryItem($C3, $01, $0000, $0000) ; C3 -
|
|
||||||
%InventoryItem($C4, $01, $0000, $0000) ; C4 -
|
|
||||||
%InventoryItem($C5, $01, $0000, $0000) ; C5 -
|
|
||||||
%InventoryItem($C6, $01, $0000, $0000) ; C6 -
|
|
||||||
%InventoryItem($C7, $01, $0000, $0000) ; C7 -
|
|
||||||
%InventoryItem($C8, $01, $0000, $0000) ; C8 -
|
|
||||||
%InventoryItem($C9, $01, $0000, $0000) ; C9 -
|
|
||||||
%InventoryItem($CA, $01, $0000, $0000) ; CA -
|
|
||||||
%InventoryItem($CB, $01, $0000, $0000) ; CB -
|
|
||||||
%InventoryItem($CC, $01, $0000, $0000) ; CC -
|
|
||||||
%InventoryItem($CD, $01, $0000, $0000) ; CD -
|
|
||||||
%InventoryItem($CE, $01, $0000, $0000) ; CE -
|
|
||||||
%InventoryItem($CF, $01, $0000, $0000) ; CF -
|
|
||||||
%InventoryItem($D0, $01, $0000, $0000) ; D0 -
|
|
||||||
%InventoryItem($D1, $01, $0000, $0000) ; D1 -
|
|
||||||
%InventoryItem($D2, $01, $0000, $0000) ; D2 -
|
|
||||||
%InventoryItem($D3, $01, $0000, $0000) ; D3 -
|
|
||||||
%InventoryItem($D4, $01, $0000, $0000) ; D4 -
|
|
||||||
%InventoryItem($D5, $01, $0000, $0000) ; D5 -
|
|
||||||
%InventoryItem($D6, $01, $0000, $0000) ; D6 -
|
|
||||||
%InventoryItem($D7, $01, $0000, $0000) ; D7 -
|
|
||||||
%InventoryItem($D8, $01, $0000, $0000) ; D8 -
|
|
||||||
%InventoryItem($D9, $01, $0000, $0000) ; D9 -
|
|
||||||
%InventoryItem($DA, $01, $0000, $0000) ; DA -
|
|
||||||
%InventoryItem($DB, $01, $0000, $0000) ; DB -
|
|
||||||
%InventoryItem($DC, $01, $0000, $0000) ; DC -
|
|
||||||
%InventoryItem($DD, $01, $0000, $0000) ; DD -
|
|
||||||
%InventoryItem($DE, $01, $0000, $0000) ; DE -
|
|
||||||
%InventoryItem($DF, $01, $0000, $0000) ; DF -
|
|
||||||
%InventoryItem($E0, $01, $0000, $0000) ; E0 -
|
|
||||||
%InventoryItem($E1, $01, $0000, $0000) ; E1 -
|
|
||||||
%InventoryItem($E2, $01, $0000, $0000) ; E2 -
|
|
||||||
%InventoryItem($E3, $01, $0000, $0000) ; E3 -
|
|
||||||
%InventoryItem($E4, $01, $0000, $0000) ; E4 -
|
|
||||||
%InventoryItem($E5, $01, $0000, $0000) ; E5 -
|
|
||||||
%InventoryItem($E6, $01, $0000, $0000) ; E6 -
|
|
||||||
%InventoryItem($E7, $01, $0000, $0000) ; E7 -
|
|
||||||
%InventoryItem($E8, $01, $0000, $0000) ; E8 -
|
|
||||||
%InventoryItem($E9, $01, $0000, $0000) ; E9 -
|
|
||||||
%InventoryItem($EA, $01, $0000, $0000) ; EA -
|
|
||||||
%InventoryItem($EB, $01, $0000, $0000) ; EB -
|
|
||||||
%InventoryItem($EC, $01, $0000, $0000) ; EC -
|
|
||||||
%InventoryItem($ED, $01, $0000, $0000) ; ED -
|
|
||||||
%InventoryItem($EE, $01, $0000, $0000) ; EE -
|
|
||||||
%InventoryItem($EF, $01, $0000, $0000) ; EF -
|
|
||||||
%InventoryItem($F0, $01, $0000, $0000) ; F0 -
|
|
||||||
%InventoryItem($F1, $01, $0000, $0000) ; F1 -
|
|
||||||
%InventoryItem($F2, $01, $0000, $0000) ; F2 -
|
|
||||||
%InventoryItem($F3, $01, $0000, $0000) ; F3 -
|
|
||||||
%InventoryItem($F4, $01, $0000, $0000) ; F4 -
|
|
||||||
%InventoryItem($F5, $01, $0000, $0000) ; F5 -
|
|
||||||
%InventoryItem($F6, $01, $0000, $0000) ; F6 -
|
|
||||||
%InventoryItem($F7, $01, $0000, $0000) ; F7 -
|
|
||||||
%InventoryItem($F8, $01, $0000, $0000) ; F8 -
|
|
||||||
%InventoryItem($F9, $01, $0000, $0000) ; F9 -
|
|
||||||
%InventoryItem($FA, $01, $0000, $0000) ; FA -
|
|
||||||
%InventoryItem($FB, $01, $0000, $0000) ; FB -
|
|
||||||
%InventoryItem($FC, $01, $0000, $0000) ; FC -
|
|
||||||
%InventoryItem($FD, $01, $0000, $0000) ; FD -
|
|
||||||
%InventoryItem($FE, $01, $0000, $0000) ; FE - Server request (async)
|
|
||||||
%InventoryItem($FF, $01, $0000, $0000) ; FF -
|
|
||||||
|
|
||||||
IncrementBossSword:
|
IncrementBossSword:
|
||||||
PHX
|
PHX
|
||||||
LDA.l SwordEquipment : CMP.b #$FF : BNE +
|
LDA.l SwordEquipment : CMP.b #$FF : BNE +
|
||||||
@@ -741,7 +467,7 @@ ClearOWKeys:
|
|||||||
|
|
||||||
JSL.l TurtleRockEntranceFix
|
JSL.l TurtleRockEntranceFix
|
||||||
JSL.l FakeWorldFix
|
JSL.l FakeWorldFix
|
||||||
JSR.w FixBunnyOnExitToLightWorld
|
JSL.l FixBunnyOnExitToLightWorld
|
||||||
LDA.l GenericKeys : BEQ +
|
LDA.l GenericKeys : BEQ +
|
||||||
PLA : LDA.l CurrentGenericKeys : STA.l CurrentSmallKeys
|
PLA : LDA.l CurrentGenericKeys : STA.l CurrentSmallKeys
|
||||||
RTL
|
RTL
|
||||||
|
|||||||
1371
itemdatatables.asm
Normal file
1371
itemdatatables.asm
Normal file
File diff suppressed because it is too large
Load Diff
421
newitems.asm
421
newitems.asm
@@ -1,47 +1,6 @@
|
|||||||
;================================================================================
|
;================================================================================
|
||||||
; New Item Handlers
|
; New Item Handlers
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; REMEMBER TO UPDATE THE TABLES IN UTILITIES.ASM!
|
|
||||||
;--------------------------------------------------------------------------------
|
|
||||||
; #$4C - Bomb Capacity (50)
|
|
||||||
; #$4D - Arrow Capacity (70)
|
|
||||||
; #$4E - 1/2 Magic
|
|
||||||
; #$4F - 1/4 Magic
|
|
||||||
; #$50 - Safe Master Sword
|
|
||||||
; #$51 - Bomb Capacity (+5)
|
|
||||||
; #$52 - Bomb Capacity (+10)
|
|
||||||
; #$53 - Arrow Capacity (+5)
|
|
||||||
; #$54 - Arrow Capacity (+10)
|
|
||||||
; #$55 - Programmable Item 1
|
|
||||||
; #$56 - Programmable Item 2
|
|
||||||
; #$57 - Programmable Item 3
|
|
||||||
; #$58 - Upgrade-Only Silver Arrows
|
|
||||||
; #$59 - Rupoor
|
|
||||||
; #$5A - Null Item
|
|
||||||
; #$5B - Red Clock
|
|
||||||
; #$5C - Blue Clock
|
|
||||||
; #$5D - Green Clock
|
|
||||||
; #$5E - Progressive Sword
|
|
||||||
; #$5F - Progressive Shield
|
|
||||||
; #$60 - Progressive Armor
|
|
||||||
; #$61 - Progressive Lifting Glove
|
|
||||||
; #$62 - RNG Pool Item (Single)
|
|
||||||
; #$63 - RNG Pool Item (Multi)
|
|
||||||
; #$64 - Progressive Bow
|
|
||||||
; #$65 - Progressive Bow
|
|
||||||
; #$6A - Goal Item (Single/Triforce)
|
|
||||||
; #$6B - Goal Item (Multi/Power Star)
|
|
||||||
; #$6C - Goal Item (Multi/Triforce Piece)
|
|
||||||
; #$6D - Server Request F0 (Hearts / Powder / Mushroom / Bonkable)
|
|
||||||
; #$6E - Server Request F1 (NPC)
|
|
||||||
; #$6F - Server Request F2 (Tablets / Pedestal)
|
|
||||||
; #$70 - Maps
|
|
||||||
; #$80 - Compasses
|
|
||||||
; #$90 - Big Keys
|
|
||||||
; #$A0 - Small Keys
|
|
||||||
; #$B0-B6 - Crystals
|
|
||||||
; #$FE - Server Request (Asynchronous Chest)
|
|
||||||
; #$FF - Null Chest
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; Service Indexes
|
; Service Indexes
|
||||||
; 0x00 - 0x04 - chests
|
; 0x00 - 0x04 - chests
|
||||||
@@ -220,7 +179,7 @@ ItemBehavior:
|
|||||||
STA.l InventoryTracking
|
STA.l InventoryTracking
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
.fighter_sword_shield
|
.sword_shield
|
||||||
SEP #$10
|
SEP #$10
|
||||||
LDX.b #$01
|
LDX.b #$01
|
||||||
JSR .increment_sword
|
JSR .increment_sword
|
||||||
@@ -634,6 +593,10 @@ ResolveReceipt:
|
|||||||
PLX : PLA
|
PLX : PLA
|
||||||
RTS
|
RTS
|
||||||
|
|
||||||
|
ResolveLootIDLong:
|
||||||
|
JSR.w ResolveLootID
|
||||||
|
RTL
|
||||||
|
|
||||||
ResolveLootID:
|
ResolveLootID:
|
||||||
; In: A - Loot ID
|
; In: A - Loot ID
|
||||||
; Out: A - Resolved Loot ID
|
; Out: A - Resolved Loot ID
|
||||||
@@ -753,9 +716,7 @@ ResolveLootID:
|
|||||||
LDA.w ScratchBufferV+6 : JMP.w .get_item
|
LDA.w ScratchBufferV+6 : JMP.w .get_item
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
;DATA AddReceivedItemExpanded
|
DungeonItemMasks:
|
||||||
{
|
|
||||||
ItemMasks:
|
|
||||||
; these are dungeon correlations to $7EF364 - $7EF369 so it knows where to store compasses, etc
|
; these are dungeon correlations to $7EF364 - $7EF369 so it knows where to store compasses, etc
|
||||||
; sewers and castle get 2 bits active so that they can share their items elegantly
|
; sewers and castle get 2 bits active so that they can share their items elegantly
|
||||||
dw $C000, $C000, $2000, $1000, $0800, $0400, $0200, $0100
|
dw $C000, $C000, $2000, $1000, $0800, $0400, $0200, $0100
|
||||||
@@ -777,296 +738,7 @@ ItemMasks:
|
|||||||
dw $040C, $20C2, $C6BD, $0785, $8700, $E200, $8220, $00B0
|
dw $040C, $20C2, $C6BD, $0785, $8700, $E200, $8220, $00B0
|
||||||
dw $3EC0, $0AD0, $082C, $1003, $A905, $8D02, $0309, $20C0
|
dw $3EC0, $0AD0, $082C, $1003, $A905, $8D02, $0309, $20C0
|
||||||
dw $44D0
|
dw $44D0
|
||||||
}
|
|
||||||
|
|
||||||
ItemReceipts:
|
|
||||||
.offset_y : fillbyte $00 : fill 256
|
|
||||||
.offset_x : fillbyte $00 : fill 256
|
|
||||||
.graphics : fillbyte $00 : fill 256 ; item_graphics_indices
|
|
||||||
.width : fillbyte $00 : fill 256 ; wide_item_flag
|
|
||||||
.palette : fillbyte $00 : fill 256 ; properties
|
|
||||||
.target : fillword $0000 : fill 256*2 ; item_target_addr
|
|
||||||
.value : fillbyte $00 : fill 256 ; item_values
|
|
||||||
.pal_override : fillbyte $00 : fill 256 ; PaletteOverride
|
|
||||||
.behavior : fillword $0000 : fill 256*2 ; ItemBehavior
|
|
||||||
.resolution : fillword $0000 : fill 256*2 ; ReceiptResolution
|
|
||||||
|
|
||||||
|
|
||||||
macro ReceiptProps(id, y, x, gfx, width, pal, sram, value, pal_override, behavior, res)
|
|
||||||
pushpc
|
|
||||||
|
|
||||||
org ItemReceipts_offset_y+<id> : db <y>
|
|
||||||
org ItemReceipts_offset_x+<id> : db <x>
|
|
||||||
org ItemReceipts_graphics+<id> : db <gfx>
|
|
||||||
org ItemReceipts_width+<id> : db <width>
|
|
||||||
org ItemReceipts_palette+<id> : db <pal>
|
|
||||||
org ItemReceipts_target+<id>+<id> : dw <sram>
|
|
||||||
org ItemReceipts_value+<id> : db <value>
|
|
||||||
org ItemReceipts_pal_override+<id> : db <pal_override>
|
|
||||||
org ItemReceipts_behavior+<id>+<id> : dw ItemBehavior_<behavior>
|
|
||||||
org ItemReceipts_resolution+<id>+<id> : dw ResolveLootID_<res>
|
|
||||||
|
|
||||||
pullpc
|
|
||||||
|
|
||||||
endmacro
|
|
||||||
|
|
||||||
%ReceiptProps($00, -5, 0, $06, 2, $02, $F359, $01, $00, fighter_sword_shield, skip) ; 00 - Fighter sword & Shield
|
|
||||||
%ReceiptProps($01, -5, 4, $18, 0, $FF, $F359, $02, $00, master_sword, skip) ; 01 - Master sword
|
|
||||||
%ReceiptProps($02, -5, 4, $18, 0, $05, $F359, $03, $00, tempered_sword, skip) ; 02 - Tempered sword
|
|
||||||
%ReceiptProps($03, -5, 4, $18, 0, $05, $F359, $04, $00, gold_sword, skip) ; 03 - Golden sword
|
|
||||||
%ReceiptProps($04, -5, 4, $2D, 0, $05, $F35A, $01, $01, fighter_shield, skip) ; 04 - Fighter shield
|
|
||||||
%ReceiptProps($05, -4, 0, $20, 2, $05, $F35A, $02, $01, red_shield, skip) ; 05 - Fire shield
|
|
||||||
%ReceiptProps($06, -4, 0, $2E, 2, $05, $F35A, $03, $01, mirror_shield, skip) ; 06 - Mirror shield
|
|
||||||
%ReceiptProps($07, -5, 4, $09, 0, $01, $F345, $01, $00, skip, skip) ; 07 - Fire rod
|
|
||||||
%ReceiptProps($08, -5, 4, $09, 0, $02, $F346, $01, $00, skip, skip) ; 08 - Ice rod
|
|
||||||
%ReceiptProps($09, -4, 4, $0A, 0, $01, $F34B, $01, $00, skip, skip) ; 09 - Hammer
|
|
||||||
%ReceiptProps($0A, -4, 4, $08, 0, $01, $F342, $01, $00, skip, skip) ; 0A - Hookshot
|
|
||||||
%ReceiptProps($0B, -4, 4, $05, 0, $01, $F340, $01, $00, bow, skip) ; 0B - Bow
|
|
||||||
%ReceiptProps($0C, -2, 5, $10, 0, $02, $F341, $01, $00, blue_boomerang, skip) ; 0C - Blue Boomerang
|
|
||||||
%ReceiptProps($0D, -4, 0, $0B, 2, $02, $F344, $02, $00, powder, skip) ; 0D - Powder
|
|
||||||
%ReceiptProps($0E, -4, 0, $2C, 2, $02, $F35C, $FF, $00, skip, skip) ; 0E - Bottle refill (bee)
|
|
||||||
%ReceiptProps($0F, -4, 0, $1B, 2, $04, $F347, $01, $00, skip, skip) ; 0F - Bombos
|
|
||||||
%ReceiptProps($10, -4, 0, $1A, 2, $04, $F348, $01, $00, skip, skip) ; 10 - Ether
|
|
||||||
%ReceiptProps($11, -4, 0, $1C, 2, $04, $F349, $01, $00, skip, skip) ; 11 - Quake
|
|
||||||
%ReceiptProps($12, -4, 0, $14, 2, $01, $F34A, $01, $00, skip, skip) ; 12 - Lamp
|
|
||||||
%ReceiptProps($13, -4, 4, $19, 0, $01, $F34C, $01, $00, skip, skip) ; 13 - Shovel
|
|
||||||
%ReceiptProps($14, -4, 0, $0C, 2, $02, $F34C, $02, $00, flute_inactive, skip) ; 14 - Flute
|
|
||||||
%ReceiptProps($15, -4, 4, $07, 0, $01, $F350, $01, $00, skip, skip) ; 15 - Somaria
|
|
||||||
%ReceiptProps($16, -4, 0, $1D, 2, $01, $F35C, $FF, $00, skip, bottles) ; 16 - Bottle
|
|
||||||
%ReceiptProps($17, -4, 0, $2F, 2, $01, $F36B, $FF, $00, skip, skip) ; 17 - Heart piece
|
|
||||||
%ReceiptProps($18, -4, 4, $07, 0, $02, $F351, $01, $00, skip, skip) ; 18 - Byrna
|
|
||||||
%ReceiptProps($19, -4, 0, $15, 2, $01, $F352, $01, $00, skip, skip) ; 19 - Cape
|
|
||||||
%ReceiptProps($1A, -4, 0, $12, 2, $02, $F353, $02, $00, skip, skip) ; 1A - Mirror
|
|
||||||
%ReceiptProps($1B, -4, 0, $0D, 2, $01, $F354, $01, $00, skip, skip) ; 1B - Glove
|
|
||||||
%ReceiptProps($1C, -4, 0, $0D, 2, $04, $F354, $02, $00, skip, skip) ; 1C - Mitts
|
|
||||||
%ReceiptProps($1D, -4, 0, $0E, 2, $04, $F34E, $01, $00, skip, skip) ; 1D - Book
|
|
||||||
%ReceiptProps($1E, -4, 0, $11, 2, $02, $F356, $01, $00, skip, skip) ; 1E - Flippers
|
|
||||||
%ReceiptProps($1F, -4, 0, $17, 2, $01, $F357, $01, $00, skip, skip) ; 1F - Pearl
|
|
||||||
%ReceiptProps($20, -4, 0, $28, 2, $06, $F37A, $FF, $01, skip, skip) ; 20 - Crystal
|
|
||||||
%ReceiptProps($21, -4, 0, $27, 2, $01, $F34D, $01, $00, skip, skip) ; 21 - Net
|
|
||||||
%ReceiptProps($22, -4, 0, $04, 2, $02, $F35B, $FF, $00, blue_mail, skip) ; 22 - Blue mail
|
|
||||||
%ReceiptProps($23, -5, 0, $04, 2, $01, $F35B, $02, $00, red_mail, skip) ; 23 - Red mail
|
|
||||||
%ReceiptProps($24, -4, 4, $0F, 0, $02, $F36F, $FF, $00, skip, skip) ; 24 - Small key
|
|
||||||
%ReceiptProps($25, -4, 0, $16, 2, $02, $F364, $FF, $00, dungeon_compass, skip) ; 25 - Compass
|
|
||||||
%ReceiptProps($26, -4, 0, $03, 2, $01, $F36C, $FF, $00, skip, skip) ; 26 - Heart container from 4/4
|
|
||||||
%ReceiptProps($27, -4, 0, $13, 2, $02, $F375, $FF, $00, skip, skip) ; 27 - Bomb
|
|
||||||
%ReceiptProps($28, -4, 0, $01, 2, $02, $F375, $FF, $00, skip, skip) ; 28 - 3 bombs
|
|
||||||
%ReceiptProps($29, -4, 0, $1E, 2, $04, $F344, $FF, $00, mushroom, skip) ; 29 - Mushroom
|
|
||||||
%ReceiptProps($2A, -2, 5, $10, 0, $01, $F341, $02, $00, red_boomerang, skip) ; 2A - Red boomerang
|
|
||||||
%ReceiptProps($2B, -4, 0, $00, 2, $01, $F35C, $FF, $00, skip, bottles) ; 2B - Full bottle (red)
|
|
||||||
%ReceiptProps($2C, -4, 0, $00, 2, $04, $F35C, $FF, $00, skip, bottles) ; 2C - Full bottle (green)
|
|
||||||
%ReceiptProps($2D, -4, 0, $00, 2, $02, $F35C, $FF, $00, skip, bottles) ; 2D - Full bottle (blue)
|
|
||||||
%ReceiptProps($2E, -4, 0, $00, 2, $01, $F36D, $FF, $00, skip, bottles) ; 2E - Potion refill (red)
|
|
||||||
%ReceiptProps($2F, -4, 0, $00, 2, $04, $F36E, $FF, $00, skip, bottles) ; 2F - Potion refill (green)
|
|
||||||
%ReceiptProps($30, -4, 0, $00, 2, $02, $F36E, $FF, $00, skip, bottles) ; 30 - Potion refill (blue)
|
|
||||||
%ReceiptProps($31, -4, 0, $30, 2, $02, $F375, $FF, $00, skip, skip) ; 31 - 10 bombs
|
|
||||||
%ReceiptProps($32, -4, 0, $22, 2, $04, $F366, $FF, $00, dungeon_bigkey, skip) ; 32 - Big key
|
|
||||||
%ReceiptProps($33, -4, 0, $21, 2, $04, $F368, $FF, $00, dungeon_map, skip) ; 33 - Map
|
|
||||||
%ReceiptProps($34, -2, 4, $24, 0, $04, $F360, $FF, $00, skip, skip) ; 34 - 1 rupee
|
|
||||||
%ReceiptProps($35, -2, 4, $24, 0, $02, $F360, $FB, $00, skip, skip) ; 35 - 5 rupees
|
|
||||||
%ReceiptProps($36, -2, 4, $24, 0, $01, $F360, $EC, $00, skip, skip) ; 36 - 20 rupees
|
|
||||||
%ReceiptProps($37, -4, 0, $23, 2, $04, $F374, $FF, $00, skip, skip) ; 37 - Green pendant
|
|
||||||
%ReceiptProps($38, -4, 0, $23, 2, $01, $F374, $FF, $00, skip, skip) ; 38 - Blue pendant
|
|
||||||
%ReceiptProps($39, -4, 0, $23, 2, $02, $F374, $FF, $00, skip, skip) ; 39 - Red pendant
|
|
||||||
%ReceiptProps($3A, -4, 0, $29, 2, $02, $F340, $01, $00, bow_and_arrows, skip) ; 3A - Bow And Arrows
|
|
||||||
%ReceiptProps($3B, -4, 0, $2A, 2, $01, $F340, $03, $00, silver_bow, skip) ; 3B - Silver Bow
|
|
||||||
%ReceiptProps($3C, -4, 0, $2C, 2, $02, $F35C, $FF, $00, skip, skip) ; 3C - Full bottle (bee)
|
|
||||||
%ReceiptProps($3D, -4, 0, $2B, 2, $02, $F35C, $FF, $00, skip, skip) ; 3D - Full bottle (fairy)
|
|
||||||
%ReceiptProps($3E, -4, 0, $03, 2, $01, $F36C, $FF, $00, skip, skip) ; 3E - Boss heart
|
|
||||||
%ReceiptProps($3F, -4, 0, $03, 2, $01, $F36C, $FF, $00, skip, skip) ; 3F - Sanc heart
|
|
||||||
%ReceiptProps($40, -4, 0, $34, 2, $04, $F360, $9C, $00, skip, skip) ; 40 - 100 rupees
|
|
||||||
%ReceiptProps($41, -4, 0, $35, 2, $04, $F360, $CE, $00, skip, skip) ; 41 - 50 rupees
|
|
||||||
%ReceiptProps($42, -2, 4, $31, 0, $01, $F372, $FF, $00, skip, skip) ; 42 - Heart
|
|
||||||
%ReceiptProps($43, -2, 4, $33, 0, $02, $F376, $01, $00, skip, skip) ; 43 - Arrow
|
|
||||||
%ReceiptProps($44, -4, 0, $02, 2, $02, $F376, $0A, $00, skip, skip) ; 44 - 10 arrows
|
|
||||||
%ReceiptProps($45, -2, 4, $32, 0, $04, $F373, $FF, $00, skip, skip) ; 45 - Small magic
|
|
||||||
%ReceiptProps($46, -4, 0, $36, 2, $04, $F360, $FF, $00, skip, skip) ; 46 - 300 rupees
|
|
||||||
%ReceiptProps($47, -4, 0, $37, 2, $04, $F360, $FF, $00, skip, skip) ; 47 - 20 rupees green
|
|
||||||
%ReceiptProps($48, -4, 0, $2C, 2, $02, $F35C, $FF, $00, skip, skip) ; 48 - Full bottle (good bee)
|
|
||||||
%ReceiptProps($49, -5, 4, $06, 0, $05, $F359, $01, $00, fighter_sword, skip) ; 49 - Tossed fighter sword
|
|
||||||
%ReceiptProps($50, -5, 4, $06, 0, $05, $F359, $01, $00, skip, skip) ; 50 - Master Sword (safe)
|
|
||||||
%ReceiptProps($4A, -4, 0, $0C, 2, $02, $F34C, $03, $00, flute_active, skip) ; 4A - Active Flute
|
|
||||||
%ReceiptProps($4B, -4, 0, $38, 2, $01, $F355, $01, $00, skip, skip) ; 4B - Boots
|
|
||||||
%ReceiptProps($4C, -4, 0, $39, 2, $04, $F375, $32, $00, bombs_50, skip) ; 4C - Bomb capacity (50)
|
|
||||||
%ReceiptProps($4D, -4, 0, $3A, 2, $04, $F376, $46, $00, arrows_70, skip) ; 4D - Arrow capacity (70)
|
|
||||||
%ReceiptProps($4E, -4, 0, $3B, 2, $04, $F373, $80, $00, magic_2, magic) ; 4E - 1/2 magic
|
|
||||||
%ReceiptProps($4F, -4, 0, $3C, 2, $04, $F373, $80, $00, magic_4, magic) ; 4F - 1/4 magic
|
|
||||||
%ReceiptProps($50, -5, 4, $18, 0, $05, $F359, $02, $00, master_sword_safe, skip) ; 50 - Safe master sword
|
|
||||||
%ReceiptProps($51, -4, 0, $42, 2, $04, $F375, $FF, $00, bombs_5, skip) ; 51 - Bomb capacity (+5)
|
|
||||||
%ReceiptProps($52, -4, 0, $3E, 2, $04, $F375, $FF, $00, bombs_10, skip) ; 52 - Bomb capacity (+10)
|
|
||||||
%ReceiptProps($53, -4, 0, $3F, 2, $04, $F376, $FF, $00, arrows_5, skip) ; 53 - Arrow capacity (+5)
|
|
||||||
%ReceiptProps($54, -4, 0, $40, 2, $04, $F376, $FF, $00, arrows_10, skip) ; 54 - Arrow capacity (+10)
|
|
||||||
%ReceiptProps($55, -4, 0, $00, 2, $04, $F41A, $FF, $00, programmable_1, skip) ; 55 - Programmable item 1
|
|
||||||
%ReceiptProps($56, -4, 0, $00, 2, $04, $F41C, $FF, $00, programmable_2, skip) ; 56 - Programmable item 2
|
|
||||||
%ReceiptProps($57, -4, 0, $00, 2, $04, $F41E, $FF, $00, programmable_3, skip) ; 57 - Programmable item 3
|
|
||||||
%ReceiptProps($58, -4, 0, $41, 2, $01, $F340, $FF, $00, silver_arrows, skip) ; 58 - Upgrade-only Silver Arrows
|
|
||||||
%ReceiptProps($59, -4, 4, $24, 0, $03, $F360, $FF, $00, rupoor, skip) ; 59 - Rupoor
|
|
||||||
%ReceiptProps($5A, -4, 0, $47, 2, $01, $F36A, $FF, $00, skip, skip) ; 5A - Nothing
|
|
||||||
%ReceiptProps($5B, -4, 0, $4B, 2, $01, $F454, $FF, $00, red_clock, skip) ; 5B - Red clock
|
|
||||||
%ReceiptProps($5C, -4, 0, $4B, 2, $02, $F454, $FF, $00, blue_clock, skip) ; 5C - Blue clock
|
|
||||||
%ReceiptProps($5D, -4, 0, $4B, 2, $04, $F454, $FF, $00, green_clock, skip) ; 5D - Green clock
|
|
||||||
%ReceiptProps($5E, -4, 0, $FE, 2, $FF, $F359, $FF, $00, prog_sword, prog_sword) ; 5E - Progressive sword
|
|
||||||
%ReceiptProps($5F, -4, 0, $FF, 2, $FF, $F35A, $FF, $01, prog_shield, shields) ; 5F - Progressive shield
|
|
||||||
%ReceiptProps($60, -4, 0, $FD, 2, $FF, $F35B, $FF, $00, prog_mail, armor) ; 60 - Progressive armor
|
|
||||||
%ReceiptProps($61, -4, 0, $0D, 2, $FF, $F354, $FF, $00, skip, gloves) ; 61 - Progressive glove
|
|
||||||
%ReceiptProps($62, -4, 0, $FF, 2, $FF, $F36A, $FF, $00, skip, rng_single) ; 62 - RNG pool item (single)
|
|
||||||
%ReceiptProps($63, -4, 0, $FF, 2, $FF, $F36A, $FF, $00, skip, rng_multi) ; 63 - RNG pool item (multi)
|
|
||||||
%ReceiptProps($64, -4, 0, $FF, 2, $00, $F340, $FF, $00, skip, progressive_bow) ; 64 - Progressive bow
|
|
||||||
%ReceiptProps($65, -4, 0, $FF, 2, $00, $F340, $FF, $00, skip, progressive_bow_2) ; 65 - Progressive bow
|
|
||||||
%ReceiptProps($66, -4, 0, $FF, 2, $00, $F36A, $FF, $00, skip, skip) ; 66 -
|
|
||||||
%ReceiptProps($67, -4, 0, $FF, 2, $00, $F36A, $FF, $00, skip, skip) ; 67 -
|
|
||||||
%ReceiptProps($68, -4, 0, $FF, 2, $00, $F36A, $FF, $00, skip, skip) ; 68 -
|
|
||||||
%ReceiptProps($69, -4, 0, $FF, 2, $00, $F36A, $FF, $00, skip, skip) ; 69 -
|
|
||||||
%ReceiptProps($6A, -4, 0, $49, 2, $04, $F36A, $FF, $00, triforce, skip) ; 6A - Triforce
|
|
||||||
%ReceiptProps($6B, -4, 0, $50, 2, $04, $F36A, $FF, $00, goal_item, skip) ; 6B - Power star
|
|
||||||
%ReceiptProps($6C, -4, 0, $49, 2, $04, $F36A, $FF, $00, goal_item, skip) ; 6C - Triforce Piece
|
|
||||||
%ReceiptProps($6D, -4, 0, $FF, 2, $00, $F36A, $FF, $00, request_F0, skip) ; 6D - Server request item
|
|
||||||
%ReceiptProps($6E, -4, 0, $FF, 2, $00, $F36A, $FF, $00, request_F1, skip) ; 6E - Server request item (dungeon drop)
|
|
||||||
%ReceiptProps($6F, -4, 0, $FF, 2, $00, $F36A, $FF, $00, request_F2, skip) ; 6F -
|
|
||||||
%ReceiptProps($70, -4, 0, $21, 2, $04, $F36A, $FF, $00, free_map, skip) ; 70 - Map of Light World
|
|
||||||
%ReceiptProps($71, -4, 0, $21, 2, $04, $F36A, $FF, $00, free_map, skip) ; 71 - Map of Dark World
|
|
||||||
%ReceiptProps($72, -4, 0, $21, 2, $04, $F36A, $FF, $00, free_map, skip) ; 72 - Map of Ganon's Tower
|
|
||||||
%ReceiptProps($73, -4, 0, $21, 2, $04, $F36A, $FF, $00, free_map, skip) ; 73 - Map of Turtle Rock
|
|
||||||
%ReceiptProps($74, -4, 0, $21, 2, $04, $F36A, $FF, $00, free_map, skip) ; 74 - Map of Thieves' Town
|
|
||||||
%ReceiptProps($75, -4, 0, $21, 2, $04, $F36A, $FF, $00, free_map, skip) ; 75 - Map of Tower of Hera
|
|
||||||
%ReceiptProps($76, -4, 0, $21, 2, $04, $F36A, $FF, $00, free_map, skip) ; 76 - Map of Ice Palace
|
|
||||||
%ReceiptProps($77, -4, 0, $21, 2, $04, $F36A, $FF, $00, free_map, skip) ; 77 - Map of Skull Woods
|
|
||||||
%ReceiptProps($78, -4, 0, $21, 2, $04, $F36A, $FF, $00, free_map, skip) ; 78 - Map of Misery Mire
|
|
||||||
%ReceiptProps($79, -4, 0, $21, 2, $04, $F36A, $FF, $00, free_map, skip) ; 79 - Map of Dark Palace
|
|
||||||
%ReceiptProps($7A, -4, 0, $21, 2, $04, $F36A, $FF, $00, free_map, skip) ; 7A - Map of Swamp Palace
|
|
||||||
%ReceiptProps($7B, -4, 0, $21, 2, $04, $F36A, $FF, $00, free_map, skip) ; 7B - Map of Agahnim's Tower
|
|
||||||
%ReceiptProps($7C, -4, 0, $21, 2, $04, $F36A, $FF, $00, free_map, skip) ; 7C - Map of Desert Palace
|
|
||||||
%ReceiptProps($7D, -4, 0, $21, 2, $04, $F36A, $FF, $00, free_map, skip) ; 7D - Map of Eastern Palace
|
|
||||||
%ReceiptProps($7E, -4, 0, $21, 2, $04, $F36A, $FF, $00, hc_map, skip) ; 7E - Map of Hyrule Castle
|
|
||||||
%ReceiptProps($7F, -4, 0, $21, 2, $04, $F36A, $FF, $00, hc_map, skip) ; 7F - Map of Sewers
|
|
||||||
%ReceiptProps($80, -4, 0, $16, 2, $02, $F36A, $FF, $00, free_compass, skip) ; 80 - Compass of Light World
|
|
||||||
%ReceiptProps($81, -4, 0, $16, 2, $02, $F36A, $FF, $00, free_compass, skip) ; 81 - Compass of Dark World
|
|
||||||
%ReceiptProps($82, -4, 0, $16, 2, $02, $F36A, $FF, $00, free_compass, skip) ; 82 - Compass of Ganon's Tower
|
|
||||||
%ReceiptProps($83, -4, 0, $16, 2, $02, $F36A, $FF, $00, free_compass, skip) ; 83 - Compass of Turtle Rock
|
|
||||||
%ReceiptProps($84, -4, 0, $16, 2, $02, $F36A, $FF, $00, free_compass, skip) ; 84 - Compass of Thieves' Town
|
|
||||||
%ReceiptProps($85, -4, 0, $16, 2, $02, $F36A, $FF, $00, free_compass, skip) ; 85 - Compass of Tower of Hera
|
|
||||||
%ReceiptProps($86, -4, 0, $16, 2, $02, $F36A, $FF, $00, free_compass, skip) ; 86 - Compass of Ice Palace
|
|
||||||
%ReceiptProps($87, -4, 0, $16, 2, $02, $F36A, $FF, $00, free_compass, skip) ; 87 - Compass of Skull Woods
|
|
||||||
%ReceiptProps($88, -4, 0, $16, 2, $02, $F36A, $FF, $00, free_compass, skip) ; 88 - Compass of Misery Mire
|
|
||||||
%ReceiptProps($89, -4, 0, $16, 2, $02, $F36A, $FF, $00, free_compass, skip) ; 89 - Compass of Dark Palace
|
|
||||||
%ReceiptProps($8A, -4, 0, $16, 2, $02, $F36A, $FF, $00, free_compass, skip) ; 8A - Compass of4Swamp Palace
|
|
||||||
%ReceiptProps($8B, -4, 0, $16, 2, $02, $F36A, $FF, $00, free_compass, skip) ; 8B - Compass of Agahnim's Tower
|
|
||||||
%ReceiptProps($8C, -4, 0, $16, 2, $02, $F36A, $FF, $00, free_compass, skip) ; 8C - Compass of Desert Palace
|
|
||||||
%ReceiptProps($8D, -4, 0, $16, 2, $02, $F36A, $FF, $00, free_compass, skip) ; 8D - Compass of Eastern Palace
|
|
||||||
%ReceiptProps($8E, -4, 0, $16, 2, $02, $F36A, $FF, $00, hc_compass, skip) ; 8E - Compass of Hyrule Castle
|
|
||||||
%ReceiptProps($8F, -4, 0, $16, 2, $02, $F36A, $FF, $00, hc_compass, skip) ; 8F - Compass of Sewers
|
|
||||||
%ReceiptProps($90, -4, 0, $22, 2, $04, $F36A, $FF, $00, skip, skip) ; 90 - Skull key
|
|
||||||
%ReceiptProps($91, -4, 0, $22, 2, $04, $F36A, $FF, $00, skip, skip) ; 91 - Reserved
|
|
||||||
%ReceiptProps($92, -4, 0, $22, 2, $04, $F36A, $FF, $00, free_bigkey, skip) ; 92 - Big key of Ganon's Tower
|
|
||||||
%ReceiptProps($93, -4, 0, $22, 2, $04, $F36A, $FF, $00, free_bigkey, skip) ; 93 - Big key of Turtle Rock
|
|
||||||
%ReceiptProps($94, -4, 0, $22, 2, $04, $F36A, $FF, $00, free_bigkey, skip) ; 94 - Big key of Thieves' Town
|
|
||||||
%ReceiptProps($95, -4, 0, $22, 2, $04, $F36A, $FF, $00, free_bigkey, skip) ; 95 - Big key of Tower of Hera
|
|
||||||
%ReceiptProps($96, -4, 0, $22, 2, $04, $F36A, $FF, $00, free_bigkey, skip) ; 96 - Big key of Ice Palace
|
|
||||||
%ReceiptProps($97, -4, 0, $22, 2, $04, $F36A, $FF, $00, free_bigkey, skip) ; 97 - Big key of Skull Woods
|
|
||||||
%ReceiptProps($98, -4, 0, $22, 2, $04, $F36A, $FF, $00, free_bigkey, skip) ; 98 - Big key of Misery Mire
|
|
||||||
%ReceiptProps($99, -4, 0, $22, 2, $04, $F36A, $FF, $00, free_bigkey, skip) ; 99 - Big key of Dark Palace
|
|
||||||
%ReceiptProps($9A, -4, 0, $22, 2, $04, $F36A, $FF, $00, free_bigkey, skip) ; 9A - Big key of Swamp Palace
|
|
||||||
%ReceiptProps($9B, -4, 0, $22, 2, $04, $F36A, $FF, $00, free_bigkey, skip) ; 9B - Big key of Agahnim's Tower
|
|
||||||
%ReceiptProps($9C, -4, 0, $22, 2, $04, $F36A, $FF, $00, free_bigkey, skip) ; 9C - Big key of Desert Palace
|
|
||||||
%ReceiptProps($9D, -4, 0, $22, 2, $04, $F36A, $FF, $00, free_bigkey, skip) ; 9D - Big key of Eastern Palace
|
|
||||||
%ReceiptProps($9E, -4, 0, $22, 2, $04, $F36A, $FF, $00, hc_bigkey, skip) ; 9E - Big key of Hyrule Castle
|
|
||||||
%ReceiptProps($9F, -4, 0, $22, 2, $04, $F36A, $FF, $00, hc_bigkey, skip) ; 9F - Big key of Sewers
|
|
||||||
%ReceiptProps($A0, -4, 4, $0F, 0, $04, $F36A, $FF, $00, hc_smallkey, skip) ; A0 - Small key of Sewers
|
|
||||||
%ReceiptProps($A1, -4, 4, $0F, 0, $04, $F36A, $FF, $00, hc_smallkey, skip) ; A1 - Small key of Hyrule Castle
|
|
||||||
%ReceiptProps($A2, -4, 4, $0F, 0, $04, $F36A, $FF, $00, free_smallkey, skip) ; A2 - Small key of Eastern Palace
|
|
||||||
%ReceiptProps($A3, -4, 4, $0F, 0, $04, $F36A, $FF, $00, free_smallkey, skip) ; A3 - Small key of Desert Palace
|
|
||||||
%ReceiptProps($A4, -4, 4, $0F, 0, $04, $F36A, $FF, $00, free_smallkey, skip) ; A4 - Small key of Agahnim's Tower
|
|
||||||
%ReceiptProps($A5, -4, 4, $0F, 0, $04, $F36A, $FF, $00, free_smallkey, skip) ; A5 - Small key of Swamp Palace
|
|
||||||
%ReceiptProps($A6, -4, 4, $0F, 0, $04, $F36A, $FF, $00, free_smallkey, skip) ; A6 - Small key of Dark Palace
|
|
||||||
%ReceiptProps($A7, -4, 4, $0F, 0, $04, $F36A, $FF, $00, free_smallkey, skip) ; A7 - Small key of Misery Mire
|
|
||||||
%ReceiptProps($A8, -4, 4, $0F, 0, $04, $F36A, $FF, $00, free_smallkey, skip) ; A8 - Small key of Skull Woods
|
|
||||||
%ReceiptProps($A9, -4, 4, $0F, 0, $04, $F36A, $FF, $00, free_smallkey, skip) ; A9 - Small key of Ice Palace
|
|
||||||
%ReceiptProps($AA, -4, 4, $0F, 0, $04, $F36A, $FF, $00, free_smallkey, skip) ; AA - Small key of Tower of Hera
|
|
||||||
%ReceiptProps($AB, -4, 4, $0F, 0, $04, $F36A, $FF, $00, free_smallkey, skip) ; AB - Small key of Thieves' Town
|
|
||||||
%ReceiptProps($AC, -4, 4, $0F, 0, $04, $F36A, $FF, $00, free_smallkey, skip) ; AC - Small key of Turtle Rock
|
|
||||||
%ReceiptProps($AD, -4, 4, $0F, 0, $04, $F36A, $FF, $00, free_smallkey, skip) ; AD - Small key of Ganon's Tower
|
|
||||||
%ReceiptProps($AE, -4, 4, $0F, 0, $04, $F36A, $FF, $00, skip, skip) ; AE - Reserved
|
|
||||||
%ReceiptProps($AF, -4, 4, $0F, 0, $04, $F36A, $FF, $00, generic_smallkey, skip) ; AF - Generic small key
|
|
||||||
%ReceiptProps($B0, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; B0 -
|
|
||||||
%ReceiptProps($B1, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; B1 -
|
|
||||||
%ReceiptProps($B2, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; B2 -
|
|
||||||
%ReceiptProps($B3, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; B3 -
|
|
||||||
%ReceiptProps($B4, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; B4 -
|
|
||||||
%ReceiptProps($B5, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; B5 -
|
|
||||||
%ReceiptProps($B6, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; B6 -
|
|
||||||
%ReceiptProps($B7, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; B7 -
|
|
||||||
%ReceiptProps($B8, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; B8 -
|
|
||||||
%ReceiptProps($B9, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; B9 -
|
|
||||||
%ReceiptProps($BA, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; BA -
|
|
||||||
%ReceiptProps($BB, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; BB -
|
|
||||||
%ReceiptProps($BC, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; BC -
|
|
||||||
%ReceiptProps($BD, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; BD -
|
|
||||||
%ReceiptProps($BE, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; BE -
|
|
||||||
%ReceiptProps($BF, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; BF -
|
|
||||||
%ReceiptProps($C0, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; C0 -
|
|
||||||
%ReceiptProps($C1, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; C1 -
|
|
||||||
%ReceiptProps($C2, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; C2 -
|
|
||||||
%ReceiptProps($C3, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; C3 -
|
|
||||||
%ReceiptProps($C4, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; C4 -
|
|
||||||
%ReceiptProps($C5, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; C5 -
|
|
||||||
%ReceiptProps($C6, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; C6 -
|
|
||||||
%ReceiptProps($C7, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; C7 -
|
|
||||||
%ReceiptProps($C8, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; C8 -
|
|
||||||
%ReceiptProps($C9, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; C9 -
|
|
||||||
%ReceiptProps($CA, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; CA -
|
|
||||||
%ReceiptProps($CB, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; CB -
|
|
||||||
%ReceiptProps($CC, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; CC -
|
|
||||||
%ReceiptProps($CD, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; CD -
|
|
||||||
%ReceiptProps($CE, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; CE -
|
|
||||||
%ReceiptProps($CF, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; CF -
|
|
||||||
%ReceiptProps($D0, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; D0 -
|
|
||||||
%ReceiptProps($D1, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; D1 -
|
|
||||||
%ReceiptProps($D2, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; D2 -
|
|
||||||
%ReceiptProps($D3, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; D3 -
|
|
||||||
%ReceiptProps($D4, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; D4 -
|
|
||||||
%ReceiptProps($D5, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; D5 -
|
|
||||||
%ReceiptProps($D6, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; D6 -
|
|
||||||
%ReceiptProps($D7, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; D7 -
|
|
||||||
%ReceiptProps($D8, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; D8 -
|
|
||||||
%ReceiptProps($D9, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; D9 -
|
|
||||||
%ReceiptProps($DA, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; DA -
|
|
||||||
%ReceiptProps($DB, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; DB -
|
|
||||||
%ReceiptProps($DC, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; DC -
|
|
||||||
%ReceiptProps($DD, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; DD -
|
|
||||||
%ReceiptProps($DE, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; DE -
|
|
||||||
%ReceiptProps($DF, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; DF -
|
|
||||||
%ReceiptProps($E0, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; E0 -
|
|
||||||
%ReceiptProps($E1, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; E1 -
|
|
||||||
%ReceiptProps($E2, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; E2 -
|
|
||||||
%ReceiptProps($E3, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; E3 -
|
|
||||||
%ReceiptProps($E4, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; E4 -
|
|
||||||
%ReceiptProps($E5, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; E5 -
|
|
||||||
%ReceiptProps($E6, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; E6 -
|
|
||||||
%ReceiptProps($E7, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; E7 -
|
|
||||||
%ReceiptProps($E8, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; E8 -
|
|
||||||
%ReceiptProps($E9, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; E9 -
|
|
||||||
%ReceiptProps($EA, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; EA -
|
|
||||||
%ReceiptProps($EB, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; EB -
|
|
||||||
%ReceiptProps($EC, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; EC -
|
|
||||||
%ReceiptProps($ED, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; ED -
|
|
||||||
%ReceiptProps($EE, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; EE -
|
|
||||||
%ReceiptProps($EF, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; EF -
|
|
||||||
%ReceiptProps($F0, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; F0 -
|
|
||||||
%ReceiptProps($F1, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; F1 -
|
|
||||||
%ReceiptProps($F2, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; F2 -
|
|
||||||
%ReceiptProps($F3, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; F3 -
|
|
||||||
%ReceiptProps($F4, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; F4 -
|
|
||||||
%ReceiptProps($F5, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; F5 -
|
|
||||||
%ReceiptProps($F6, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; F6 -
|
|
||||||
%ReceiptProps($F7, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; F7 -
|
|
||||||
%ReceiptProps($F8, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; F8 -
|
|
||||||
%ReceiptProps($F9, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; F9 -
|
|
||||||
%ReceiptProps($FA, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; FA -
|
|
||||||
%ReceiptProps($FB, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; FB -
|
|
||||||
%ReceiptProps($FC, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; FC -
|
|
||||||
%ReceiptProps($FD, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; FD -
|
|
||||||
%ReceiptProps($FE, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; FE - Server request (async)
|
|
||||||
%ReceiptProps($FF, -4, 0, $49, 2, $04, $F36A, $FF, $00, skip, skip) ; FF -
|
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
BottleListExpanded:
|
BottleListExpanded:
|
||||||
@@ -1075,55 +747,6 @@ BottleListExpanded:
|
|||||||
PotionListExpanded:
|
PotionListExpanded:
|
||||||
db $2E, $2F, $30, $FF, $0E
|
db $2E, $2F, $30, $FF, $0E
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
Link_ReceiveItemAlternatesExpanded:
|
|
||||||
{
|
|
||||||
db -1, -1, -1, -1, -1, -1, -1, -1
|
|
||||||
db -1, -1, -1, -1, -1, -1, -1, -1 ; db -1, -1, -1, -1, $44, -1, -1, -1
|
|
||||||
|
|
||||||
db -1, -1, $35, -1, -1, -1, -1, -1
|
|
||||||
db -1, -1, -1, -1, -1, -1, -1, -1
|
|
||||||
|
|
||||||
db -1, -1, -1, -1, -1, -1, -1, -1
|
|
||||||
db -1, -1, -1, -1, -1, -1, -1, -1 ; db -1, -1, $46, -1, -1, -1, -1, -1
|
|
||||||
|
|
||||||
db -1, -1, -1, -1, -1, -1, -1, -1
|
|
||||||
db -1, -1, -1, -1, -1, -1, -1, -1
|
|
||||||
|
|
||||||
db -1, -1, -1, -1, -1, -1, -1, -1
|
|
||||||
db -1, -1, -1, -1
|
|
||||||
|
|
||||||
db -1, -1, -1, -1
|
|
||||||
db -1 ; Master Sword (Safe)
|
|
||||||
db -1, -1, -1, -1 ; +5/+10 Bomb Arrows
|
|
||||||
db -1, -1, -1 ; 3x Programmable Item
|
|
||||||
db -1 ; Upgrade-Only Silver Arrows
|
|
||||||
db -1 ; 1 Rupoor
|
|
||||||
db -1 ; Null Item
|
|
||||||
db -1, -1, -1 ; Red, Blue & Green Clocks
|
|
||||||
db -1, -1, -1, -1 ; Progressive Sword, Shield, Armor & Gloves
|
|
||||||
db -1, -1 ; RNG Single & Multi
|
|
||||||
db -1, -1 ; Progressive Bow
|
|
||||||
db -1, -1, -1, -1 ; Unused
|
|
||||||
db -1, -1 ; Goal Item Single, Multi & Alt Multi
|
|
||||||
db -1, -1, -1, -1 ; Unused
|
|
||||||
db -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ; Free Map
|
|
||||||
db -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ; Free Compass
|
|
||||||
db -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ; Free Big Key
|
|
||||||
db -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ; Free Small Key
|
|
||||||
db -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ; Unused
|
|
||||||
db -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ; Unused
|
|
||||||
db -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ; Unused
|
|
||||||
db -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ; Unused
|
|
||||||
db -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 ; Unused
|
|
||||||
}
|
|
||||||
;--------------------------------------------------------------------------------
|
|
||||||
.loadAlternate
|
|
||||||
PHB : PHK : PLB
|
|
||||||
TYA : JSR AttemptItemSubstitution : STA.b Scrap03
|
|
||||||
CPY.b Scrap03 : BNE + : LDA.b #$FF : STA.b Scrap03 : +
|
|
||||||
PLB
|
|
||||||
RTL
|
|
||||||
;--------------------------------------------------------------------------------
|
|
||||||
HandleBowTracking:
|
HandleBowTracking:
|
||||||
; In: A - Item Receipt ID
|
; In: A - Item Receipt ID
|
||||||
CMP.b #$64 : BEQ .prog_one
|
CMP.b #$64 : BEQ .prog_one
|
||||||
@@ -1379,20 +1002,20 @@ MaybeFlagCompassTotalEntrance:
|
|||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
DungeonItemIDMap: ; Maps lower four bits of our new dungeon items to DungeonID
|
DungeonItemIDMap: ; Maps lower four bits of our new dungeon items to DungeonID
|
||||||
db $FFFF
|
dw $FFFF
|
||||||
db $FFFF
|
dw $FFFF
|
||||||
db $001A ; GT
|
dw $001A ; GT
|
||||||
db $0018 ; TR
|
dw $0018 ; TR
|
||||||
db $0016 ; TT
|
dw $0016 ; TT
|
||||||
db $0014 ; TH
|
dw $0014 ; TH
|
||||||
db $0012 ; IP
|
dw $0012 ; IP
|
||||||
db $0010 ; SW
|
dw $0010 ; SW
|
||||||
db $000E ; MM
|
dw $000E ; MM
|
||||||
db $000C ; PD
|
dw $000C ; PD
|
||||||
db $000A ; SP
|
dw $000A ; SP
|
||||||
db $0008 ; CT
|
dw $0008 ; CT
|
||||||
db $0006 ; DP
|
dw $0006 ; DP
|
||||||
db $0004 ; EP
|
dw $0004 ; EP
|
||||||
db $0002 ; HC
|
dw $0002 ; HC
|
||||||
db $0000 ; SW
|
dw $0000 ; SW
|
||||||
|
|
||||||
|
|||||||
3
ram.asm
3
ram.asm
@@ -267,6 +267,8 @@ OWScreenSize = $7E0712 ; Flags overworld screen size.
|
|||||||
OAMBuffer = $7E0800 ; Main OAM buffer sent to OAM. $200 bytes.
|
OAMBuffer = $7E0800 ; Main OAM buffer sent to OAM. $200 bytes.
|
||||||
OAMBuffer2 = $7E0A00 ;
|
OAMBuffer2 = $7E0A00 ;
|
||||||
;
|
;
|
||||||
|
TransparencyFlag = $7E0ABD ; Flags transparency effects e.g. in Thieves Town Hellway
|
||||||
|
;
|
||||||
OWTransitionFlag = $7E0ABF ; Used for certain transitions like smith, witch, etc.
|
OWTransitionFlag = $7E0ABF ; Used for certain transitions like smith, witch, etc.
|
||||||
;
|
;
|
||||||
ItemGFXPtr = $7E0AFA ; Pointer for item receipt graphics transfers
|
ItemGFXPtr = $7E0AFA ; Pointer for item receipt graphics transfers
|
||||||
@@ -742,6 +744,7 @@ endmacro
|
|||||||
%assertRAM(OWScreenSize, $7E0712)
|
%assertRAM(OWScreenSize, $7E0712)
|
||||||
%assertRAM(OAMBuffer, $7E0800)
|
%assertRAM(OAMBuffer, $7E0800)
|
||||||
%assertRAM(OAMBuffer2, $7E0A00)
|
%assertRAM(OAMBuffer2, $7E0A00)
|
||||||
|
%assertRAM(TransparencyFlag, $7E0ABD)
|
||||||
%assertRAM(OWTransitionFlag, $7E0ABF)
|
%assertRAM(OWTransitionFlag, $7E0ABF)
|
||||||
%assertRAM(TreePullKills, $7E0CFB)
|
%assertRAM(TreePullKills, $7E0CFB)
|
||||||
%assertRAM(TreePullHits, $7E0CFC)
|
%assertRAM(TreePullHits, $7E0CFC)
|
||||||
|
|||||||
80
save.asm
80
save.asm
@@ -1,18 +1,42 @@
|
|||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
WriteSaveChecksumAndBackup:
|
WriteSaveChecksumAndBackup:
|
||||||
LDX.w #$0000 : TXA : - ; Checksum first $04FE bytes
|
TDC
|
||||||
CLC : ADC.l SaveDataWRAM, X
|
CLC
|
||||||
INX #2
|
LDX.w #$004FC
|
||||||
CPX.w #$04FE : BNE -
|
-
|
||||||
LDX.w #$0000 : - ; Checksum extended save data
|
ADC.l SaveDataWRAM, X
|
||||||
CLC : ADC.l ExtendedFileNameWRAM, X
|
DEX #2
|
||||||
INX #2
|
BPL -
|
||||||
CPX.w #$0FFE : BNE -
|
LDX.w #$0FFE
|
||||||
|
-
|
||||||
|
ADC.l ExtendedFileNameWRAM, X
|
||||||
|
DEX #2
|
||||||
|
BPL -
|
||||||
|
STA.b Scrap00
|
||||||
|
LDA.w #$5A5A
|
||||||
|
SEC : SBC.b Scrap00
|
||||||
|
STA.l InverseChecksumSRAM
|
||||||
|
BRA .backup_save
|
||||||
|
|
||||||
|
.from_sram
|
||||||
|
TDC
|
||||||
|
CLC
|
||||||
|
LDX.w #$004FC
|
||||||
|
-
|
||||||
|
ADC.l CartridgeSRAM, X
|
||||||
|
DEX #2
|
||||||
|
BPL -
|
||||||
|
LDX.w #$0FFE
|
||||||
|
-
|
||||||
|
ADC.l ExtendedFileNameSRAM, X
|
||||||
|
DEX #2
|
||||||
|
BPL -
|
||||||
STA.b Scrap00
|
STA.b Scrap00
|
||||||
LDA.w #$5A5A
|
LDA.w #$5A5A
|
||||||
SEC : SBC.b Scrap00
|
SEC : SBC.b Scrap00
|
||||||
STA.l InverseChecksumSRAM
|
STA.l InverseChecksumSRAM
|
||||||
|
|
||||||
|
.backup_save
|
||||||
PHB
|
PHB
|
||||||
LDA.w #$14FF ; \
|
LDA.w #$14FF ; \
|
||||||
LDX.w #CartridgeSRAM ; | Copies $1500 bytes from beginning of cart SRAM to
|
LDX.w #CartridgeSRAM ; | Copies $1500 bytes from beginning of cart SRAM to
|
||||||
@@ -21,31 +45,37 @@ WriteSaveChecksumAndBackup:
|
|||||||
PLB
|
PLB
|
||||||
TDC
|
TDC
|
||||||
TAX
|
TAX
|
||||||
|
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
ValidateSRAM:
|
ValidateSRAM:
|
||||||
REP #$30
|
REP #$30
|
||||||
LDX.w #$0000 : TXA : - ; Checksum first $04FE bytes
|
TDC
|
||||||
CLC : ADC.l CartridgeSRAM, X
|
CLC
|
||||||
INX #2
|
LDX.w #$04FC
|
||||||
CPX.w #$04FE : BNE -
|
-
|
||||||
LDX.w #$0000 : - ; Checksum extended save data
|
ADC.l CartridgeSRAM, X
|
||||||
CLC : ADC.l ExtendedFileNameSRAM, X
|
DEX #2
|
||||||
INX #2
|
BPL -
|
||||||
CPX.w #$0FFE : BNE -
|
LDX.w #$0FFE
|
||||||
|
-
|
||||||
|
ADC.l ExtendedFileNameSRAM, X
|
||||||
|
DEX #2
|
||||||
|
BPL -
|
||||||
STA.b Scrap00
|
STA.b Scrap00
|
||||||
LDA.w #$5A5A
|
LDA.w #$5A5A
|
||||||
SEC : SBC.b Scrap00
|
SEC : SBC.b Scrap00
|
||||||
CMP.l InverseChecksumSRAM : BEQ .goodchecksum
|
CMP.l InverseChecksumSRAM : BEQ .goodchecksum
|
||||||
LDX.w #$0000 : TXA : - ; Do the same for the backup save
|
TDC
|
||||||
CLC : ADC.l SaveBackupSRAM, X
|
LDX.w #$04FC
|
||||||
INX #2
|
-
|
||||||
CPX.w #$04FE : BNE -
|
ADC.l SaveBackupSRAM, X
|
||||||
LDX.w #$0000 : -
|
DEX #2
|
||||||
CLC : ADC.l SaveBackupSRAM+$500, X
|
BPL -
|
||||||
INX #2
|
LDX.w #$0FFE
|
||||||
CPX.w #$0FFE : BNE -
|
-
|
||||||
|
ADC.l SaveBackupSRAM+$500, X
|
||||||
|
DEX #2
|
||||||
|
BPL -
|
||||||
STA.b Scrap00
|
STA.b Scrap00
|
||||||
LDA.w #$5A5A
|
LDA.w #$5A5A
|
||||||
SEC : SBC.b Scrap00
|
SEC : SBC.b Scrap00
|
||||||
|
|||||||
@@ -1,40 +1,6 @@
|
|||||||
;--------------------------------------------------------------------------------
|
|
||||||
; 291 - Moldorm Cave
|
|
||||||
; 286 - Northeast Dark Swamp Cave
|
|
||||||
;--------------------------------------------------------------------------------
|
|
||||||
!FREE_TILE_BUFFER = $1180
|
!FREE_TILE_BUFFER = $1180
|
||||||
!FREE_TILE = $5A40
|
!FREE_TILE = $5A40
|
||||||
; A = Tile ID
|
|
||||||
macro UploadOAM(dest)
|
|
||||||
PHA : PHP
|
|
||||||
|
|
||||||
PHA
|
|
||||||
REP #$20 ; set 16-bit accumulator
|
|
||||||
LDA.w #$0000 : STA.l SpriteOAM
|
|
||||||
STA.l SpriteOAM+2
|
|
||||||
LDA.w #$0200 : STA.l SpriteOAM+6
|
|
||||||
SEP #$20 ; set 8-bit accumulator
|
|
||||||
LDA.b <dest> : STA.l SpriteOAM+4
|
|
||||||
|
|
||||||
LDA.b $01,s
|
|
||||||
|
|
||||||
JSL.l GetSpritePalette_resolved
|
|
||||||
STA.l SpriteOAM+5 : STA.l SpriteOAM+13
|
|
||||||
PLA
|
|
||||||
JSL.l IsNarrowSprite : BCS .narrow
|
|
||||||
|
|
||||||
BRA .done
|
|
||||||
|
|
||||||
.narrow
|
|
||||||
REP #$20 ; set 16-bit accumulator
|
|
||||||
LDA.w #$0000 : STA.l SpriteOAM+7
|
|
||||||
STA.l SpriteOAM+14
|
|
||||||
LDA.w #$0800 : STA.l SpriteOAM+9
|
|
||||||
LDA.w #$3400 : STA.l SpriteOAM+11
|
|
||||||
|
|
||||||
.done
|
|
||||||
PLP : PLA
|
|
||||||
endmacro
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; $0A : Digit Offset
|
; $0A : Digit Offset
|
||||||
; $0C-$0D : Value to Display
|
; $0C-$0D : Value to Display
|
||||||
@@ -593,19 +559,25 @@ Shopkeeper_DrawNextItem:
|
|||||||
|
|
||||||
STA.l SpriteOAM+4
|
STA.l SpriteOAM+4
|
||||||
|
|
||||||
LDA.l ShopInventory, X ; get item palette
|
LDA.l ShopInventory, X
|
||||||
|
PHX
|
||||||
JSL.l GetSpritePalette_resolved : STA.l SpriteOAM+5
|
JSL.l GetSpritePalette_resolved : STA.l SpriteOAM+5
|
||||||
|
PLX
|
||||||
|
|
||||||
LDA.b #$00 : STA.l SpriteOAM+6
|
LDA.b #$00 : STA.l SpriteOAM+6
|
||||||
|
|
||||||
LDA.l ShopInventory, X ; get item palette
|
LDA.l ShopInventory, X
|
||||||
JSL.l IsNarrowSprite : BCS .narrow
|
PHX
|
||||||
|
TAX
|
||||||
|
LDA.l SpriteProperties_standing_width,X : BEQ .narrow
|
||||||
.full
|
.full
|
||||||
|
PLX
|
||||||
LDA.b #$02
|
LDA.b #$02
|
||||||
STA.l SpriteOAM+7
|
STA.l SpriteOAM+7
|
||||||
LDA.b #$01
|
LDA.b #$01
|
||||||
BRA ++
|
BRA ++
|
||||||
.narrow
|
.narrow
|
||||||
|
PLX
|
||||||
LDA.b #$00
|
LDA.b #$00
|
||||||
STA.l SpriteOAM+7
|
STA.l SpriteOAM+7
|
||||||
JSR.w PrepNarrowLower
|
JSR.w PrepNarrowLower
|
||||||
|
|||||||
11
tables.asm
11
tables.asm
@@ -1033,12 +1033,8 @@ dw $0000 : db $00 : dw $0000, $0000, $0000, $0000, $0000, $0000, $0000 : db $00,
|
|||||||
dw $0000 : db $00 : dw $0000, $0000, $0000, $0000, $0000, $0000, $0000 : db $00, $00, $00
|
dw $0000 : db $00 : dw $0000, $0000, $0000, $0000, $0000, $0000, $0000 : db $00, $00, $00
|
||||||
dw $0000 : db $00 : dw $0000, $0000, $0000, $0000, $0000, $0000, $0000 : db $00, $00, $00
|
dw $0000 : db $00 : dw $0000, $0000, $0000, $0000, $0000, $0000, $0000 : db $00, $00, $00
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; 0x1802A0 - 0x1802BF
|
; 0x1802A0 - 0x1802BF (unused)
|
||||||
;---------------------------------------------------------------------------------
|
;---------------------------------------------------------------------------------
|
||||||
; these are dungeon correlations to $7EF364 - $7EF369 so it knows where to store compasses, etc
|
|
||||||
DungeonItemMasks:
|
|
||||||
dw $8000, $4000, $2000, $1000, $0800, $0400, $0200, $0100
|
|
||||||
dw $0080, $0040, $0020, $0010, $0008, $0004
|
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; 0x1802C0 - 0x1802FF (unused)
|
; 0x1802C0 - 0x1802FF (unused)
|
||||||
@@ -1070,12 +1066,9 @@ org $B08358
|
|||||||
AllowAccidentalMajorGlitch:
|
AllowAccidentalMajorGlitch:
|
||||||
db $00
|
db $00
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; GFX pointers (0x180359 - 0x18035B)
|
; GFX pointers (0x180359 - 0x18035E)
|
||||||
; For 3rd party sprite stuff
|
; For 3rd party sprite stuff
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
org $B08359
|
|
||||||
dl GfxPalettes
|
|
||||||
|
|
||||||
org $B0835C
|
org $B0835C
|
||||||
dl ItemReceiptGraphicsOffsets
|
dl ItemReceiptGraphicsOffsets
|
||||||
|
|
||||||
|
|||||||
@@ -30,14 +30,15 @@ RTS
|
|||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
SpawnTabletItem:
|
SpawnTabletItem:
|
||||||
JSL.l LoadOutdoorValue
|
JSL.l LoadOutdoorValue
|
||||||
PHA
|
JSL.l ResolveLootIDLong
|
||||||
JSL.l PrepDynamicTile
|
STA.w SpriteItemType, Y
|
||||||
|
JSL.l PrepDynamicTile_loot_resolved
|
||||||
|
|
||||||
LDA.b #$EB
|
LDA.b #$EB
|
||||||
STA.l MiniGameTime
|
STA.l MiniGameTime
|
||||||
JSL Sprite_SpawnDynamically
|
JSL Sprite_SpawnDynamically
|
||||||
|
|
||||||
PLA : STA.w SpriteItemType, Y ; Store item type
|
LDA.w SpriteItemType, Y ; Store item type
|
||||||
LDA.b LinkPosX : STA.w SpritePosXLow, Y
|
LDA.b LinkPosX : STA.w SpritePosXLow, Y
|
||||||
LDA.b LinkPosX+1 : STA.w SpritePosXHigh, Y
|
LDA.b LinkPosX+1 : STA.w SpritePosXHigh, Y
|
||||||
|
|
||||||
@@ -90,7 +91,7 @@ IsMedallion:
|
|||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
LoadNarrowObject:
|
LoadNarrowObject:
|
||||||
LDA.l ItemReceipts_width, X : STA.b ($92), Y ; AddReceiveItem.wide_item_flag?
|
LDA.l SpriteProperties_standing_width, X : STA.b ($92), Y ; AddReceiveItem.wide_item_flag?
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
CheckTabletItem:
|
CheckTabletItem:
|
||||||
|
|||||||
315
utilities.asm
315
utilities.asm
@@ -8,23 +8,10 @@
|
|||||||
GetSpriteID:
|
GetSpriteID:
|
||||||
JSR.w AttemptItemSubstitution
|
JSR.w AttemptItemSubstitution
|
||||||
JSR.w ResolveLootID
|
JSR.w ResolveLootID
|
||||||
CMP.b #$16 : BEQ .bottle ; Bottle
|
|
||||||
CMP.b #$2B : BEQ .bottle ; Red Potion w/bottle
|
|
||||||
CMP.b #$2C : BEQ .bottle ; Green Potion w/bottle
|
|
||||||
CMP.b #$2D : BEQ .bottle ; Blue Potion w/bottle
|
|
||||||
CMP.b #$3C : BEQ .bottle ; Bee w/bottle
|
|
||||||
CMP.b #$3D : BEQ .bottle ; Fairy w/bottle
|
|
||||||
CMP.b #$48 : BEQ .bottle ; Gold Bee w/bottle
|
|
||||||
CMP.b #$6D : BEQ .server_F0 ; Server Request F0
|
CMP.b #$6D : BEQ .server_F0 ; Server Request F0
|
||||||
CMP.b #$6E : BEQ .server_F1 ; Server Request F1
|
CMP.b #$6E : BEQ .server_F1 ; Server Request F1
|
||||||
CMP.b #$6F : BEQ .server_F2 ; Server Request F2
|
CMP.b #$6F : BEQ .server_F2 ; Server Request F2
|
||||||
BRA .normal
|
BRA .normal
|
||||||
.bottle
|
|
||||||
PHA : JSR.w CountBottles : CMP.l BottleLimit : !BLT +
|
|
||||||
PLA : LDA.l BottleLimitReplacement
|
|
||||||
JMP GetSpriteID
|
|
||||||
+
|
|
||||||
PLA : BRA .normal
|
|
||||||
.server_F0
|
.server_F0
|
||||||
JSL.l ItemVisualServiceRequest_F0
|
JSL.l ItemVisualServiceRequest_F0
|
||||||
BRA .normal
|
BRA .normal
|
||||||
@@ -34,7 +21,6 @@ GetSpriteID:
|
|||||||
.server_F2
|
.server_F2
|
||||||
JSL.l ItemVisualServiceRequest_F2
|
JSL.l ItemVisualServiceRequest_F2
|
||||||
.normal
|
.normal
|
||||||
|
|
||||||
PHX
|
PHX
|
||||||
TAX : LDA.l ItemReceipts_graphics, X ; look up item gfx
|
TAX : LDA.l ItemReceipts_graphics, X ; look up item gfx
|
||||||
PLX
|
PLX
|
||||||
@@ -49,160 +35,15 @@ GetSpritePalette:
|
|||||||
JSR AttemptItemSubstitution
|
JSR AttemptItemSubstitution
|
||||||
JSR.w ResolveLootID
|
JSR.w ResolveLootID
|
||||||
.resolved
|
.resolved
|
||||||
CMP.b #$16 : BEQ .bottle ; Bottle
|
TAX
|
||||||
CMP.b #$2B : BEQ .bottle ; Red Potion w/bottle
|
LDA.l SpriteProperties_standing_palette, X : BIT #$80 : BNE .load_palette
|
||||||
CMP.b #$2C : BEQ .bottle ; Green Potion w/bottle
|
ASL
|
||||||
CMP.b #$2D : BEQ .bottle ; Blue Potion w/bottle
|
|
||||||
CMP.b #$3C : BEQ .bottle ; Bee w/bottle
|
|
||||||
CMP.b #$3D : BEQ .bottle ; Fairy w/bottle
|
|
||||||
CMP.b #$48 : BEQ .bottle ; Gold Bee w/bottle
|
|
||||||
BRA .notBottle
|
|
||||||
.bottle
|
|
||||||
PHA : JSR.w CountBottles : CMP.l BottleLimit : !BLT +
|
|
||||||
PLA : LDA.l BottleLimitReplacement
|
|
||||||
JMP GetSpritePalette
|
|
||||||
+
|
|
||||||
PLA : .notBottle
|
|
||||||
PHX
|
|
||||||
TAX : LDA.l GfxPalettes, X ; look up item gfx
|
|
||||||
PLX
|
|
||||||
RTL
|
RTL
|
||||||
|
.load_palette
|
||||||
;---------------------------------------------------------------------------------------------------
|
JSL.l LoadItemPalette
|
||||||
|
ASL
|
||||||
;DATA - Loot Identifier to Sprite Palette
|
|
||||||
{
|
|
||||||
GfxPalettes:
|
|
||||||
db $00, $04, $02, $08, $04, $02, $08, $02
|
|
||||||
db $04, $02, $02, $02, $04, $04, $04, $08
|
|
||||||
|
|
||||||
db $08, $08, $02, $02, $04, $02, $02, $02
|
|
||||||
db $04, $02, $04, $02, $08, $08, $04, $02
|
|
||||||
|
|
||||||
db $0A, $02, $04, $02, $04, $04, $00, $04
|
|
||||||
db $04, $08, $02, $02, $08, $04, $02, $08
|
|
||||||
|
|
||||||
db $04, $04, $08, $08, $08, $04, $02, $08
|
|
||||||
db $02, $04, $08, $02, $04, $04, $02, $02
|
|
||||||
|
|
||||||
db $08, $08, $02, $04, $04, $08, $08, $08
|
|
||||||
db $04, $04, $04, $02, $08, $08, $08, $08
|
|
||||||
; db $04, $0A, $04, $02, $FF, $FF, $FF, $FF
|
|
||||||
|
|
||||||
db $04 ; Safe Master Sword
|
|
||||||
db $08, $08, $08, $08 ; Bomb & Arrow +5/+10
|
|
||||||
db $04, $00, $00 ; Programmable Items 1-3
|
|
||||||
db $02 ; Upgrade-Only Silver Arrows
|
|
||||||
db $06 ; 1 Rupoor
|
|
||||||
db $02 ; Null Item
|
|
||||||
db $02, $04, $08 ; Red, Blue & Green Clocks
|
|
||||||
db $FD, $FE, $FF, $FC ; Progressive Sword, Shield, Armor & Gloves
|
|
||||||
db $FA, $FB ; RNG Single & Multi
|
|
||||||
db $F8, $F8 ; Progressive Bow
|
|
||||||
db $00, $00, $00, $00 ; Unused
|
|
||||||
db $08, $08, $08 ; Goal Item Single, Multi & Alt Multi
|
|
||||||
db $04, $04, $04 ; Server Request F0, F1, F2
|
|
||||||
|
|
||||||
db $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 ; Free Map
|
|
||||||
db $04, $04, $04, $04, $04, $04, $04, $04, $04, $04, $04, $04, $04, $04, $04, $04 ; Free Compass
|
|
||||||
;db $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 ; *EVENT*
|
|
||||||
db $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 ; Free Big Key
|
|
||||||
db $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 ; Free Small Key
|
|
||||||
db $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 ; Unused
|
|
||||||
db $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 ; Unused
|
|
||||||
db $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 ; Unused
|
|
||||||
db $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 ; Unused
|
|
||||||
db $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08, $08 ; Unused
|
|
||||||
}
|
|
||||||
;--------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
|
||||||
; IsNarrowSprite
|
|
||||||
; in: A - Loot ID
|
|
||||||
; out: Carry - 0 = Full, 1 = Narrow
|
|
||||||
;--------------------------------------------------------------------------------
|
|
||||||
IsNarrowSprite:
|
|
||||||
PHA : PHX
|
|
||||||
PHB : PHK : PLB
|
|
||||||
JSR AttemptItemSubstitution
|
|
||||||
;--------
|
|
||||||
CMP.b #$16 : BEQ .bottle ; Bottle
|
|
||||||
CMP.b #$2B : BEQ .bottle ; Red Potion w/bottle
|
|
||||||
CMP.b #$2C : BEQ .bottle ; Green Potion w/bottle
|
|
||||||
CMP.b #$2D : BEQ .bottle ; Blue Potion w/bottle
|
|
||||||
CMP.b #$3C : BEQ .bottle ; Bee w/bottle
|
|
||||||
CMP.b #$3D : BEQ .bottle ; Fairy w/bottle
|
|
||||||
CMP.b #$48 : BEQ .bottle ; Gold Bee w/bottle
|
|
||||||
BRA .notBottle
|
|
||||||
.bottle
|
|
||||||
JSR.w CountBottles : CMP.l BottleLimit : !BLT +
|
|
||||||
LDA.l BottleLimitReplacement
|
|
||||||
JSL.l IsNarrowSprite
|
|
||||||
JMP .done
|
|
||||||
+ : JMP .continue
|
|
||||||
.notBottle
|
|
||||||
CMP.b #$5E : BNE ++ ; Progressive Sword
|
|
||||||
LDA.l HighestSword : CMP.l ProgressiveSwordLimit : !BLT + ; Progressive Sword Limit
|
|
||||||
LDA.l ProgressiveSwordReplacement
|
|
||||||
JSL.l IsNarrowSprite
|
|
||||||
JMP .done
|
|
||||||
+ : JMP .continue
|
|
||||||
++ CMP.b #$5F : BNE ++ ; Progressive Shield
|
|
||||||
LDA.l HighestShield : BNE + : JMP .done ; No Shield
|
|
||||||
+ : CMP.l ProgressiveShieldLimit : !BLT .continue
|
|
||||||
LDA.l ProgressiveShieldReplacement
|
|
||||||
JSL.l IsNarrowSprite
|
|
||||||
JMP .done
|
|
||||||
++ CMP.b #$60 : BNE ++ ; Progressive Armor
|
|
||||||
LDA.l HighestMail : CMP.l ProgressiveArmorLimit : !BLT .continue
|
|
||||||
LDA.l ProgressiveArmorReplacement
|
|
||||||
JSL.l IsNarrowSprite
|
|
||||||
JMP .done
|
|
||||||
+
|
|
||||||
++ CMP.b #$62 : BNE ++ ; RNG Item (Single)
|
|
||||||
JSL.l GetRNGItemSingle : JMP .continue
|
|
||||||
++ CMP.b #$63 : BNE ++ ; RNG Item (Multi)
|
|
||||||
JSL.l GetRNGItemMulti
|
|
||||||
++ CMP.b #$64 : BEQ + ; Progressive Bow
|
|
||||||
CMP.b #$65 : BNE .continue ; Progressive Bow (alt)
|
|
||||||
+ : LDA.l BowEquipment : INC : LSR
|
|
||||||
CMP.l ProgressiveBowLimit : !BLT +
|
|
||||||
LDA.l ProgressiveBowReplacement
|
|
||||||
JSL.l IsNarrowSprite
|
|
||||||
JMP .done
|
|
||||||
.continue
|
|
||||||
;--------
|
|
||||||
|
|
||||||
LDX.b #$00 ; set index counter to 0
|
|
||||||
;----
|
|
||||||
-
|
|
||||||
CPX.b #$24 : !BGE .false ; finish if we've done the whole list
|
|
||||||
CMP.l .smallSprites, X : BNE + ; skip to next if we don't match
|
|
||||||
;--
|
|
||||||
SEC ; set true state
|
|
||||||
BRA .done ; we're done
|
|
||||||
;--
|
|
||||||
+
|
|
||||||
INX ; increment index
|
|
||||||
BRA - ; go back to beginning of loop
|
|
||||||
;----
|
|
||||||
.false
|
|
||||||
CLC
|
|
||||||
.done
|
|
||||||
PLB : PLX : PLA
|
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
;DATA - Half-Size Sprite Markers
|
|
||||||
{
|
|
||||||
.smallSprites
|
|
||||||
db $04, $07, $08, $09, $0A, $0B, $0C, $13
|
|
||||||
db $15, $18, $24, $2A, $34, $35, $36, $42
|
|
||||||
db $43, $45, $59, $A0, $A1, $A2, $A3, $A4
|
|
||||||
db $A5, $A6, $A7, $A8, $A9, $AA, $AB, $AC
|
|
||||||
db $AD, $AE, $AF, $FF, $FF, $FF, $FF, $FF
|
|
||||||
}
|
|
||||||
;--------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; PrepDynamicTile
|
; PrepDynamicTile
|
||||||
; in: A - Loot ID
|
; in: A - Loot ID
|
||||||
@@ -210,11 +51,15 @@ RTL
|
|||||||
PrepDynamicTile:
|
PrepDynamicTile:
|
||||||
PHA : PHX : PHY : PHB
|
PHA : PHX : PHY : PHB
|
||||||
JSR.w ResolveLootID
|
JSR.w ResolveLootID
|
||||||
|
-
|
||||||
JSR.w LoadDynamicTileOAMTable
|
JSR.w LoadDynamicTileOAMTable
|
||||||
JSL TransferItemReceiptToBuffer_using_ReceiptID
|
JSL TransferItemReceiptToBuffer_using_ReceiptID
|
||||||
SEP #$30
|
SEP #$30
|
||||||
PLB : PLY : PLX : PLA
|
PLB : PLY : PLX : PLA
|
||||||
RTL
|
RTL
|
||||||
|
.loot_resolved
|
||||||
|
PHA : PHX : PHY : PHB
|
||||||
|
BRA -
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
@@ -223,32 +68,29 @@ RTL
|
|||||||
;-------------------------------------------------------------------------------- 20/847B
|
;-------------------------------------------------------------------------------- 20/847B
|
||||||
LoadDynamicTileOAMTable:
|
LoadDynamicTileOAMTable:
|
||||||
PHA : PHP
|
PHA : PHP
|
||||||
|
REP #$20
|
||||||
PHA
|
LDA.w #$0000 : STA.l SpriteOAM : STA.l SpriteOAM+2
|
||||||
REP #$20 ; set 16-bit accumulator
|
|
||||||
LDA.w #$0000 : STA.l SpriteOAM
|
|
||||||
STA.l SpriteOAM+2
|
|
||||||
LDA.w #$0200 : STA.l SpriteOAM+6
|
LDA.w #$0200 : STA.l SpriteOAM+6
|
||||||
SEP #$20 ; set 8-bit accumulator
|
SEP #$20
|
||||||
LDA.b #$24 : STA.l SpriteOAM+4
|
LDA.b #$24 : STA.l SpriteOAM+4
|
||||||
|
|
||||||
LDA.b $01,s
|
LDA.w SpriteItemType,X
|
||||||
|
|
||||||
JSL.l GetSpritePalette_resolved
|
JSL.l GetSpritePalette_resolved
|
||||||
STA.l SpriteOAM+5 : STA.l SpriteOAM+13
|
STA.l SpriteOAM+5 : STA.l SpriteOAM+13
|
||||||
PLA
|
PHX
|
||||||
JSL.l IsNarrowSprite : BCS .narrow
|
LDA.l SpriteProperties_standing_width,X : BEQ .narrow
|
||||||
|
|
||||||
BRA .done
|
BRA .done
|
||||||
|
|
||||||
.narrow
|
.narrow
|
||||||
REP #$20 ; set 16-bit accumulator
|
REP #$20
|
||||||
LDA.w #$0000 : STA.l SpriteOAM+7
|
LDA.w #$0400 : STA.l SpriteOAM+7 : STA.l SpriteOAM+14
|
||||||
STA.l SpriteOAM+14
|
|
||||||
LDA.w #$0800 : STA.l SpriteOAM+9
|
LDA.w #$0800 : STA.l SpriteOAM+9
|
||||||
LDA.w #$3400 : STA.l SpriteOAM+11
|
LDA.w #$3400 : STA.l SpriteOAM+11
|
||||||
|
SEP #$20
|
||||||
|
LDA.b #$04 : STA.l SpriteOAM
|
||||||
|
|
||||||
.done
|
.done
|
||||||
|
PLX
|
||||||
PLP : PLA
|
PLP : PLA
|
||||||
RTS
|
RTS
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
@@ -261,15 +103,19 @@ RTS
|
|||||||
; This wastes two OAM slots if you don't want a shadow - fix later - I wrote "fix later" over a year ago and it's still not fixed (Aug 6, 2017) - lol (May 25th, 2019)
|
; This wastes two OAM slots if you don't want a shadow - fix later - I wrote "fix later" over a year ago and it's still not fixed (Aug 6, 2017) - lol (May 25th, 2019)
|
||||||
;-------------------------------------------------------------------------------- 2084B8
|
;-------------------------------------------------------------------------------- 2084B8
|
||||||
DrawDynamicTile:
|
DrawDynamicTile:
|
||||||
JSL.l IsNarrowSprite : BCS .narrow
|
PHX
|
||||||
|
TAX
|
||||||
|
LDA.l SpriteProperties_standing_width,X : BEQ .narrow
|
||||||
|
|
||||||
.full
|
.full
|
||||||
|
PLX
|
||||||
LDA.b #$01 : STA.b Scrap06
|
LDA.b #$01 : STA.b Scrap06
|
||||||
LDA.b #$0C : JSL.l OAM_AllocateFromRegionC
|
LDA.b #$0C : JSL.l OAM_AllocateFromRegionC
|
||||||
LDA.b #$02 : PHA
|
LDA.b #$02 : PHA
|
||||||
BRA .draw
|
BRA .draw
|
||||||
|
|
||||||
.narrow
|
.narrow
|
||||||
|
PLX
|
||||||
LDA.b #$02 : STA.b Scrap06
|
LDA.b #$02 : STA.b Scrap06
|
||||||
LDA.b #$10 : JSL.l OAM_AllocateFromRegionC
|
LDA.b #$10 : JSL.l OAM_AllocateFromRegionC
|
||||||
LDA.b #$03 : PHA
|
LDA.b #$03 : PHA
|
||||||
@@ -290,14 +136,18 @@ DrawDynamicTile:
|
|||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
DrawDynamicTileNoShadow:
|
DrawDynamicTileNoShadow:
|
||||||
JSL.l IsNarrowSprite : BCS .narrow
|
PHX
|
||||||
|
TAX
|
||||||
|
LDA.l SpriteProperties_standing_width,X : BEQ .narrow
|
||||||
|
|
||||||
.full
|
.full
|
||||||
|
PLX
|
||||||
LDA.b #$01 : STA.b Scrap06
|
LDA.b #$01 : STA.b Scrap06
|
||||||
LDA.b #$04 : JSL.l OAM_AllocateFromRegionC
|
LDA.b #$04 : JSL.l OAM_AllocateFromRegionC
|
||||||
BRA .draw
|
BRA .draw
|
||||||
|
|
||||||
.narrow
|
.narrow
|
||||||
|
PLX
|
||||||
LDA.b #$02 : STA.b Scrap06
|
LDA.b #$02 : STA.b Scrap06
|
||||||
LDA.b #$08 : JSL.l OAM_AllocateFromRegionC
|
LDA.b #$08 : JSL.l OAM_AllocateFromRegionC
|
||||||
|
|
||||||
@@ -400,70 +250,10 @@ SkipDrawEOR:
|
|||||||
LDA.b ($08), Y : EOR.w Scrap04 ; thing we wrote over
|
LDA.b ($08), Y : EOR.w Scrap04 ; thing we wrote over
|
||||||
RTL
|
RTL
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
|
||||||
; CountBits
|
|
||||||
; in: A(b) - Byte to count bits in
|
|
||||||
; out: A(b) - sum of bits
|
|
||||||
; caller is responsible for setting 8-bit mode and preserving X and Y
|
|
||||||
;--------------------------------------------------------------------------------
|
|
||||||
;CountBits:
|
|
||||||
; PHX
|
|
||||||
; TAX ; Save a copy of value
|
|
||||||
; LSR #4 ; Shift down hi nybble, Leave <3> in C
|
|
||||||
; PHA ; And save <7:4> in Stack
|
|
||||||
; TXA ; Recover value
|
|
||||||
; AND.b #$07 ; Put out <2:0> in X
|
|
||||||
; TAX ; And save in X
|
|
||||||
; LDA.l NybbleBitCounts, X ; Fetch count for <2:0>
|
|
||||||
; PLX ; get <7:4>
|
|
||||||
; ADC.l NybbleBitCounts, X ; Add count for S & C
|
|
||||||
; PLX
|
|
||||||
;RTL
|
|
||||||
|
|
||||||
; Look up table of bit counts in the values $00-$0F
|
; Look up table of bit counts in the values $00-$0F
|
||||||
NybbleBitCounts:
|
NybbleBitCounts:
|
||||||
db #00, #01, #01, #02, #01, #02, #02, #03, #01, #02, #02, #03, #02, #03, #03, #04
|
db #00, #01, #01, #02, #01, #02, #02, #03, #01, #02, #02, #03, #02, #03, #03, #04
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
|
||||||
; HexToDec
|
|
||||||
; in: A(w) - Word to Convert
|
|
||||||
; out: HexToDecDigit1 - HexToDecDigit5 (high - low)
|
|
||||||
;--------------------------------------------------------------------------------
|
|
||||||
;HexToDec:
|
|
||||||
; PHA
|
|
||||||
; PHA
|
|
||||||
; LDA.w #$9090
|
|
||||||
; STA.l HexToDecDigit1 : STA.l HexToDecDigit3 : STA.l HexToDecDigit4 ; clear digit storage
|
|
||||||
; PLA
|
|
||||||
; -
|
|
||||||
; CMP.w #10000 : !BLT +
|
|
||||||
; PHA : SEP #$20 : LDA.l HexToDecDigit1 : INC : STA.l HexToDecDigit1 : REP #$20 : PLA
|
|
||||||
; !SUB.w #10000 : BRA -
|
|
||||||
; + -
|
|
||||||
; CMP.w #1000 : !BLT +
|
|
||||||
; PHA : SEP #$20 : LDA.l HexToDecDigit2 : INC : STA.l HexToDecDigit2 : REP #$20 : PLA
|
|
||||||
; !SUB.w #1000 : BRA -
|
|
||||||
; + -
|
|
||||||
; CMP.w #100 : !BLT +
|
|
||||||
; PHA : SEP #$20 : LDA.l HexToDecDigit3 : INC : STA.l HexToDecDigit3 : REP #$20 : PLA
|
|
||||||
; !SUB.w #100 : BRA -
|
|
||||||
; + -
|
|
||||||
; CMP.w #10 : !BLT +
|
|
||||||
; PHA : SEP #$20 : LDA.l HexToDecDigit4 : INC : STA.l HexToDecDigit4 : REP #$20 : PLA
|
|
||||||
; !SUB.w #10 : BRA -
|
|
||||||
; + -
|
|
||||||
; CMP.w #1 : !BLT +
|
|
||||||
; PHA : SEP #$20 : LDA.l HexToDecDigit5 : INC : STA.l HexToDecDigit5 : REP #$20 : PLA
|
|
||||||
; !SUB.w #1 : BRA -
|
|
||||||
; +
|
|
||||||
; PLA
|
|
||||||
;RTL
|
|
||||||
;--------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
;--------------------------------------------------------------------------------
|
;--------------------------------------------------------------------------------
|
||||||
; WriteVRAMStripe
|
; WriteVRAMStripe
|
||||||
; in: A(w) - VRAM Destination
|
; in: A(w) - VRAM Destination
|
||||||
@@ -530,7 +320,6 @@ RTL
|
|||||||
;It is followed by a single tile (word). Combining this this with the D bit makes it easy to draw large horizontal or vertical runs of a tile without using much space. Geat for erasing or drawing horizontal or verical box edges.
|
;It is followed by a single tile (word). Combining this this with the D bit makes it easy to draw large horizontal or vertical runs of a tile without using much space. Geat for erasing or drawing horizontal or verical box edges.
|
||||||
;================================================================================
|
;================================================================================
|
||||||
|
|
||||||
|
|
||||||
DynamicDrawCleanup:
|
DynamicDrawCleanup:
|
||||||
PHA
|
PHA
|
||||||
REP #$20
|
REP #$20
|
||||||
@@ -547,3 +336,45 @@ DynamicDrawCleanup:
|
|||||||
PLA
|
PLA
|
||||||
RTL
|
RTL
|
||||||
|
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
CheckReceivedItemPropertiesBeforeLoad:
|
||||||
|
LDA.b RoomIndex : BEQ .normalCode
|
||||||
|
LDA.l RoomFade : BNE .load_palette
|
||||||
|
LDA.l SpriteProperties_chest_palette,X : BIT #$80 : BNE .load_palette
|
||||||
|
.normalCode
|
||||||
|
RTL
|
||||||
|
.load_palette
|
||||||
|
JSL.l LoadItemPalette
|
||||||
|
RTL
|
||||||
|
|
||||||
|
;------------------------------------------------------------------------------
|
||||||
|
LoadItemPalette:
|
||||||
|
; In: X - Loot ID
|
||||||
|
; Out: A - Sprite palette index
|
||||||
|
PHX : PHY : PHB
|
||||||
|
LDA.b #PalettesVanillaBank>>16 : STA.b Scrap0C
|
||||||
|
LDA.b #$7E
|
||||||
|
PHA : PLB
|
||||||
|
REP #$30
|
||||||
|
|
||||||
|
TXA : ASL : TAX
|
||||||
|
LDA.l SpriteProperties_palette_addr,X : STA.b Scrap0A
|
||||||
|
LDY.w #$000E
|
||||||
|
LDA.w TransparencyFlag : BNE .SP05
|
||||||
|
-
|
||||||
|
LDA.b [Scrap0A], Y : STA.w PaletteBuffer+$0170,Y
|
||||||
|
DEY #2
|
||||||
|
BPL -
|
||||||
|
LDA.w #$0003
|
||||||
|
BRA .done
|
||||||
|
.SP05
|
||||||
|
-
|
||||||
|
LDA.b [Scrap0A], Y : STA.w PaletteBuffer+$01B0,Y
|
||||||
|
DEY #2
|
||||||
|
BPL -
|
||||||
|
LDA.w #$0005
|
||||||
|
.done
|
||||||
|
SEP #$30
|
||||||
|
PLB : PLY : PLX
|
||||||
|
INC.b NMICGRAM
|
||||||
|
RTL
|
||||||
|
|||||||
@@ -77,6 +77,7 @@ OverworldMap_LoadSprGfx = $8ABAB9
|
|||||||
NameFile_MakeScreenVisible = $8CD7D1
|
NameFile_MakeScreenVisible = $8CD7D1
|
||||||
InitializeSaveFile = $8CDB3E
|
InitializeSaveFile = $8CDB3E
|
||||||
InitializeSaveFile_build_checksum = $8CDBC0
|
InitializeSaveFile_build_checksum = $8CDBC0
|
||||||
|
InitializeSaveFile_checksum_done = $8CDBDB
|
||||||
GetRandomInt = $8DBA71
|
GetRandomInt = $8DBA71
|
||||||
OAM_AllocateFromRegionA = $8DBA80
|
OAM_AllocateFromRegionA = $8DBA80
|
||||||
OAM_AllocateFromRegionB = $8DBA84
|
OAM_AllocateFromRegionB = $8DBA84
|
||||||
@@ -114,15 +115,22 @@ DiggingGameGuy_AttemptPrizeSpawn = $9DFD4B
|
|||||||
Sprite_GetEmptyBottleIndex = $9EDE28
|
Sprite_GetEmptyBottleIndex = $9EDE28
|
||||||
Sprite_PlayerCantPassThrough = $9EF4E7
|
Sprite_PlayerCantPassThrough = $9EF4E7
|
||||||
|
|
||||||
;===================================================================================================
|
|
||||||
;---------------------------------------------------------------------------------------------------
|
|
||||||
;===================================================================================================
|
;===================================================================================================
|
||||||
; Local routines (use JSR)
|
; Local routines (use JSR)
|
||||||
;===================================================================================================
|
;===================================================================================================
|
||||||
;---------------------------------------------------------------------------------------------------
|
|
||||||
;===================================================================================================
|
|
||||||
Chicken_SpawnAvengerChicken = $86A7DB
|
Chicken_SpawnAvengerChicken = $86A7DB
|
||||||
|
Link_PerformOpenChest_no_replacement = $87B59F
|
||||||
DrawProgressIcons = $8DE9C8
|
DrawProgressIcons = $8DE9C8
|
||||||
DrawEquipment = $8DED29
|
DrawEquipment = $8DED29
|
||||||
|
|
||||||
;===================================================================================================
|
;===================================================================================================
|
||||||
|
; Palettes
|
||||||
|
;===================================================================================================
|
||||||
|
PalettesVanillaBank = $9B0000
|
||||||
|
PalettesVanilla_none = $9B0000
|
||||||
|
PalettesVanilla_red_melon = $9BD218
|
||||||
|
PalettesVanilla_blue_ice = $9BD236
|
||||||
|
PalettesVanilla_green_blue_guard = $9BD272
|
||||||
|
PalettesVanilla_dark_world_melon = $9BD290
|
||||||
|
PalettesVanilla_blue_dark_ice = $9BD2BC
|
||||||
|
PalettesVanilla_spraux09 = $9BD47E
|
||||||
|
|||||||
Reference in New Issue
Block a user