From a14ca50a7148304a152fed7d665e0f42794f6308 Mon Sep 17 00:00:00 2001 From: codemann8 Date: Wed, 15 Mar 2023 05:44:18 -0500 Subject: [PATCH] Adjusting Bonk Sprite landing position and water ripple --- Rom.py | 2 +- asm/owrando.asm | 17 ++++++++++------- data/base2current.bps | Bin 105834 -> 105866 bytes 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/Rom.py b/Rom.py index 60d4eadc..5c1c2ced 100644 --- a/Rom.py +++ b/Rom.py @@ -38,7 +38,7 @@ from source.dungeon.RoomList import Room0127 JAP10HASH = '03a63945398191337e896e5771f77173' -RANDOMIZERBASEHASH = 'baa1135c06e1e38d4005ba3c7acb977b' +RANDOMIZERBASEHASH = '8e95ee70d7afec407016449e86439550' class JsonRom(object): diff --git a/asm/owrando.asm b/asm/owrando.asm index 7b51e697..614fffd0 100644 --- a/asm/owrando.asm +++ b/asm/owrando.asm @@ -436,7 +436,7 @@ OWBonkGoodBeeDrop: JMP .spawn_item + - .determine_type ; S = Collected, FlagBitmask, X (row + 2) + .determine_type ; S = Collected LDA.l OWBonkPrizeTable[42].loot ; A = item id CMP.b #$B0 : BNE + LDA.b #$79 : JMP .sprite_transform ; transform to bees @@ -480,13 +480,13 @@ OWBonkGoodBeeDrop: JSL.l OWBonkSpritePrep .mark_collected ; S = Collected - PLA : BNE .return + PLA : BNE + LDA.l RoomDataWRAM[$0120].high : ORA.b #$02 : STA.l RoomDataWRAM[$0120].high REP #$20 LDA.l TotalItemCounter : INC : STA.l TotalItemCounter SEP #$20 - BRA .return + + BRA .return ; spawn itemget item .spawn_item ; A = item id ; Y = bonk sprite slot ; S = Collected @@ -498,15 +498,18 @@ OWBonkGoodBeeDrop: LDA.b #$EB : STA.l $7FFE00 JSL Sprite_SpawnDynamically+15 ; +15 to skip finding a new slot, use existing sprite + TYX : STZ.w $0F20,X ; layer the sprite is on + ; affects the rate the item moves in the Y/X direction - LDA.b #$00 : STA.w $0D40,Y + STZ.w $0D40,X LDA.b #$0A : STA.w $0D50,Y - LDA.b #$20 : STA.w $0F80,Y ; amount of force (gives height to the arch) + LDA.b #$1A : STA.w $0F80,Y ; amount of force (gives height to the arch) LDA.b #$FF : STA.w $0B58,Y ; stun timer LDA.b #$30 : STA.w $0F10,Y ; aux delay timer 4 ?? dunno what that means - LDA.b #$00 : STA.w $0F20,Y ; layer the sprite is on + ; sets the tile type that is underneath the sprite, water + LDA.b #$09 : STA.l $7FF9C2,X ; TODO: Figure out how to get the game to set this ; sets OW event bitmask flag, uses free RAM LDA.l OWBonkPrizeTable[42].flag : STA.w $0ED0,Y @@ -625,7 +628,7 @@ OWBonkDrops: LDA.b #$00 : STA.w $0D40,Y LDA.b #$0A : STA.w $0D50,Y - LDA.b #$20 : STA.w $0F80,Y ; amount of force (gives height to the arch) + LDA.b #$1A : STA.w $0F80,Y ; amount of force (gives height to the arch) LDA.b #$FF : STA.w $0B58,Y ; stun timer LDA.b #$30 : STA.w $0F10,Y ; aux delay timer 4 ?? dunno what that means diff --git a/data/base2current.bps b/data/base2current.bps index 6c525c078e1b9a39e6135af37015e0a77dc69c9c..9ddd927b64f3e3b5fba5e9fdd002f1b1f72f4d04 100644 GIT binary patch delta 8862 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 delta 8802 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