Add sram.asm, separate from symbols.asm
This commit is contained in:
514
Core/sram.asm
Normal file
514
Core/sram.asm
Normal file
@@ -0,0 +1,514 @@
|
|||||||
|
|
||||||
|
; Game state
|
||||||
|
; 0x00 - Very start; progress cannot be saved in this state
|
||||||
|
; 0x01 - Uncle reached
|
||||||
|
; 0x02 - Zelda rescued
|
||||||
|
; 0x03 - Agahnim defeated
|
||||||
|
GameState = $7EF3C5
|
||||||
|
|
||||||
|
; Red X on Hall of Secrets
|
||||||
|
; Red X on Kalyxo Pyramid
|
||||||
|
|
||||||
|
; .fmp h.i.
|
||||||
|
; f - fortress of secrets
|
||||||
|
; m - master sword
|
||||||
|
; p - pendant quest
|
||||||
|
; h - hall of secrets
|
||||||
|
; i - intro over, maku tree
|
||||||
|
OOSPROG = $7EF3D6
|
||||||
|
|
||||||
|
; Bitfield of less important progression
|
||||||
|
; .fbh .zsu
|
||||||
|
; u - Uncle
|
||||||
|
; s - Priest visited in sanc after Zelda is kidnapped again
|
||||||
|
; z - Zelda brought to sanc
|
||||||
|
; h - Uncle left Link's house (0: spawn | 1: gone)
|
||||||
|
; b - Book of Mudora obtained/mentioned; controls Aginah dialog
|
||||||
|
; f - Flipped by fortune tellers to decide fortune set to give
|
||||||
|
OOSPROG2 = $7EF3C6
|
||||||
|
|
||||||
|
; .... ...m
|
||||||
|
; m - maku tree has met link (0: no | 1: yes)
|
||||||
|
MakuTreeQuest = $7EF3D4
|
||||||
|
|
||||||
|
; Map icon
|
||||||
|
; 0x00 - Red X on Maku Tree/Maku Warp
|
||||||
|
; 0x01 - Toadstool Woods Crystal
|
||||||
|
; 0x02 - Kalyxo All Crystals
|
||||||
|
; 0x03 -
|
||||||
|
; 0x04 -
|
||||||
|
; 0x05 -
|
||||||
|
; 0x06 -
|
||||||
|
; 0x07 -
|
||||||
|
; 0x08 - Skull on GT | Climb Ganon's Tower
|
||||||
|
MapIcon = $7EF3C7
|
||||||
|
|
||||||
|
; 01 - Fishing Rod
|
||||||
|
; 02 - Portal Rod
|
||||||
|
CustomRods = $7EF351
|
||||||
|
|
||||||
|
; Free SRAM Block 38A-3C4
|
||||||
|
FishingRod = $7EF38A
|
||||||
|
|
||||||
|
; Collectibles
|
||||||
|
Bananas = $7EF38B
|
||||||
|
Pineapples = $7EF38D
|
||||||
|
RockMeat = $7EF38F
|
||||||
|
Seashells = $7EF391
|
||||||
|
Honeycomb = $7EF393
|
||||||
|
DekuSticks = $7EF395
|
||||||
|
|
||||||
|
TingleMaps = $7EF396
|
||||||
|
TingleId = $7EF397
|
||||||
|
|
||||||
|
; .dgi zktm
|
||||||
|
; m - Mushroom Grotto
|
||||||
|
; t - Tail Palace
|
||||||
|
; k - Kalyxo Castle
|
||||||
|
; z - Zora Temple
|
||||||
|
; i - Glacia Estate
|
||||||
|
; g - Goron Mines
|
||||||
|
; d - Dragon Ship
|
||||||
|
Scrolls = $7EF398
|
||||||
|
|
||||||
|
; Keep track of the previous scroll
|
||||||
|
; For re-reading old hints.
|
||||||
|
PrevScroll = $7EF39A
|
||||||
|
|
||||||
|
; .dts fwpb
|
||||||
|
; b - bean planted
|
||||||
|
; w - plant watered
|
||||||
|
; p - pollinated by bee
|
||||||
|
; f - first day
|
||||||
|
; s - second day
|
||||||
|
; t - third day
|
||||||
|
; d - done
|
||||||
|
MagicBeanProg = $7EF39B
|
||||||
|
|
||||||
|
; .... .cpw
|
||||||
|
; c - courage
|
||||||
|
; p - power
|
||||||
|
; w - wisdom
|
||||||
|
Dreams = $7EF410
|
||||||
|
|
||||||
|
; =========================================================
|
||||||
|
; Items
|
||||||
|
; =========================================================
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; 0x01 - Bow
|
||||||
|
; 0x02 - Bow and arrows
|
||||||
|
; 0x03 - Silver bow
|
||||||
|
; 0x04 - Silver bow and arrows
|
||||||
|
; Picking the arrow and nonarrow versions is done by the HUD draw routines
|
||||||
|
BOW = $7EF340
|
||||||
|
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; 0x01 - Blue boomerang
|
||||||
|
; 0x02 - Red boomerang
|
||||||
|
BOOMER = $7EF341
|
||||||
|
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; 0x01 - Hookshot
|
||||||
|
; 0x02 - Goldstar (L/R)
|
||||||
|
HOOKSHOT = $7EF342
|
||||||
|
|
||||||
|
; Number of bombs
|
||||||
|
BOMBS = $7EF343
|
||||||
|
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; 0x01 - Mushroom
|
||||||
|
; 0x02 - Powder
|
||||||
|
SHROOM = $7EF344
|
||||||
|
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; 0x01 - Fire rod
|
||||||
|
FIREROD = $7EF345
|
||||||
|
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; 0x01 - Ice rod
|
||||||
|
ICEROD = $7EF346
|
||||||
|
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; 0x01 - Zora Mask
|
||||||
|
ZoraMask = $7EF347
|
||||||
|
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; 0x01 - Bunny Hood
|
||||||
|
BunnyHood = $7EF348
|
||||||
|
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; 0x01 - Deku Mask
|
||||||
|
DekuMask = $7EF349
|
||||||
|
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; 0x01 - Lamp
|
||||||
|
LAMP = $7EF34A
|
||||||
|
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; 0x01 - Magic hammer
|
||||||
|
HAMMER = $7EF34B
|
||||||
|
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; 0x01 - Shovel
|
||||||
|
; 0x02 - Inactive flute
|
||||||
|
; 0x03 - Active flute
|
||||||
|
FLUTE = $7EF34C
|
||||||
|
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; 0x01 - Roc's Feather
|
||||||
|
RocsFeather = $7EF34D
|
||||||
|
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; 0x01 - Book of Mudora
|
||||||
|
BOOK = $7EF34E
|
||||||
|
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; Other values indicate the index of the currently selected bottle
|
||||||
|
BottleIndex = $7EF34F
|
||||||
|
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; 0x01 - Cane of Somaria
|
||||||
|
SOMARIA = $7EF350
|
||||||
|
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; 0x01 - Cane of Byrna
|
||||||
|
BYRNA = $7EF351
|
||||||
|
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; 0x01 - Magic cape
|
||||||
|
CAPE = $7EF352
|
||||||
|
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; 0x01 - Letter (works like mirror)
|
||||||
|
; 0x02 - Mirror
|
||||||
|
; 0x03 - Deleted triforce item
|
||||||
|
MIRROR = $7EF353
|
||||||
|
|
||||||
|
; 0x00 - Lift 1 (nothing)
|
||||||
|
; 0x01 - Lift 2 (power glove)
|
||||||
|
; 0x02 - Lift 3 (titan's mitt)
|
||||||
|
GLOVES = $7EF354
|
||||||
|
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; 0x01 - Pegasus boots
|
||||||
|
; bit 2 of $7E:F379 also needs to be set to actually dash
|
||||||
|
BOOTS = $7EF355
|
||||||
|
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; 0x01 - Zora's flippers
|
||||||
|
FLIPPERS = $7EF356
|
||||||
|
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; 0x01 - Moon pearl
|
||||||
|
PEARL = $7EF357
|
||||||
|
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; 0x01 - Wolf Mask
|
||||||
|
WolfMask = $7EF358
|
||||||
|
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; 0x01 - Fighter sword
|
||||||
|
; 0x02 - Master sword
|
||||||
|
; 0x03 - Tempered sword
|
||||||
|
; 0x04 - Golden sword
|
||||||
|
; 0xFF - Set when sword is handed in to smithy
|
||||||
|
SWORD = $7EF359
|
||||||
|
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; 0x01 - Fighter shield
|
||||||
|
; 0x02 - Fire shield
|
||||||
|
; 0x03 - Mirror shield
|
||||||
|
SHIELD = $7EF35A
|
||||||
|
|
||||||
|
; 0x00 - Green mail
|
||||||
|
; 0x01 - Blue mail
|
||||||
|
; 0x02 - Red mail
|
||||||
|
ARMOR = $7EF35B
|
||||||
|
|
||||||
|
; 0x00 - Nothing
|
||||||
|
; 0x01 - Mushroom (unused)
|
||||||
|
; 0x02 - Empty bottle
|
||||||
|
; 0x03 - Red potion
|
||||||
|
; 0x04 - Green potion
|
||||||
|
; 0x05 - Blue potion
|
||||||
|
; 0x06 - Fairy
|
||||||
|
; 0x07 - Bee
|
||||||
|
; 0x08 - Good bee
|
||||||
|
; 0x09 - Magic Bean
|
||||||
|
; 0x0A - Milk Bottle
|
||||||
|
Bottle1 = $7EF35C
|
||||||
|
Bottle2 = $7EF35D
|
||||||
|
Bottle3 = $7EF35E
|
||||||
|
Bottle4 = $7EF35F
|
||||||
|
|
||||||
|
; Number of rupees you have
|
||||||
|
; RUPEEDISP will be incremented or decremented until it reaches this value
|
||||||
|
RUPEES = $7EF360
|
||||||
|
|
||||||
|
; Rupee count displayed on the HUD
|
||||||
|
RUPEEDISP = $7EF362
|
||||||
|
|
||||||
|
; Bitfields for ownership of various dungeon items
|
||||||
|
; SET 2 SET 1
|
||||||
|
; xced aspm wihb tg..
|
||||||
|
; c - Hyrule Castle
|
||||||
|
; x - Sewers
|
||||||
|
; a - Agahnim's Tower
|
||||||
|
;
|
||||||
|
; e - Eastern Palace
|
||||||
|
; d - Desert Palace
|
||||||
|
; h - Tower of Hera
|
||||||
|
;
|
||||||
|
; p - Palace of Darkness
|
||||||
|
; s - Swamp Palace
|
||||||
|
; w - Skull Woods
|
||||||
|
; b - Thieves' Town
|
||||||
|
; i - Ice Palace
|
||||||
|
; m - Misery Mire
|
||||||
|
; t - Turtle Rock
|
||||||
|
; g - Ganon's Tower
|
||||||
|
COMPASS1 = $7EF364
|
||||||
|
COMPASS2 = $7EF365
|
||||||
|
|
||||||
|
BIGKEY1 = $7EF366
|
||||||
|
BIGKEY2 = $7EF367
|
||||||
|
|
||||||
|
DNGMAP1 = $7EF368
|
||||||
|
DNGMAP2 = $7EF369
|
||||||
|
|
||||||
|
; Number of rupees donated to fairies
|
||||||
|
WISHRUP = $7EF36A
|
||||||
|
|
||||||
|
; Number of heart pieces towards next container
|
||||||
|
; Intended to be a value from 0-3
|
||||||
|
HEARTPC = $7EF36B
|
||||||
|
|
||||||
|
; Maximum health; 1 heart container = 0x08 HP
|
||||||
|
MAXHP = $7EF36C
|
||||||
|
|
||||||
|
; Current health
|
||||||
|
; You die at 0x00
|
||||||
|
; You also die at ≥0xA8
|
||||||
|
CURHP = $7EF36D
|
||||||
|
|
||||||
|
; Magic power, capped at 128
|
||||||
|
MAGPOW = $7EF36E
|
||||||
|
|
||||||
|
; Current number of keys for whatever dungeon is loaded
|
||||||
|
KEYS = $7EF36F
|
||||||
|
|
||||||
|
; Number of capacity upgrades received
|
||||||
|
BOMBCAP = $7EF370
|
||||||
|
ARROWCAP = $7EF371
|
||||||
|
|
||||||
|
; Refills health
|
||||||
|
; Expects multiples of 8
|
||||||
|
HEALME = $7EF372
|
||||||
|
|
||||||
|
; Refills magic
|
||||||
|
ZAPME = $7EF373
|
||||||
|
|
||||||
|
; ... ..gbr
|
||||||
|
; r - Wisdom (red)
|
||||||
|
; b - Power (blue)
|
||||||
|
; g - Courage (green)
|
||||||
|
PENDANTS = $7EF374
|
||||||
|
|
||||||
|
; Refills bombs
|
||||||
|
BOMBME = $7EF375
|
||||||
|
|
||||||
|
; Refills arrows
|
||||||
|
SHOOTME = $7EF376
|
||||||
|
|
||||||
|
; Arrow count
|
||||||
|
ARROWS = $7EF377
|
||||||
|
|
||||||
|
; Unused
|
||||||
|
UNUSED_7EF378 = $7EF378
|
||||||
|
|
||||||
|
; Displays ability flags
|
||||||
|
; lrtu pbsh
|
||||||
|
; h - Pray (unused and mostly cut off by HUD borders)
|
||||||
|
; s - Swim
|
||||||
|
; b - Run
|
||||||
|
; u - unused but set by default
|
||||||
|
; p - Pull
|
||||||
|
; t - Talk
|
||||||
|
; r - Read
|
||||||
|
; l - Lift
|
||||||
|
; This only controls the display of "LIFT.1"
|
||||||
|
; If this bit is unset but LIFT is set then the proper lift text is displayed
|
||||||
|
ABILITY = $7EF379
|
||||||
|
|
||||||
|
; Dungeon ID Legend
|
||||||
|
; Mushroom Grotto ID 0x0C (Palace of Darkness)
|
||||||
|
; Tail Palace ID 0x0A (Swamp Palace)
|
||||||
|
; Kalyxo Castle ID 0x10 (Skull Woods)
|
||||||
|
; Zora Temple ID 0x16 (Thieves Town)
|
||||||
|
; Glacia Estate 0x12 (Ice Palace)
|
||||||
|
; Goron Mines 0x0E (Misery Mire)
|
||||||
|
; Dragon Ship 0x18 (Turtle Rock)
|
||||||
|
|
||||||
|
; .wbs tipm
|
||||||
|
; p - Palace of Darkness
|
||||||
|
; s - Swamp Palace
|
||||||
|
; w - Skull Woods
|
||||||
|
; b - Thieves' Town
|
||||||
|
; i - Ice Palace
|
||||||
|
; m - Misery Mire
|
||||||
|
; t - Turtle Rock
|
||||||
|
Crystals = $7EF37A
|
||||||
|
|
||||||
|
; 0x00 - Normal magic
|
||||||
|
; 0x01 - Half magic
|
||||||
|
; 0x02 - Quarter magic
|
||||||
|
; Quarter magic has no special HUD graphic, unlike half magic
|
||||||
|
; Also, not everything is necessarily quarter magic
|
||||||
|
MAGCON = $7EF37B
|
||||||
|
|
||||||
|
; Keys earned per dungeon
|
||||||
|
; Sewers and Castle are kept in sync
|
||||||
|
KEYSSEWER = $7EF37C
|
||||||
|
KEYSHYRULE = $7EF37D
|
||||||
|
KEYSEAST = $7EF37E
|
||||||
|
KEYSDESERT = $7EF37F
|
||||||
|
KEYSAGA = $7EF380
|
||||||
|
KEYSSWAMP = $7EF381
|
||||||
|
KEYSPOD = $7EF382
|
||||||
|
KEYSMIRE = $7EF383
|
||||||
|
KEYSWOODS = $7EF384
|
||||||
|
KEYSICE = $7EF385
|
||||||
|
KEYSHERA = $7EF386
|
||||||
|
KEYSTHIEF = $7EF387
|
||||||
|
KEYSTROCK = $7EF388
|
||||||
|
KEYSGANON = $7EF389
|
||||||
|
|
||||||
|
; Unused block of SRAM
|
||||||
|
UNUSED_7EF38A = $7EF38A
|
||||||
|
|
||||||
|
; Game state
|
||||||
|
; 0x00 - Very start; progress cannot be saved in this state
|
||||||
|
; 0x01 - Uncle reached
|
||||||
|
; 0x02 - Zelda rescued
|
||||||
|
; 0x03 - Agahnim defeated
|
||||||
|
GAMESTATE = $7EF3C5
|
||||||
|
|
||||||
|
; Bitfield of less important progression
|
||||||
|
; .fbh .zsu
|
||||||
|
; u - Uncle visited in secret passage; controls spawn (0: spawn | 1: gone)
|
||||||
|
; s - Priest visited in sanc after Zelda is kidnapped again
|
||||||
|
; z - Zelda brought to sanc
|
||||||
|
; h - Uncle has left Link's house; controls spawn (0: spawn | 1: gone)
|
||||||
|
; b - Book of Mudora obtained/mentioned; controls Aginah dialog
|
||||||
|
; f - Flipped by fortune tellers to decide which fortune set to give
|
||||||
|
PROGLITE = $7EF3C6
|
||||||
|
|
||||||
|
; Map icon to guide noob players
|
||||||
|
; 0x00 - Red X on castle | Save zelda
|
||||||
|
; 0x01 - Red X on Kakariko | Talk to villagers about elders
|
||||||
|
; 0x02 - Red X on Eastern | Talk to Sahasrahla
|
||||||
|
; 0x03 - Pendants and MS | Obtain the master sword
|
||||||
|
; 0x04 - Master sword on LW | Grab the master sword
|
||||||
|
; 0x05 - Skull on castle | Kill Agahnim
|
||||||
|
; 0x06 - Crystal on POD | Get the first crystal
|
||||||
|
; 0x07 - Crystals | Get all 7 crystals
|
||||||
|
; 0x08 - Skull on GT | Climb Ganon's Tower
|
||||||
|
MAPICON = $7EF3C7
|
||||||
|
|
||||||
|
; 0x00 - Link's house
|
||||||
|
; 0x01 - Sanctuary
|
||||||
|
; 0x02 - Prison
|
||||||
|
; 0x03 - Uncle
|
||||||
|
; 0x04 - Throne
|
||||||
|
; 0x05 - Old man cave
|
||||||
|
; 0x06 - Old man home
|
||||||
|
SPAWNPT = $7EF3C8
|
||||||
|
|
||||||
|
; Another bitfield for progress
|
||||||
|
; t.dp s.bh
|
||||||
|
; t - smiths are currently tempering sword
|
||||||
|
; d - swordsmith rescued
|
||||||
|
; p - purple chest has been opened
|
||||||
|
; s - stumpy has been stumped
|
||||||
|
; b - bottle purchased from vendor
|
||||||
|
; h - bottle received from hobo
|
||||||
|
PROGLITE2 = $7EF3C9
|
||||||
|
|
||||||
|
; .d.. ....
|
||||||
|
; d - World (0: Light World | 1: Dark World)
|
||||||
|
SAVEWORLD = $7EF3CA
|
||||||
|
|
||||||
|
; Not used
|
||||||
|
UNUSED_7EF3CB = $7EF3CB
|
||||||
|
|
||||||
|
; Current follower ID
|
||||||
|
FOLLOWER = $7EF3CC
|
||||||
|
|
||||||
|
; Cache of follower properties
|
||||||
|
FOLLOWCYL = $7EF3CD
|
||||||
|
FOLLOWCYH = $7EF3CE
|
||||||
|
FOLLOWCXL = $7EF3CF
|
||||||
|
FOLLOWCXH = $7EF3D0
|
||||||
|
|
||||||
|
; Copies INDOORS
|
||||||
|
FOLLOWERINOUT = $7EF3D1
|
||||||
|
|
||||||
|
; Copies LAYER
|
||||||
|
FOLLOWERCLAYER = $7EF3D2
|
||||||
|
|
||||||
|
; Indicates the follower is currently following
|
||||||
|
; 0x00 - Following
|
||||||
|
; 0x80 - Not following
|
||||||
|
FOLLOWERING = $7EF3D3
|
||||||
|
|
||||||
|
; Unused
|
||||||
|
UNUSED_7EF3D4 = $7EF3D4
|
||||||
|
UNUSED_7EF3D5 = $7EF3D5
|
||||||
|
UNUSED_7EF3D6 = $7EF3D6
|
||||||
|
UNUSED_7EF3D7 = $7EF3D7
|
||||||
|
UNUSED_7EF3D8 = $7EF3D8
|
||||||
|
|
||||||
|
; Player name
|
||||||
|
NAME1L = $7EF3D9
|
||||||
|
NAME1H = $7EF3DA
|
||||||
|
NAME2L = $7EF3DB
|
||||||
|
NAME2H = $7EF3DC
|
||||||
|
NAME3L = $7EF3DD
|
||||||
|
NAME3H = $7EF3DE
|
||||||
|
NAME4L = $7EF3DF
|
||||||
|
NAME4H = $7EF3E0
|
||||||
|
|
||||||
|
; Save file checksum; expected to be $55AA
|
||||||
|
SCHKSML = $7EF3E1
|
||||||
|
SCHKSMH = $7EF3E2
|
||||||
|
|
||||||
|
; Games played in each dungeon
|
||||||
|
GPSEWER = $7EF3E3
|
||||||
|
GPHYRULE = $7EF3E5
|
||||||
|
GPEAST = $7EF3E7
|
||||||
|
GPDESERT = $7EF3E9
|
||||||
|
GPAGA = $7EF3EB
|
||||||
|
GPSWAMP = $7EF3ED
|
||||||
|
GPPOD = $7EF3EF
|
||||||
|
GPMIRE = $7EF3F1
|
||||||
|
GPWOODS = $7EF3F3
|
||||||
|
GPICE = $7EF3F5
|
||||||
|
GPHERA = $7EF3F7
|
||||||
|
GPTHIEF = $7EF3F9
|
||||||
|
GPTROCK = $7EF3FB
|
||||||
|
GPGANON = $7EF3FD
|
||||||
|
|
||||||
|
; Games played for current segment
|
||||||
|
GPNOW = $7EF3FF
|
||||||
|
|
||||||
|
; Total games played
|
||||||
|
; No display on file select if 0xFFFF
|
||||||
|
GAMESPLAYED = $7EF401
|
||||||
|
|
||||||
|
; Big unused block
|
||||||
|
UNUSED_7EF403 = $7EF403
|
||||||
|
DEATHS_MAXED = $7EF405
|
||||||
|
|
||||||
|
; Inverse checksum for save file
|
||||||
|
SAVEICKSML = $7EF4FE
|
||||||
|
SAVEICKSMH = $7EF4FF
|
||||||
186
Core/symbols.asm
186
Core/symbols.asm
@@ -33,127 +33,11 @@ function RGBto555(R,G,B) = ((R/8)<<10)|((G/8)<<5)|(B/8) ; zarby
|
|||||||
function hexto555(h) = ((((h&$FF)/8)<<10)|(((h>>8&$FF)/8)<<5)|(((h>>16&$FF)/8)<<0)) ; kan
|
function hexto555(h) = ((((h&$FF)/8)<<10)|(((h>>8&$FF)/8)<<5)|(((h>>16&$FF)/8)<<0)) ; kan
|
||||||
function menu_offset(y,x) = (y*64)+(x*2)
|
function menu_offset(y,x) = (y*64)+(x*2)
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; SRAM in Use
|
|
||||||
SaveRam:
|
|
||||||
{
|
|
||||||
; Game state
|
|
||||||
; 0x00 - Very start; progress cannot be saved in this state
|
|
||||||
; 0x01 - Uncle reached
|
|
||||||
; 0x02 - Zelda rescued
|
|
||||||
; 0x03 - Agahnim defeated
|
|
||||||
GameState = $7EF3C5
|
|
||||||
|
|
||||||
; Red X on Hall of Secrets
|
|
||||||
; Red X on Kalyxo Pyramid
|
|
||||||
|
|
||||||
; .fmp h.i.
|
|
||||||
; f - fortress of secrets
|
|
||||||
; m - master sword
|
|
||||||
; p - pendant quest
|
|
||||||
; h - hall of secrets
|
|
||||||
; i - intro over, maku tree
|
|
||||||
OOSPROG = $7EF3D6
|
|
||||||
|
|
||||||
; Bitfield of less important progression
|
|
||||||
; .fbh .zsu
|
|
||||||
; u - Uncle
|
|
||||||
; s - Priest visited in sanc after Zelda is kidnapped again
|
|
||||||
; z - Zelda brought to sanc
|
|
||||||
; h - Uncle left Link's house (0: spawn | 1: gone)
|
|
||||||
; b - Book of Mudora obtained/mentioned; controls Aginah dialog
|
|
||||||
; f - Flipped by fortune tellers to decide fortune set to give
|
|
||||||
OOSPROG2 = $7EF3C6
|
|
||||||
|
|
||||||
; .... ...m
|
|
||||||
; m - maku tree has met link (0: no | 1: yes)
|
|
||||||
MakuTreeQuest = $7EF3D4
|
|
||||||
|
|
||||||
; Map icon
|
|
||||||
; 0x00 - Red X on Maku Tree/Maku Warp
|
|
||||||
; 0x01 - Toadstool Woods Crystal
|
|
||||||
; 0x02 - Kalyxo All Crystals
|
|
||||||
; 0x03 -
|
|
||||||
; 0x04 -
|
|
||||||
; 0x05 -
|
|
||||||
; 0x06 -
|
|
||||||
; 0x07 -
|
|
||||||
; 0x08 - Skull on GT | Climb Ganon's Tower
|
|
||||||
MapIcon = $7EF3C7
|
|
||||||
|
|
||||||
; Dungeon ID Legend
|
|
||||||
; Mushroom Grotto ID 0x0C (Palace of Darkness)
|
|
||||||
; Tail Palace ID 0x0A (Swamp Palace)
|
|
||||||
; Kalyxo Castle ID 0x10 (Skull Woods)
|
|
||||||
; Zora Temple ID 0x16 (Thieves Town)
|
|
||||||
; Glacia Estate 0x12 (Ice Palace)
|
|
||||||
; Goron Mines 0x0E (Misery Mire)
|
|
||||||
; Dragon Ship 0x18 (Turtle Rock)
|
|
||||||
|
|
||||||
; .wbs tipm
|
|
||||||
; p - Palace of Darkness
|
|
||||||
; s - Swamp Palace
|
|
||||||
; w - Skull Woods
|
|
||||||
; b - Thieves' Town
|
|
||||||
; i - Ice Palace
|
|
||||||
; m - Misery Mire
|
|
||||||
; t - Turtle Rock
|
|
||||||
Crystals = $7EF37A
|
|
||||||
|
|
||||||
; 01 - Fishing Rod
|
|
||||||
; 02 - Portal Rod
|
|
||||||
CustomRods = $7EF351
|
|
||||||
|
|
||||||
; Free SRAM Block 38A-3C4
|
|
||||||
FishingRod = $7EF38A
|
|
||||||
|
|
||||||
; Collectibles
|
|
||||||
Bananas = $7EF38B
|
|
||||||
Pineapples = $7EF38D
|
|
||||||
RockMeat = $7EF38F
|
|
||||||
Seashells = $7EF391
|
|
||||||
Honeycomb = $7EF393
|
|
||||||
DekuSticks = $7EF395
|
|
||||||
|
|
||||||
TingleMaps = $7EF396
|
|
||||||
TingleId = $7EF397
|
|
||||||
|
|
||||||
; .dgi zktm
|
|
||||||
; m - Mushroom Grotto
|
|
||||||
; t - Tail Palace
|
|
||||||
; k - Kalyxo Castle
|
|
||||||
; z - Zora Temple
|
|
||||||
; i - Glacia Estate
|
|
||||||
; g - Goron Mines
|
|
||||||
; d - Dragon Ship
|
|
||||||
Scrolls = $7EF398
|
|
||||||
|
|
||||||
; Keep track of the previous scroll
|
|
||||||
; For re-reading old hints.
|
|
||||||
PrevScroll = $7EF39A
|
|
||||||
|
|
||||||
; .dts fwpb
|
|
||||||
; b - bean planted
|
|
||||||
; w - plant watered
|
|
||||||
; p - pollinated by bee
|
|
||||||
; f - first day
|
|
||||||
; s - second day
|
|
||||||
; t - third day
|
|
||||||
; d - done
|
|
||||||
MagicBeanProg = $7EF39B
|
|
||||||
|
|
||||||
; .... .cpw
|
|
||||||
; c - courage
|
|
||||||
; p - power
|
|
||||||
; w - wisdom
|
|
||||||
Dreams = $7EF410
|
|
||||||
|
|
||||||
; Current Dream ID (0x00-0x03)
|
; Current Dream ID (0x00-0x03)
|
||||||
CurrentDream = $0426
|
CurrentDream = $0426
|
||||||
|
|
||||||
; Current Song
|
; Current Song
|
||||||
CurrentSong = $030F
|
CurrentSong = $030F
|
||||||
}
|
|
||||||
|
|
||||||
; =========================================================
|
; =========================================================
|
||||||
; The record format for the low table is 4 bytes:
|
; The record format for the low table is 4 bytes:
|
||||||
@@ -180,10 +64,8 @@ OamPtrH = $92
|
|||||||
OamBackup = $0FEC
|
OamBackup = $0FEC
|
||||||
|
|
||||||
; =========================================================
|
; =========================================================
|
||||||
; Sprite RAM and Functions
|
; Sprite RAM
|
||||||
|
|
||||||
SpriteRam:
|
|
||||||
{
|
|
||||||
SprY = $0D00
|
SprY = $0D00
|
||||||
SprX = $0D10
|
SprX = $0D10
|
||||||
SprYH = $0D20
|
SprYH = $0D20
|
||||||
@@ -215,9 +97,7 @@ SprCustom = $1CC0 ;
|
|||||||
; Used in sprite state 0x03 (falling in water)
|
; Used in sprite state 0x03 (falling in water)
|
||||||
; used as delay in most of the sprites
|
; used as delay in most of the sprites
|
||||||
SprDelay = $0E80
|
SprDelay = $0E80
|
||||||
|
SprFlash = $0B89 ; Enemy color flash buffer
|
||||||
; Enemy color flash buffer
|
|
||||||
SprFlash = $0B89
|
|
||||||
|
|
||||||
SprTimerA = $0DF0 ; Action, decreased by 1 each frame
|
SprTimerA = $0DF0 ; Action, decreased by 1 each frame
|
||||||
SprTimerB = $0E00 ; Animation, decreased by 1 each frame
|
SprTimerB = $0E00 ; Animation, decreased by 1 each frame
|
||||||
@@ -323,14 +203,6 @@ SprFreeze = $0FC1 ; Seems to freeze sprites
|
|||||||
; 0x07 32 24 16
|
; 0x07 32 24 16
|
||||||
; 0x08 24 16 8
|
; 0x08 24 16 8
|
||||||
; 0x09 64 48 24
|
; 0x09 64 48 24
|
||||||
;
|
|
||||||
; Higher values are invalid, but here's what they are:
|
|
||||||
; 0x0A 169 48 32
|
|
||||||
; 0x0B 142 246 169
|
|
||||||
; 0x0C 144 133 71
|
|
||||||
; 0x0D 169 16 133
|
|
||||||
; 0x0E 70 169 33
|
|
||||||
; 0x0F 34 124 187
|
|
||||||
SprBump = $0CD2
|
SprBump = $0CD2
|
||||||
|
|
||||||
; Damage sprite is enduring
|
; Damage sprite is enduring
|
||||||
@@ -344,9 +216,7 @@ SprDmgTaken = $0CE2
|
|||||||
; d - If hit from front, deflect Ice Rod, Somarian missile,
|
; d - If hit from front, deflect Ice Rod, Somarian missile,
|
||||||
; boomerang, hookshot, and sword beam, and arrows stick in
|
; boomerang, hookshot, and sword beam, and arrows stick in
|
||||||
; it harmlessly. If bit 1 is also set, frontal arrows will
|
; it harmlessly. If bit 1 is also set, frontal arrows will
|
||||||
; instead disappear harmlessly. No monsters have bit 4 set
|
; instead disappear harmlessly.
|
||||||
; in the ROM data, but it was functional and interesting
|
|
||||||
; enough to include.
|
|
||||||
; e - If set, sprite collides with less tiles than usual
|
; e - If set, sprite collides with less tiles than usual
|
||||||
; f - If set, impervious to sword and hammer type attacks
|
; f - If set, impervious to sword and hammer type attacks
|
||||||
; g - If set, impervious to arrows, but may have other additional meanings.
|
; g - If set, impervious to arrows, but may have other additional meanings.
|
||||||
@@ -378,10 +248,8 @@ SprBulletproof = $0BA0
|
|||||||
|
|
||||||
SprRoom = $0C9A ;X W Contains the area or room id the sprite has been loaded in
|
SprRoom = $0C9A ;X W Contains the area or room id the sprite has been loaded in
|
||||||
SprDrop = $0CBA ;X W 00: Drop nothing, 01: drop normal key, 03: Drop green rupee, OtherValues: Drop big key
|
SprDrop = $0CBA ;X W 00: Drop nothing, 01: drop normal key, 03: Drop green rupee, OtherValues: Drop big key
|
||||||
}
|
|
||||||
|
|
||||||
; Overlord
|
; Overlord
|
||||||
|
|
||||||
OverlordId = $0B00
|
OverlordId = $0B00
|
||||||
OverlordX = $0B08
|
OverlordX = $0B08
|
||||||
OverlordXH = $0B10
|
OverlordXH = $0B10
|
||||||
@@ -392,16 +260,17 @@ OverlordTimerA = $0B28
|
|||||||
OverlordTimerB = $0B30
|
OverlordTimerB = $0B30
|
||||||
OverlordTimerC = $0B38
|
OverlordTimerC = $0B38
|
||||||
|
|
||||||
|
; =========================================================
|
||||||
|
; Sprite Functions
|
||||||
|
|
||||||
SpriteData_OAMProp = $0DB359
|
SpriteData_OAMProp = $0DB359
|
||||||
|
|
||||||
; Clear all properties for sprites
|
; Clear all properties for sprites
|
||||||
SpritePrep_ResetProperties = $0DB871
|
SpritePrep_ResetProperties = $0DB871
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; set the oam coordinate for the sprite draw
|
; set the oam coordinate for the sprite draw
|
||||||
Sprite_PrepOamCoord = $06E416
|
Sprite_PrepOamCoord = $06E416
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; Draw the sprite depending of the position of the player
|
; Draw the sprite depending of the position of the player
|
||||||
; (if he has to be over or under link)
|
; (if he has to be over or under link)
|
||||||
Sprite_OAM_AllocateDeferToPlayer = $06F864
|
Sprite_OAM_AllocateDeferToPlayer = $06F864
|
||||||
@@ -415,24 +284,18 @@ OAM_AllocateFromRegionF = $0DBA94 ; Above
|
|||||||
|
|
||||||
Sprite_DrawMultiple_quantity_preset = $05DF70
|
Sprite_DrawMultiple_quantity_preset = $05DF70
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; check if the sprite is getting damage from player or items
|
; check if the sprite is getting damage from player or items
|
||||||
Sprite_CheckDamageFromPlayer = $06F2AA
|
Sprite_CheckDamageFromPlayer = $06F2AA
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; check if the sprite is touching the player to damage
|
; check if the sprite is touching the player to damage
|
||||||
Sprite_CheckDamageToPlayer = $06F121
|
Sprite_CheckDamageToPlayer = $06F121
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; damage the player everywhere on screen?
|
; damage the player everywhere on screen?
|
||||||
Sprite_AttemptDamageToPlayerPlusRecoil = $06F41F
|
Sprite_AttemptDamageToPlayerPlusRecoil = $06F41F
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; makes all the sprites on screen shaking
|
; makes all the sprites on screen shaking
|
||||||
ApplyRumbleToSprites = $0680FA
|
ApplyRumbleToSprites = $0680FA
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
|
|
||||||
Sprite_MoveLong = $1D808C
|
Sprite_MoveLong = $1D808C
|
||||||
|
|
||||||
Sprite_ProjectSpeedTowardsPlayer = $06EA1A
|
Sprite_ProjectSpeedTowardsPlayer = $06EA1A
|
||||||
@@ -463,74 +326,59 @@ ans_high = $0C
|
|||||||
|
|
||||||
CheckIfHitBoxesOverlap = $0683E6
|
CheckIfHitBoxesOverlap = $0683E6
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; $0FD8 = sprite's X coordinate
|
; $0FD8 = sprite's X coordinate
|
||||||
; $0FDA = sprite's Y coordinate
|
; $0FDA = sprite's Y coordinate
|
||||||
Sprite_Get16BitCoords_Local = $0684C1
|
Sprite_Get16BitCoords_Local = $0684C1
|
||||||
Sprite_Get_16_bit_Coords = $0684BD
|
Sprite_Get_16_bit_Coords = $0684BD
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; load / draw a 16x16 sprite
|
; load / draw a 16x16 sprite
|
||||||
Sprite_PrepAndDrawSingleLarge = $06DBF0
|
Sprite_PrepAndDrawSingleLarge = $06DBF0
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; load / draw a 8x8 sprite
|
; load / draw a 8x8 sprite
|
||||||
Sprite_PrepAndDrawSingleSmall = $06DBF8
|
Sprite_PrepAndDrawSingleSmall = $06DBF8
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; draw shadow (requires additional oam allocation)
|
; draw shadow (requires additional oam allocation)
|
||||||
Sprite_DrawShadow = $06DC54
|
Sprite_DrawShadow = $06DC54
|
||||||
|
|
||||||
Sprite_DrawWaterRipple = $059FFA
|
Sprite_DrawWaterRipple = $059FFA
|
||||||
Sprite_DrawRippleIfInWater = $1EFF8D
|
Sprite_DrawRippleIfInWater = $1EFF8D
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; check if the sprite is colliding with a solid tile set $0E70, X
|
; check if the sprite is colliding with a solid tile set $0E70, X
|
||||||
; ----udlr , u = up, d = down, l = left, r = right
|
; ----udlr , u = up, d = down, l = left, r = right
|
||||||
Sprite_CheckTileCollision = $06E496
|
Sprite_CheckTileCollision = $06E496
|
||||||
Sprite_CheckTileCollision_long = $06E496
|
Sprite_CheckTileCollision_long = $06E496
|
||||||
|
|
||||||
; =========================================================
|
; $00[0x02] - Entity Y coordinate
|
||||||
; $00[0x02] - Entity Y coordinate
|
|
||||||
; $02[0x03?] - Entity X coordinate
|
; $02[0x03?] - Entity X coordinate
|
||||||
; $0FA5
|
; $0FA5 - Tile ID result
|
||||||
Sprite_GetTileAttr = $06E87B
|
Sprite_GetTileAttr = $06E87B
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; check if the sprite is colliding with a solid sloped tile
|
; check if the sprite is colliding with a solid sloped tile
|
||||||
Sprite_CheckSlopedTileCollision = $06E8FD
|
Sprite_CheckSlopedTileCollision = $06E8FD
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; set the velocity x,y towards the player (A = speed)
|
; set the velocity x,y towards the player (A = speed)
|
||||||
Sprite_ApplySpeedTowardsPlayer = $06EA12
|
Sprite_ApplySpeedTowardsPlayer = $06EA12
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; \return $0E is low byte of player_y_pos - sprite_y_pos
|
; \return $0E is low byte of player_y_pos - sprite_y_pos
|
||||||
; \return $0F is low byte of player_x_pos - sprite_x_pos
|
; \return $0F is low byte of player_x_pos - sprite_x_pos
|
||||||
Sprite_DirectionToFacePlayer = $06EAA0
|
Sprite_DirectionToFacePlayer = $06EAA0
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; if Link is to the left of the sprite, Y = 1, otherwise Y = 0.
|
; if Link is to the left of the sprite, Y = 1, otherwise Y = 0.
|
||||||
Sprite_IsToRightOfPlayer = $06EACD
|
Sprite_IsToRightOfPlayer = $06EACD
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; return Y=1 sprite is below player, otherwise Y = 0
|
; return Y=1 sprite is below player, otherwise Y = 0
|
||||||
Sprite_IsBelowPlayer = $06EAE4
|
Sprite_IsBelowPlayer = $06EAE4
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; $06 = sprite's Y coordinate
|
; $06 = sprite's Y coordinate
|
||||||
; $07 = sprite's X coordinate
|
; $07 = sprite's X coordinate
|
||||||
Sprite_IsBelowLocation = $06EB1D
|
Sprite_IsBelowLocation = $06EB1D
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; check damage done to player if they collide on same layer
|
; check damage done to player if they collide on same layer
|
||||||
Sprite_CheckDamageToPlayerSameLayer = $06F129
|
Sprite_CheckDamageToPlayerSameLayer = $06F129
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; check damage done to player if they collide even if they are not on same layer
|
; check damage done to player if they collide even if they are not on same layer
|
||||||
Sprite_CheckDamageToPlayerIgnoreLayer = $06F131
|
Sprite_CheckDamageToPlayerIgnoreLayer = $06F131
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; play a sound loaded in A
|
; play a sound loaded in A
|
||||||
Sound_SetSfx1PanLong = $0DBB6E
|
Sound_SetSfx1PanLong = $0DBB6E
|
||||||
Sound_SetSfx2PanLong = $0DBB7C
|
Sound_SetSfx2PanLong = $0DBB7C
|
||||||
@@ -551,41 +399,30 @@ Sprite_SpawnDynamically_slot_limited = $1DF65F
|
|||||||
Sprite_SetSpawnedCoords = $09AE64
|
Sprite_SetSpawnedCoords = $09AE64
|
||||||
Sprite_SetSpawnedCoordinates = $09AE64
|
Sprite_SetSpawnedCoordinates = $09AE64
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; move the sprite if he stand on a conveyor belt
|
; move the sprite if he stand on a conveyor belt
|
||||||
Sprite_ApplyConveyorAdjustment = $1D8010
|
Sprite_ApplyConveyorAdjustment = $1D8010
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; Setup sprite hitbox for comparison with scrap ram
|
; Setup sprite hitbox for comparison with scrap ram
|
||||||
Sprite_SetupHitBoxLong = $0683EA
|
Sprite_SetupHitBoxLong = $0683EA
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; set tile of dungeon
|
|
||||||
Dungeon_SpriteInducedTilemapUpdate = $01E7A9
|
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; player can't pass through the sprite
|
; player can't pass through the sprite
|
||||||
Sprite_BehaveAsBarrier = $1EF4F3
|
Sprite_BehaveAsBarrier = $1EF4F3
|
||||||
Sprite_PlayerCantPassThrough = $1EF4F3
|
Sprite_PlayerCantPassThrough = $1EF4F3
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; player can't hookshot to that sprite
|
; player can't hookshot to that sprite
|
||||||
Sprite_NullifyHookshotDrag = $0FF540
|
Sprite_NullifyHookshotDrag = $0FF540
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; show a message box without any condition
|
; show a message box without any condition
|
||||||
; A = low byte of message ID to use.
|
; A = low byte of message ID to use.
|
||||||
; Y = high byte of message ID to use.
|
; Y = high byte of message ID to use.
|
||||||
Sprite_ShowMessageUnconditional = $05E219
|
Sprite_ShowMessageUnconditional = $05E219
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; show a message if we press A and face the sprite
|
; show a message if we press A and face the sprite
|
||||||
; A = low byte of message ID to use.
|
; A = low byte of message ID to use.
|
||||||
; Y = high byte of message ID to use.
|
; Y = high byte of message ID to use.
|
||||||
Sprite_ShowSolicitedMessage = $05E1A7
|
Sprite_ShowSolicitedMessage = $05E1A7
|
||||||
Sprite_ShowSolicitedMessageIfPlayerFacing = $05E1A7
|
Sprite_ShowSolicitedMessageIfPlayerFacing = $05E1A7
|
||||||
|
|
||||||
; =========================================================
|
|
||||||
; show a message if we touch the sprite
|
; show a message if we touch the sprite
|
||||||
; should be used with Sprite_PlayerCantPassThrough
|
; should be used with Sprite_PlayerCantPassThrough
|
||||||
; A = low byte of message ID to use.
|
; A = low byte of message ID to use.
|
||||||
@@ -605,6 +442,8 @@ Sprite_KillFriends = $09EF56
|
|||||||
|
|
||||||
Sprite_KillSelf = $09F1F8
|
Sprite_KillSelf = $09F1F8
|
||||||
|
|
||||||
|
Dungeon_SpriteInducedTilemapUpdate = $01E7A9
|
||||||
|
|
||||||
; =========================================================
|
; =========================================================
|
||||||
; $04 = X
|
; $04 = X
|
||||||
; $05 = HighX
|
; $05 = HighX
|
||||||
@@ -644,10 +483,9 @@ Sprite_TrackBodyToHead = $05DCA2
|
|||||||
GetRandomInt = $0DBA71
|
GetRandomInt = $0DBA71
|
||||||
|
|
||||||
Sprite_SpawnFireball = $0DDA06
|
Sprite_SpawnFireball = $0DDA06
|
||||||
|
|
||||||
Sprite_SpawnSmallSplash = $1EA820
|
Sprite_SpawnSmallSplash = $1EA820
|
||||||
|
|
||||||
Sprite_SpawnSparkleGarnish = $058008
|
Sprite_SpawnSparkleGarnish = $058008
|
||||||
|
Sprite_SpawnPoofGarnish = $05AB9C
|
||||||
|
|
||||||
Sprite_CheckIfLifted = $06AA0C
|
Sprite_CheckIfLifted = $06AA0C
|
||||||
|
|
||||||
@@ -655,8 +493,6 @@ Sprite_TransmuteToBomb = $06AD50
|
|||||||
|
|
||||||
Sprite_RepelDash = $079291
|
Sprite_RepelDash = $079291
|
||||||
|
|
||||||
Sprite_SpawnPoofGarnish = $05AB9C
|
|
||||||
|
|
||||||
Sprite_LoadGfxProperties = $00FC41
|
Sprite_LoadGfxProperties = $00FC41
|
||||||
|
|
||||||
ThrownSprite_TileAndSpriteInteraction_long = $06DFF2
|
ThrownSprite_TileAndSpriteInteraction_long = $06DFF2
|
||||||
|
|||||||
Reference in New Issue
Block a user