16 Commits

Author SHA1 Message Date
Jared_Brian_
479b8f1f10 fixed a bug that caused the currently selected item to not be saved after death and caused the bomb and arrow counts to dissapear on the HUD after opening a chest. Also added certain rom and emulator file types to the .gitIgnore 2024-03-29 14:05:15 -06:00
Justin Scofield
bbb3b85def Update README.md
Add updated screenshots for Menu and HUD
2024-03-29 00:34:42 -04:00
Justin Scofield
2c058e049e Merge pull request #50 from scawful/JaredMenuFixes 2024-03-25 19:56:06 -04:00
scawful
c6b9541977 Add additional orgs to blind maiden code to prevent breaking existing jumps 2024-03-24 11:59:02 -04:00
scawful
dd68a4929d Update Twinrova_Long and CheckIfDead formatting 2024-03-24 10:53:34 -04:00
scawful
ef7d3af09b cache and handle camera for hover deku link WIP 2024-03-22 12:00:29 -04:00
scawful
3ee5871f86 Setup Twinrova boss fight intro gfx transfer WIP 2024-03-22 11:59:53 -04:00
scawful
ef1540f3f6 Move deku leaf, mineswitch, switch track to Sprites/Objects 2024-03-18 19:24:57 -04:00
scawful
f4ae06bfd1 Format and comment Follower_CheckBlindTrigger 2024-03-17 16:34:31 -04:00
scawful
c3b40b21fb Format and comment Blind_SpawnFromMaiden 2024-03-17 16:26:37 -04:00
scawful
6f4392aa0e Add comments to Follower_BasicMover blind maiden section 2024-03-17 16:11:25 -04:00
scawful
0adc6f17bf Despawn Twinrova when maiden present 2024-03-17 16:10:47 -04:00
scawful
93b63032da Add vanilla blind maiden follower code 2024-03-17 15:47:55 -04:00
scawful
ea00780785 Move maku tree to NPCs, fix Twinrova errors 2024-03-17 14:04:41 -04:00
scawful
2e22114d8a Cleanup Twinrova boss sprite 2024-03-17 01:07:53 -04:00
scawful
4fac78bbba Add TODO for Ocarina Song SRAM values 2024-03-16 16:11:56 -04:00
12 changed files with 767 additions and 512 deletions

21
.gitignore vendored
View File

@@ -1,12 +1,9 @@
asar.exe *.exe
oos111.sfc *.bst
oos111x-1.bst *.bp
oos111x-2.bst *.cht
oos111x-3.bst *.cpu.sym
oos111x.bp *.sfc
oos111x.cht *.smp.sym
oos111x.cpu.sym *.srm
oos111x.sfc *.sym
oos111x.smp.sym
oos111x.srm
oos111x.sym

View File

@@ -95,6 +95,7 @@ LinkState_UsingQuake:
db 5, 5, 5, 19 db 5, 5, 5, 19
; INC.w $0FC1 ; Keep sprites frozen ; INC.w $0FC1 ; Keep sprites frozen
JSR $F514 ; CacheCameraPropertiesIfOutdoors
STZ.b $27 : STZ.b $28 ; Reset recoil X and Y STZ.b $27 : STZ.b $28 ; Reset recoil X and Y
@@ -175,9 +176,8 @@ LinkState_UsingQuake:
.special .special
DEC $5C DEC $5C
; JSR $F514 ; CacheCameraPropertiesIfOutdoors
JSL DekuLink_HoverBasedOnInput JSL DekuLink_HoverBasedOnInput
; JSR $E8F0 JSR $E8F0 ; HandleIndoorCameraAndDoors
RTS RTS
} }

View File

@@ -199,6 +199,7 @@ Menu_DrawHeartPieces:
; ========================================================= ; =========================================================
; TODO: Attach SRAM values to these for progression
Menu_DrawMusicNotes: Menu_DrawMusicNotes:
{ {
LDA.w #$02 LDA.w #$02

View File

@@ -516,7 +516,7 @@ org $0DF811
; ========================================================= ; =========================================================
; $6FE77-$6FFC0 ; $6FE77-$6FFC0
org $0DFE77 org $0DFE77
HUD_Tilemap: HUD_Tilemap:
incbin tilemaps/hud.tilemap incbin tilemaps/hud.tilemap
@@ -528,7 +528,7 @@ incbin tilemaps/hud.tilemap
; ========================================================== ; ==========================================================
; $57CE0 DATA ; $57CE0 DATA
org $0AFCE0 org $0AFCE0
FloorIndicatorNumberHigh: FloorIndicatorNumberHigh:
{ {
dw $2508, $2509, $2509, $250A, $250B, $250C, $250D, $251D dw $2508, $2509, $2509, $250A, $250B, $250C, $250D, $251D

View File

@@ -242,46 +242,75 @@ GotoNextItem_Local:
; Load our currently equipped item, and move to the next one ; Load our currently equipped item, and move to the next one
; If we reach our limit (21), set it back to the bow and arrow slot. ; If we reach our limit (21), set it back to the bow and arrow slot.
LDA $0202 : INC A : CMP.b #$18 : BCC .dont_reset LDA $0202 : INC A : CMP.b #$18 : BCC .dont_reset
LDA.b #$01 LDA.b #$01
.dont_reset .dont_reset
; Otherwise try to equip the item in the next slot ; Otherwise try to equip the item in the next slot
STA $0202 STA $0202
RTS RTS
} }
DoWeHaveThisItem_OverrideLong:
{
PHB : PHK : PLB
JSR DoWeHaveThisItem_Override
PLB
RTL
}
DoWeHaveThisItem_Override: DoWeHaveThisItem_Override:
{ {
LDY $0202 : LDX.w Menu_AddressLong, Y LDY $0202 : LDX.w Menu_AddressLong-1, Y
LDA.l $7EF33F, X : BNE .have_this_item LDA.l $7EF300, X : BNE .have_this_item
CLC CLC
RTL RTS
.have_this_item .have_this_item
SEC SEC
RTL RTS
} }
TryEquipNextItem_Override: TryEquipNextItem_Override:
{ {
.keep_looking .keep_looking
JSR GotoNextItem_Local JSR GotoNextItem_Local
JSL DoWeHaveThisItem_Override : BCC .keep_looking JSR DoWeHaveThisItem_Override : BCC .keep_looking
RTS RTS
} }
SearchForEquippedItem_OverrideLong:
{
PHB : PHK : PLB
JSR SearchForEquippedItem_Override
PLB
RTL
}
SearchForEquippedItem_Override: SearchForEquippedItem_Override:
{ {
SEP #$30 SEP #$30
LDY $0202 : LDX.w Menu_AddressLong-1, Y LDA.b #$00
LDA.l $7EF33F, X : CMP.b #$00 : BNE .item_available LDY.b #$18
.itemCheck
LDX Menu_AddressLong-1, Y
ORA $7EF300, X
DEY : CPY.b #$00 : BNE .itemCheck
CMP.b #$00 : BNE .equippableItemAvailable
; In this case we have no equippable items ; In this case we have no equippable items
STZ $0202 : STZ $0203 : STZ $0204 STZ $0202 : STZ $0203 : STZ $0204
.weHaveThatItem
RTS
.equippableItemAvailable
.we_have_that_item
RTL
.item_available
; Is there an item currently equipped (in the HUD slot)? ; Is there an item currently equipped (in the HUD slot)?
LDA $0202 : BNE .alreadyEquipped LDA $0202 : BNE .alreadyEquipped
; If not, set the equipped item to the Bow and Arrow ; If not, set the equipped item to the Bow and Arrow
@@ -290,12 +319,9 @@ SearchForEquippedItem_Override:
.alreadyEquipped .alreadyEquipped
; Checks to see if we actually have that item ; Checks to see if we actually have that item
; We're done if we have that item ; We're done if we have that item
.keep_looking JSR DoWeHaveThisItem_Override : BCS .weHaveThatItem
JSR GotoNextItem_Local
JSL DoWeHaveThisItem_Override : BCC .keep_looking
BCS .we_have_that_item
JMP TryEquipNextItem_Override JMP TryEquipNextItem_Override
} }
@@ -305,16 +331,14 @@ pushpc
org $0DDEB0 org $0DDEB0
DoWeHaveThisItem: DoWeHaveThisItem:
{ {
JSL DoWeHaveThisItem_Override JSL DoWeHaveThisItem_OverrideLong
RTS RTS
} }
org $0DE399 org $0DE399
SearchForEquippedItem: SearchForEquippedItem:
{ {
PHB : PHK : PLB JSL SearchForEquippedItem_OverrideLong
JSL SearchForEquippedItem_Override
PLB
RTS RTS
} }
warnpc $0DE3C7 warnpc $0DE3C7

View File

@@ -10,10 +10,12 @@ Build using [Asar](https://github.com/RPGHacker/asar) with `build.bat`
![oos55001](https://user-images.githubusercontent.com/47263509/175397658-56358685-74fa-42cd-bca7-b03b2909ab9c.png) ![oos55001](https://user-images.githubusercontent.com/47263509/175397658-56358685-74fa-42cd-bca7-b03b2909ab9c.png)
![oos55002](https://user-images.githubusercontent.com/47263509/175397677-9199c207-1d8a-4de9-9040-63bf420de49f.png) ![oos55002](https://user-images.githubusercontent.com/47263509/175397677-9199c207-1d8a-4de9-9040-63bf420de49f.png)
## Custom Menu ## Custom Menu and HUD
![image](https://github.com/scawful/Oracle-of-Secrets/assets/47263509/77e12478-127f-4dbd-b9c8-19da12b75ca2)
![image](https://github.com/scawful/Oracle-of-Secrets/assets/47263509/a02d8d78-b7ed-4085-809e-59d78319e576)
![image](https://github.com/scawful/Oracle-of-Secrets/assets/47263509/a6c7e247-f645-4a1c-954a-6c2d9c864d3e)
![oos69x_004](https://user-images.githubusercontent.com/47263509/175392740-69b44931-298c-4000-b22d-5a2ebf76e1ad.png)
![oos69x_005](https://user-images.githubusercontent.com/47263509/175392746-263801e4-5353-4fb8-b5cf-2d2e7f1c0282.png)
## Custom Sprites ## Custom Sprites

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
;============================================================================== ; =========================================================
; Sprite Properties ; Sprite Properties
;============================================================================== ; =========================================================
!SPRID = $9E ; The sprite ID you are overwriting (HEX) !SPRID = $9E ; The sprite ID you are overwriting (HEX)
!NbrTiles = 00 ; Number of tiles used in a frame !NbrTiles = 00 ; Number of tiles used in a frame
!Harmless = 01 ; 00 = Sprite is Harmful, 01 = Sprite is Harmless !Harmless = 01 ; 00 = Sprite is Harmful, 01 = Sprite is Harmless
@@ -31,81 +31,79 @@
%Set_Sprite_Properties(Sprite_MakuTree_Prep, Sprite_MakuTree_Long) %Set_Sprite_Properties(Sprite_MakuTree_Prep, Sprite_MakuTree_Long)
;============================================================================== ; =========================================================
Sprite_MakuTree_Long: Sprite_MakuTree_Long:
{ {
PHB : PHK : PLB PHB : PHK : PLB
JSR Sprite_MakuTree_Draw ; Call the draw code JSR Sprite_MakuTree_Draw ; Call the draw code
JSL Sprite_CheckActive ; Check if game is not paused JSL Sprite_CheckActive ; Check if game is not paused
BCC .SpriteIsNotActive ; Skip Main code is sprite is innactive BCC .SpriteIsNotActive ; Skip Main code is sprite is innactive
JSR Sprite_MakuTree_Main ; Call the main sprite code JSR Sprite_MakuTree_Main ; Call the main sprite code
.SpriteIsNotActive .SpriteIsNotActive
PLB ; Get back the databank we stored previously PLB ; Get back the databank we stored previously
RTL ; Go back to original code RTL ; Go back to original code
} }
;============================================================================== ; =========================================================
Sprite_MakuTree_Prep: Sprite_MakuTree_Prep:
{ {
PHB : PHK : PLB PHB : PHK : PLB
; Check if the intro has executed already.
LDA.l $7EF300 LDA.l $7EF300 : BNE .intro_is_done
BNE .intro_is_done
STZ.w $0DD0, X ; Kill the sprite STZ.w $0DD0, X ; Kill the sprite
.intro_is_done .intro_is_done
PLB
PLB RTL
RTL
} }
;============================================================================== ; =========================================================
Sprite_MakuTree_Main: Sprite_MakuTree_Main:
{ {
LDA.w SprAction, X ; Load the SprAction LDA.w SprAction, X
JSL UseImplicitRegIndexedLocalJumpTable ; Goto the SprAction we are currently in JSL UseImplicitRegIndexedLocalJumpTable
dw MakuTree_Handler dw MakuTree_Handler
dw MakuTree_MeetLink dw MakuTree_MeetLink
dw MakuTree_GiveBow dw MakuTree_GiveMoonPearl
MakuTree_Handler: MakuTree_Handler:
{ {
; Check the progress flags ; Check the progress flags
LDA $7EF3D4 : CMP.b #$01 : BEQ .has_met_link LDA $7EF3D4 : CMP.b #$01 : BEQ .has_met_link
%GotoAction(1) %GotoAction(1)
RTS RTS
.has_met_link .has_met_link
%ShowSolicitedMessage($22) %ShowSolicitedMessage($22)
RTS RTS
} }
MakuTree_MeetLink: MakuTree_MeetLink:
{ {
%ShowSolicitedMessage($20) : BCC .no_talk %ShowSolicitedMessage($20) : BCC .no_talk
LDA #$01 : STA $7EF3D4 LDA #$01 : STA $7EF3D4
LDA #$06 : STA $7EF3C7 LDA #$06 : STA $7EF3C7
%GotoAction(2) %GotoAction(2)
.no_talk .no_talk
RTS RTS
} }
MakuTree_GiveBow: MakuTree_GiveMoonPearl:
{ {
; Give Link the Moon Pearl ; Give Link the Moon Pearl
LDY #$1F : JSL Link_ReceiveItem LDY #$1F : JSL Link_ReceiveItem
%GotoAction(0) %GotoAction(0)
RTS RTS
} }
} }
;============================================================================== ; =========================================================
Sprite_MakuTree_Draw: Sprite_MakuTree_Draw:
{ {
@@ -163,7 +161,7 @@ Sprite_MakuTree_Draw:
RTS RTS
;============================================================================== ; =========================================================
.start_index .start_index
.nbr_of_tiles .nbr_of_tiles

View File

@@ -45,7 +45,7 @@ print "End of kydrog.asm ", pc
incsrc "Sprites/Bosses/kydrog_boss.asm" incsrc "Sprites/Bosses/kydrog_boss.asm"
print "End of kydrog_boss.asm ", pc print "End of kydrog_boss.asm ", pc
incsrc "Sprites/maku_tree.asm" incsrc "Sprites/NPCs/maku_tree.asm"
print "End of maku_tree.asm ", pc print "End of maku_tree.asm ", pc
incsrc "Sprites/NPCs/mask_salesman.asm" incsrc "Sprites/NPCs/mask_salesman.asm"
@@ -60,10 +60,10 @@ print "End of anti_kirby.asm ", pc
incsrc "Sprites/Enemies/sea_urchin.asm" incsrc "Sprites/Enemies/sea_urchin.asm"
print "End of sea_urchin.asm ", pc print "End of sea_urchin.asm ", pc
incsrc "Sprites/switch_track.asm" incsrc "Sprites/Objects/switch_track.asm"
print "End of switch_track.asm ", pc print "End of switch_track.asm ", pc
incsrc "Sprites/mineswitch.asm" incsrc "Sprites/Objects/mineswitch.asm"
print "End of mineswitch.asm ", pc print "End of mineswitch.asm ", pc
incsrc "Sprites/NPCs/village_dog.asm" incsrc "Sprites/NPCs/village_dog.asm"
@@ -78,7 +78,8 @@ print "End of twinrova.asm ", pc
incsrc "Sprites/Bosses/kydreeok.asm" incsrc "Sprites/Bosses/kydreeok.asm"
incsrc "Sprites/Bosses/kydreeok_head.asm" incsrc "Sprites/Bosses/kydreeok_head.asm"
incsrc "Sprites/deku_leaf.asm" incsrc "Sprites/Objects/deku_leaf.asm"
print "End of deku_leaf.asm ", pc
incsrc "Sprites/portal_sprite.asm" incsrc "Sprites/portal_sprite.asm"
print "End of portal_sprite.asm ", pc print "End of portal_sprite.asm ", pc