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
This commit is contained in:
cassidoxa
2023-08-11 02:10:54 -04:00
parent 56cb17a0a3
commit 103f072cf3
37 changed files with 1028 additions and 508 deletions

View File

@@ -530,7 +530,7 @@ CreditsLineBlank:
%blankline()
%bigcredits("AND...")
%bigcredits("AND&")
%blankline()

Binary file not shown.

268
stats/fonttable.asm Normal file
View File

@@ -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 ; <sp> ; $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 ; ;

View File

@@ -1 +0,0 @@
ź9°9±9´9µ9¶9·9Ü9Ý9Ţ9ß9đ9ń9ň9ó9ô9ő9ö9÷9ř9ů9ú9ű9ü9ý9ţ9ź-°-±-´-µ-¶-·-Ü-Ý-Ţ-ß-đ-ń-ň-ó-ô-ő-ö-÷-ř-ů-ú-ű-ü-ý-ţ-©-ą-ş-»-ź)°)±)´)µ)¶)·)Ü)Ý)Ţ)ß)đ)ń)ň)ó)ô)ő)ö)÷)ř)ů)ú)ű)ü)ý)ţ)Ľ)@=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=€=<3D>==<3D>=¨=‡=P=Q=R=S=T=U=V=W=X=Y=Z=[=\=]=^=_=p=q=r=s=t=u=v=w=x=y=z={=|=}=~==<3D>===“=¸=—=<3D>=Ŕ=Á=Â=Ă=<3D>=†=‰=Ä=‰=Ĺ=Ć=Ç=˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙Đ=Ń=Ň=Ó=<3D>==™˝Ô=™=Ő=Ö=×=˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙˙

View File

@@ -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
;--------------------------------------------------------------------------------

View File

@@ -46,6 +46,7 @@ macro AddStat(address, type, shiftRight, bits, digits, xPos, lineNumber)
dl <address>
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