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 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)
|
||||
CurrentDream = $0426
|
||||
|
||||
; Current Song
|
||||
CurrentSong = $030F
|
||||
}
|
||||
|
||||
; =========================================================
|
||||
; The record format for the low table is 4 bytes:
|
||||
@@ -180,10 +64,8 @@ OamPtrH = $92
|
||||
OamBackup = $0FEC
|
||||
|
||||
; =========================================================
|
||||
; Sprite RAM and Functions
|
||||
; Sprite RAM
|
||||
|
||||
SpriteRam:
|
||||
{
|
||||
SprY = $0D00
|
||||
SprX = $0D10
|
||||
SprYH = $0D20
|
||||
@@ -215,9 +97,7 @@ SprCustom = $1CC0 ;
|
||||
; Used in sprite state 0x03 (falling in water)
|
||||
; used as delay in most of the sprites
|
||||
SprDelay = $0E80
|
||||
|
||||
; Enemy color flash buffer
|
||||
SprFlash = $0B89
|
||||
SprFlash = $0B89 ; Enemy color flash buffer
|
||||
|
||||
SprTimerA = $0DF0 ; Action, 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
|
||||
; 0x08 24 16 8
|
||||
; 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
|
||||
|
||||
; Damage sprite is enduring
|
||||
@@ -344,9 +216,7 @@ SprDmgTaken = $0CE2
|
||||
; d - If hit from front, deflect Ice Rod, Somarian missile,
|
||||
; boomerang, hookshot, and sword beam, and arrows stick in
|
||||
; it harmlessly. If bit 1 is also set, frontal arrows will
|
||||
; instead disappear harmlessly. No monsters have bit 4 set
|
||||
; in the ROM data, but it was functional and interesting
|
||||
; enough to include.
|
||||
; instead disappear harmlessly.
|
||||
; e - If set, sprite collides with less tiles than usual
|
||||
; f - If set, impervious to sword and hammer type attacks
|
||||
; 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
|
||||
SprDrop = $0CBA ;X W 00: Drop nothing, 01: drop normal key, 03: Drop green rupee, OtherValues: Drop big key
|
||||
}
|
||||
|
||||
; Overlord
|
||||
|
||||
OverlordId = $0B00
|
||||
OverlordX = $0B08
|
||||
OverlordXH = $0B10
|
||||
@@ -392,16 +260,17 @@ OverlordTimerA = $0B28
|
||||
OverlordTimerB = $0B30
|
||||
OverlordTimerC = $0B38
|
||||
|
||||
; =========================================================
|
||||
; Sprite Functions
|
||||
|
||||
SpriteData_OAMProp = $0DB359
|
||||
|
||||
; Clear all properties for sprites
|
||||
SpritePrep_ResetProperties = $0DB871
|
||||
|
||||
; =========================================================
|
||||
; set the oam coordinate for the sprite draw
|
||||
Sprite_PrepOamCoord = $06E416
|
||||
|
||||
; =========================================================
|
||||
; Draw the sprite depending of the position of the player
|
||||
; (if he has to be over or under link)
|
||||
Sprite_OAM_AllocateDeferToPlayer = $06F864
|
||||
@@ -415,24 +284,18 @@ OAM_AllocateFromRegionF = $0DBA94 ; Above
|
||||
|
||||
Sprite_DrawMultiple_quantity_preset = $05DF70
|
||||
|
||||
; =========================================================
|
||||
; check if the sprite is getting damage from player or items
|
||||
Sprite_CheckDamageFromPlayer = $06F2AA
|
||||
|
||||
; =========================================================
|
||||
; check if the sprite is touching the player to damage
|
||||
Sprite_CheckDamageToPlayer = $06F121
|
||||
|
||||
; =========================================================
|
||||
; damage the player everywhere on screen?
|
||||
Sprite_AttemptDamageToPlayerPlusRecoil = $06F41F
|
||||
|
||||
; =========================================================
|
||||
; makes all the sprites on screen shaking
|
||||
ApplyRumbleToSprites = $0680FA
|
||||
|
||||
; =========================================================
|
||||
|
||||
Sprite_MoveLong = $1D808C
|
||||
|
||||
Sprite_ProjectSpeedTowardsPlayer = $06EA1A
|
||||
@@ -463,74 +326,59 @@ ans_high = $0C
|
||||
|
||||
CheckIfHitBoxesOverlap = $0683E6
|
||||
|
||||
; =========================================================
|
||||
; $0FD8 = sprite's X coordinate
|
||||
; $0FDA = sprite's Y coordinate
|
||||
Sprite_Get16BitCoords_Local = $0684C1
|
||||
Sprite_Get_16_bit_Coords = $0684BD
|
||||
|
||||
; =========================================================
|
||||
; load / draw a 16x16 sprite
|
||||
Sprite_PrepAndDrawSingleLarge = $06DBF0
|
||||
|
||||
; =========================================================
|
||||
; load / draw a 8x8 sprite
|
||||
Sprite_PrepAndDrawSingleSmall = $06DBF8
|
||||
|
||||
; =========================================================
|
||||
; draw shadow (requires additional oam allocation)
|
||||
Sprite_DrawShadow = $06DC54
|
||||
|
||||
Sprite_DrawWaterRipple = $059FFA
|
||||
Sprite_DrawRippleIfInWater = $1EFF8D
|
||||
|
||||
; =========================================================
|
||||
; check if the sprite is colliding with a solid tile set $0E70, X
|
||||
; ----udlr , u = up, d = down, l = left, r = right
|
||||
Sprite_CheckTileCollision = $06E496
|
||||
Sprite_CheckTileCollision_long = $06E496
|
||||
|
||||
; =========================================================
|
||||
; $00[0x02] - Entity Y coordinate
|
||||
; $00[0x02] - Entity Y coordinate
|
||||
; $02[0x03?] - Entity X coordinate
|
||||
; $0FA5
|
||||
; $0FA5 - Tile ID result
|
||||
Sprite_GetTileAttr = $06E87B
|
||||
|
||||
; =========================================================
|
||||
; check if the sprite is colliding with a solid sloped tile
|
||||
Sprite_CheckSlopedTileCollision = $06E8FD
|
||||
|
||||
; =========================================================
|
||||
; set the velocity x,y towards the player (A = speed)
|
||||
Sprite_ApplySpeedTowardsPlayer = $06EA12
|
||||
|
||||
; =========================================================
|
||||
; \return $0E is low byte of player_y_pos - sprite_y_pos
|
||||
; \return $0F is low byte of player_x_pos - sprite_x_pos
|
||||
Sprite_DirectionToFacePlayer = $06EAA0
|
||||
|
||||
; =========================================================
|
||||
; if Link is to the left of the sprite, Y = 1, otherwise Y = 0.
|
||||
Sprite_IsToRightOfPlayer = $06EACD
|
||||
|
||||
; =========================================================
|
||||
; return Y=1 sprite is below player, otherwise Y = 0
|
||||
Sprite_IsBelowPlayer = $06EAE4
|
||||
|
||||
; =========================================================
|
||||
; $06 = sprite's Y coordinate
|
||||
; $07 = sprite's X coordinate
|
||||
Sprite_IsBelowLocation = $06EB1D
|
||||
|
||||
; =========================================================
|
||||
; check damage done to player if they collide on same layer
|
||||
Sprite_CheckDamageToPlayerSameLayer = $06F129
|
||||
|
||||
; =========================================================
|
||||
; check damage done to player if they collide even if they are not on same layer
|
||||
Sprite_CheckDamageToPlayerIgnoreLayer = $06F131
|
||||
|
||||
; =========================================================
|
||||
; play a sound loaded in A
|
||||
Sound_SetSfx1PanLong = $0DBB6E
|
||||
Sound_SetSfx2PanLong = $0DBB7C
|
||||
@@ -551,41 +399,30 @@ Sprite_SpawnDynamically_slot_limited = $1DF65F
|
||||
Sprite_SetSpawnedCoords = $09AE64
|
||||
Sprite_SetSpawnedCoordinates = $09AE64
|
||||
|
||||
; =========================================================
|
||||
; move the sprite if he stand on a conveyor belt
|
||||
Sprite_ApplyConveyorAdjustment = $1D8010
|
||||
|
||||
; =========================================================
|
||||
; Setup sprite hitbox for comparison with scrap ram
|
||||
Sprite_SetupHitBoxLong = $0683EA
|
||||
|
||||
; =========================================================
|
||||
; set tile of dungeon
|
||||
Dungeon_SpriteInducedTilemapUpdate = $01E7A9
|
||||
|
||||
; =========================================================
|
||||
; player can't pass through the sprite
|
||||
Sprite_BehaveAsBarrier = $1EF4F3
|
||||
Sprite_PlayerCantPassThrough = $1EF4F3
|
||||
|
||||
; =========================================================
|
||||
; player can't hookshot to that sprite
|
||||
Sprite_NullifyHookshotDrag = $0FF540
|
||||
|
||||
; =========================================================
|
||||
; show a message box without any condition
|
||||
; A = low byte of message ID to use.
|
||||
; Y = high byte of message ID to use.
|
||||
Sprite_ShowMessageUnconditional = $05E219
|
||||
|
||||
; =========================================================
|
||||
; show a message if we press A and face the sprite
|
||||
; A = low byte of message ID to use.
|
||||
; Y = high byte of message ID to use.
|
||||
Sprite_ShowSolicitedMessage = $05E1A7
|
||||
Sprite_ShowSolicitedMessageIfPlayerFacing = $05E1A7
|
||||
|
||||
; =========================================================
|
||||
; show a message if we touch the sprite
|
||||
; should be used with Sprite_PlayerCantPassThrough
|
||||
; A = low byte of message ID to use.
|
||||
@@ -605,6 +442,8 @@ Sprite_KillFriends = $09EF56
|
||||
|
||||
Sprite_KillSelf = $09F1F8
|
||||
|
||||
Dungeon_SpriteInducedTilemapUpdate = $01E7A9
|
||||
|
||||
; =========================================================
|
||||
; $04 = X
|
||||
; $05 = HighX
|
||||
@@ -644,10 +483,9 @@ Sprite_TrackBodyToHead = $05DCA2
|
||||
GetRandomInt = $0DBA71
|
||||
|
||||
Sprite_SpawnFireball = $0DDA06
|
||||
|
||||
Sprite_SpawnSmallSplash = $1EA820
|
||||
|
||||
Sprite_SpawnSparkleGarnish = $058008
|
||||
Sprite_SpawnPoofGarnish = $05AB9C
|
||||
|
||||
Sprite_CheckIfLifted = $06AA0C
|
||||
|
||||
@@ -655,8 +493,6 @@ Sprite_TransmuteToBomb = $06AD50
|
||||
|
||||
Sprite_RepelDash = $079291
|
||||
|
||||
Sprite_SpawnPoofGarnish = $05AB9C
|
||||
|
||||
Sprite_LoadGfxProperties = $00FC41
|
||||
|
||||
ThrownSprite_TileAndSpriteInteraction_long = $06DFF2
|
||||
|
||||
Reference in New Issue
Block a user