From 103f072cf398c868f73b27f63b14f566e170aa8c Mon Sep 17 00:00:00 2001 From: cassidoxa Date: Fri, 11 Aug 2023 02:10:54 -0400 Subject: [PATCH] Add back some JP characters and re-arrange player name screen Re-arrange a bunch of text-related stuff Fix post-credits game counter Fix bows --- LTTP_RND_GeneralBugfixes.asm | 18 +- data/creditscharmapbighi.txt | 47 ++++- data/creditscharmapbiglo.txt | 47 ++++- data/creditscharmapsmall_green.txt | 3 +- data/creditscharmapsmall_yellow.txt | 3 +- data/i18n_en.bin | Bin 29525 -> 29525 bytes data/newfont.bin | Bin 4096 -> 4096 bytes data/playernamecharmap.asm | 59 ++++++ data/playernamecharmap.bin | Bin 0 -> 320 bytes data/playernamestripes_1.bin | Bin 0 -> 248 bytes data/playernamestripes_2.asm | 72 ++++++++ data/playernamestripes_2.bin | Bin 0 -> 868 bytes data/playernamestripes_3.asm | 72 ++++++++ data/playernamestripes_4.asm | 25 +++ data/smallchars.2bpp | Bin 0 -> 512 bytes data/text_unscramble1.bin | Bin 320 -> 0 bytes data/text_unscramble2.bin | Bin 2048 -> 0 bytes dialog.asm | 13 +- endingsequence.asm | 22 --- events.asm | 17 +- fastcredits.asm | 25 ++- fileselect.asm | 261 ++++++++++++++------------- hashalphabet.asm | 112 +++++------- hooks.asm | 62 +++---- newhud.asm | 2 - newitems.asm | 16 +- playername.asm | 33 +++- stats/credits.asm | 2 +- stats/font.gb | Bin 8192 -> 0 bytes stats/fonttable.asm | 268 ++++++++++++++++++++++++++++ stats/fonttable.bin | 1 - stats/main.asm | 174 +++++++----------- stats/statConfig.asm | 3 + tables.asm | 12 +- textrenderer.asm | 158 ++++++++-------- utilities.asm | 2 +- vanillalabels.asm | 7 + 37 files changed, 1028 insertions(+), 508 deletions(-) create mode 100644 data/playernamecharmap.asm create mode 100644 data/playernamecharmap.bin create mode 100644 data/playernamestripes_1.bin create mode 100644 data/playernamestripes_2.asm create mode 100644 data/playernamestripes_2.bin create mode 100644 data/playernamestripes_3.asm create mode 100644 data/playernamestripes_4.asm create mode 100644 data/smallchars.2bpp delete mode 100644 data/text_unscramble1.bin delete mode 100644 data/text_unscramble2.bin delete mode 100644 endingsequence.asm delete mode 100755 stats/font.gb create mode 100644 stats/fonttable.asm delete mode 100755 stats/fonttable.bin diff --git a/LTTP_RND_GeneralBugfixes.asm b/LTTP_RND_GeneralBugfixes.asm index b09b28a..15c8fe3 100644 --- a/LTTP_RND_GeneralBugfixes.asm +++ b/LTTP_RND_GeneralBugfixes.asm @@ -134,7 +134,6 @@ incsrc glitched.asm incsrc hardmode.asm incsrc goalitem.asm incsrc quickswap.asm -incsrc endingsequence.asm incsrc cuccostorm.asm incsrc retro.asm incsrc controllerjank.asm @@ -177,7 +176,11 @@ incsrc utilities.asm incsrc inventory.asm org $A38000 +incsrc stats/credits.asm ; Statically mapped incsrc stats/main.asm +incsrc stats/statConfig.asm +FontTable: +incsrc stats/fonttable.asm org $B08000 ; bank $30 incsrc tables.asm @@ -259,11 +262,14 @@ if !FEATURE_NEW_TEXT incbin "data/newfont.bin" NewFontInverted: incbin "data/newfont_inverted.bin" - - org $8CD7DF - incbin "data/text_unscramble1.bin" - org $8CE4D5 - incbin "data/text_unscramble2.bin" + SmallCharacters: + incbin "data/smallchars.2bpp" + org $8CD7DF + incsrc data/playernamecharmap.asm + org $8CE73D + incbin data/playernamestripes_1.bin + org $8CE911 + incbin data/playernamestripes_2.bin endif org $B28000 diff --git a/data/creditscharmapbighi.txt b/data/creditscharmapbighi.txt index e7f81bc..4ace488 100644 --- a/data/creditscharmapbighi.txt +++ b/data/creditscharmapbighi.txt @@ -35,8 +35,45 @@ W=73 X=74 Y=75 Z=76 -'=77 -.=A0 -/=A2 -:=A3 -_=A6 \ No newline at end of file +a=A0 +b=A1 +c=A2 +d=A3 +e=A4 +f=A5 +g=A6 +h=A7 +i=A8 +j=A9 +k=AA +l=AB +m=AC +n=AD +o=AE +p=AF +q=B0 +r=B1 +s=B2 +t=B3 +u=B4 +v=B5 +w=B6 +x=B7 +y=B8 +z=B9 +'=D9 +"=DA +/=DB +.=DC +:=DD +_=DE +^=DF +&=E0 +#=E1 +@=E2 +>=E3 +?=E4 +!=E5 +~=E6 +,=E7 +-=E8 diff --git a/data/creditscharmapbiglo.txt b/data/creditscharmapbiglo.txt index 6e70494..1d9fc90 100644 --- a/data/creditscharmapbiglo.txt +++ b/data/creditscharmapbiglo.txt @@ -35,8 +35,45 @@ W=99 X=9A Y=9B Z=9C -'=9d -.=C0 -/=C2 -:=C3 -_=C6 \ No newline at end of file +a=BB +b=BC +c=BD +d=BE +e=BF +f=C0 +g=C1 +h=C2 +i=C3 +j=C4 +k=C5 +l=C6 +m=C7 +n=C8 +o=C9 +p=CA +q=CB +r=CC +s=CD +t=CE +u=CF +v=D0 +w=D1 +x=D2 +y=D3 +z=D4 +'=EC +"=ED +/=EE +.=EF +:=F0 +_=F1 +^=F2 +&=F3 +#=F4 +@=F5 +>=F6 +?=F7 +!=F8 +~=F9 +,=FA +-=FB diff --git a/data/creditscharmapsmall_green.txt b/data/creditscharmapsmall_green.txt index e86db3d..34d1d8e 100644 --- a/data/creditscharmapsmall_green.txt +++ b/data/creditscharmapsmall_green.txt @@ -24,4 +24,5 @@ V=4D W=4E X=4F Y=50 -Z=51 \ No newline at end of file +Z=51 +.=52 diff --git a/data/creditscharmapsmall_yellow.txt b/data/creditscharmapsmall_yellow.txt index ee3714d..5723ffc 100644 --- a/data/creditscharmapsmall_yellow.txt +++ b/data/creditscharmapsmall_yellow.txt @@ -24,4 +24,5 @@ V=2F W=30 X=31 Y=32 -Z=33 \ No newline at end of file +Z=33 +'=35 diff --git a/data/i18n_en.bin b/data/i18n_en.bin index fbd7ded37d924aacfcb6059f1203defa9ae65fbe..e13478943630dfaf17c9ea17161a868694292744 100644 GIT binary patch delta 761 zcmYjPOH30%7-q|(#8xyE(xNszL{l3YrL=$#P9_o$ctE0FOo)0gCXh&wcog;ENyP~< z8y!RBWNAmc+s7u|SsoWENe?EX7vqtGQKQ5xZNVMC1rxn|GvELJ-~XCfU6WSVB;V#% zMM(%z6hgMHgWw`ykf(h85}g`u3(G}t>n2q_Wzb@scv#@f#t~0177mPe;Pp_`~i4{KWgiu%?9vS^Jpv8 zF$FK1dMwNGrowkP#?7)#YeZ5gxz_^u>~c%>F3Jm=x|SCTRo@-r4rF)~Xac?pgi!xu zpxfSUT`7fj?I4IYMUIv7EYmEe^s z9HFB@$xpfYMww>?Nq7-oVK}&SINQ delta 761 zcmYjPOH30%7-q|(#8xyE(xNszL{l3YrL=$#P9_o$ctE3GOo)0gCNz;C@hIxSlZq2! zyci-UOFPo&Dzr-ho+QLQ=+`0kRx+og|uA*dYTM=N5{B`3Z^VICLByr`U zqhFE?WvX%<2WhLGuHhM>rjul$-Aise>d24kJ&w2Uh`VN8;-tzs03384t>ZM4FPrmJ zXz_W$m8Z@Jl^#PZQq4qbBCDd!G-aF|bM+zbE!P#`Czl`Uvg<7HjC((D#Qhq@PwX6U zxVcE_tWYYODaw_}U5D)E=5}Xrkg@tlAWo0VCZ2}Rz_o_=NVwG44*A!{M%&@=oK&XFHZ(OaWUjn9z#Pc%Fwg{i5eT9F z$3VBe+qz(+gKNb_RnG~T(M)M3o|w&xL|oUXkjrKwp5;tz5mqpfKNdU)*<>(+9LvGW zRX9S2gOZ;!^OZbD1u_YiqGgliZCLgnOMbuqWIHycr$^ehDXlPr9C?{zAk<1|lusvB=;SUu!e0>sUuh zMYBbFBMGL*bBp*^)^NpUh3zFPQM>ug=miMRbziN=XlZ$t7XAxa?#{w_r)L}(>TRvH N=dqWdgn9$V{{Zn4u^j*a diff --git a/data/newfont.bin b/data/newfont.bin index ee9a4526b77b0afe5f89f15c2b0331d6649bf6c9..44d294640a45137f6874531d724feaf1303cda0a 100644 GIT binary patch delta 165 zcmZorXi(U2h>gXDK}BNnF}8n9HVm7OvF~BxV}JsX1W;-Mmx~TR11Fm#n;@StkCF^b z8bsSLq)CA2dInE3PqSR1Xq7UCN!$&*HeflBb|7nVFSoOJnuLqR8H0|383_{-J^*E% oY@BS;By1)hWRjf3qcr&llh|Yno)?oZFmbR$?6ujf&wG&x0Gie#%K!iX delta 201 zcmZorXi(U2h>eAT!G>Y-F}8n9DiWKIvF~BxlV=d+66N~O&{+4EiIr*c1TGgH1{A>0 zAkS{iuP&c1UvFP;&%p43;m3nBA6kC2{W$mM-=9g`4ZN&CjUf1!sj=?=MO1{QL9o$Da>B76xph

n6H2nOMYitT{qp6kGO|J< z{sw{E-N@qp=>*|~Wdo0?nTw77(%6lm&Rx_k{UZy#Sj z`2J&Iafwf@ZS5c{clMk-7#dkvS`ic+a{mD=|6EyJqocE{8w>nE`I&n{p32L|Dap1#3V2n`F5c|>wb z>a#T1`@4TI&d~74C>WcVnwdlF)5N57GGAn6zvM_2V_yYRAc81j@H`{uRW6>~>v-%#59C zaj;D77v-c*trHI3k3{mENBDKusX+uwO*xN!w;9~aY$Lc?>t#yR(PKl>9~cuWc3$U*7_Ii1~##UR+yA>%g_w3bP|NRVRef;Ykfp}j1!#VBTSmOZ_$np o>3D>S;`a>Ecp?vN3-3F;#|PDJhjf330{E`o>Z~WQ>g$IgC55d{R)yylC@3r{eh+>91A{{x z9R585LnC98=ina@7!*ud`NxV%82&agI>zzIzf-WVw6cByA%up7Q&U@4-vHAyvvc#D zo&Uc8SvmPf%81hP`AcgXj89B5#pRXY79MM8YUzphcoIm2g~g@i?;@vfU}|O#*Ed2T fbar+3^uo&O+K-5h?zsrDq@zmwVm;GEJ@S diff --git a/data/text_unscramble2.bin b/data/text_unscramble2.bin deleted file mode 100644 index dc4632bd88cf0a092e0c93f943f04b6c4cc97828..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2048 zcmajfXK++i7{>8;2@5O`VCm%?U|D+aaDad@Rv^J%fCTQn*}L=(p+k&?fHD+YKpA7~ zy?4|Yd+!}J#@?|3D(e5t+&kHoMzk0jqY0WKOp5L!jairto12(7D<@A( zds+u{L?ck562@y0$0N37v_HDCdHgYI~fx(36l|~Jm{O5TX1pk`5Wf9%FPpV4((h_#WYMu zn2Mn9V(!LO!RLd_L(28UL}?As5ZP#kqeV1-8`>=s(}wM~Xa|kXI9gh89oKG^#GA9- z13l3T1C(1M@h-Fx7>QBHQSM%eT(8`H61iWwbrK)Qw}WszPQZ!E%aZtb+60`5vv9WZ zk`m9S6<`W3!B*wvNxYC&gc-ORdz5=vqK){?V%pOZZBOfmB;Lcn|yV32dfvH4W2Is8b0sxA1Z+ZVNW-)@$@H@fE(tkFY7=Y6@n; z(WzW9kMQy+9t$??)~ED8@Fx!7Fl>srnt?@FtW%Ddr+BHs)4_(_`icHCqHHxlL)f@X z55-97RH>LZ*?J3aBh0__|Imi5wrB^NCCsH*hUGd{Ddt7CUc$==lg(>0G)Gq?VB<5> zn1$IoRW0U2u0F!Y8P}TE&gg={7y_FW%o41`DxIno^Ep>__#)%F8?Q-pM-TMGCd|QH z%)@-`N5uTf)o=Jc<9aBs!!R5pFcS89HP&D))@eT><~y#w#}66T{dnz<0T_ruu-6N) z5F1gd{ai7BarHO;$+#ZN>p0|KJSM(R-s$@LgYRZ~4E? z&oY!_tM*I9w4}8{YlIm^9}N?HHzv5=!RMW*z#i>aO6-Q4e1Y3^vPkI#*&(1fMFjf8fa9_Wv B, bus A auto increment, double-byte mode - LDA.b #$18 : STA.w BBAD0 ; set bus B destination to VRAM register - - LDA.b #$00 : STA.w VMADDL ; write VRAM destination address - LDA.b #$30 : STA.w VMADDH ; write VRAM destination address - - LDA.b #$31 : STA.w A1B0 ; set bus A source bank - LDA.b #FileSelectNewGraphics : STA.w A1T0L ; set bus A source address to ROM - LDA.b #FileSelectNewGraphics>>8 : STA.w A1T0H ; set bus A source address to ROM - - LDA.w INIDISP : PHA : LDA.b #$80 : STA.w INIDISP ; save screen state & turn screen off - - STZ.w DAS0L : LDA.b #$10 : STA.w DAS0H ; set transfer size to 0x1000 - LDA.b #$01 : STA.w MDMAEN ; begin DMA transfer - - PLA : STA.w INIDISP ; put screen back however it was before - ;-------------------------------------------------------------------------------- - PLA : STA.w DAS0H ; restore DMA parameters - PLA : STA.w DAS0L ; restore DMA parameters - PLA : STA.w A1B0 ; restore DMA parameters - PLA : STA.w A1T0H ; restore DMA parameters - PLA : STA.w A1T0L ; restore DMA parameters - PLA : STA.w BBAD0 ; restore DMA parameters - PLA : STA.w DMAP0 ; restore DMA parameters - PLX : PLA + LDA.b #$80 : STA.w VMAIN + LDA.b #$01 : STA.w DMAP0 + LDA.b #$18 : STA.w BBAD0 + LDX.w #$3200 : STX.w VMADDL + LDA.b #FileSelectNewGraphics>>16 : STA.w A1B0 + LDX.w #FileSelectNewGraphics : STX.w A1T0L + LDX.w #$0C00 : STX.w DAS0L + LDA.b #$01 : STA.w MDMAEN RTL ;-------------------------------------------------------------------------------- +; z colon @ +; length $340 +; target vram $6C00 +; NewFont+$400 +LoadLowerCaseLettersSymbols: + LDA.b #$80 : STA.w VMAIN + LDA.b #$01 : STA.w DMAP0 + LDA.b #$18 : STA.w BBAD0 + ; Lower case letters + LDA.b #NewFont>>16 : STA.w A1B0 + LDX.w #NewFont+$400 : STX.w A1T0L + LDX.w #$0400 : STX.w DAS0L + LDX.w #$2D00 : STX.w VMADDL + LDA.b #$01 : STA.w MDMAEN + + ; : @ # + LDA.b #NewFont>>16 : STA.w A1B0 + LDX.w #NewFont+$A80 : STX.w A1T0L + LDA.b #NewFont>>16 : STA.w A1B1 + LDX.w #NewFont+$B80 : STX.w A1T1L + LDX.w #$0030 : STX.w DAS0L : STX.w DAS1L + + LDX.w #$2E50 : STX.w VMADDL + LDA.b #$01 : STA.w MDMAEN + LDX.w #$2ED0 : STX.w VMADDL + LDA.b #$02 : STA.w MDMAEN +RTL +;-------------------------------------------------------------------------------- +LoadFileSelectVanillaItems: + REP #$10 + LDA.b #$80 : STA.w VMAIN + LDA.b #$01 : STA.w DMAP0 + LDA.b #$18 : STA.w BBAD0 + + ; Lower case letters + LDA.b #DecompBuffer2>>16 : STA.w A1B0 + LDX.w #DecompBuffer2 : STX.w A1T0L + LDX.w #$0600 : STX.w DAS0L + LDX.w #$2F00 : STX.w VMADDL + LDA.b #$01 : STA.w MDMAEN + + SEP #$10 +RTL +;-------------------------------------------------------------------------------- SetFileSelectPalette: LDA.b GameMode : CMP.b #$04 : BNE + ; load the vanilla file select screen BG3 palette for naming screen @@ -839,7 +854,7 @@ DrawPlayerFile_credits: LDA.l EquipmentSRAM+$2C : AND.w #$00FF : LSR #3 : STA.b Scrap02 %fs_LDY_screenpos(0,20) - LDA.w #$028F|!FS_COLOR_RED + LDA.w #$02CF|!FS_COLOR_RED LDX.w #$000A .nextHeart diff --git a/hashalphabet.asm b/hashalphabet.asm index 5e4c4e4..dd22373 100644 --- a/hashalphabet.asm +++ b/hashalphabet.asm @@ -69,110 +69,88 @@ RTL ; DMAAlphabetTilemap: ;-------------------------------------------------------------------------------- DMAAlphabetTilemap: - PHA : PHX - LDA.w DMAP0 : PHA ; preserve DMA parameters - LDA.w BBAD0 : PHA ; preserve DMA parameters - LDA.w A1T0L : PHA ; preserve DMA parameters - LDA.w A1T0H : PHA ; preserve DMA parameters - LDA.w A1B0 : PHA ; preserve DMA parameters - LDA.w DAS0L : PHA ; preserve DMA parameters - LDA.w DAS0H : PHA ; preserve DMA parameters - ;-------------------------------------------------------------------------------- - LDA.b #$01 : STA.w DMAP0 ; set DMA transfer direction A -> B, bus A auto increment, double-byte mode - LDA.b #$80 : STA.w VMAIN ; write read increment on $2119 - LDA.b #$18 : STA.w BBAD0 ; set bus B destination to VRAM register - - LDA.b #$60 : STA.w VMADDL ; write VRAM destination address - STA.w VMADDH ; write VRAM destination address - - LDA.b #BigRAM : STA.w A1T0L ; set bus A source address to WRAM - LDA.b #BigRAM>>8 : STA.w A1T0H ; set bus A source address to WRAM - LDA.b #BigRAM>>16 : STA.w A1B0 ; set bus A source bank - - LDA.b #$80 : STA.w DAS0L : STZ.w DAS0H ; set transfer size to 0x40 - - LDA.w INIDISP : PHA : LDA.b #$80 : STA.w INIDISP ; save screen state & turn screen off - LDA.b #$01 : STA.w MDMAEN ; begin DMA transfer - PLA : STA.w INIDISP ; put screen back however it was before - ;-------------------------------------------------------------------------------- - PLA : STA.w DAS0H ; restore DMA parameters - PLA : STA.w DAS0L ; restore DMA parameters - PLA : STA.w A1B0 ; restore DMA parameters - PLA : STA.w A1T0H ; restore DMA parameters - PLA : STA.w A1T0L ; restore DMA parameters - PLA : STA.w BBAD0 ; restore DMA parameters - PLA : STA.w DMAP0 ; restore DMA parameters - PLX : PLA + PHA : PHX + REP #$10 + LDA.b #$01 : STA.w DMAP0 + LDA.b #$80 : STA.w VMAIN + LDA.b #$18 : STA.w BBAD0 + LDX.w #$6060 : STX.w VMADDL + LDA.b #BigRAM>>16 : STA.w A1B0 + LDX.w #BigRAM : STX.w A1T0L + LDX.w #$0080 : STX.w DAS0L + LDA.b #$01 : STA.w MDMAEN + SEP #$10 + PLX : PLA RTS ;-------------------------------------------------------------------------------- HashAlphabetTilesWithBlank: ;BLANK -dw #$0186|!FS_COLOR_BW, #$0186|!FS_COLOR_BW, #$0196|!FS_COLOR_BW, #$0196|!FS_COLOR_BW +dw #$0188, #$0188, #$0188, #$0188 HashAlphabetTiles: ;BOW -dw #$0201|!FS_COLOR_YELLOW, #$0202|!FS_COLOR_YELLOW, #$0211|!FS_COLOR_YELLOW, #$0212|!FS_COLOR_YELLOW +dw #$0241|!FS_COLOR_YELLOW, #$0242|!FS_COLOR_YELLOW, #$0251|!FS_COLOR_YELLOW, #$0252|!FS_COLOR_YELLOW ;BOOM -dw #$0205|!FS_COLOR_BLUE, #$0206|!FS_COLOR_BLUE, #$0200|!FS_COLOR_BW, #$0216|!FS_COLOR_BLUE +dw #$0245|!FS_COLOR_BLUE, #$0246|!FS_COLOR_BLUE, #$0240|!FS_COLOR_BW, #$0256|!FS_COLOR_BLUE ;HOOK -dw #$0200|!FS_COLOR_RED, #$0215|!FS_COLOR_RED, #$0230|!FS_COLOR_RED, #$0200|!FS_COLOR_BW +dw #$0240|!FS_COLOR_RED, #$0255|!FS_COLOR_RED, #$0270|!FS_COLOR_RED, #$0240|!FS_COLOR_BW ;BOMB -dw #$020C|!FS_COLOR_BLUE, #$020D|!FS_COLOR_BLUE, #$021C|!FS_COLOR_BLUE, #$021C|!FS_COLOR_BLUE|!FS_HFLIP +dw #$024C|!FS_COLOR_BLUE, #$024D|!FS_COLOR_BLUE, #$025C|!FS_COLOR_BLUE, #$025C|!FS_COLOR_BLUE|!FS_HFLIP ;SHROOM -dw #$0262|!FS_COLOR_RED, #$0263|!FS_COLOR_RED, #$0272|!FS_COLOR_RED, #$0273|!FS_COLOR_RED +dw #$02A2|!FS_COLOR_RED, #$02A3|!FS_COLOR_RED, #$02B2|!FS_COLOR_RED, #$02B3|!FS_COLOR_RED ;POWDER -dw #$020A|!FS_COLOR_BROWN, #$020B|!FS_COLOR_BROWN, #$021A|!FS_COLOR_BROWN, #$021B|!FS_COLOR_BROWN +dw #$024A|!FS_COLOR_BROWN, #$024B|!FS_COLOR_BROWN, #$025A|!FS_COLOR_BROWN, #$025B|!FS_COLOR_BROWN ;ROD -dw #$0220|!FS_COLOR_BLUE, #$0221|!FS_COLOR_BLUE, #$0230|!FS_COLOR_BLUE, #$0231|!FS_COLOR_BLUE +dw #$0260|!FS_COLOR_BLUE, #$0261|!FS_COLOR_BLUE, #$0270|!FS_COLOR_BLUE, #$0271|!FS_COLOR_BLUE ;PENDANT -dw #$0285|!FS_COLOR_GREEN, #$0286|!FS_COLOR_GREEN, #$0295|!FS_COLOR_GREEN, #$0296|!FS_COLOR_GREEN +dw #$02C5|!FS_COLOR_GREEN, #$02C6|!FS_COLOR_GREEN, #$02D5|!FS_COLOR_GREEN, #$02D6|!FS_COLOR_GREEN ;BOMBOS -dw #$0207|!FS_COLOR_YELLOW, #$0217|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP, #$0217|!FS_COLOR_YELLOW, #$0207|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP +dw #$0247|!FS_COLOR_YELLOW, #$0257|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP, #$0257|!FS_COLOR_YELLOW, #$0247|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP ;ETHER -dw #$0208|!FS_COLOR_YELLOW, #$0218|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP, #$0218|!FS_COLOR_YELLOW, #$0208|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP +dw #$0248|!FS_COLOR_YELLOW, #$0258|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP, #$0258|!FS_COLOR_YELLOW, #$0248|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP ;QUAKE -dw #$0209|!FS_COLOR_YELLOW, #$0219|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP, #$0219|!FS_COLOR_YELLOW, #$0209|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP +dw #$0249|!FS_COLOR_YELLOW, #$0259|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP, #$0259|!FS_COLOR_YELLOW, #$0249|!FS_COLOR_YELLOW|!FS_HFLIP|!FS_VFLIP ;LAMP -dw #$022C|!FS_COLOR_RED, #$022C|!FS_COLOR_RED|!FS_HFLIP, #$023C|!FS_COLOR_RED, #$023D|!FS_COLOR_RED +dw #$026C|!FS_COLOR_RED, #$026C|!FS_COLOR_RED|!FS_HFLIP, #$027C|!FS_COLOR_RED, #$027D|!FS_COLOR_RED ;HAMMER -dw #$0222|!FS_COLOR_BROWN, #$0223|!FS_COLOR_BROWN, #$0232|!FS_COLOR_BROWN, #$0233|!FS_COLOR_BROWN +dw #$0262|!FS_COLOR_BROWN, #$0263|!FS_COLOR_BROWN, #$0272|!FS_COLOR_BROWN, #$0273|!FS_COLOR_BROWN ;SHOVEL -dw #$0224|!FS_COLOR_BROWN, #$0225|!FS_COLOR_BROWN, #$0234|!FS_COLOR_BROWN, #$0235|!FS_COLOR_BROWN +dw #$0264|!FS_COLOR_BROWN, #$0265|!FS_COLOR_BROWN, #$0274|!FS_COLOR_BROWN, #$0275|!FS_COLOR_BROWN ;FLUTE -dw #$0226|!FS_COLOR_BLUE, #$0227|!FS_COLOR_BLUE, #$0236|!FS_COLOR_BLUE, #$0237|!FS_COLOR_BLUE +dw #$0266|!FS_COLOR_BLUE, #$0267|!FS_COLOR_BLUE, #$0276|!FS_COLOR_BLUE, #$0277|!FS_COLOR_BLUE ;NET -dw #$0228|!FS_COLOR_YELLOW, #$0229|!FS_COLOR_YELLOW, #$0238|!FS_COLOR_YELLOW, #$0239|!FS_COLOR_YELLOW +dw #$0268|!FS_COLOR_YELLOW, #$0269|!FS_COLOR_YELLOW, #$0278|!FS_COLOR_YELLOW, #$0279|!FS_COLOR_YELLOW ;BOOK -dw #$022A|!FS_COLOR_GREEN, #$022B|!FS_COLOR_GREEN, #$023A|!FS_COLOR_GREEN, #$023B|!FS_COLOR_GREEN +dw #$026A|!FS_COLOR_GREEN, #$026B|!FS_COLOR_GREEN, #$027A|!FS_COLOR_GREEN, #$027B|!FS_COLOR_GREEN ;BOTTLE -dw #$0240|!FS_COLOR_BW, #$0241|!FS_COLOR_BW, #$0250|!FS_COLOR_BW, #$0251|!FS_COLOR_BW +dw #$0280|!FS_COLOR_BW, #$0281|!FS_COLOR_BW, #$0290|!FS_COLOR_BW, #$0291|!FS_COLOR_BW ;POTION -dw #$0242|!FS_COLOR_GREEN, #$0242|!FS_COLOR_GREEN|!FS_HFLIP, #$0252|!FS_COLOR_GREEN, #$0253|!FS_COLOR_GREEN +dw #$0282|!FS_COLOR_GREEN, #$0282|!FS_COLOR_GREEN|!FS_HFLIP, #$0292|!FS_COLOR_GREEN, #$0293|!FS_COLOR_GREEN ;CANE -dw #$021D|!FS_COLOR_RED, #$021E|!FS_COLOR_RED, #$022D|!FS_COLOR_RED, #$022E|!FS_COLOR_RED +dw #$025D|!FS_COLOR_RED, #$025E|!FS_COLOR_RED, #$026D|!FS_COLOR_RED, #$026E|!FS_COLOR_RED ;CAPE -dw #$0248|!FS_COLOR_RED, #$0249|!FS_COLOR_RED, #$0258|!FS_COLOR_RED, #$0259|!FS_COLOR_RED +dw #$0288|!FS_COLOR_RED, #$0289|!FS_COLOR_RED, #$0298|!FS_COLOR_RED, #$0299|!FS_COLOR_RED ;MIRROR -dw #$024A|!FS_COLOR_BLUE, #$024B|!FS_COLOR_BLUE, #$025A|!FS_COLOR_BLUE, #$025B|!FS_COLOR_BLUE +dw #$028A|!FS_COLOR_BLUE, #$028B|!FS_COLOR_BLUE, #$029A|!FS_COLOR_BLUE, #$029B|!FS_COLOR_BLUE ;BOOTS -dw #$024C|!FS_COLOR_BOOTS, #$024D|!FS_COLOR_BOOTS, #$025C|!FS_COLOR_BOOTS, #$025D|!FS_COLOR_BOOTS +dw #$028C|!FS_COLOR_BOOTS, #$028D|!FS_COLOR_BOOTS, #$029C|!FS_COLOR_BOOTS, #$029D|!FS_COLOR_BOOTS ;GLOVES -dw #$024E|!FS_COLOR_BROWN, #$024F|!FS_COLOR_BROWN, #$025E|!FS_COLOR_BROWN, #$025F|!FS_COLOR_BROWN +dw #$028E|!FS_COLOR_BROWN, #$028F|!FS_COLOR_BROWN, #$029E|!FS_COLOR_BROWN, #$029F|!FS_COLOR_BROWN ;FLIPPERS -dw #$020E|!FS_COLOR_BLUE, #$020F|!FS_COLOR_BLUE, #$021F|!FS_COLOR_BLUE|!FS_HFLIP, #$021F|!FS_COLOR_BLUE +dw #$024E|!FS_COLOR_BLUE, #$024F|!FS_COLOR_BLUE, #$025F|!FS_COLOR_BLUE|!FS_HFLIP, #$025F|!FS_COLOR_BLUE ;PEARL -dw #$0264|!FS_COLOR_RED, #$0265|!FS_COLOR_RED, #$0274|!FS_COLOR_RED, #$0275|!FS_COLOR_RED +dw #$02A4|!FS_COLOR_RED, #$02A5|!FS_COLOR_RED, #$02B4|!FS_COLOR_RED, #$02B5|!FS_COLOR_RED ;SHIELD -dw #$026D|!FS_COLOR_YELLOW, #$026E|!FS_COLOR_YELLOW, #$027D|!FS_COLOR_YELLOW, #$027E|!FS_COLOR_YELLOW +dw #$02AD|!FS_COLOR_YELLOW, #$02AE|!FS_COLOR_YELLOW, #$02BD|!FS_COLOR_YELLOW, #$02BE|!FS_COLOR_YELLOW ;TUNIC -dw #$026F|!FS_COLOR_GREEN, #$026F|!FS_COLOR_GREEN|!FS_HFLIP, #$027F|!FS_COLOR_GREEN, #$027F|!FS_COLOR_GREEN|!FS_HFLIP +dw #$02AF|!FS_COLOR_GREEN, #$02AF|!FS_COLOR_GREEN|!FS_HFLIP, #$02BF|!FS_COLOR_GREEN, #$02BF|!FS_COLOR_GREEN|!FS_HFLIP ;HEART -dw #$0281|!FS_COLOR_RED, #$0281|!FS_COLOR_RED|!FS_HFLIP, #$0291|!FS_COLOR_RED, #$0291|!FS_COLOR_RED|!FS_HFLIP +dw #$02C1|!FS_COLOR_RED, #$02C1|!FS_COLOR_RED|!FS_HFLIP, #$02D1|!FS_COLOR_RED, #$02D1|!FS_COLOR_RED|!FS_HFLIP ;MAP -dw #$0282|!FS_COLOR_YELLOW, #$0283|!FS_COLOR_YELLOW, #$0292|!FS_COLOR_YELLOW, #$0293|!FS_COLOR_YELLOW +dw #$02C2|!FS_COLOR_YELLOW, #$02C3|!FS_COLOR_YELLOW, #$02D2|!FS_COLOR_YELLOW, #$02D3|!FS_COLOR_YELLOW ;COMPASS -dw #$0284|!FS_COLOR_RED, #$0284|!FS_COLOR_RED|!FS_HFLIP, #$0294|!FS_COLOR_RED, #$0294|!FS_COLOR_RED|!FS_HFLIP +dw #$02C4|!FS_COLOR_RED, #$02C4|!FS_COLOR_RED|!FS_HFLIP, #$02D4|!FS_COLOR_RED, #$02D4|!FS_COLOR_RED|!FS_HFLIP ;KEY -dw #$022F|!FS_COLOR_YELLOW|!FS_HFLIP, #$022F|!FS_COLOR_YELLOW, #$023E|!FS_COLOR_YELLOW, #$023F|!FS_COLOR_YELLOW +dw #$026F|!FS_COLOR_YELLOW|!FS_HFLIP, #$026F|!FS_COLOR_YELLOW, #$027E|!FS_COLOR_YELLOW, #$027F|!FS_COLOR_YELLOW ;-------------------------------------------------------------------------------- FileSelect_PlayerSelectText_Top: ;db $60, $62, $00, $37 diff --git a/hooks.asm b/hooks.asm index 19f823e..24ac714 100644 --- a/hooks.asm +++ b/hooks.asm @@ -211,6 +211,10 @@ RTL ;Just in case anybody ever removes the previous hook org $80E55D ; <- 0655D - Bank00.asm : 5473 (LDA.w #$7000 : STA $2116) LDA.w #$2000 ; Load file select screen graphics to VRAM word addres 0x2000 instead of 0x7000 ;-------------------------------------------------------------------------------- +org $80E568 : LDX.w #$0EFF ; Load full decompressed character set into VRAM +;-------------------------------------------------------------------------------- +org $80E581 : JSL.l LoadFileSelectVanillaItems : BRA + : NOP #13 : + +;-------------------------------------------------------------------------------- org $80833A ; <- 0033A - Bank00.asm : 481 (LDA.w #$007F) LDA.w #$0180 ; change which character is used as the blank character for the select screen ;-------------------------------------------------------------------------------- @@ -233,6 +237,7 @@ db $3D org $8CD6BD ; <- Y position table for Death Counts db $51 ;-------------------------------------------------------------------------------- +org $8CD55F : LDA.w #$0600 ; Hearts tile offset ;================================================================================ ; Name Entry Screen @@ -589,6 +594,7 @@ NOP #4 org $81ED75 ; <- ED75 - Bank01.asm : 13963 (JSL Dungeon_SaveRoomQuadrantData) JSL IncrementBigChestCounter ;-------------------------------------------------------------------------------- +org $8EE67A : STA.l PostGameCounter : BRA + : NOP #18 : + ;================================================================================ ; DialogOverride @@ -618,7 +624,7 @@ org $8EED15 ; <- PC 0x76D15 - Bank0E.asm : 3282 (LDA $E924, Y : STA $1008, X) JSL EndingSequenceTableOverride : NOP #2 ;-------------------------------------------------------------------------------- org $8EED2A ; <- PC 0x76D2A - Bank0E.asm : 3295 (LDA $E924, Y : AND.w #$00FF) -JSL EndingSequenceTableLookupOverride : NOP #2 +JSL EndingSequenceTableLookupOverride : NOP #7 ;-------------------------------------------------------------------------------- ;================================================================================ @@ -1385,9 +1391,6 @@ org $8DFC37 ; <- 6FC37 - headsup_display.asm : 828 (LDA.w #$28F7) JSL DrawMagicHeader BRA + : NOP #15 : + ;-------------------------------------------------------------------------------- -org $8DFB29 ; <- headsup_display.asm : 688 (LDA.b #$86 : STA $7EC71E) -JSL DrawHUDArrows : BRA + : NOP #18 : + -;-------------------------------------------------------------------------------- org $81CF67 ; <- CF67 - Bank01.asm : 11625 (STA $7EF36F) JSL DecrementSmallKeys ;-------------------------------------------------------------------------------- @@ -1400,8 +1403,8 @@ LDX.w #HUD_TileMap org $8DFA9C ; <- 6FA9C - headsup_display.asm : 629 (MVN $0D, $7E ; $Transfer 0x014A bytes from $6FE77 -> $7EC700) MVN $A17E ;-------------------------------------------------------------------------------- -org $8DFB1F ; 6FB1F - headsup_display.asm : 681 (LDA $7EF340 : BEQ .hastNoBow) -JSL CheckHUDSilverArrows +org $8DFB1F : JSL CheckHUDSilverArrows +org $8DFB29 : BRA UpdateHUDBuffer_update_item_check_arrows ;-------------------------------------------------------------------------------- org $8DF1AB JSR.w RebuildHUD_update @@ -2379,40 +2382,33 @@ org $8DB516 : db $40 ; chain chomp ;-------------------------------------------------------------------------------- ; Keep Firebar Damage on Same Layer ;-------------------------------------------------------------------------------- -org $86F425 -Sprite_AttemptDamageToPlayerPlusRecoilLong: - -org $9ED1B6 -JSL NewFireBarDamage +org $9ED1B6 : JSL NewFireBarDamage ;================================================================================ ; Remove heart beeps from 1/2 max HP org $8DDB60 db $00, $00 - +;================================================================================ +; Credits +;================================================================================ +org $8EE651 : JSL LoadCreditsTiles +org $8EEDAF : JSL NearEnding +org $8EEDD9 : JSL EndingItems +org $8EE828 : JSL PreparePointer : LDA.b [CreditsPtr],Y : NOP +org $8EE83F : LDA.b [CreditsPtr],Y : NOP +org $8EE853 +LDA.b [CreditsPtr],Y : NOP : AND.w #$00FF : ASL A : JSL CheckFontTable +org $8EE86D : JSL RenderCreditsStatCounter : JMP.w AfterDeathCounterOutput +org $82857D : JSL LoadOverworldCreditsTiles ;================================================================================ ; Fast credits - -org $8EC2B1 -JSL FlagFastCredits - -org $82A096 -JSL DumbFlagForMSU - -org $8EC3AF -JSL FastCreditsScrollOW : JMP.w $0EC3C7 - -org $8EC41F -JSL FastCreditsCutsceneUnderworldY - -org $8EC42C -JSL FastCreditsCutsceneUnderworldX - -org $8EC488 -JSL FastCreditsCutsceneTimer - -org $8EE773 -JSL FastTextScroll : NOP +org $8EC2B1 : JSL FlagFastCredits +org $82A096 : JSL DumbFlagForMSU +org $8EC3AF : JSL FastCreditsScrollOW : JMP.w $0EC3C7 +org $8EC41F : JSL FastCreditsCutsceneUnderworldY +org $8EC42C : JSL FastCreditsCutsceneUnderworldX +org $8EC488 : JSL FastCreditsCutsceneTimer +org $8EE773 : JSL FastTextScroll : NOP ;================================================================================ org $81FFEE : JSL IncrementDamageTakenCounter_Eight ; overworld pit diff --git a/newhud.asm b/newhud.asm index d83d514..3573596 100644 --- a/newhud.asm +++ b/newhud.asm @@ -227,8 +227,6 @@ NewHUD_DrawItemCounter: LDA.b $06 : TAX : STX.w HUDGoalIndicator+$04 LDA.b $07 : TAX : STX.w HUDGoalIndicator+$06 - - ;================================================================================ DrawMagicMeter_mp_tilemap = $0DFE0F NewHUD_DrawMagicMeter: diff --git a/newitems.asm b/newitems.asm index 510ea11..72a9568 100644 --- a/newitems.asm +++ b/newitems.asm @@ -316,14 +316,14 @@ ItemBehavior: JMP.w .increment_map .bow_and_arrows - BIT.b #$40 : BEQ + + LDA.l BowTracking : BIT.b #$40 : BEQ + LDA.l SilverArrowsUseRestriction : BNE + LDA.b #03 : STA.l BowEquipment ; set bow to silver + RTS .silver_bow - LDA.b #$04 : ORA.l BowTracking : STA.l BowTracking + LDA.b #$40 : ORA.l BowTracking : STA.l BowTracking LDA.l SilverArrowsUseRestriction : BNE .noequip LDA.l SilverArrowsAutoEquip : AND.b #$01 : BEQ .noequip LDA.l ArrowsFiller : BNE + ; check arrows @@ -333,7 +333,6 @@ ItemBehavior: ++ STA.l BowEquipment .noequip - LDA.l BowTracking : ORA.b #$40 : STA.l BowTracking ; mark silver bow on y-toggle RTS .bombs_50 @@ -720,8 +719,7 @@ ResolveLootID: LDA.l ProgressiveBowReplacement JMP.w .get_item + - TAX - LDA.b #$80 : STA.l BowTrackingFlags + LDA.l BowEquipment : TAX LDA.w ResolveLootID_bows_ids,X JMP.w .get_item @@ -731,14 +729,13 @@ ResolveLootID: LDA.l ProgressiveBowReplacement JMP.w .get_item + - TAX - LDA.b #$20 : STA.l BowTrackingFlags + LDA.l BowEquipment : TAX LDA.w ResolveLootID_bows_ids,X JMP.w .get_item .bows ..ids - db $3A, $3B, $3B + db $3A, $3B, $3B, $3B, $3B .null_chest ; JSL ChestItemServiceRequest @@ -799,6 +796,7 @@ HandleBowTracking: LDA.b #$20 .done ORA.l BowTracking : STA.l BowTracking + LDA.w ItemReceiptID RTS ;-------------------------------------------------------------------------------- ;Return BowEquipment but also draw silver arrows if you have the upgrade even if you don't have the bow @@ -1076,5 +1074,5 @@ dw $0008 ; CT dw $0006 ; DP dw $0004 ; EP dw $0002 ; HC -dw $0000 ; SW +dw $0000 ; Sewers diff --git a/playername.asm b/playername.asm index 426d61c..58ef1bc 100644 --- a/playername.asm +++ b/playername.asm @@ -26,7 +26,7 @@ WriteCharacterToPlayerName: RTL ReadCharacterFromPlayerName: ;Only for use on Name Screen - LDA.l ExtendedFileNameSRAM, X + LDA.l ExtendedFileNameSRAM, X CPX.w #$0008 : !BGE + LDA.l FileNameVanillaSRAM, X ;what we wrote over + @@ -59,7 +59,7 @@ db $98, $a0, $a8, $b0 db $c0, $c8, $d0, $d8 -NumberStripes: +NewNameStripes: dw $AB66, $1100 ; 0-4 top dw $1D40, $0188, $1D41, $0188, $1D42, $0188, $1D43, $0188 dw $1D44 @@ -72,15 +72,36 @@ dw $1D49 dw $0B67, $1100 ; 5-9 bottom dw $1D55, $0188, $1D56, $0188, $1D57, $0188, $1D58, $0188 dw $1D59 + +; Move JP characters where a-z are to column where second END button was +dw $B162, $1100 +dw $1CEE, $0188, $1CEF, $0188, $1D05, $0188, $1D06, $0188 +dw $1D07 +dw $D162, $1100 +dw $1CFE, $0188, $1CFF, $0188, $1D15, $0188, $1D16, $0188 +dw $1D17 +dw $F162, $1100 +dw $1D0D, $0188, $1D0E, $0188, $1D0F, $0188, $1D20, $0188 +dw $1D21 +dw $1163, $1100 +dw $1D1D, $0188, $1D1E, $0188, $1D1F, $0188, $1D30, $0188 +dw $1D31 +dw $3163, $1100 +dw $1D22, $0188, $1D23, $0188, $1D24, $0188, $1D25, $0188 +dw $1D26 +dw $5163, $1100 +dw $1D32, $0188, $1D33, $0188, $1D34, $0188, $1D35, $0188 +dw $1D36 + db $80 ; termination -TransferNumericStripes: +TransferNewNameStripes: REP #$30 LDA.w GameMode : CMP.w #$0204 : BNE .exit SEP #$20 - LDA.b #NumberStripes>>0 : STA.b $00 - LDA.b #NumberStripes>>8 : STA.b $01 - LDA.b #NumberStripes>>16 : STA.b $02 : STA.w DMA1ADDRB + LDA.b #NewNameStripes>>0 : STA.b $00 + LDA.b #NewNameStripes>>8 : STA.b $01 + LDA.b #NewNameStripes>>16 : STA.b $02 : STA.w DMA1ADDRB STZ.b $06 : LDY.w #$0000 .check_next LDA.b [$00],Y : BPL .next_stripe diff --git a/stats/credits.asm b/stats/credits.asm index b4016f8..9661e5c 100644 --- a/stats/credits.asm +++ b/stats/credits.asm @@ -530,7 +530,7 @@ CreditsLineBlank: %blankline() -%bigcredits("AND...") +%bigcredits("AND&") %blankline() diff --git a/stats/font.gb b/stats/font.gb deleted file mode 100755 index 9894dc4ba062c1f574c603955f891f6c0712e3ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8192 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 I9zrhv4@k1G?EnA( diff --git a/stats/fonttable.asm b/stats/fonttable.asm new file mode 100644 index 0000000..342073d --- /dev/null +++ b/stats/fonttable.asm @@ -0,0 +1,268 @@ +; Small letters red +dw $39E0 ; A ; $00 +dw $39E1 ; B ; +dw $39E2 ; C ; +dw $39E3 ; D ; +dw $39E4 ; E ; +dw $39E5 ; F ; +dw $39E6 ; G ; +dw $39E7 ; H ; +dw $39E8 ; I ; +dw $39E9 ; J ; +dw $39EA ; K ; +dw $39EB ; L ; +dw $39EC ; M ; +dw $39ED ; N ; +dw $39EE ; O ; +dw $39EF ; P ; +dw $39F0 ; Q ; +dw $39F1 ; R ; +dw $39F2 ; S ; +dw $39F3 ; T ; +dw $39F4 ; U ; +dw $39F5 ; V ; +dw $39F6 ; W ; +dw $39F7 ; X ; +dw $39F8 ; Y ; +dw $39F9 ; Z ; $19 + ; +; Small letters yellow ; +dw $2DE0 ; A ; $1A +dw $2DE1 ; B ; +dw $2DE2 ; C ; +dw $2DE3 ; D ; +dw $2DE4 ; E ; +dw $2DE5 ; F ; +dw $2DE6 ; G ; +dw $2DE7 ; H ; +dw $2DE8 ; I ; +dw $2DE9 ; J ; +dw $2DEA ; K ; +dw $2DEB ; L ; +dw $2DEC ; M ; +dw $2DED ; N ; +dw $2DEE ; O ; +dw $2DEF ; P ; +dw $2DF0 ; Q ; +dw $2DF1 ; R ; +dw $2DF2 ; S ; +dw $2DF3 ; T ; +dw $2DF4 ; U ; +dw $2DF5 ; V ; +dw $2DF6 ; W ; +dw $2DF7 ; X ; +dw $2DF8 ; Y ; +dw $2DF9 ; Z ; $33 +dw $0000 ; Unused ; +dw $2DFB ; ' ; +dw $0000 ; Unused ; +dw $0000 ; Unused ; + ; +; Small letters green ; +dw $29E0 ; A ; $38 +dw $29E1 ; B ; +dw $29E2 ; C ; +dw $29E3 ; D ; +dw $29E4 ; E ; +dw $29E5 ; F ; +dw $29E6 ; G ; +dw $29E7 ; H ; +dw $29E8 ; I ; +dw $29E9 ; J ; +dw $29EA ; K ; +dw $29EB ; L ; +dw $29EC ; M ; +dw $29ED ; N ; +dw $29EE ; O ; +dw $29EF ; P ; +dw $29F0 ; Q ; +dw $29F1 ; R ; +dw $29F2 ; S ; +dw $29F3 ; T ; +dw $29F4 ; U ; +dw $29F5 ; V ; +dw $29F6 ; W ; +dw $29F7 ; X ; +dw $29F8 ; Y ; +dw $29F9 ; Z ; $51 +dw $29FA ; • ; + ; +; Big characters top ; +dw $3D40 ; 0 ; $53 +dw $3D41 ; 1 ; +dw $3D42 ; 2 ; +dw $3D43 ; 3 ; +dw $3D44 ; 4 ; +dw $3D45 ; 5 ; +dw $3D46 ; 6 ; +dw $3D47 ; 7 ; +dw $3D48 ; 8 ; +dw $3D49 ; 9 ; +dw $3D4A ; A ; +dw $3D4B ; B ; +dw $3D4C ; C ; +dw $3D4D ; D ; +dw $3D4E ; E ; +dw $3D4F ; F ; $62 +dw $3D60 ; G ; +dw $3D61 ; H ; +dw $3D62 ; I ; +dw $3D63 ; J ; +dw $3D64 ; K ; +dw $3D65 ; L ; +dw $3D66 ; M ; +dw $3D67 ; N ; +dw $3D68 ; O ; +dw $3D69 ; P ; +dw $3D6A ; Q ; +dw $3D6B ; R ; +dw $3D6C ; S ; +dw $3D6D ; T ; +dw $3D6E ; U ; +dw $3D6F ; V ; $72 +dw $3D80 ; W ; +dw $3D81 ; X ; +dw $3D82 ; Y ; +dw $3D83 ; Z ; +dw $0000 ; ; +dw $0000 ; ; +; Big characters bottom ; +dw $3D50 ; 0 ; $79 +dw $3D51 ; 1 ; +dw $3D52 ; 2 ; +dw $3D53 ; 3 ; +dw $3D54 ; 4 ; +dw $3D55 ; 5 ; +dw $3D56 ; 6 ; +dw $3D57 ; 7 ; +dw $3D58 ; 8 ; +dw $3D59 ; 9 ; +dw $3D5A ; A ; $83 +dw $3D5B ; B ; +dw $3D5C ; C ; +dw $3D5D ; D ; +dw $3D5E ; E ; +dw $3D5F ; F ; +dw $3D70 ; G ; +dw $3D71 ; H ; +dw $3D72 ; I ; +dw $3D73 ; J ; +dw $3D74 ; K ; +dw $3D75 ; L ; +dw $3D76 ; M ; +dw $3D77 ; N ; +dw $3D78 ; O ; +dw $3D79 ; P ; +dw $3D7A ; Q ; +dw $3D7B ; R ; +dw $3D7C ; S ; +dw $3D7D ; T ; +dw $3D7E ; U ; +dw $3D7F ; V ; $98 +dw $3D90 ; W ; +dw $3D91 ; X ; +dw $3D92 ; Y ; +dw $3D93 ; Z ; $9C +dw $0000 ; ; +dw $0000 ; ; +dw $3D9C ; ; $9F +; Lower case letters top ; +dw $3DA0 ; a ; $A0 +dw $3DA1 ; b ; +dw $3DA2 ; c ; +dw $3DA3 ; d ; +dw $3DA4 ; e ; +dw $3DA5 ; f ; +dw $3DA6 ; g ; +dw $3DA7 ; h ; +dw $3DA8 ; i ; +dw $3DA9 ; j ; +dw $3DAA ; k ; +dw $3DAB ; l ; +dw $3DAC ; m ; +dw $3DAD ; n ; +dw $3DAE ; o ; +dw $3DAF ; p ; +dw $3DC0 ; q ; $B0 +dw $3DC1 ; r ; +dw $3DC2 ; s ; +dw $3DC3 ; t ; +dw $3DC4 ; u ; +dw $3DC5 ; v ; +dw $3DC6 ; w ; +dw $3DC7 ; x ; +dw $3DC8 ; y ; +dw $3DC9 ; z ; +dw $0000 ; ; +; Lower case letters bottom; +dw $3DB0 ; a ; +dw $3DB1 ; b ; +dw $3DB2 ; c ; +dw $3DB3 ; d ; +dw $3DB4 ; e ; +dw $3DB5 ; f ; $C0 +dw $3DB6 ; g ; +dw $3DB7 ; h ; +dw $3DB8 ; i ; +dw $3DB9 ; j ; +dw $3DBA ; k ; +dw $3DBB ; l ; +dw $3DBC ; m ; +dw $3DBD ; n ; +dw $3DBE ; o ; +dw $3DBF ; p ; +dw $3DD0 ; q ; +dw $3DD1 ; r ; +dw $3DD2 ; s ; +dw $3DD3 ; t ; +dw $3DD4 ; u ; +dw $3DD5 ; v ; $D0 +dw $3DD6 ; w ; +dw $3DD7 ; x ; +dw $3DD8 ; y ; +dw $3DD9 ; z ; +dw $0000 ; ; +dw $0000 ; ; +dw $0000 ; ; +dw $0000 ; ; +; Special chars top ; +dw $3D2D ; ' ; $D9 +dw $3D2E ; " ; +dw $3D27 ; / ; +dw $3D8D ; . ; +dw $3DCA ; : ; +dw $3DCD ; _ ; +dw $3D28 ; • ; +dw $3D2F ; ... ; $E0 +dw $3DCC ; # ; +dw $3DCB ; @ ; +dw $3D29 ; |> ; +dw $3D86 ; ? ; +dw $3D87 ; ! ; +dw $3D8E ; ~ ; +dw $3D88 ; , ; +dw $3D89 ; - ; +dw $0000 ; ; +dw $0000 ; ; +dw $0000 ; ; +; Special chars bottom ; +dw $3D3D ; ' ; $EC +dw $3D3E ; " ; +dw $3D37 ; / ; +dw $3D9D ; . ; +dw $3DDA ; : ; $F0 +dw $3DDD ; _ ; +dw $3D38 ; • ; +dw $3D3F ; ... ; +dw $3DDC ; # ; +dw $3DDB ; @ ; +dw $3D39 ; |> ; +dw $3D96 ; ? ; +dw $3D97 ; ! ; +dw $3D9E ; ~ ; +dw $3D98 ; , ; +dw $3D99 ; - ; $FB +dw $0000 ; ; +dw $0000 ; ; +dw $0000 ; ; +dw $0000 ; ; diff --git a/stats/fonttable.bin b/stats/fonttable.bin deleted file mode 100755 index 898e370..0000000 --- a/stats/fonttable.bin +++ /dev/null @@ -1 +0,0 @@ -99999999999999999999999999------------------------------)))))))))))))))))))))))))))@=A=B=C=D=E=F=G=H=I=J=K=L=M=N=O=`=a=b=c=d=e=f=g=h=i=j=k=l=m=n=o=======P=Q=R=S=T=U=V=W=X=Y=Z=[=\=]=^=_=p=q=r=s=t=u=v=w=x=y=z={=|=}=~================================ \ No newline at end of file diff --git a/stats/main.asm b/stats/main.asm index ca06a4b..39368f5 100755 --- a/stats/main.asm +++ b/stats/main.asm @@ -5,16 +5,6 @@ lorom !BLT = "BCC" !BGE = "BCS" -org $A38000 -incsrc stats/credits.asm - -FontGfx: -if !FEATURE_NEW_TEXT - incbin stats/font.2bpp -else - incbin stats/font.gb -endif -FontGfxEnd: ; Custom addresses. Most are arbitrary. Feel free to make sure they're okay or moving them elsewhere within ZP CreditsPtr = $7C ; 3 bytes @@ -210,8 +200,8 @@ macro CountUnits(framesPerUnit, unitCounter) ?end: endmacro -!ColonOffset = $83 -!PeriodOffset = $80 +!ColonOffset = $8A +!PeriodOffset = $4D BlankCreditsTile = $883D RenderCreditsStatCounter: @@ -513,79 +503,47 @@ RenderLineNumber: RTS -LoadModifiedFont: - ; Based on CopyFontToVram(Bank00) - ; copies font graphics to VRAM (for BG3) +LoadCreditsTiles: + JSL.l CopyFontToVRAM ; What we wrote over - ; set name base table to vram $4000 (word) - LDA.b #$02 : STA.w OBSEL + REP #$10 + LDA.b #$80 : STA.w VMAIN + LDA.b #$01 : STA.w DMAP0 + LDA.b #$18 : STA.w BBAD0 - ; increment on writes to $2119 - LDA.b #$80 : STA.w VMAIN + ; Item tiles + LDX.w #$8200 : STX.w VMADDL + LDA.b #FileSelectNewGraphics>>16 : STA.w A1B0 + LDX.w #FileSelectNewGraphics : STX.w A1T0L + LDX.w #$0C00 : STX.w DAS0L + LDA.b #$01 : STA.w MDMAEN - ; set bank of the source address (see below) - LDA.b #FontGfx>>16 : STA.b Scrap02 + ; Small characters A-Z + LDX.w #$7F00 : STX.w VMADDL + LDA.b #SmallCharacters>>16 : STA.w A1B0 + LDX.w #SmallCharacters : STX.w A1T0L + LDX.w #$0200 : STX.w DAS0L + LDA.b #$01 : STA.w MDMAEN - REP #$30 + SEP #$10 +RTL - ; vram target address is $7000 (word) - LDA.w #$7000 : STA.w VMADDL +LoadOverworldCreditsTiles: + JSL.l CopyFontToVRAM ; What we wrote over + REP #$10 - ; $00[3] = $0E8000 (offset for the font data) - LDA.w #FontGfx : STA.b Scrap00 + ; Small characters A-Z + LDA.b #$80 : STA.w VMAIN + LDA.b #$01 : STA.w DMAP0 + LDA.b #$18 : STA.w BBAD0 + LDA.b #SmallCharacters>>16 : STA.w A1B0 + LDX.w #SmallCharacters : STX.w A1T0L + LDX.w #$0200 : STX.w DAS0L + LDX.w #$7F00 : STX.w VMADDL + LDA.b #$01 : STA.w MDMAEN - ; going to write 0x1000 bytes (0x800 words) - LDX.w #FontGfxEnd-FontGfx/2-1 - -.nextWord - - ; read a word from the font data - LDA.b [$00] : STA.w VMDATAL - - ; increment source address by 2 - INC.b Scrap00 : INC.b Scrap00 - - DEX : BPL .nextWord - - SEP #$30 - JSL LoadFullItemTilesCredits - - RTL - -LoadFullItemTilesCredits: - ; Based on CopyFontToVram(Bank00) - ; copies font graphics to VRAM (for BG3) - - ; increment on writes to $2119 - LDA.b #$80 : STA.w VMAIN - - ; set bank of the source address (see below) - LDA.b #FileSelectNewGraphics>>16 : STA.b Scrap02 - - REP #$30 - - ; vram target address is $8000 (word) (Wraps to start of VRAM on normal SNES, but using the correct address so it works on extended VRAM machines) - LDA.w #$8000 : STA.w VMADDL - - ; $00[3] = $0E8000 (offset for the font data) - LDA.w #FileSelectNewGraphics : STA.b Scrap00 - - ; going to write 0x1000 bytes (0x800 words) - LDX.w #$800-1 - - .nextWord - - ; read a word from the font data - LDA.b [$00] : STA.w VMDATAL - - ; increment source address by 2 - INC.b Scrap00 : INC.b Scrap00 - - DEX : BPL .nextWord - - SEP #$30 - - RTL + SEP #$10 +RTL CheckFontTable: TAY @@ -620,39 +578,27 @@ DrawEndingItems: LDA.b #$01 : STA.b NMISTRIPES RTS -FontTable: - incbin stats/fonttable.bin - -CreditsStats: -incsrc stats/statConfig.asm -dw $FFFF - -org $0EEDD9 - JSL EndingItems - -org $0EEDAF - JSL NearEnding - -org $0EE651 - JSL LoadModifiedFont - -org $0EE828 - JSL PreparePointer - LDA.b [CreditsPtr],Y - NOP -org $0EE83F - LDA.b [CreditsPtr],Y - NOP -org $0EE853 - LDA.b [CreditsPtr],Y - NOP - AND.w #$00FF - ASL A - JSL CheckFontTable - -org $0EE86D - JSL RenderCreditsStatCounter - JMP.w AfterDeathCounterOutput - -org $8EE8FD - AfterDeathCounterOutput: +;================================================================================ +; Dialog Pointer Override +;-------------------------------------------------------------------------------- +EndingSequenceTableOverride: + PHY + PHX + TYX + LDA.l EndingSequenceText, X + PLX + STA.w $1008, X + PLY +RTL +;-------------------------------------------------------------------------------- +EndingSequenceTableLookupOverride: + PHX : PHB + PHK : PLB + TYX + LDA.l EndingSequenceText, X : AND.w #$00FF + ASL + TAY + LDA.w FontTable,Y + PLB : PLX +RTL +;-------------------------------------------------------------------------------- diff --git a/stats/statConfig.asm b/stats/statConfig.asm index f100159..3ec3db9 100755 --- a/stats/statConfig.asm +++ b/stats/statConfig.asm @@ -46,6 +46,7 @@ macro AddStat(address, type, shiftRight, bits, digits, xPos, lineNumber) dl

endmacro +CreditsStats: %AddStat(SwordTime, 1, 0, 32, 4, !FIRST_SWORD_X, !FIRST_SWORD_Y) %AddStat(BootsTime, 1, 0, 32, 4, !PEGASUS_BOOTS_X, !PEGASUS_BOOTS_Y) %AddStat(FluteTime, 1, 0, 32, 4, !FLUTE_X, !FLUTE_Y) @@ -65,3 +66,5 @@ endmacro %AddStat(LagTime, 1, 0, 32, 4, !TOTAL_LAG_TIME_X, !TOTAL_LAG_TIME_Y) %AddStat(TotalItemCounter, 0, 0, 16, 3, !COLLECTION_RATE_X, !COLLECTION_RATE_Y) %AddStat(NMIFrames, 1, 0, 32, 4, !TOTAL_TIME_X, !TOTAL_TIME_Y) + +dw $FFFF diff --git a/tables.asm b/tables.asm index f903739..b36fee9 100644 --- a/tables.asm +++ b/tables.asm @@ -1129,16 +1129,16 @@ db $62, $EB, $00, $13, $75, $6B, $71, $6E, $9F, $64, $6B, $71, $6F, $61 db $63, $0B, $00, $13, $9B, $91, $97, $94, $9F, $8A, $91, $97, $95, $87 ; finger webs for sale db $62, $66, $00, $27, $1F, $22, $27, $20, $1E, $2B, $9F, $30, $1E, $1B, $2C, $9F, $1F, $28, $2B, $9F, $2C, $1A, $25, $1E -db $62, $E8, $00, $1F, $76, $6B, $6E, $5D, $77, $6F, $9F, $73, $5D, $70, $61, $6E, $62, $5D, $68, $68 -db $63, $08, $00, $1F, $9C, $91, $94, $83, $9D, $95, $9F, $99, $83, $96, $87, $94, $88, $83, $8E, $8E +db $62, $E8, $00, $1F, $76, $6B, $6E, $5D, $D9, $6F, $9F, $73, $5D, $70, $61, $6E, $62, $5D, $68, $68 +db $63, $08, $00, $1F, $9C, $91, $94, $83, $EC, $95, $9F, $99, $83, $96, $87, $94, $88, $83, $8E, $8E ; the witch and assistant db $62, $64, $00, $2D, $2D, $21, $1E, $9F, $30, $22, $2D, $1C, $21, $9F, $1A, $27, $1D, $9F, $1A, $2C, $2C, $22, $2C, $2D, $1A, $27, $2D db $62, $EB, $00, $13, $69, $5D, $63, $65, $5F, $9F, $6F, $64, $6B, $6C db $63, $0B, $00, $13, $8F, $83, $89, $8B, $85, $9F, $95, $8A, $91, $92 ; twin lumberjacks db $62, $68, $00, $1F, $2D, $30, $22, $27, $9F, $25, $2E, $26, $1B, $1E, $2B, $23, $1A, $1C, $24, $2C -db $62, $E9, $00, $1B, $73, $6B, $6B, $60, $6F, $69, $61, $6A, $77, $6F, $9F, $64, $71, $70 -db $63, $09, $00, $1B, $99, $91, $91, $86, $95, $8F, $87, $90, $9D, $95, $9F, $8A, $97, $96 +db $62, $E9, $00, $1B, $73, $6B, $6B, $60, $6F, $69, $61, $6A, $D9, $6F, $9F, $64, $71, $70 +db $63, $09, $00, $1B, $99, $91, $91, $86, $95, $8F, $87, $90, $EC, $95, $9F, $8A, $97, $96 ; ocarina boy plays again db $62, $64, $00, $2D, $28, $1C, $1A, $2B, $22, $27, $1A, $9F, $1B, $28, $32, $9F, $29, $25, $1A, $32, $2C, $9F, $1A, $20, $1A, $22, $27 db $62, $E9, $00, $19, $64, $5D, $71, $6A, $70, $61, $60, $9F, $63, $6E, $6B, $72, $61 @@ -1166,8 +1166,8 @@ db $63, $0B, $00, $13, $8E, $91, $95, $96, $9F, $99, $91, $91, $86, $95 ; master sword db $62, $66, $00, $27, $1A, $27, $1D, $9F, $2D, $21, $1E, $9F, $26, $1A, $2C, $2D, $1E, $2B, $9F, $2C, $30, $28, $2B, $1D db $62, $A8, $00, $1D, $4A, $43, $3C, $3C, $47, $4A, $9F, $38, $3E, $38, $40, $45, $52, $52, $52 -db $62, $EC, $00, $0F, $62, $6B, $6E, $61, $72, $61, $6E, $78 -db $63, $0C, $00, $0F, $88, $91, $94, $87, $98, $87, $94, $9E +db $62, $EC, $00, $0F, $62, $6B, $6E, $61, $72, $61, $6E, $E5 +db $63, $0C, $00, $0F, $88, $91, $94, $87, $98, $87, $94, $F8 ;-------------------------------------------------------------------------------- ; org $8EECC0 ; PC 0x76CC0 poiters for above scenes ; dw $0000, $003C, $006A, $00AC, $00EA, $012A, $015D, $019D, $01D4, $020C, $0249, $0284, $02B7, $02F1, $0329, $0359, $039C diff --git a/textrenderer.asm b/textrenderer.asm index 73d5c5e..0232d27 100644 --- a/textrenderer.asm +++ b/textrenderer.asm @@ -26,9 +26,7 @@ RenderCharSetColorExtended: RenderCharToMapExtended: phx : tya : asl #2 : tax - lda.l FontProperties, x - and.w #$0001 - bne .uncompressed + lda.l FontProperties, x : bit.w #$0001 : bne .uncompressed .compressed plx lda.w #$0000 @@ -104,9 +102,7 @@ RenderCharThinTable: RenderCharExtended: pha asl : asl : tax - lda.l FontProperties, x - and.w #$00ff - bne .renderUncompressed + lda.l FontProperties, x : and.w #$00ff : bne .renderUncompressed .renderOriginal pla : asl : tax : asl : adc.b Scrap0E @@ -209,39 +205,39 @@ FontProperties: 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 $0000, $0000 ; 30 + dw $0000, $0000 ; 31 + dw $0000, $0000 ; 32 + dw $0000, $0000 ; 33 + dw $0000, $0000 ; 34 + dw $0000, $0000 ; 35 + dw $0000, $0000 ; 36 + dw $0000, $0000 ; 37 + dw $0000, $0000 ; 38 + dw $0000, $0000 ; 39 + dw $0000, $0000 ; 3A + dw $0000, $0000 ; 3B + dw $0000, $0000 ; 3C + dw $0000, $0000 ; 3D + dw $0000, $0000 ; 3E + dw $0000, $0000 ; 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 ; 40 + dw $0000, $0000 ; 41 + dw $0000, $0000 ; 42 + dw $0000, $0000 ; 43 + dw $0000, $0000 ; 44 + dw $0000, $0000 ; 45 + dw $0000, $0000 ; 46 + dw $0000, $0000 ; 47 + dw $0000, $0000 ; 48 + dw $0000, $0000 ; 49 + dw $0000, $0000 ; 4A + dw $0000, $0000 ; 4B + dw $0000, $0000 ; 4C + dw $0000, $0000 ; 4D + dw $0000, $0000 ; 4E + dw $8001, $0DF0 ; 4F ; dw $0000, $0000 ; 50 dw $0000, $0000 ; 51 @@ -318,15 +314,15 @@ FontProperties: 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, $0AD0 ; 97 ; / + dw $8001, $0AE0 ; 98 ; • + dw $8001, $02A0 ; 99 ; Cursor |> + dw $0000, $0000 ; 9A ; smiley lookin JP char + dw $8001, $06A0 ; 9B ; Link face left + dw $8001, $06B0 ; 9C ; Link face right + dw $8001, $06E0 ; 9D ; ' + dw $8001, $0AF0 ; 9E ; " + dw $8001, $02E0 ; 9F ; ellipsis ... dw $8001, $0800 ; A0 ; 0 dw $8001, $0810 ; A1 @@ -374,43 +370,43 @@ FontProperties: dw $8001, $02B0 ; C9 ; - dw $8000, $0000 ; CA dw $8000, $0000 ; CB - dw $8000, $02E0 ; CC ; ... + dw $0000, $0000 ; CC ; Blank char dw $8001, $02C0 ; CD ; . dw $8001, $02F0 ; CE ; ~ - dw $8000, $0000 ; CF + 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 $8001, $0400 ; D0 ; a + dw $8001, $0410 ; D1 + dw $8001, $0420 ; D2 + dw $8001, $0430 ; D3 + dw $8001, $0440 ; D4 + dw $8001, $0450 ; D5 + dw $8001, $0460 ; D6 + dw $8001, $0470 ; D7 + dw $8001, $0480 ; D8 + dw $8001, $0490 ; D9 + dw $8001, $04A0 ; DA + dw $8001, $04B0 ; DB + dw $8001, $04C0 ; DC + dw $8001, $04D0 ; DD + dw $8001, $04E0 ; DE + dw $8001, $04F0 ; 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 $8001, $0600 ; E0 ; q + dw $8001, $0610 ; E1 + dw $8001, $0620 ; E2 + dw $8001, $0630 ; E3 + dw $8001, $0640 ; E4 + dw $8001, $0650 ; E5 + dw $8001, $0660 ; E6 + dw $8001, $0670 ; E7 + dw $8001, $0680 ; E8 + dw $8001, $0690 ; E9 ; z + dw $8001, $0A80 ; EA ; : + dw $8001, $0A90 ; EB ; @ (thin) + dw $8001, $0AA0 ; EC ; # (thin) + dw $8001, $0A00 ; ED ; _ + dw $0000, $0000 ; EE ; dw $0000, $0000 ; EF dw $0000, $0000 ; F0 @@ -428,4 +424,4 @@ FontProperties: dw $0000, $0000 ; FC dw $0000, $0000 ; FD dw $0000, $0000 ; FE - dw $8001, $0EF0 ; FF ; + dw $8001, $0DF0 ; FF ; diff --git a/utilities.asm b/utilities.asm index 63c11bf..b795183 100644 --- a/utilities.asm +++ b/utilities.asm @@ -383,7 +383,7 @@ LoadItemPalette: RTL TransferVRAMStripes: - JSL.l TransferNumericStripes + JSL.l TransferNewNameStripes JSL.l DoDungeonMapBossIcon LDA.b NMISTRIPES : CMP.b #$01 ; What we wrote over RTL diff --git a/vanillalabels.asm b/vanillalabels.asm index 7bddce4..c2d4538 100644 --- a/vanillalabels.asm +++ b/vanillalabels.asm @@ -26,6 +26,7 @@ GetAnimatedSpriteTile_variable = $80D52D Attract_DecompressStoryGfx = $80D84E InitializeTilesets = $80E1DB LoadSelectScreenGfx = $80E529 +CopyFontToVRAM = $80E596 PrepDungeonExit = $80F945 Mirror_InitHdmaSettings = $80FDEE Dungeon_LoadRoom = $81873A @@ -62,6 +63,7 @@ OAM_AllocateDeferToPlayerLong = $86F86A Player_HaltDashAttackLong = $8791B3 Link_ReceiveItem = $87999D Sprite_CheckIfPlayerPreoccupied = $87F4AA +Sprite_AttemptDamageToPlayerPlusRecoilLong = $886F42 Ancilla_Main = $888242 Ancilla_ReceiveItem = $88C3AE Ancilla_BreakTowerSeal_draw_single_crystal = $88CE93 @@ -106,6 +108,7 @@ HUD_RebuildIndoor_Palace = $8DFA88 HUD_RebuildLong2 = $8DFA88 RebuildHUD_update = $8DFAA5 Messaging_Text = $8EEE10 +AfterDeathCounterOutput = $8E8FD Overworld_TileAttr = $8FFD94 Overworld_DrawPersistentMap16 = $9BC97C Palette_Sword = $9BED03 @@ -128,6 +131,7 @@ Sprite_PlayerCantPassThrough = $9EF4E7 ; Local routines (use JSR) ;=================================================================================================== LoadBackgroundGraphics = $80E649 +LoadBackgroundGraphics_arbitrary = $80E64D RoomTag_PrizeTriggerDoor_open = $81C529 RoomTag_PrizeTriggerDoor_exit = $81C529 RoomTag_GetHeartForPrize = $81C709 @@ -152,6 +156,8 @@ ItemMenu_DrawEquippedYItem = $8DEB3A ItemMenu_DrawEquippedYItem_exit = $8DECE6 ItemMenu_DrawEquipment_dungeonitems = $8DEDCC DrawEquipment = $8DED29 +UpdateHUDBuffer_update_item_check_arrows = $8DFB41 +RenderText_DecompressAndDrawSingle = $8EF4FB DecompressFontGFX = $8EF572 CopyDecompressedCharToTransferBuffer = $8EF5BC CopyDecompressedToFullBuffer = $8EF6A8 @@ -175,3 +181,4 @@ WorldMapIcon_AdjustCoordinate = $8AC59B WorldMap_CalculateOAMCoordinates = $8AC3B1 WorldMap_HandleSpriteBlink = $8AC52E WorldMap_RedXChars = $8ABF70 +TextCharMasks = $8EB844