Make valuable items all look like shields, implement a few NPCs

This commit is contained in:
2026-02-01 23:16:30 -06:00
parent f609727647
commit f6c0de88fb
5 changed files with 171 additions and 98 deletions

View File

@@ -114,7 +114,8 @@ StartingGenericKeys: skip 1 ; PC 0x18338B
InitInventoryTracking: skip 2 ; PC 0x18338C \ Need to set bits here for silver arrows, InitInventoryTracking: skip 2 ; PC 0x18338C \ Need to set bits here for silver arrows,
InitBowTracking: skip 2 ; PC 0x18338E / boomerangs, powder/mushroom, etc InitBowTracking: skip 2 ; PC 0x18338E / boomerangs, powder/mushroom, etc
InitItemLimitCounts: skip 16 ; PC 0x183390 InitItemLimitCounts: skip 16 ; PC 0x183390
skip 34 ; skip 32 ;
InitPikitItem: dw $0004 ;
InitFluteBitfield: db $00 ; InitFluteBitfield: db $00 ;
InitSpecialWeaponLevel: db $00 ; InitSpecialWeaponLevel: db $00 ;
InitItemOnB: db $00 ; InitItemOnB: db $00 ;

View File

@@ -423,33 +423,33 @@ endmacro
%SpriteProps($04, 0, 0, $05, $80, PalettesCustom_fighter_shield) ; 04 - Fighter shield %SpriteProps($04, 0, 0, $05, $80, PalettesCustom_fighter_shield) ; 04 - Fighter shield
%SpriteProps($05, 2, 2, $05, $80, PalettesCustom_red_shield) ; 05 - Fire shield %SpriteProps($05, 2, 2, $05, $80, PalettesCustom_red_shield) ; 05 - Fire shield
%SpriteProps($06, 2, 2, $05, $80, PalettesCustom_mirror_shield) ; 06 - Mirror shield %SpriteProps($06, 2, 2, $05, $80, PalettesCustom_mirror_shield) ; 06 - Mirror shield
%SpriteProps($07, 0, 0, $01, $01, PalettesVanilla_red_melon+$0E) ; 07 - Fire rod %SpriteProps($07, 0, 0, $01, $80, PalettesCustom_fighter_shield) ; 07 - Fire rod
%SpriteProps($08, 0, 0, $02, $02, PalettesVanilla_blue_ice+$0E) ; 08 - Ice rod %SpriteProps($08, 0, 0, $02, $80, PalettesCustom_fighter_shield) ; 08 - Ice rod
%SpriteProps($09, 0, 0, $01, $01, PalettesVanilla_red_melon+$0E) ; 09 - Hammer %SpriteProps($09, 0, 0, $01, $80, PalettesCustom_fighter_shield) ; 09 - Hammer
%SpriteProps($0A, 0, 0, $01, $01, PalettesVanilla_red_melon+$0E) ; 0A - Hookshot %SpriteProps($0A, 0, 0, $01, $80, PalettesCustom_fighter_shield) ; 0A - Hookshot
%SpriteProps($0B, 0, 0, $01, $01, PalettesVanilla_red_melon+$0E) ; 0B - Bow %SpriteProps($0B, 0, 0, $01, $80, PalettesCustom_fighter_shield) ; 0B - Bow
%SpriteProps($0C, 0, 0, $02, $02, PalettesVanilla_blue_ice+$0E) ; 0C - Blue Boomerang %SpriteProps($0C, 0, 0, $02, $80, PalettesCustom_fighter_shield) ; 0C - Blue Boomerang
%SpriteProps($0D, 2, 2, $02, $02, PalettesVanilla_blue_ice+$0E) ; 0D - Powder %SpriteProps($0D, 2, 0, $02, $80, PalettesCustom_fighter_shield) ; 0D - Powder
%SpriteProps($0E, 2, 0, $02, $03, PalettesVanilla_blue_ice+$0E) ; 0E - Bottle refill (bee) %SpriteProps($0E, 2, 0, $02, $03, PalettesVanilla_blue_ice+$0E) ; 0E - Bottle refill (bee)
%SpriteProps($0F, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 0F - Bombos %SpriteProps($0F, 2, 0, $04, $80, PalettesCustom_fighter_shield) ; 0F - Bombos
%SpriteProps($10, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 10 - Ether %SpriteProps($10, 2, 0, $04, $80, PalettesCustom_fighter_shield) ; 10 - Ether
%SpriteProps($11, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 11 - Quake %SpriteProps($11, 2, 0, $04, $80, PalettesCustom_fighter_shield) ; 11 - Quake
%SpriteProps($12, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 12 - Lamp %SpriteProps($12, 2, 0, $01, $80, PalettesCustom_fighter_shield) ; 12 - Lamp
%SpriteProps($13, 0, 0, $01, $01, PalettesVanilla_red_melon+$0E) ; 13 - Shovel %SpriteProps($13, 0, 0, $01, $80, PalettesCustom_fighter_shield) ; 13 - Shovel
%SpriteProps($14, 2, 2, $02, $02, PalettesVanilla_blue_ice+$0E) ; 14 - Flute %SpriteProps($14, 2, 0, $02, $80, PalettesCustom_fighter_shield) ; 14 - Flute
%SpriteProps($15, 0, 0, $01, $01, PalettesVanilla_red_melon+$0E) ; 15 - Somaria %SpriteProps($15, 0, 0, $01, $80, PalettesCustom_fighter_shield) ; 15 - Somaria
%SpriteProps($16, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 16 - Bottle %SpriteProps($16, 2, 0, $01, $80, PalettesCustom_fighter_shield) ; 16 - Bottle
%SpriteProps($17, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 17 - Heart piece %SpriteProps($17, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 17 - Heart piece
%SpriteProps($18, 0, 0, $02, $02, PalettesVanilla_blue_ice+$0E) ; 18 - Byrna %SpriteProps($18, 0, 0, $02, $80, PalettesCustom_fighter_shield) ; 18 - Byrna
%SpriteProps($19, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 19 - Cape %SpriteProps($19, 2, 0, $01, $80, PalettesCustom_fighter_shield) ; 19 - Cape
%SpriteProps($1A, 2, 2, $02, $02, PalettesVanilla_blue_ice+$0E) ; 1A - Mirror %SpriteProps($1A, 2, 0, $02, $80, PalettesCustom_fighter_shield) ; 1A - Mirror
%SpriteProps($1B, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 1B - Glove %SpriteProps($1B, 2, 0, $01, $80, PalettesCustom_fighter_shield) ; 1B - Glove
%SpriteProps($1C, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 1C - Mitts %SpriteProps($1C, 2, 0, $04, $80, PalettesCustom_fighter_shield) ; 1C - Mitts
%SpriteProps($1D, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 1D - Book %SpriteProps($1D, 2, 0, $04, $80, PalettesCustom_fighter_shield) ; 1D - Book
%SpriteProps($1E, 2, 2, $02, $02, PalettesVanilla_blue_ice+$0E) ; 1E - Flippers %SpriteProps($1E, 2, 0, $02, $80, PalettesCustom_fighter_shield) ; 1E - Flippers
%SpriteProps($1F, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 1F - Pearl %SpriteProps($1F, 2, 0, $01, $80, PalettesCustom_fighter_shield) ; 1F - Pearl
%SpriteProps($20, 2, 2, $86, $86, PalettesCustom_crystal) ; 20 - Crystal %SpriteProps($20, 2, 2, $86, $86, PalettesCustom_crystal) ; 20 - Crystal
%SpriteProps($21, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 21 - Net %SpriteProps($21, 2, 0, $01, $80, PalettesCustom_fighter_shield) ; 21 - Net
%SpriteProps($22, 2, 2, $02, $02, PalettesVanilla_blue_ice+$0E) ; 22 - Blue mail %SpriteProps($22, 2, 2, $02, $02, PalettesVanilla_blue_ice+$0E) ; 22 - Blue mail
%SpriteProps($23, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 23 - Red mail %SpriteProps($23, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 23 - Red mail
%SpriteProps($24, 0, 0, $02, $04, PalettesVanilla_blue_ice+$0E) ; 24 - Small key %SpriteProps($24, 0, 0, $02, $04, PalettesVanilla_blue_ice+$0E) ; 24 - Small key
@@ -457,11 +457,11 @@ endmacro
%SpriteProps($26, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 26 - Heart container from 4/4 %SpriteProps($26, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 26 - Heart container from 4/4
%SpriteProps($27, 2, 2, $02, $02, PalettesVanilla_blue_ice+$0E) ; 27 - Bomb %SpriteProps($27, 2, 2, $02, $02, PalettesVanilla_blue_ice+$0E) ; 27 - Bomb
%SpriteProps($28, 2, 2, $02, $02, PalettesVanilla_blue_ice+$0E) ; 28 - 3 bombs %SpriteProps($28, 2, 2, $02, $02, PalettesVanilla_blue_ice+$0E) ; 28 - 3 bombs
%SpriteProps($29, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 29 - Mushroom %SpriteProps($29, 2, 0, $04, $80, PalettesCustom_fighter_shield) ; 29 - Mushroom
%SpriteProps($2A, 0, 0, $01, $01, PalettesVanilla_red_melon+$0E) ; 2A - Red boomerang %SpriteProps($2A, 0, 0, $01, $80, PalettesCustom_fighter_shield) ; 2A - Red boomerang
%SpriteProps($2B, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 2B - Full bottle (red) %SpriteProps($2B, 2, 0, $01, $80, PalettesCustom_fighter_shield) ; 2B - Full bottle (red)
%SpriteProps($2C, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 2C - Full bottle (green) %SpriteProps($2C, 2, 0, $04, $80, PalettesCustom_fighter_shield) ; 2C - Full bottle (green)
%SpriteProps($2D, 2, 2, $02, $02, PalettesVanilla_blue_ice+$0E) ; 2D - Full bottle (blue) %SpriteProps($2D, 2, 0, $02, $80, PalettesCustom_fighter_shield) ; 2D - Full bottle (blue)
%SpriteProps($2E, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 2E - Potion refill (red) %SpriteProps($2E, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 2E - Potion refill (red)
%SpriteProps($2F, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 2F - Potion refill (green) %SpriteProps($2F, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 2F - Potion refill (green)
%SpriteProps($30, 2, 2, $02, $02, PalettesVanilla_blue_ice+$0E) ; 30 - Potion refill (blue) %SpriteProps($30, 2, 2, $02, $02, PalettesVanilla_blue_ice+$0E) ; 30 - Potion refill (blue)
@@ -474,10 +474,10 @@ endmacro
%SpriteProps($37, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 37 - Green pendant %SpriteProps($37, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 37 - Green pendant
%SpriteProps($38, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 38 - Red pendant %SpriteProps($38, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 38 - Red pendant
%SpriteProps($39, 2, 2, $02, $02, PalettesVanilla_blue_ice+$0E) ; 39 - Blue pendant %SpriteProps($39, 2, 2, $02, $02, PalettesVanilla_blue_ice+$0E) ; 39 - Blue pendant
%SpriteProps($3A, 2, 2, $02, $02, PalettesVanilla_blue_ice+$0E) ; 3A - Bow And Arrows %SpriteProps($3A, 2, 0, $02, $80, PalettesCustom_fighter_shield) ; 3A - Bow And Arrows
%SpriteProps($3B, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 3B - Silver Bow %SpriteProps($3B, 2, 0, $01, $80, PalettesCustom_fighter_shield) ; 3B - Silver Bow
%SpriteProps($3C, 2, 2, $02, $02, PalettesVanilla_blue_ice+$0E) ; 3C - Full bottle (bee) %SpriteProps($3C, 2, 0, $02, $80, PalettesCustom_fighter_shield) ; 3C - Full bottle (bee)
%SpriteProps($3D, 2, 2, $02, $02, PalettesVanilla_blue_ice+$0E) ; 3D - Full bottle (fairy) %SpriteProps($3D, 2, 0, $02, $80, PalettesCustom_fighter_shield) ; 3D - Full bottle (fairy)
%SpriteProps($3E, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 3E - Boss heart %SpriteProps($3E, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 3E - Boss heart
%SpriteProps($3F, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 3F - Sanc heart %SpriteProps($3F, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 3F - Sanc heart
%SpriteProps($40, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 40 - 100 rupees %SpriteProps($40, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 40 - 100 rupees
@@ -488,23 +488,23 @@ endmacro
%SpriteProps($45, 0, 0, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 45 - Small magic %SpriteProps($45, 0, 0, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 45 - Small magic
%SpriteProps($46, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 46 - 300 rupees %SpriteProps($46, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 46 - 300 rupees
%SpriteProps($47, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 47 - 20 rupees green %SpriteProps($47, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 47 - 20 rupees green
%SpriteProps($48, 2, 2, $02, $02, PalettesVanilla_blue_ice+$0E) ; 48 - Full bottle (good bee) %SpriteProps($48, 2, 0, $02, $80, PalettesCustom_fighter_shield) ; 48 - Full bottle (good bee)
%SpriteProps($49, 0, 2, $05, $02, PalettesCustom_fighter_shield) ; 49 - Tossed fighter sword %SpriteProps($49, 0, 2, $05, $02, PalettesCustom_fighter_shield) ; 49 - Tossed fighter sword
%SpriteProps($4A, 2, 2, $02, $02, PalettesVanilla_blue_ice+$0E) ; 4A - Active Flute %SpriteProps($4A, 2, 0, $02, $80, PalettesCustom_fighter_shield) ; 4A - Active Flute
%SpriteProps($4B, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 4B - Boots %SpriteProps($4B, 2, 0, $01, $80, PalettesCustom_fighter_shield) ; 4B - Boots
%SpriteProps($4C, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 4C - Bomb capacity (50) %SpriteProps($4C, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 4C - Bomb capacity (50)
%SpriteProps($4D, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 4D - Arrow capacity (70) %SpriteProps($4D, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 4D - Arrow capacity (70)
%SpriteProps($4E, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 4E - 1/2 magic %SpriteProps($4E, 2, 0, $04, $80, PalettesCustom_fighter_shield) ; 4E - 1/2 magic
%SpriteProps($4F, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 4F - 1/4 magic %SpriteProps($4F, 2, 0, $04, $80, PalettesCustom_fighter_shield) ; 4F - 1/4 magic
%SpriteProps($50, 0, 2, $05, $02, PalettesCustom_master_sword) ; 50 - Safe master sword %SpriteProps($50, 0, 0, $05, $80, PalettesCustom_fighter_shield) ; 50 - Safe master sword
%SpriteProps($51, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 51 - Bomb capacity (+5) %SpriteProps($51, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 51 - Bomb capacity (+5)
%SpriteProps($52, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 52 - Bomb capacity (+10) %SpriteProps($52, 2, 0, $04, $80, PalettesCustom_fighter_shield) ; 52 - Bomb capacity (+10)
%SpriteProps($53, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 53 - Arrow capacity (+5) %SpriteProps($53, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 53 - Arrow capacity (+5)
%SpriteProps($54, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 54 - Arrow capacity (+10) %SpriteProps($54, 2, 2, $04, $04, PalettesVanilla_green_blue_guard+$0E) ; 54 - Arrow capacity (+10)
%SpriteProps($55, 2, 2, $04, $04, $0000) ; 55 - Programmable item 1 %SpriteProps($55, 2, 2, $04, $04, $0000) ; 55 - Programmable item 1
%SpriteProps($56, 2, 2, $04, $04, $0000) ; 56 - Programmable item 2 %SpriteProps($56, 2, 2, $04, $04, $0000) ; 56 - Programmable item 2
%SpriteProps($57, 2, 2, $04, $04, $0000) ; 57 - Programmable item 3 %SpriteProps($57, 2, 2, $04, $04, $0000) ; 57 - Programmable item 3
%SpriteProps($58, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 58 - Upgrade-only Silver Arrows %SpriteProps($58, 2, 0, $01, $80, PalettesCustom_fighter_shield) ; 58 - Upgrade-only Silver Arrows
%SpriteProps($59, 0, 0, $03, $03, PalettesCustom_off_black) ; 59 - Rupoor %SpriteProps($59, 0, 0, $03, $03, PalettesCustom_off_black) ; 59 - Rupoor
%SpriteProps($5A, 2, 2, $01, $01, $0000) ; 5A - Nothing %SpriteProps($5A, 2, 2, $01, $01, $0000) ; 5A - Nothing
%SpriteProps($5B, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 5B - Red clock %SpriteProps($5B, 2, 2, $01, $01, PalettesVanilla_red_melon+$0E) ; 5B - Red clock
@@ -1227,33 +1227,33 @@ StandingItemGraphicsOffsets:
dw BigDecompressionBuffer+$09E0 ; 04 - Fighter Shield dw BigDecompressionBuffer+$09E0 ; 04 - Fighter Shield
dw BigDecompressionBuffer+$1940 ; 05 - Fire Shield dw BigDecompressionBuffer+$1940 ; 05 - Fire Shield
dw BigDecompressionBuffer+$0C80 ; 06 - Mirror Shield dw BigDecompressionBuffer+$0C80 ; 06 - Mirror Shield
dw BigDecompressionBuffer+$1C80 ; 07 - Fire Rod dw BigDecompressionBuffer+$09E0 ; 07 - Fire Rod
dw BigDecompressionBuffer+$1C80 ; 08 - Ice Rod dw BigDecompressionBuffer+$09E0 ; 08 - Ice Rod
dw BigDecompressionBuffer+$1CA0 ; 09 - Hammer dw BigDecompressionBuffer+$09E0 ; 09 - Hammer
dw BigDecompressionBuffer+$1C60 ; 0A - Hookshot dw BigDecompressionBuffer+$09E0 ; 0A - Hookshot
dw BigDecompressionBuffer+$1C00 ; 0B - Bow dw BigDecompressionBuffer+$09E0 ; 0B - Bow
dw BigDecompressionBuffer+$1DE0 ; 0C - Boomerang dw BigDecompressionBuffer+$09E0 ; 0C - Boomerang
dw BigDecompressionBuffer+$1CC0 ; 0D - Powder dw BigDecompressionBuffer+$09E0 ; 0D - Powder
dw 0 ; 0E - Bottle Refill (bee) dw 0 ; 0E - Bottle Refill (bee)
dw BigDecompressionBuffer+$1440 ; 0F - Bombos dw BigDecompressionBuffer+$09E0 ; 0F - Bombos
dw BigDecompressionBuffer+$1400 ; 10 - Ether dw BigDecompressionBuffer+$09E0 ; 10 - Ether
dw BigDecompressionBuffer+$1480 ; 11 - Quake dw BigDecompressionBuffer+$09E0 ; 11 - Quake
dw BigDecompressionBuffer+$10C0 ; 12 - Lamp dw BigDecompressionBuffer+$09E0 ; 12 - Lamp
dw BigDecompressionBuffer+$11E0 ; 13 - Shovel dw BigDecompressionBuffer+$09E0 ; 13 - Shovel
dw BigDecompressionBuffer+$0C40 ; 14 - Flute dw BigDecompressionBuffer+$09E0 ; 14 - Flute
dw BigDecompressionBuffer+$1C40 ; 15 - Somaria dw BigDecompressionBuffer+$09E0 ; 15 - Somaria
dw BigDecompressionBuffer+$14C0 ; 16 - Bottle dw BigDecompressionBuffer+$09E0 ; 16 - Bottle
dw BigDecompressionBuffer+$0C00 ; 17 - Heartpiece dw BigDecompressionBuffer+$0C00 ; 17 - Heartpiece
dw BigDecompressionBuffer+$1C40 ; 18 - Byrna dw BigDecompressionBuffer+$09E0 ; 18 - Byrna
dw BigDecompressionBuffer+$1100 ; 19 - Cape dw BigDecompressionBuffer+$09E0 ; 19 - Cape
dw BigDecompressionBuffer+$1040 ; 1A - Mirror dw BigDecompressionBuffer+$09E0 ; 1A - Mirror
dw BigDecompressionBuffer+$1D40 ; 1B - Glove dw BigDecompressionBuffer+$09E0 ; 1B - Glove
dw BigDecompressionBuffer+$1D40 ; 1C - Mitts dw BigDecompressionBuffer+$09E0 ; 1C - Mitts
dw BigDecompressionBuffer+$1D80 ; 1D - Book dw BigDecompressionBuffer+$09E0 ; 1D - Book
dw BigDecompressionBuffer+$1000 ; 1E - Flippers dw BigDecompressionBuffer+$09E0 ; 1E - Flippers
dw BigDecompressionBuffer+$1180 ; 1F - Pearl dw BigDecompressionBuffer+$09E0 ; 1F - Pearl
dw BigDecompressionBuffer+$08A0 ; 20 - Crystal dw BigDecompressionBuffer+$08A0 ; 20 - Crystal
dw BigDecompressionBuffer+$0860 ; 21 - Net dw BigDecompressionBuffer+$09E0 ; 21 - Net
dw BigDecompressionBuffer+$1900 ; 22 - Blue Mail dw BigDecompressionBuffer+$1900 ; 22 - Blue Mail
dw BigDecompressionBuffer+$1900 ; 23 - Red Mail dw BigDecompressionBuffer+$1900 ; 23 - Red Mail
dw BigDecompressionBuffer+$1DC0 ; 24 - Small Key dw BigDecompressionBuffer+$1DC0 ; 24 - Small Key
@@ -1261,11 +1261,11 @@ StandingItemGraphicsOffsets:
dw BigDecompressionBuffer+$18C0 ; 26 - Heart Container from 4/4 dw BigDecompressionBuffer+$18C0 ; 26 - Heart Container from 4/4
dw BigDecompressionBuffer+$1080 ; 27 - Bomb dw BigDecompressionBuffer+$1080 ; 27 - Bomb
dw BigDecompressionBuffer+$1840 ; 28 - 3 bombs dw BigDecompressionBuffer+$1840 ; 28 - 3 bombs
dw BigDecompressionBuffer+$1540 ; 29 - Mushroom dw BigDecompressionBuffer+$09E0 ; 29 - Mushroom
dw BigDecompressionBuffer+$1DE0 ; 2A - Red boomerang dw BigDecompressionBuffer+$09E0 ; 2A - Red boomerang
dw BigDecompressionBuffer+$1500 ; 2B - Full bottle (red) dw BigDecompressionBuffer+$09E0 ; 2B - Full bottle (red)
dw BigDecompressionBuffer+$1500 ; 2C - Full bottle (green) dw BigDecompressionBuffer+$09E0 ; 2C - Full bottle (green)
dw BigDecompressionBuffer+$1500 ; 2D - Full bottle (blue) dw BigDecompressionBuffer+$09E0 ; 2D - Full bottle (blue)
dw $0920 ; 2E - Potion refill (red) dw $0920 ; 2E - Potion refill (red)
dw $08A0 ; 2F - Potion refill (green) dw $08A0 ; 2F - Potion refill (green)
dw $08E0 ; 30 - Potion refill (blue) dw $08E0 ; 30 - Potion refill (blue)
@@ -1278,10 +1278,10 @@ StandingItemGraphicsOffsets:
dw $0820 ; 37 - Green pendant dw $0820 ; 37 - Green pendant
dw BigDecompressionBuffer+$0080 ; 38 - Blue pendant dw BigDecompressionBuffer+$0080 ; 38 - Blue pendant
dw BigDecompressionBuffer+$0080 ; 39 - Red pendant dw BigDecompressionBuffer+$0080 ; 39 - Red pendant
dw BigDecompressionBuffer+$0920 ; 3A - Tossed bow dw BigDecompressionBuffer+$09E0 ; 3A - Tossed bow
dw BigDecompressionBuffer+$08E0 ; 3B - Silvers dw BigDecompressionBuffer+$09E0 ; 3B - Silvers
dw BigDecompressionBuffer+$09A0 ; 3C - Full bottle (bee) dw BigDecompressionBuffer+$09E0 ; 3C - Full bottle (bee)
dw BigDecompressionBuffer+$0960 ; 3D - Full bottle (fairy) dw BigDecompressionBuffer+$09E0 ; 3D - Full bottle (fairy)
dw BigDecompressionBuffer+$18C0 ; 3E - Boss heart dw BigDecompressionBuffer+$18C0 ; 3E - Boss heart
dw BigDecompressionBuffer+$18C0 ; 3F - Sanc heart dw BigDecompressionBuffer+$18C0 ; 3F - Sanc heart
dw BigDecompressionBuffer+$0D20 ; 40 - 100 rupees dw BigDecompressionBuffer+$0D20 ; 40 - 100 rupees
@@ -1292,25 +1292,25 @@ StandingItemGraphicsOffsets:
dw BigDecompressionBuffer+$0CE0 ; 45 - Small magic dw BigDecompressionBuffer+$0CE0 ; 45 - Small magic
dw BigDecompressionBuffer+$0DA0 ; 46 - 300 rupees dw BigDecompressionBuffer+$0DA0 ; 46 - 300 rupees
dw BigDecompressionBuffer+$0000 ; 47 - 20 rupees green dw BigDecompressionBuffer+$0000 ; 47 - 20 rupees green
dw BigDecompressionBuffer+$09A0 ; 48 - Full bottle (good bee) dw BigDecompressionBuffer+$09E0 ; 48 - Full bottle (good bee)
dw $00A0 ; 49 - Tossed fighter sword dw $00A0 ; 49 - Tossed fighter sword
dw BigDecompressionBuffer+$0C40 ; 4A - Active Flute dw BigDecompressionBuffer+$09E0 ; 4A - Active Flute
dw BigDecompressionBuffer+$0040 ; 4B - Boots dw BigDecompressionBuffer+$09E0 ; 4B - Boots
; Rando items ; Rando items
dw $04A0 ; 4C - Bomb capacity (50) dw $04A0 ; 4C - Bomb capacity (50)
dw $05A0 ; 4D - Arrow capacity (70) dw $05A0 ; 4D - Arrow capacity (70)
dw $01A0 ; 4E - 1/2 magic dw BigDecompressionBuffer+$09E0 ; 4E - 1/2 magic
dw $01E0 ; 4F - 1/4 magic dw BigDecompressionBuffer+$09E0 ; 4F - 1/4 magic
dw $00E0 ; 50 - Safe master sword dw BigDecompressionBuffer+$09E0 ; 50 - Safe master sword
dw $0420 ; 51 - Bomb capacity (+5) dw $0420 ; 51 - Bomb capacity (+5)
dw $0460 ; 52 - Bomb capacity (+10) dw BigDecompressionBuffer+$09E0 ; 52 - Bomb capacity (+10)
dw $0520 ; 53 - Arrow capacity (+5) dw $0520 ; 53 - Arrow capacity (+5)
dw $0560 ; 54 - Arrow capacity (+10) dw $0560 ; 54 - Arrow capacity (+10)
dw $0 ; 55 - Programmable item 1 dw $0 ; 55 - Programmable item 1
dw $0 ; 56 - Programmable item 2 dw $0 ; 56 - Programmable item 2
dw $0 ; 57 - Programmable item 3 dw $0 ; 57 - Programmable item 3
dw $05E0 ; 58 - Upgrade-only silver arrows dw BigDecompressionBuffer+$09E0 ; 58 - Upgrade-only silver arrows
dw $0 ; 59 - Rupoor dw $0 ; 59 - Rupoor
dw $0020 ; 5A - Nothing dw $0020 ; 5A - Nothing
dw $0DE0 ; 5B - Red clock dw $0DE0 ; 5B - Red clock

View File

@@ -98,9 +98,19 @@ ItemSet_MagicBat:
RTL RTL
ItemSet_OldMan: ItemSet_OldMan:
PHA : LDA.l OldManItem_Player : STA.l !MULTIWORLD_ITEM_PLAYER_ID : PLA PHA
TYA : STA.b $0C
JSL ShieldCheck
BCC .skip
LDA.b $0C : TAY
LDA.l OldManItem_Player : STA.l !MULTIWORLD_ITEM_PLAYER_ID
PLA
JSL Link_ReceiveItem ; thing we wrote over JSL Link_ReceiveItem ; thing we wrote over
PHA : LDA.l NpcFlags : ORA.b #$01 : STA.l NpcFlags : PLA PHA
LDA.l NpcFlags : ORA.b #$01 : STA.l NpcFlags
.skip
PLA
RTL RTL
ItemSet_ZoraKing: ItemSet_ZoraKing:
@@ -108,21 +118,51 @@ ItemSet_ZoraKing:
RTL RTL
ItemSet_SickKid: ItemSet_SickKid:
PHA : LDA.l SickKidItem_Player : STA.l !MULTIWORLD_ITEM_PLAYER_ID : PLA PHA
TYA : STA.b $0C
JSL ShieldCheck
BCC .skip
LDA.b $0C : TAY
LDA.l SickKidItem_Player : STA.l !MULTIWORLD_ITEM_PLAYER_ID
PLA
JSL Link_ReceiveItem ; thing we wrote over JSL Link_ReceiveItem ; thing we wrote over
PHA : LDA.l NpcFlags : ORA.b #$04 : STA.l NpcFlags : PLA PHA
LDA.l NpcFlags : ORA.b #$04 : STA.l NpcFlags
.skip
PLA
RTL RTL
ItemSet_TreeKid: ItemSet_TreeKid:
PHA : LDA.l TreeKidItem_Player : STA.l !MULTIWORLD_ITEM_PLAYER_ID : PLA PHA
TYA : STA.b $0C
JSL ShieldCheck
BCC .skip
LDA.b $0C : TAY
LDA.l TreeKidItem_Player : STA.l !MULTIWORLD_ITEM_PLAYER_ID
PLA
JSL Link_ReceiveItem ; thing we wrote over JSL Link_ReceiveItem ; thing we wrote over
PHA : LDA.l NpcFlags : ORA.b #$08 : STA.l NpcFlags : PLA PHA
LDA.l NpcFlags : ORA.b #$08 : STA.l NpcFlags
.skip
PLA
RTL RTL
ItemSet_Sahasrala: ItemSet_Sahasrala:
PHA : LDA.l SahasralaItem_Player : STA.l !MULTIWORLD_ITEM_PLAYER_ID : PLA PHA
TYA : STA.b $0C
JSL ShieldCheck
BCC .skip
LDA.b $0C : TAY
LDA.l SahasralaItem_Player : STA.l !MULTIWORLD_ITEM_PLAYER_ID
PLA
JSL Link_ReceiveItem ; thing we wrote over JSL Link_ReceiveItem ; thing we wrote over
PHA : LDA.l NpcFlags : ORA.b #$10 : STA.l NpcFlags : PLA PHA
LDA.l NpcFlags : ORA.b #$10 : STA.l NpcFlags
.skip
PLA
RTL RTL
ItemSet_Catfish: ItemSet_Catfish:
@@ -130,9 +170,19 @@ ItemSet_Catfish:
RTL RTL
ItemSet_Library: ItemSet_Library:
PHA : LDA.l LibraryItem_Player : STA.l !MULTIWORLD_ITEM_PLAYER_ID : PLA PHA
TYA : STA.b $0C
JSL ShieldCheck
BCC .skip
LDA.b $0C : TAY
LDA.l LibraryItem_Player : STA.l !MULTIWORLD_ITEM_PLAYER_ID
PLA
JSL Link_ReceiveItem ; thing we wrote over JSL Link_ReceiveItem ; thing we wrote over
PHA : LDA.l NpcFlags : ORA.b #$80 : STA.l NpcFlags : PLA PHA
LDA.l NpcFlags : ORA.b #$80 : STA.l NpcFlags
.skip
PLA
RTL RTL
ItemSet_Mushroom: ItemSet_Mushroom:
@@ -223,16 +273,30 @@ MarkThrownItem:
LDA.b OverworldIndex : CMP.b #$81 : BNE .catfish LDA.b OverworldIndex : CMP.b #$81 : BNE .catfish
.zora .zora
JSL ItemSet_ZoraKing TYA : STA.b $0C
JSL ShieldCheck
BCC .skip
LDA.b $0C : TAY
JSL ItemSet_ZoraKing
LDA.l ZoraItem_Player : STA.l !MULTIWORLD_ITEM_PLAYER_ID LDA.l ZoraItem_Player : STA.l !MULTIWORLD_ITEM_PLAYER_ID
BRA .done BRA .done
.catfish .catfish
JSL ItemSet_Catfish TYA : STA.b $0C
JSL ShieldCheck
BCC .skip
LDA.b $0C : TAY
JSL ItemSet_Catfish
LDA.l CatfishItem_Player : STA.l !MULTIWORLD_ITEM_PLAYER_ID LDA.l CatfishItem_Player : STA.l !MULTIWORLD_ITEM_PLAYER_ID
.done .done
PLA PLA
JSL Link_ReceiveItem ; thing we wrote over JSL Link_ReceiveItem ; thing we wrote over
RTL RTL
.skip
PLA
RTL
;-------------------------------------------------------------------------------- ;--------------------------------------------------------------------------------

View File

@@ -90,6 +90,8 @@ SmallChest_ShieldCheck:
RTL RTL
ShieldCheck: ShieldCheck:
PHP
REP #$30
PHX PHX
LDA.b $0C LDA.b $0C
AND.w #$00FF AND.w #$00FF
@@ -98,6 +100,7 @@ ShieldCheck:
AND.w #$00FF AND.w #$00FF
BNE .replace BNE .replace
PLX PLX
PLP
SEC SEC
RTL RTL
@@ -110,6 +113,7 @@ ShieldCheck:
LDA.w #$0004 LDA.w #$0004
STA.b $0C STA.b $0C
PLX PLX
PLP
SEC SEC
RTL RTL
@@ -118,13 +122,16 @@ ShieldCheck:
LDA.b #$3C LDA.b #$3C
STA.w $012E STA.w $012E
PHY
LDA.b #$98 LDA.b #$98
LDY.b #$01 LDY.b #$01
JSL Sprite_ShowMessageUnconditional JSL Sprite_ShowMessageUnconditional
PLY
REP #$30 REP #$30
PLX PLX
PLP
CLC CLC
RTL RTL

View File

@@ -190,7 +190,8 @@ ItemLimitCounts: skip 16 ; Keeps track of limited non-progressive items s
; See: ItemSubstitutionRules in tables.asm ; See: ItemSubstitutionRules in tables.asm
; Right now this is only used for three items but extra space is ; Right now this is only used for three items but extra space is
; reserved ; reserved
skip 34 ; Unused skip 32 ; Unused
PikitItem: skip 2 ; Item stored in shield player is carrying
FluteBitfield: skip 1 ; FluteBitfield: skip 1 ;
SpecialWeaponLevel: skip 1 ; keeps track of level in special weapon modes SpecialWeaponLevel: skip 1 ; keeps track of level in special weapon modes
ItemOnB: skip 1 ; NYI ItemOnB: skip 1 ; NYI
@@ -251,7 +252,7 @@ NpcFlags: skip 2 ; l - c s t k z o (bitfield)
; b = Magic Bat | p = Potion Shop (Powder) | m = Lost Woods (Mushroom) ; b = Magic Bat | p = Potion Shop (Powder) | m = Lost Woods (Mushroom)
; f = Fairy (unused) | s = Smith | b = Bombos Tablet ; f = Fairy (unused) | s = Smith | b = Bombos Tablet
; e = Ether Tablet ; e = Ether Tablet
PikitItem: skip 2 ; Item stored in shield player is carrying skip 2 ; Unused
MapOverlay: skip 2 ; Used to reveal dungeon prizes on the map in modes where maps, MapOverlay: skip 2 ; Used to reveal dungeon prizes on the map in modes where maps,
; Saha, and the bomb shop guy reveal dungeon prizes (bitfield) ; Saha, and the bomb shop guy reveal dungeon prizes (bitfield)
; \ - - g r t h i s ; \ - - g r t h i s