diff --git a/Core/sram.asm b/Core/sram.asm new file mode 100644 index 0000000..d32755f --- /dev/null +++ b/Core/sram.asm @@ -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 \ No newline at end of file diff --git a/Core/symbols.asm b/Core/symbols.asm index a9ab0ea..b1698ea 100644 --- a/Core/symbols.asm +++ b/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