From 151098ba222a4d7cc8a131907f8a74b44ea2fb6b Mon Sep 17 00:00:00 2001 From: Karkat Date: Sat, 12 May 2018 23:17:26 -0400 Subject: [PATCH] let's dev 5/12/18 fixed zore ledge heart graphic bug changed seed hash to be manually settable added more seizure safety --- LTTP_RND_GeneralBugfixes.asm | 5 ++- accessability.asm | 20 ++++++++++-- catfish.asm | 2 ++ hashalphabet.asm | 24 ++------------- hashalphabethooks.asm | 4 +-- hooks.asm | 5 ++- medallions.asm | 10 +++--- seedtag.asm | 60 ++++++++++++++++++------------------ tables.asm | 31 +++++-------------- utilities.asm | 59 ++++++++++------------------------- 10 files changed, 92 insertions(+), 128 deletions(-) diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index 98327d4..c4da614 100644 --- a/LTTP_RND_GeneralBugfixes.asm +++ b/LTTP_RND_GeneralBugfixes.asm @@ -26,7 +26,7 @@ org $3FFFFF ; <- 1FFFFF db #$00 ; expand file to 2mb org $1FFFF8 ; <- FFFF8 timestamp rom -db #$20, #$18, #$05, #$04 ; year/month/day +db #$20, #$18, #$05, #$12 ; year/month/day ;================================================================================ @@ -552,6 +552,9 @@ Sprite_NullifyHookshotDrag: org $1CFD69 Main_ShowTextMessage: +org $1DE9B6 +Filter_MajorWhitenMain: + org $1DF65D Sprite_SpawnDynamically: diff --git a/accessability.asm b/accessability.asm index c934c74..46dba25 100644 --- a/accessability.asm +++ b/accessability.asm @@ -10,11 +10,27 @@ FlipGreenPendant: LDA $0C : STA $0803, X RTL ;================================================================================ +!EPILEPSY_TIMER = "$7F5041" SetEtherFlicker: LDA.l Seizure_Safety : BNE + LDA $031D : CMP.b #$0B : RTL - + : CMP.b #$01 : BNE + - REP #$02 : RTL + + + LDA !EPILEPSY_TIMER : INC : STA !EPILEPSY_TIMER + + LDA.l Seizure_Safety : CMP !EPILEPSY_TIMER : BNE +++ + LDA.b #$00 : STA !EPILEPSY_TIMER : BRA ++ + +++ + LSR : CMP !EPILEPSY_TIMER : !BLT ++ + SEP #$02 : RTL + ++ + REP #$02 + RTL +;================================================================================ +SetAttractMaidenFlicker: + LDA.l Seizure_Safety : BNE + + JSL.l Filter_MajorWhitenMain : LDA $5F : RTL + + + LDA #$00 +RTL ;================================================================================ \ No newline at end of file diff --git a/catfish.asm b/catfish.asm index af54b0a..908a31f 100644 --- a/catfish.asm +++ b/catfish.asm @@ -1,6 +1,7 @@ ;================================================================================ ; Randomize Catfish ;-------------------------------------------------------------------------------- +!HEART_REDRAW = "$7F5000" LoadCatfishItemGFX: LDA.l $1DE185 ; location randomizer writes catfish item to JSL.l PrepDynamicTile @@ -10,6 +11,7 @@ DrawThrownItem: LDA $8A : CMP.b #$81 : BNE .catfish .zora + LDA.b #$01 : STA !HEART_REDRAW LDA.l $1DE1C3 ; location randomizer writes zora item to BRA .draw diff --git a/hashalphabet.asm b/hashalphabet.asm index b3d38c7..0eb9be5 100644 --- a/hashalphabet.asm +++ b/hashalphabet.asm @@ -6,28 +6,8 @@ PrepHashAlphabet: LDA.b #$06 : STA $14 ; thing we wrote over RTL + - - LDA $00 : PHA - LDA $01 : PHA - LDA $02 : PHA - LDA $03 : PHA - LDA $04 : PHA - LDA $05 : PHA - LDA $06 : PHA - LDA $07 : PHA - - JSL.l NameHash JSL.l LoadAlphabetTiles JSL.l LoadAlphabetTilemap - - PLA : STA $07 - PLA : STA $06 - PLA : STA $05 - PLA : STA $04 - PLA : STA $03 - PLA : STA $02 - PLA : STA $01 - PLA : STA $00 RTL ;-------------------------------------------------------------------------------- @@ -92,7 +72,7 @@ LoadAlphabetTiles: LDA $2100 : PHA : LDA.b #$80 : STA $2100 ; save screen state & turn screen off LDX.b #$00 : - - LDA $00, X + LDA.l SeedHash, X REP #$20 ; set 16-bit accumulator AND.w #$001F ; mask to alphabet of 32 JSL.l GetAlphabetTileAddr : STA $4302 ; set bus A source address to SRAM @@ -172,7 +152,7 @@ LoadAlphabetTilemap: LDY.b #00 LDX.b #$00 : - - PHX : TYX : LDA $00, X : PLX + PHX : TYX : LDA.l SeedHash, X : PLX AND.b #$1F ; mask to alphabet of 32 PHX : TAX : JSL.l GetAlphabetPalette : PLX ORA.b #$01 diff --git a/hashalphabethooks.asm b/hashalphabethooks.asm index 40cb024..bd4c5e2 100644 --- a/hashalphabethooks.asm +++ b/hashalphabethooks.asm @@ -31,14 +31,14 @@ dw $1D5C, !FSTILE_SPACE, $1D78, !FSTILE_SPACE, $1D79, !FSTILE_SPACE, $1D92, !FST org $0CDE94 ; <- 65E94 FileSelect_KillFile_Top: db $63, $25, $00, $19 -dw $0D4D, !FSTILE_SPACE, $0D4E, !FSTILE_SPACE, $0D65, !FSTILE_SPACE, $0D4E, !FSTILE_SPACE, $0D6D, !FSTILE_SPACE, $0D4E, !FSTILE_SPACE, !FSTILE_SPACE +dw $1D4D, !FSTILE_SPACE, $1D4E, !FSTILE_SPACE, $1D65, !FSTILE_SPACE, $1D4E, !FSTILE_SPACE, $1D6D, !FSTILE_SPACE, $1D4E, !FSTILE_SPACE, !FSTILE_SPACE ;dw $1D64, !FSTILE_SPACE, $1D62, !FSTILE_SPACE, $1D65, !FSTILE_SPACE, $1D65, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE ;dw $1D64, !FSTILE_SPACE, $1D62, !FSTILE_SPACE, $1D65, !FSTILE_SPACE, $1D65, !FSTILE_SPACE, $1D04, !FSTILE_SPACE, $1D89, !FSTILE_SPACE, $1D07 ;-------------------------------------------------------------------------------- ;org $0CDEB2 ; <- 65EB2 ;FileSelect_KillFile_Bottom: db $63, $45, $00, $19 -dw $0D5D, !FSTILE_SPACE, $0D5E, !FSTILE_SPACE, $0D75, !FSTILE_SPACE, $0D5E, !FSTILE_SPACE, $0D7D, !FSTILE_SPACE, $0D5E, !FSTILE_SPACE, !FSTILE_SPACE +dw $1D5D, !FSTILE_SPACE, $1D5E, !FSTILE_SPACE, $1D75, !FSTILE_SPACE, $1D5E, !FSTILE_SPACE, $1D7D, !FSTILE_SPACE, $1D5E, !FSTILE_SPACE, !FSTILE_SPACE ;dw $1D74, !FSTILE_SPACE, $1D72, !FSTILE_SPACE, $1D75, !FSTILE_SPACE, $1D75, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE, !FSTILE_SPACE ;dw $1D74, !FSTILE_SPACE, $1D72, !FSTILE_SPACE, $1D75, !FSTILE_SPACE, $1D75, !FSTILE_SPACE, $1D14, !FSTILE_SPACE, $1D99, !FSTILE_SPACE, $1D17 ;-------------------------------------------------------------------------------- diff --git a/hooks.asm b/hooks.asm index 4d6b7ee..eb2b7cc 100644 --- a/hooks.asm +++ b/hooks.asm @@ -396,9 +396,12 @@ dw $0000, $0002, $0004, $0032, $0004, $0006, $0030 ;JSL FlipGreenPendant ;NOP #6 ;-------------------------------------------------------------------------------- -org $08AAE1 ; <- 42AE1 - ancilla_ether_spell.asm : 22 (LDA $031D : CMP.b #$0B) +org $08AAE1 ; <- 42AE1 - ancilla_ether_spell.asm : 28 (LDA $031D : CMP.b #$0B) JSL.l SetEtherFlicker : NOP ;-------------------------------------------------------------------------------- +org $0CF37B ; <- 6737B - Bank0C.asm : 5055 (JSL Filter_MajorWhitenMain) +JSL.l SetAttractMaidenFlicker : NOP #2 +;-------------------------------------------------------------------------------- ;================================================================================ ; Ice Floor Toggle diff --git a/medallions.asm b/medallions.asm index f25b35d..56ed04f 100644 --- a/medallions.asm +++ b/medallions.asm @@ -52,11 +52,13 @@ MedallionTrigger_Bombos: PLA RTL ;-------------------------------------------------------------------------------- +!EPILEPSY_TIMER = "$7F5041" MedallionTrigger_Ether: PHA - LDA.l MireRequiredMedallion : CMP #$01 : BNE + + LDA.b #$00 : STA !EPILEPSY_TIMER + LDA.l MireRequiredMedallion : CMP.b #$01 : BNE + JSL.l TryOpenMire - + LDA.l TRockRequiredMedallion : CMP #$01 : BNE + + + LDA.l TRockRequiredMedallion : CMP.b #$01 : BNE + JSL.l TryOpenTRock + PLA @@ -64,9 +66,9 @@ RTL ;-------------------------------------------------------------------------------- MedallionTrigger_Quake: PHA - LDA.l MireRequiredMedallion : CMP #$02 : BNE + + LDA.l MireRequiredMedallion : CMP.b #$02 : BNE + JSL.l TryOpenMire - + LDA.l TRockRequiredMedallion : CMP #$02 : BNE + + + LDA.l TRockRequiredMedallion : CMP.b #$02 : BNE + JSL.l TryOpenTRock + PLA diff --git a/seedtag.asm b/seedtag.asm index bfebb57..7da5b80 100644 --- a/seedtag.asm +++ b/seedtag.asm @@ -1,34 +1,34 @@ ;-------------------------------------------------------------------------------- ; GenerateSeedTags ;-------------------------------------------------------------------------------- -GenerateSeedTags: - PHA : PHX : PHY : PHP - REP #$20 ; set 16-bit accumulator - LDA $00 : PHA - LDA $02 : PHA - LDA $04 : PHA - LDA $06 : PHA - JSL.l NameHash ; get the titlecard hashes - - LDA $00 : AND.w #$1F1F : STA $00 ; keep it under 0x20 or we'll run out of items - LDA $02 : AND.w #$1F1F : STA $02 - LDA $04 : AND.w #$1F1F : STA $04 - LDA $06 : AND.w #$1F1F : STA $06 - - REP #$30 ; set 8-bit accumulator & index registers - - LDY #$08 - - - - - DEY : BNE - - - - REP #20 ; set 16-bit accumulator - PLA : STA $06 - PLA : STA $04 - PLA : STA $02 - PLA : STA $00 - PLP : PLY : PLX : PLA -RTL +;GenerateSeedTags: +; PHA : PHX : PHY : PHP +; REP #$20 ; set 16-bit accumulator +; LDA $00 : PHA +; LDA $02 : PHA +; LDA $04 : PHA +; LDA $06 : PHA +; JSL.l NameHash ; get the titlecard hashes +; +; LDA $00 : AND.w #$1F1F : STA $00 ; keep it under 0x20 or we'll run out of items +; LDA $02 : AND.w #$1F1F : STA $02 +; LDA $04 : AND.w #$1F1F : STA $04 +; LDA $06 : AND.w #$1F1F : STA $06 +; +; REP #$30 ; set 8-bit accumulator & index registers +; +; LDY #$08 +; - +; +; +; DEY : BNE - +; +; +; REP #20 ; set 16-bit accumulator +; PLA : STA $06 +; PLA : STA $04 +; PLA : STA $02 +; PLA : STA $00 +; PLP : PLY : PLX : PLA +;RTL ;-------------------------------------------------------------------------------- \ No newline at end of file diff --git a/tables.asm b/tables.asm index 30dcdaf..3a23b0b 100644 --- a/tables.asm +++ b/tables.asm @@ -813,7 +813,7 @@ db #$01 ; #$00 = Original Behavior - #$01 - Restrict to Bottles (Default) ;================================================================================ org $30817F ; PC 0x18017F Seizure_Safety: -db #$00 ; #$00 = Off (Default) - #$01 = Limit Certain Effects +db #$00 ; #$00 = Off (Default) - #$xx = Limit Certain Effects ;================================================================================ ;---- --hb ;h - Hookshot @@ -913,7 +913,11 @@ db #$00 ; #$00 = Off (default) - #$01 = On TournamentSeedInverse: db #$01 ; #$00 = On - #$01 = Off (Default) ;-------------------------------------------------------------------------------- -; 0x180215 - 0x18021F (unused) +org $308215 ; PC 0x180215 +SeedHash: +db $00, $01, $02, $03, $04 +;-------------------------------------------------------------------------------- +; 0x18021A - 0x18021F (unused) ;================================================================================ ; $308220 (0x180220) - $30823F (0x18023F) ; Plandomizer Author Name (ASCII) - Leave unused chars as 0 @@ -1449,7 +1453,7 @@ dw #9999 ; Rupee Limit ; $7F503E - Stats Item Total ; $7F503F - Bonk Repeat ; $7F5040 - Free Item Dialog Temporary -; $7F5041 - Unused +; $7F5041 - Epilepsy Safety Timer ; $7F5042 - Tile Upload Offset Override (Low) ; $7F5043 - Tile Upload Offset Override (High) ; $7F5044 - $7F5046 - NMI Auxiliary Function @@ -1625,24 +1629,5 @@ db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF db $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ;-------------------------------------------------------------------------------- -; 0x185140 - 187EFF (unused) -;-------------------------------------------------------------------------------- -org $30FF00 ; PC 0x187F00 - PC 0x187FFF -NameHashTable: ; change this for each new version - MOVE THIS TO BANK $30 -db $57, $41, $D6, $7A, $E0, $10, $8A, $97, $A2, $89, $82, $45, $46, $1C, $DF, $F7 -db $55, $0F, $1D, $56, $AC, $29, $DC, $D1, $25, $2A, $C5, $92, $42, $B7, $BE, $50 -db $64, $62, $31, $E8, $49, $63, $40, $5F, $C9, $47, $F6, $0B, $FA, $FC, $E4, $F0 -db $E6, $8F, $6D, $B1, $68, $A4, $D3, $0E, $54, $5D, $6B, $CF, $20, $69, $33, $07 -db $2C, $4D, $32, $77, $C1, $95, $7B, $DE, $66, $8C, $35, $84, $86, $7C, $44, $1A -db $3E, $15, $D4, $0C, $B5, $90, $4C, $B2, $26, $1E, $38, $C0, $76, $9C, $2B, $7F -db $5E, $D5, $75, $B6, $E3, $7D, $8D, $72, $3A, $CB, $6F, $5B, $AD, $BD, $F1, $BB -db $05, $9A, $F4, $03, $02, $FF, $DA, $4F, $93, $B3, $14, $EC, $EE, $D7, $F9, $96 -db $A7, $13, $CA, $BF, $88, $19, $A3, $78, $24, $87, $3C, $9E, $B4, $27, $C2, $AF -db $80, $C4, $C8, $6C, $E9, $94, $F8, $8B, $3D, $34, $A6, $53, $17, $22, $F3, $A5 -db $1B, $2E, $06, $39, $D2, $43, $73, $12, $09, $58, $30, $5C, $99, $98, $9F, $ED -db $37, $67, $EA, $BA, $E7, $D9, $81, $08, $7E, $BC, $70, $5A, $51, $C3, $B9, $61 -db $36, $4B, $A8, $01, $65, $3B, $EF, $59, $04, $18, $79, $0D, $DD, $CE, $CC, $AE -db $83, $21, $EB, $6E, $0A, $71, $B0, $11, $85, $C7, $A1, $FD, $E5, $16, $48, $FB -db $F2, $23, $2F, $28, $9B, $AA, $AB, $D0, $6A, $9D, $C6, $2D, $00, $FE, $E1, $3F -db $A0, $4A, $B8, $4E, $74, $1F, $8E, $A9, $F5, $CD, $60, $91, $DB, $D8, $52, $E2 +; 0x185140 - 187FFF (unused) ;-------------------------------------------------------------------------------- diff --git a/utilities.asm b/utilities.asm index e48f3a7..5b2c70e 100644 --- a/utilities.asm +++ b/utilities.asm @@ -566,56 +566,29 @@ HexToDec: STA $7F5003 : STA $7F5005 : STA $7F5006 ; clear digit storage PLA - - CMP.w #10000 : !BLT + - PHA : SEP #$20 : LDA $7F5003 : INC : STA $7F5003 : REP #$20 : PLA - !SUB.w #10000 : BRA - + CMP.w #10000 : !BLT + + PHA : SEP #$20 : LDA $7F5003 : INC : STA $7F5003 : REP #$20 : PLA + !SUB.w #10000 : BRA - + - - CMP.w #1000 : !BLT + - PHA : SEP #$20 : LDA $7F5004 : INC : STA $7F5004 : REP #$20 : PLA - !SUB.w #1000 : BRA - + CMP.w #1000 : !BLT + + PHA : SEP #$20 : LDA $7F5004 : INC : STA $7F5004 : REP #$20 : PLA + !SUB.w #1000 : BRA - + - - CMP.w #100 : !BLT + - PHA : SEP #$20 : LDA $7F5005 : INC : STA $7F5005 : REP #$20 : PLA - !SUB.w #100 : BRA - + CMP.w #100 : !BLT + + PHA : SEP #$20 : LDA $7F5005 : INC : STA $7F5005 : REP #$20 : PLA + !SUB.w #100 : BRA - + - - CMP.w #10 : !BLT + - PHA : SEP #$20 : LDA $7F5006 : INC : STA $7F5006 : REP #$20 : PLA - !SUB.w #10 : BRA - + CMP.w #10 : !BLT + + PHA : SEP #$20 : LDA $7F5006 : INC : STA $7F5006 : REP #$20 : PLA + !SUB.w #10 : BRA - + - - CMP.w #1 : !BLT + - PHA : SEP #$20 : LDA $7F5007 : INC : STA $7F5007 : REP #$20 : PLA - !SUB.w #1 : BRA - + CMP.w #1 : !BLT + + PHA : SEP #$20 : LDA $7F5007 : INC : STA $7F5007 : REP #$20 : PLA + !SUB.w #1 : BRA - + PLA RTL ;-------------------------------------------------------------------------------- -;-------------------------------------------------------------------------------- -; NameHash -; out: -; $00 - $07 - 64-bit Seed Hash -;-------------------------------------------------------------------------------- -NameHash: - PHP - SEP #$30 ; set 8-bit accumulator & index registers - LDY #$00; ; for (j = 0; j < 8; ++j) { - - - CPY #$08 : !BGE + - LDA $00FFC0 : PHY : !ADD 1,s : STA 1,s : PLX : LDA.l NameHashTable, X ; h = T[(x[0] + j) % 256]; - PHY - LDY #$01 ; for (i = 1; i < len; ++i) { - -- - CPY #21 : !BGE ++ ; 21 decimal - TYX : EOR $00FFC0, X : TAX : LDA.l NameHashTable, X ; h = T[h ^ x[i]]; - INY - BRA -- - ++ ; } - PLY : TYX - STA $00, X - INY - BRA - - + ; } - PLP -RTL -;-------------------------------------------------------------------------------- + ;================================================================================ \ No newline at end of file