From 6d72a1a9c2ca02033247b52b222813fe0b00c087 Mon Sep 17 00:00:00 2001 From: cassidoxa Date: Wed, 12 Jan 2022 20:31:27 -0500 Subject: [PATCH 1/6] Fix reading starting area offset to prevent indexing out of bounds --- entrances.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/entrances.asm b/entrances.asm index 35db47e..9d6f59b 100644 --- a/entrances.asm +++ b/entrances.asm @@ -80,8 +80,8 @@ AllowStartFromSingleEntranceCave: LDA $7EF3C8 : AND.w #$00FF ; What we wrote over PHA TAX - LDA.l StartingAreaExitOffset, X + AND.w #$00FF BNE + JMP .done From 1d378211ba67b7f2fe30c9abd07901ba27370b2f Mon Sep 17 00:00:00 2001 From: cassidoxa Date: Thu, 13 Jan 2022 15:51:50 -0500 Subject: [PATCH 2/6] Initialize overworld door frame data when starting in single-exit cave --- entrances.asm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/entrances.asm b/entrances.asm index 9d6f59b..7f993dc 100644 --- a/entrances.asm +++ b/entrances.asm @@ -124,10 +124,10 @@ AllowStartFromSingleEntranceCave: STZ $0699 ;zero out door overlays in case starting overworld door is not set SEP #$20 ; set 8-bit accumulator - LDX $00 + LDA $7EF3C8 : TAX LDA.l StartingAreaOverworldDoor, X : STA.l $7F5099 ;Load overworld door - REP #$20 ; reset 16-bit accumulator + JSL.l CacheDoorFrameData .done PLA From b392eb7554a5128d97b4020731ee5cebc11f9771 Mon Sep 17 00:00:00 2001 From: Thomas Backmark Date: Tue, 18 Jan 2022 11:10:14 +0100 Subject: [PATCH 3/6] Improved text renderer with lowercase letters --- LTTP_RND_GeneralBugfixes.asm | 7 + hooks.asm | 31 +++ newfont.bin | Bin 0 -> 4096 bytes newfont_inverted.bin | Bin 0 -> 4096 bytes textrenderer.asm | 433 +++++++++++++++++++++++++++++++++++ 5 files changed, 471 insertions(+) create mode 100644 newfont.bin create mode 100644 newfont_inverted.bin create mode 100644 textrenderer.asm diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index 20030f6..5ec7c31 100644 --- a/LTTP_RND_GeneralBugfixes.asm +++ b/LTTP_RND_GeneralBugfixes.asm @@ -218,6 +218,7 @@ incsrc darkroomitems.asm incsrc fastcredits.asm incsrc msu.asm incsrc dungeonmap.asm +incsrc textrenderer.asm warnpc $A58000 ;org $228000 ; contrib area @@ -305,6 +306,12 @@ org $339600 BossMapIconGFX: incbin bossicons.4bpp +org $339C00 +NewFont: +incbin newfont.bin +NewFontInverted: +incbin newfont_inverted.bin + org $328000 Extra_Text_Table: incsrc itemtext.asm diff --git a/hooks.asm b/hooks.asm index f0534dd..e2af74e 100755 --- a/hooks.asm +++ b/hooks.asm @@ -2742,3 +2742,34 @@ org $01C4B8 : JSL FixJingleGlitch org $01C536 : JSL FixJingleGlitch org $01C592 : JSL FixJingleGlitch org $01C65F : JSL FixJingleGlitch + +;================================================================================ +; Text Renderer +;-------------------------------------------------------------------------------- +org $0EF51B + JML RenderCharExtended +org $0EF520 + RenderCharExtended_returnOriginal: +org $0EF567 + RenderCharExtended_returnUncompressed: + +org $0EF356 + JSL RenderCharLookupWidth +org $0EF3BA + JSL RenderCharLookupWidth +org $0EF48E + JML RenderCharLookupWidthDraw +org $0EF499 + RenderCharLookupWidthDraw_return: + +org $0EF6AA + JML RenderCharToMapExtended +org $0EF6C2 + RenderCharToMapExtended_return: + +org $0EFA50 + JSL RenderCharSetColorExtended +org $0EEE5D + JSL RenderCharSetColorExtended_init +org $0EF285 + JSL RenderCharSetColorExtended_close : NOP diff --git a/newfont.bin b/newfont.bin new file mode 100644 index 0000000000000000000000000000000000000000..ee9a4526b77b0afe5f89f15c2b0331d6649bf6c9 GIT binary patch literal 4096 zcmeHKU1$_n6u!yoZjDP;Y^4*}?ugwgNGQ`Jn3asXMnZ@Znm$wzpT=$2ln`~*B5S*y zag(qp2*#v=1Wne5LMf&6p?#d1k8CyUXSbTtAbabP2qaF z*rTSTs523V#5zAu#H2qpGC7jZAg&19ized7VlH|1WKN$Ro*qWb>z_S&_9S9=f7;LM zUru+=QUzVt^RcWA_>xx8NTa0cfL(2pk7nnclN7X^j`oc4bQQn_?ZOeVS%@2e>-QtC zqf$!RMA@Q#Sx^V0dpR?o}l z1C@V`k5^vsPO#?g{NodOS0VA@K~%$bTQEIG@Hd&m}Jo&LwZ`!u+`Tr+AmtQ&01OyK%no zw+gsEzUTu^tY?&y*EzkU4!;t2>{HV1)}LCh^j_(`518wo*V_tqgHpe8OW}GN&5mcz zq$jk?yNjStRRVw1jEv}0`V^-*;5(uBHyqfUUez+h{_Xp>qkpN{2hDPgEd%NjMATpN z8peX9TqTI9KTr7=;?I{S#G%LloTpD&Qe1mOuzvmesuR_$=!p$F^$-yoA@^~yB~1C} ze#cJ4^+=O4;jWKeP5n>bsLNfs>z`M?;&_2sr2cgCN&P*WDy%X;mujh@qd7|drZ(4PX9&wWOf0Y|X6eVqyUoSAnIy`9V4H1L+Wpc=eG55C=qyf6Hq< zU45NbdJ&sqJkw~!i&bD298^DUJ=F3&NjqL@-4JuM`3HUH_+W?)K`Z3v0&PoULGs zi*@a1JB&BdvqKh2Xh<4R`rG&JK&d7C=5lbw-*VT>_gF>uJbZm3xI1ye$tUskC2fs) zNyGTB@dbVB{5$=d<(<&aSH-8&pAgX{rO`tEkj18^O-)!6Pa4-Y;(k~U{7xc#FnTb0 zCz{jmM164kL>fBQYx1$?-y#d~BHUIp+PQQd7{O;zy`haeLP8F7g|^8F<`iCDn$=+JJL9zI-rqG&TmwZ{%#u z|Aa<V}8@Sm@1tyzZsv!lEYn2VL8Hx zI39fa>DvZhH*YJ)omjK2E+{sH@w{G)(v&A-hWN4V>we574(>(d+!@V#ACmk_{kncp vf2`kEb!Uy)6jvtQub3(P4}kfa*JJ*u@Bey?|F`gq9qaGKcoBjBGXj4DxZLNW literal 0 HcmV?d00001 diff --git a/newfont_inverted.bin b/newfont_inverted.bin new file mode 100644 index 0000000000000000000000000000000000000000..13323eecf17ef1a9fb66dbf4e6badf25573c098c GIT binary patch literal 4096 zcmeHKU1$_n6u#Nj-5Q6C*h(j`-4SamNGQ`Jn3b#P!JMc3db)o9s(X5Rj>_xF zJyKfQij&e}WSu+Nc_=@2X>2-MptMPKp}r|fKS>o&ozwH9Gov%Ue0uKGxl`vT?dj+G z0`}?oz+F}e@h#6y5Qh-$idJG0$wi_Q;!87rZd{wEw<+m)g8N+>?`FdO($R}-PtOfv zfUE2DF{|O5PVT|;sohoF0s3-;WDD8C*!0*XT*31_%elVMnN-o8$k+2nFS;6$_V3H? zpPS(K<@ftH{{;CEV=una{Xo3xo);)u&%CtiIE8ko6P+>g(T?N9@C0yuQYj zWokK(hkG_=5uWIu&+>~|0pI&9-e@_Wj{xm##63U&um0=h-MYfx+InZ_`}%6{&u{<{ z${T)s*wX6QC61qr_WeimOIgl=t=?`zC<+8AMYBZ5d|n6jkLbD zrMs_d0BQz@m7TOh%a3BRD7D&|L0i$Oh465^FwF{1Q=G9G>-2F zzIf-WL!TX)J~BNr+q*z|H$3=cbn4hbuPIt41_%<|ua!6re6$-dz9Y!TwFWvG zj)|(Qsr~8?#u?)bsgx6@U`6Z??f0A}rwLHPcw2w#xU6;et^c6Qg8h|pa&|cJeYWtp zc?sW-DBzt+)QAz)<$K5{7O{z~IThU+VgAQ2i?3H-?t9!SbVzAG9u$EpL-YR6~UqkeC(A zT(Tyug1u}zo)qXuG}*Ct$KH-XWk?zk6?`W#68BmmHjW*_eo)V2=i^rvU^TTHF&pC# zxIyi9@q=?aq;1k0WEb!`x2%*mLne~YT0WmL{n)*YO+)33CvRdu=-Q1QKsxbb)RHw> z6P2h$L=ukuxzzEv*=#WdL<8&)YDbr`9jum(s7fHJM9w+a9ow-S(#tD-#{f?ot9jOsGd}I>16) + sta $02 + pla : sta $03 + lda #(NewFont>>16) + sta $05 + jml RenderCharToMapExtended_return + +RenderCharLookupWidthDraw: + rep #$30 + phx : lda $09 : and #$fffe : tax + lda.l FontProperties, x + bmi .thin +.wide + plx : sep #$30 + lda $09 : and #$03 : tay + lda $fd7c, y : tay + jml RenderCharLookupWidthDraw_return +.thin + xba : and #$004f : bne .vwf + plx : sep #$30 + lda $09 : and #$03 : phx : tax + lda.l RenderCharThinTable, x : tay : plx + jml RenderCharLookupWidthDraw_return +.vwf + and #$000f : tay + plx : sep #$30 + lda $09 : and #$03 : phx : tax + cpx #$00 : bne + + tya : bra ++ ++ lda.l RenderCharThinTable, x +++ tay : plx : jml RenderCharLookupWidthDraw_return + + +RenderCharLookupWidth: + phx : lda $09 : and #$fffe : tax + lda.l FontProperties, x + bmi .thin +.wide + plx : lda $fd7c, x : clc + rtl +.thin + xba : and #$004f : bne .vwf + plx : lda.l RenderCharThinTable, x : clc + rtl +.vwf + and #$000f + plx : cpx #$0000 : beq + : lda.l RenderCharThinTable, x ++ clc : rtl + +RenderCharThinTable: + db $08, $00, $ff + +RenderCharExtended: + pha + asl : asl : tax + lda.l FontProperties, x + and #$00ff + bne .renderUncompressed + +.renderOriginal + pla : asl : tax : asl : adc $0e + jml RenderCharExtended_returnOriginal + +.renderUncompressed + pla : phb : pea.w NewFont>>8 : plb : plb + lda.l FontProperties+$2, x + tay + + lda !INVERTED_TEMP + bne .inverted + + ldx #$00000 +- + lda.w NewFont, y + sta.l $7EBFC0, x + lda.w NewFont+$100, y + sta.l $7EBFC0+$16, x + inx #2 + iny #2 + cpx #$0010 + bne - + bra .end + +.inverted + ldx #$00000 +- + lda.w NewFontInverted, y + sta.l $7EBFC0, x + lda.w NewFontInverted+$100, y + sta.l $7EBFC0+$16, x + inx #2 + iny #2 + cpx #$0010 + bne - + +.end + plb + jml RenderCharExtended_returnUncompressed + +; Table of font properties and tilemap offset +; Properties are these for now: +; tv--wwww -------u +; t = thin spacing (0 px instead of 3 px) +; u = uncompressed character loaded from offset +; v = use variable width rendering for this character (thin spacing must be set as well) +; w = character width for VWF rendering + +FontProperties: +; props, offset + dw $0000, $0000 ; 00 + dw $0000, $0000 ; 01 + dw $0000, $0000 ; 02 + dw $0000, $0000 ; 03 + dw $0000, $0000 ; 04 + dw $0000, $0000 ; 05 + dw $0000, $0000 ; 06 + dw $0000, $0000 ; 07 + dw $0000, $0000 ; 08 + dw $0000, $0000 ; 09 + dw $0000, $0000 ; 0A + dw $0000, $0000 ; 0B + dw $0000, $0000 ; 0C + dw $0000, $0000 ; 0D + dw $0000, $0000 ; 0E + dw $0000, $0000 ; 0F + + dw $0000, $0000 ; 10 + dw $0000, $0000 ; 11 + dw $0000, $0000 ; 12 + dw $0000, $0000 ; 13 + dw $0000, $0000 ; 14 + dw $0000, $0000 ; 15 + dw $0000, $0000 ; 16 + dw $0000, $0000 ; 17 + dw $0000, $0000 ; 18 + dw $0000, $0000 ; 19 + dw $0000, $0000 ; 1A + dw $0000, $0000 ; 1B + dw $0000, $0000 ; 1C + dw $0000, $0000 ; 1D + dw $0000, $0000 ; 1E + dw $0000, $0000 ; 1F + + dw $0000, $0000 ; 20 + dw $0000, $0000 ; 21 + dw $0000, $0000 ; 22 + dw $0000, $0000 ; 23 + dw $0000, $0000 ; 24 + dw $0000, $0000 ; 25 + dw $0000, $0000 ; 26 + dw $0000, $0000 ; 27 + dw $0000, $0000 ; 28 + dw $0000, $0000 ; 29 + dw $0000, $0000 ; 2A + dw $0000, $0000 ; 2B + dw $0000, $0000 ; 2C + dw $0000, $0000 ; 2D + dw $0000, $0000 ; 2E + dw $0000, $0000 ; 2F + + dw $8001, $0400 ; 30 ; a + dw $8001, $0410 ; 31 + dw $8001, $0420 ; 32 + dw $8001, $0430 ; 33 + dw $8001, $0440 ; 34 + dw $8001, $0450 ; 35 + dw $8001, $0460 ; 36 + dw $8001, $0470 ; 37 + dw $8001, $0480 ; 38 + dw $8001, $0490 ; 39 + dw $8001, $04A0 ; 3A + dw $8001, $04B0 ; 3B + dw $8001, $04C0 ; 3C + dw $8001, $04D0 ; 3D + dw $8001, $04E0 ; 3E + dw $8001, $04F0 ; 3F + + dw $8001, $0600 ; 40 + dw $8001, $0610 ; 41 + dw $8001, $0620 ; 42 + dw $8001, $0630 ; 43 + dw $8001, $0640 ; 44 + dw $8001, $0650 ; 45 + dw $8001, $0660 ; 46 + dw $8001, $0670 ; 47 + dw $8001, $0680 ; 48 + dw $8001, $0690 ; 49 ; z + dw $8001, $06F0 ; 4A ; : + dw $8001, $0A90 ; 4B ; @ (thin) + dw $8001, $0AA0 ; 4C ; # (thin) + dw $0000, $0000 ; 4D + dw $0000, $0000 ; 4E + dw $8001, $0EF0 ; 4F ; + + dw $0000, $0000 ; 50 + dw $0000, $0000 ; 51 + dw $0000, $0000 ; 52 + dw $0000, $0000 ; 53 + dw $0000, $0000 ; 54 + dw $0000, $0000 ; 55 + dw $0000, $0000 ; 56 + dw $0000, $0000 ; 57 + dw $0000, $0000 ; 58 + dw $0000, $0000 ; 59 + dw $0000, $0000 ; 5A + dw $0000, $0000 ; 5B + dw $0000, $0000 ; 5C + dw $0000, $0000 ; 5D + dw $0000, $0000 ; 5E + dw $0000, $0000 ; 5F + + dw $0000, $0000 ; 60 + dw $0000, $0000 ; 61 + dw $0000, $0000 ; 62 + dw $0000, $0000 ; 63 + dw $0000, $0000 ; 64 + dw $0000, $0000 ; 65 + dw $0000, $0000 ; 66 + dw $0000, $0000 ; 67 + dw $0000, $0000 ; 68 + dw $0000, $0000 ; 69 + dw $0000, $0000 ; 6A + dw $0000, $0000 ; 6B + dw $0000, $0000 ; 6C + dw $0000, $0000 ; 6D + dw $0000, $0000 ; 6E + dw $0000, $0000 ; 6F + + dw $0000, $0000 ; 70 + dw $0000, $0000 ; 71 + dw $0000, $0000 ; 72 + dw $0000, $0000 ; 73 + dw $0000, $0000 ; 74 + dw $0000, $0000 ; 75 + dw $0000, $0000 ; 76 + dw $0000, $0000 ; 77 + dw $0000, $0000 ; 78 + dw $0000, $0000 ; 79 + dw $0000, $0000 ; 7A + dw $0000, $0000 ; 7B + dw $0000, $0000 ; 7C + dw $0000, $0000 ; 7D + dw $0000, $0000 ; 7E + dw $0000, $0000 ; 7F + + dw $0000, $0000 ; 80 + dw $0000, $0000 ; 81 + dw $0000, $0000 ; 82 + dw $0000, $0000 ; 83 + dw $0000, $0000 ; 84 + dw $0000, $0000 ; 85 + dw $0000, $0000 ; 86 + dw $0000, $0000 ; 87 + dw $0000, $0000 ; 88 + dw $0000, $0000 ; 89 + dw $0000, $0000 ; 8A + dw $0000, $0000 ; 8B + dw $0000, $0000 ; 8C + dw $0000, $0000 ; 8D + dw $0000, $0000 ; 8E + dw $0000, $0000 ; 8F + + dw $0000, $0000 ; 90 + dw $0000, $0000 ; 91 + dw $0000, $0000 ; 92 + dw $0000, $0000 ; 93 + dw $0000, $0000 ; 94 + dw $0000, $0000 ; 95 + dw $0000, $0000 ; 96 + dw $0000, $0000 ; 97 + dw $0000, $0000 ; 98 + dw $0000, $0000 ; 99 + dw $0000, $0000 ; 9A + dw $0000, $0000 ; 9B + dw $0000, $0000 ; 9C + dw $0000, $0000 ; 9D + dw $0000, $0000 ; 9E + dw $0000, $0000 ; 9F + + dw $8001, $0800 ; A0 ; 0 + dw $8001, $0810 ; A1 + dw $8001, $0820 ; A2 + dw $8001, $0830 ; A3 + dw $8001, $0840 ; A4 + dw $8001, $0850 ; A5 + dw $8001, $0860 ; A6 + dw $8001, $0870 ; A7 + dw $8001, $0880 ; A8 + dw $8001, $0890 ; A9 ; 9 + dw $8001, $0000 ; AA ; A + dw $8001, $0010 ; AB + dw $8001, $0020 ; AC + dw $8001, $0030 ; AD + dw $8001, $0040 ; AE + dw $8001, $0050 ; AF + + dw $8001, $0060 ; B0 + dw $8001, $0070 ; B1 + dw $8001, $0080 ; B2 + dw $8001, $0090 ; B3 + dw $8001, $00A0 ; B4 + dw $8001, $00B0 ; B5 + dw $8001, $00C0 ; B6 + dw $8001, $00D0 ; B7 + dw $8001, $00E0 ; B8 + dw $8001, $00F0 ; B9 + dw $8001, $0200 ; BA + dw $8001, $0210 ; BB + dw $8001, $0220 ; BC + dw $8001, $0230 ; BD + dw $8001, $0240 ; BE + dw $8001, $0250 ; BF + + dw $8001, $0260 ; C0 + dw $8001, $0270 ; C1 + dw $8001, $0280 ; C2 + dw $8001, $0290 ; C3 ; Z + dw $8000, $0000 ; C4 + dw $8000, $0000 ; C5 + dw $8001, $06D0 ; C6 ; ? + dw $8001, $06C0 ; C7 ; ! + dw $8001, $02D0 ; C8 ; , + dw $8001, $02B0 ; C9 ; - + dw $8000, $0000 ; CA + dw $8000, $0000 ; CB + dw $8000, $02E0 ; CC ; ... + dw $8001, $02C0 ; CD ; . + dw $8001, $02F0 ; CE ; ~ + dw $8000, $0000 ; CF + + dw $0000, $0000 ; D0 + dw $0000, $0000 ; D1 + dw $8001, $06a0 ; D2 ; Link face left + dw $8001, $06b0 ; D3 ; Link face right + dw $0000, $0000 ; D4 + dw $0000, $0000 ; D5 + dw $0000, $0000 ; D6 + dw $0000, $0000 ; D7 + dw $8001, $06E0 ; D8 ; ' + dw $0000, $0000 ; D9 + dw $0000, $0000 ; DA + dw $0000, $0000 ; DB + dw $0000, $0000 ; DC + dw $0000, $0000 ; DD + dw $0000, $0000 ; DE + dw $0000, $0000 ; DF + + dw $0000, $0000 ; E0 + dw $0000, $0000 ; E1 + dw $0000, $0000 ; E2 + dw $0000, $0000 ; E3 + dw $8001, $02A0 ; E4 ; Cursor |> + dw $0000, $0000 ; E5 + dw $0000, $0000 ; E6 + dw $0000, $0000 ; E7 + dw $0000, $0000 ; E8 + dw $0000, $0000 ; E9 + dw $0000, $0000 ; EA + dw $0000, $0000 ; EB + dw $0000, $0000 ; EC + dw $0000, $0000 ; ED + dw $0000, $0000 ; EE + dw $0000, $0000 ; EF + + dw $0000, $0000 ; F0 + dw $0000, $0000 ; F1 + dw $0000, $0000 ; F2 + dw $0000, $0000 ; F3 + dw $0000, $0000 ; F4 + dw $0000, $0000 ; F5 + dw $0000, $0000 ; F6 + dw $0000, $0000 ; F7 + dw $0000, $0000 ; F8 + dw $0000, $0000 ; F9 + dw $0000, $0000 ; FA + dw $0000, $0000 ; FB + dw $0000, $0000 ; FC + dw $0000, $0000 ; FD + dw $0000, $0000 ; FE + dw $8001, $0EF0 ; FF ; \ No newline at end of file From f3d1e99421fd1a96b7f872f6e28e976af4c57dcc Mon Sep 17 00:00:00 2001 From: Catobat <69204835+Catobat@users.noreply.github.com> Date: Wed, 19 Jan 2022 19:52:01 +0100 Subject: [PATCH 4/6] Fix Tower of Hera boss music bug --- hooks.asm | 4 ++-- music.asm | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/hooks.asm b/hooks.asm index f0534dd..f0fa654 100755 --- a/hooks.asm +++ b/hooks.asm @@ -1858,12 +1858,12 @@ NOP #8 ;JSL.l OnLoadMap ;================================================================================ org $028B8F ; <- 10B8F - Bank02.asm:2236 (LDA $7EF374 : LSR A : BCS BRANCH_BETA) -LDA $7EF00F : BNE + : NOP +JSL CheckHeraBossDefeated : BNE + : NOP LDX.b #$F1 : STX $012C + ;================================================================================ org $029090 ; <- 11090 - Bank02.asm:3099 (LDA $7EF374 : LSR A : BCS BRANCH_GAMMA) -LDA $7EF00F : BNE + : NOP +JSL CheckHeraBossDefeated : BNE + : NOP STX $012C ; DON'T MOVE THIS FORWARD OR MADNESS AWAITS + ;================================================================================ diff --git a/music.asm b/music.asm index 7973a49..f418dde 100644 --- a/music.asm +++ b/music.asm @@ -283,3 +283,10 @@ Overworld_MosaicDarkWorldChecks: .done RTL ;-------------------------------------------------------------------------------- + +;-------------------------------------------------------------------------------- +; Check if the boss in ToH has been defeated (16-bit accumulator) +CheckHeraBossDefeated: + LDA $7EF00F : AND #$00FF + RTL +;-------------------------------------------------------------------------------- From 78148fb4f3cdbc8df8d0c00b2de71f4ac69dcbbb Mon Sep 17 00:00:00 2001 From: Catobat <69204835+Catobat@users.noreply.github.com> Date: Thu, 20 Jan 2022 01:30:21 +0100 Subject: [PATCH 5/6] Fix witch item bug --- LTTP_RND_GeneralBugfixes.asm | 3 ++- bugfixes.asm | 7 +++++++ hooks.asm | 16 ++++++++++++++++ stats.asm | 1 + 4 files changed, 26 insertions(+), 1 deletion(-) diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index 20030f6..1b5b6ea 100644 --- a/LTTP_RND_GeneralBugfixes.asm +++ b/LTTP_RND_GeneralBugfixes.asm @@ -343,7 +343,8 @@ warnpc $B08000 ;$3B reserved for downstream use ;$3F reserved for internal debugging ;================================================================================ -;RAM +;RAM +;$7E021B[0x1]: Used by race game instead of $0ABF to avoid witch item conflict ;$7EC900[0x1F00]: BIGRAM buffer ;$7EF000[0x500]: SRAM mirror First 0x500 bytes of SRAM ;$7F5000[0x800]: Rando's main free ram region diff --git a/bugfixes.asm b/bugfixes.asm index 0b50407..d438755 100644 --- a/bugfixes.asm +++ b/bugfixes.asm @@ -214,3 +214,10 @@ FixJingleGlitch: .exit RTL + +;-------------------------------------------------------------------------------- +SetOverworldTransitionFlags: + LDA #$01 + STA $0ABF ; used by witch + STA $021B ; used by race game + RTL diff --git a/hooks.asm b/hooks.asm index f0fa654..a04d542 100755 --- a/hooks.asm +++ b/hooks.asm @@ -2525,6 +2525,22 @@ JSL ParadoxCaveGfxFix NOP ;================================================================================ +;================================================================================ +; Resolve conflict between race game and witch item +;-------------------------------------------------------------------------------- +; Change race game to use $021B instead of $0ABF for detecting cheating +org $0DCB9D ; STZ.w $0ABF +STZ $021B + +org $0DCBFE ; LDA.w $0ABF +LDA $021B + +org $02BFE0 ; LDA.b #$01 : STA.w $0ABF +JSL SetOverworldTransitionFlags +NOP +; For mirroring, the new flag is set in IncrementOWMirror in stats.asm +;================================================================================ + ;================================================================================ ; Player Sprite Fixes ;-------------------------------------------------------------------------------- diff --git a/stats.asm b/stats.asm index 40df03a..f8fc983 100644 --- a/stats.asm +++ b/stats.asm @@ -428,6 +428,7 @@ IncrementMagicUseCounterOne: !OW_MIRROR_COUNTER = "$7EF43A" IncrementOWMirror: PHA + LDA #$08 : STA $021B ; fail race game LDA !LOCK_STATS : BNE + LDA $7EF3CA : BEQ + ; only do this for DW->LW LDA !OW_MIRROR_COUNTER : INC : STA !OW_MIRROR_COUNTER From b46269b66254d7230a23e91dfd0b7add5f40ef57 Mon Sep 17 00:00:00 2001 From: Thomas Backmark Date: Thu, 20 Jan 2022 22:24:52 +0100 Subject: [PATCH 6/6] Moved the new text renderer behind a feature flag --- LTTP_RND_GeneralBugfixes.asm | 19 +++++++++----- hooks.asm | 50 +++++++++++++++++++----------------- 2 files changed, 39 insertions(+), 30 deletions(-) diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index 5ec7c31..d7f0a14 100644 --- a/LTTP_RND_GeneralBugfixes.asm +++ b/LTTP_RND_GeneralBugfixes.asm @@ -105,6 +105,9 @@ dw !ROM_VERSION_HIGH function hexto555(h) = ((((h&$FF)/8)<<10)|(((h>>8&$FF)/8)<<5)|(((h>>16&$FF)/8)<<0)) +; Feature flags, run asar with -DFEATURE_X=1 to enable +!FEATURE_NEW_TEXT ?= 0 + ;================================================================================ incsrc hooks.asm @@ -218,7 +221,9 @@ incsrc darkroomitems.asm incsrc fastcredits.asm incsrc msu.asm incsrc dungeonmap.asm -incsrc textrenderer.asm +if !FEATURE_NEW_TEXT + incsrc textrenderer.asm +endif warnpc $A58000 ;org $228000 ; contrib area @@ -306,11 +311,13 @@ org $339600 BossMapIconGFX: incbin bossicons.4bpp -org $339C00 -NewFont: -incbin newfont.bin -NewFontInverted: -incbin newfont_inverted.bin +if !FEATURE_NEW_TEXT + org $339C00 + NewFont: + incbin newfont.bin + NewFontInverted: + incbin newfont_inverted.bin +endif org $328000 Extra_Text_Table: diff --git a/hooks.asm b/hooks.asm index e2af74e..11e0f75 100755 --- a/hooks.asm +++ b/hooks.asm @@ -2746,30 +2746,32 @@ org $01C65F : JSL FixJingleGlitch ;================================================================================ ; Text Renderer ;-------------------------------------------------------------------------------- -org $0EF51B - JML RenderCharExtended -org $0EF520 - RenderCharExtended_returnOriginal: -org $0EF567 - RenderCharExtended_returnUncompressed: +if !FEATURE_NEW_TEXT + org $0EF51B + JML RenderCharExtended + org $0EF520 + RenderCharExtended_returnOriginal: + org $0EF567 + RenderCharExtended_returnUncompressed: -org $0EF356 - JSL RenderCharLookupWidth -org $0EF3BA - JSL RenderCharLookupWidth -org $0EF48E - JML RenderCharLookupWidthDraw -org $0EF499 - RenderCharLookupWidthDraw_return: + org $0EF356 + JSL RenderCharLookupWidth + org $0EF3BA + JSL RenderCharLookupWidth + org $0EF48E + JML RenderCharLookupWidthDraw + org $0EF499 + RenderCharLookupWidthDraw_return: -org $0EF6AA - JML RenderCharToMapExtended -org $0EF6C2 - RenderCharToMapExtended_return: + org $0EF6AA + JML RenderCharToMapExtended + org $0EF6C2 + RenderCharToMapExtended_return: -org $0EFA50 - JSL RenderCharSetColorExtended -org $0EEE5D - JSL RenderCharSetColorExtended_init -org $0EF285 - JSL RenderCharSetColorExtended_close : NOP + org $0EFA50 + JSL RenderCharSetColorExtended + org $0EEE5D + JSL RenderCharSetColorExtended_init + org $0EF285 + JSL RenderCharSetColorExtended_close : NOP +endif \ No newline at end of file