Порядок в каталогах

This commit is contained in:
sShemet
2025-11-04 23:06:09 +05:00
parent 7b0bae2f55
commit 73eab3e768
56 changed files with 1751 additions and 3163 deletions

BIN
3_CD_EXTRA/BIN/SLPS_028.26 Normal file

Binary file not shown.

View File

@@ -0,0 +1,64 @@
00000000 0
00008009 myaddr
80019000 originalkanjiprint
80019D70 initcopycharchain
80019F0C makeshadowsmallchar
8001ADC8 storecolor
800522F0 setdrawtpage
80090000 externalprint
80090024 myprintlineroutine
80090074 initdma
80090074 update_free_dma
800900A0 preparedmachain
800900C8 prepareattrs
800900EC init_cputovram_vars_int_scratch
8009012C coords_size_cputovram_scr
800901E4 init_rect_cmd_in_scr
80090204 positionprocessing
8009020C addoffsetx
80090210 calculatexoffset
80090228 ycoordinateprocessing
80090230 addoffsety
80090234 calculateyoffset
8009025C loadcharacter
8009027C nextchar
80090280 isfirstchar
80090288 setup_x_coord_in_rect_scratch
80090298 some_printparams_save
800902A8 end_x_coord_rect
800902BC pageloop
800902BC update_free_dma2
800902EC copyrectcmd
80090318 print_params_and_chain_addr_set
80090368 notfirstchar
80090370 cputovram_cmd_from_scratch_copy
80090370 halfkanji_loop
80090370 update_free_dma3
800903C4 copyby2bytes
80090418 copy16bytes
80090444 last4bytescopy
80090458 link_char_dma_cmds
8009049C enabled_lower_kanji
800904DC disabled_lower_kanji
800904F0 spacecharjumphere
80090518 textend
80090534 pagetloop
80090594 returnfromfunction
800905C8 makecharpixelscustom
80090618 charloop
800906C8 charloaded
800906E4 notshadow
800906F4 returncharsinstring
80090710 ismy1bytestring
8009072C notand1
8009073C getnewchar
80090740 startreading
8009075C calcnextxcustom
80090784 japoldtext
8009078C ihavestringlength
800907A4 retuncharstocity
800907C0 ismy1bytecity
800907D4 retuncharstocitydiv2
800907F0 ismy1bytecitydiv2
8009080C notand1_2


View File

@@ -0,0 +1,664 @@
00000000 0
00008009 myaddr
80019000 originalkanjiprint
80019D70 initcopycharchain
80019F0C makeshadowsmallchar
8001ADC8 storecolor
800522F0 setdrawtpage
80090000 externalprint
80090024 myprintlineroutine
80090074 initdma
80090074 update_free_dma
800900A0 preparedmachain
800900C4 prepareattrs
800900EC init_cputovram_vars_int_scratch
8009012C coords_size_cputovram_scr
800901E4 init_rect_cmd_in_scr
80090204 positionprocessing
8009020C addoffsetx
80090210 calculatexoffset
80090228 ycoordinateprocessing
80090230 addoffsety
80090234 calculateyoffset
8009025C loadcharacter
8009027C nextchar
80090280 isfirstchar
80090288 setup_x_coord_in_rect_scratch
80090298 some_printparams_save
800902A8 end_x_coord_rect
800902BC pageloop
800902BC update_free_dma2
800902EC copyrectcmd
80090318 previous_last_cmd_link_with_current
80090368 notfirstchar
80090370 cputovram_cmd_from_scratch_copy
80090370 halfkanji_loop
80090370 update_free_dma3
800903C4 copyby2bytes
80090418 copy16bytes
80090444 last4bytescopy
80090458 link_char_dma_cmds
8009049C enabled_lower_kanji
800904DC disabled_lower_kanji
800904F0 spacecharjumphere
80090518 textend
80090534 pagetloop
80090594 returnfromfunction
800905C8 makecharpixelscustom
80090618 charloop
800906C8 charloaded
800906E4 notshadow
800906F4 returncharsinstring
80090710 ismy1bytestring
8009072C notand1
8009073C getnewchar
80090740 startreading
8009075C calcnextxcustom
80090784 japoldtext
8009078C ihavestringlength
800907A4 retuncharstocity
800907C0 ismy1bytecity
800907D4 retuncharstocitydiv2
800907F0 ismy1bytecitydiv2
8009080C notand1_2
\\Documents\\GitHub\\Persona2-PSX-asm-sources\\3_CD_EXTRA\\BIN\\SLPS_028.26"",0x8000F800; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 18
8000F800 .org 0x80090000 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 20
80090000 externalprint: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 22
80090000 move r3,s3 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 24
80090004 move s3,r4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 25
80090008 lhu v0,0x0(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 27
8009000C move s3,r3 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 28
80090010 srl v1,v0,0xD ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 29
80090014 bne v1,zero,0x80090024 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 30
80090018 clear v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 31
8009001C j 0x80019000 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 32
80090020 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 33
80090024 myprintlineroutine: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 35
80090024 addiu sp,sp,-0x50 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 36
80090028 sw s6,0x40(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 37
8009002C move s6,a0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 38
80090030 sw s1,0x2C(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 39
80090034 move s1,a1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 40
80090038 sw s2,0x30(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 41
8009003C move s2,a2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 42
80090040 sw s3,0x34(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 43
80090044 andi v0,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 48
80090048 addiu s6,0x2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 49
8009004C lui s3,-0x7FF7 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 52
80090050 sh v0,-0x10(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 53
80090054 sh v0,-0xE(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 54
80090058 lui s3,0x1F80 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 59
8009005C ori s3,s3,0x3D0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 60
80090060 lui t0,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 62
80090064 ori t0,t0,-0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 63
80090068 sw s0,0x28(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 65
8009006C andi s0,a3,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 66
80090070 move a0,s0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 67
80090074 initdma: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 70
80090074 update_free_dma: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 71
80090074 lui a3,-0x7FF8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 72
80090078 lui a2,-0x100 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 73
8009007C addiu t1,a3,-0x6C20 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 74
80090080 lw v1,-0x6C20(a3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 75
80090084 lbu a1,0x60(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 76
80090088 lui v0,-0x8000 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 77
8009008C sw ra,0x4C(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 80
80090090 sw s8,0x48(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 81
80090094 sw s7,0x44(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 82
80090098 sw s5,0x3C(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 83
8009009C sw s4,0x38(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 84
800900A0 preparedmachain: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 87
800900A0 and a2,v1,a2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 88
800900A4 and v1,v1,t0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 89
800900A8 or s4,v1,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 90
800900AC lw v0,0x4(t1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 92
800900B0 lw v1,0x0(s4) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 93
800900B4 addiu v0,v0,-0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 94
800900B8 and v1,v1,t0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 95
800900BC or a2,a2,v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 96
800900C0 sw v0,0x4(t1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 97
800900C4 prepareattrs: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 100
800900C4 andi a1,a1,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 101
800900C8 jal 0x8001ADC8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 102
800900CC sw a2,-0x6C20(a3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 103
800900D0 move a0,s4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 104
800900D4 sll a1,s1,0x10 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 107
800900D8 sra a1,a1,0x10 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 108
800900DC sll a2,s2,0x10 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 109
800900E0 sra a2,a2,0x10 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 110
800900E4 jal 0x80019D70 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 111
800900E8 move a3,s0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 112
800900EC init_cputovram_vars_int_scratch: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 114
800900EC lui a3,0x1F80 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 115
800900F0 ori a3,a3,0x348 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 116
800900F4 ori v0,r0,0x2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 120
800900F8 sh v0,0x1C(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 121
800900FC ori v0,r0,0xC ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 122
80090100 ori a1,r0,0xD ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 123
80090104 lui a0,-0x6000 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 124
80090108 sh v0,0x1E(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 126
8009010C ori a1,r0,0x10 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 127
80090110 sb a1,0x3(a3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 128
80090114 sw a0,0x4(a3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 129
80090118 lhu t0,0x9C(gp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 131
8009011C lhu v0,0x9E(gp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 132
80090120 lui v1,0x100 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 133
80090124 lui at,0x1F80 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 135
80090128 sw v1,0x388(at) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 136
8009012C coords_size_cputovram_scr: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 142
8009012C lh a1,0x9C(gp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 143
80090130 move s8,s2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 144
80090134 sh t0,0x18(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 148
80090138 sh v0,0x1A(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 149
8009013C lw a0,0x18(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 150
80090140 lw v1,0x18(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 157
80090144 lw v0,0x1C(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 158
80090148 move t0,a1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 159
8009014C sw a0,0x8(a3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 160
80090150 sw v0,0xC(a3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 163
80090154 lui v0,-0x7FFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 166
80090158 lui t8,0x1F80 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 170
8009015C ori t8,t8,0x2E0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 171
80090160 addiu t7,v0,0x3E8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 172
80090164 lwl t5,0x3(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 173
80090168 lwr t5,0x0(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 174
8009016C lwl t6,0x7(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 175
80090170 lwr t6,0x4(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 176
80090174 swl t5,0x3(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 177
80090178 swr t5,0x0(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 178
8009017C swl t6,0x7(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 179
80090180 swr t6,0x4(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 180
80090184 lwl t5,0xB(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 181
80090188 lwr t5,0x8(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 182
8009018C lwl t6,0xF(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 183
80090190 lwr t6,0xC(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 184
80090194 swl t5,0xB(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 185
80090198 swr t5,0x8(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 186
8009019C swl t6,0xF(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 187
800901A0 swr t6,0xC(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 188
800901A4 lwl t5,0x13(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 189
800901A8 lwr t5,0x10(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 190
800901AC lwl t6,0x17(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 191
800901B0 lwr t6,0x14(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 192
800901B4 swl t5,0x13(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 193
800901B8 swr t5,0x10(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 194
800901BC swl t6,0x17(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 195
800901C0 swr t6,0x14(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 196
800901C4 lwl t5,0x1B(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 197
800901C8 lwr t5,0x18(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 198
800901CC lwl t6,0x1F(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 199
800901D0 lwr t6,0x1C(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 200
800901D4 swl t5,0x1B(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 201
800901D8 swr t5,0x18(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 202
800901DC swl t6,0x1F(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 203
800901E0 swr t6,0x1C(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 204
800901E4 init_rect_cmd_in_scr: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 207
800901E4 ori v0,r0,0x4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 208
800901E8 sb v0,0x3(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 209
800901EC ori v0,r0,0x64 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 210
800901F0 sb v0,0x7(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 211
800901F4 ori v0,r0,0x80 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 212
800901F8 sb v0,0x4(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 213
800901FC sb v0,0x5(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 214
80090200 sb v0,0x6(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 215
80090204 positionprocessing: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 220
80090204 bgez a1,0x80090210 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 221
80090208 sh s1,0x20(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 222
8009020C addoffsetx: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 224
8009020C addiu t0,a1,0x3F ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 225
80090210 calculatexoffset: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 227
80090210 sra v0,t0,0x6 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 228
80090214 sll v0,v0,0x6 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 229
80090218 subu v0,a1,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 230
8009021C lh v1,0x9E(gp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 231
80090220 sll v0,v0,0x2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 232
80090224 sb v0,0xC(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 233
80090228 ycoordinateprocessing: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 236
80090228 bgez v1,0x80090234 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 237
8009022C move v0,v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 238
80090230 addoffsety: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 240
80090230 addiu v0,v1,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 241
80090234 calculateyoffset: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 243
80090234 sra v0,v0,0x8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 244
80090238 sll v0,v0,0x8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 245
8009023C subu v0,v1,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 246
80090240 sb v0,0xD(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 247
80090244 lhu v1,0xA4(gp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 252
80090248 ori v0,r0,0x8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 253
8009024C sh v0,0x10(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 254
80090250 ori v0,r0,0xC ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 255
80090254 sh v0,0x12(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 256
80090258 sh v1,0xE(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 257
8009025C loadcharacter: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 260
8009025C lbu a0,0x0(s6) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 261
80090260 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 262
80090264 addiu s6,s6,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 268
80090268 lui s1,-0x7FF8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 271
8009026C addiu s5,s1,-0x6C20 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 272
80090270 lui s0,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 273
80090274 ori s0,s0,-0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 274
80090278 lui s7,-0x8000 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 275
8009027C nextchar: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 278
8009027C addiu r4,r4,-0x20 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 279
80090280 isfirstchar: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 282
80090280 jal 0x800905C8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 283
80090284 clear s2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 284
80090288 setup_x_coord_in_rect_scratch: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 287
80090288 lw v0,0xAC(gp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 288
8009028C lhu v1,0x4(s4) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 289
80090290 addiu v0,v0,0x6 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 290
80090294 mult v1,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 291
80090298 some_printparams_save: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 293
80090298 lui t2,-0x100 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 294
8009029C move t4,s4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 295
800902A0 addiu t3,sp,0x10 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 296
800902A4 move t1,s4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 297
800902A8 end_x_coord_rect: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 299
800902A8 sh s8,0xA(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 300
800902AC lhu t5,0x20(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 301
800902B0 mflo t6 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 302
800902B4 addu v0,t5,t6 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 303
800902B8 sh v0,0x8(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 304
800902BC pageloop: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 306
800902BC update_free_dma2: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 307
800902BC lw v0,-0x6C20(s1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 309
800902C0 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 310
800902C4 and a0,v0,t2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 311
800902C8 and v0,v0,s0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 312
800902CC or a1,v0,s7 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 313
800902D0 lw v0,0x4(s5) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 315
800902D4 lw v1,0x0(a1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 316
800902D8 addiu v0,v0,-0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 317
800902DC and v1,v1,s0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 318
800902E0 or a0,a0,v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 319
800902E4 sw v0,0x4(s5) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 320
800902E8 sw a0,-0x6C20(s1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 321
800902EC copyrectcmd: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 324
800902EC lw t7,0x0(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 325
800902F0 lw t8,0x4(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 326
800902F4 lw t5,0x8(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 327
800902F8 lw t6,0xC(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 328
800902FC sw t7,0x0(a1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 330
80090300 sw t8,0x4(a1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 331
80090304 sw t5,0x8(a1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 332
80090308 sw t6,0xC(a1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 333
8009030C lw t7,0x10(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 335
80090310 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 336
80090314 sw t7,0x10(a1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 337
80090318 previous_last_cmd_link_with_current: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 340
80090318 lw v1,0x18(t1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 341
8009031C lw v0,0x0(a1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 342
80090320 lw v1,0x0(v1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 343
80090324 and v0,v0,t2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 344
80090328 and v1,v1,s0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 345
8009032C or v0,v0,v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 346
80090330 sw v0,0x0(a1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 347
80090334 lw a0,0x18(t1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 349
80090338 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 350
8009033C lw v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 351
80090340 and v1,a1,s0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 352
80090344 and v0,v0,t2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 353
80090348 or v0,v0,v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 354
8009034C sw v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 355
80090350 sw a1,0x18(t1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 356
80090354 lhu v0,0x4(t4) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 360
80090358 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 361
8009035C bne v0,zero,0x80090368 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 362
80090360 clear t0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 363
80090364 sw a1,0x28(t1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 365
80090368 notfirstchar: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 371
80090368 move a3,t0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 373
8009036C move a2,t3 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 374
80090370 cputovram_cmd_from_scratch_copy: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 379
80090370 update_free_dma3: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 380
80090370 halfkanji_loop: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 381
80090370 lui a1,0x1F80 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 382
80090374 lw v0,-0x6C20(s1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 383
80090378 ori a1,a1,0x348 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 384
8009037C and v0,v0,s0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 385
80090380 or v0,v0,s7 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 386
80090384 sw v0,0x0(a2) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 388
80090388 lw v1,-0x6C20(s1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 390
8009038C lw v0,0x0(v0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 391
80090390 lw a0,0x4(s5) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 393
80090394 and v1,t2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 394
80090398 and v0,s0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 395
8009039C or v1,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 396
800903A0 addiu a0,-0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 397
800903A4 sw v1,-0x6C20(s1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 399
800903A8 sw a0,0x4(s5) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 400
800903AC lw a0,0x0(a2) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 402
800903B0 addu v1,a3,a1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 403
800903B4 or v0,v1,a0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 404
800903B8 andi v0,v0,0x3 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 405
800903BC beqz v0,0x80090418 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 406
800903C0 addiu v0,v1,0x40 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 408
800903C4 copyby2bytes: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 414
800903C4 lwl t7,0x3(v1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 415
800903C8 lwr t7,0x0(v1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 416
800903CC lwl t8,0x7(v1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 417
800903D0 lwr t8,0x4(v1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 418
800903D4 lwl t5,0xB(v1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 419
800903D8 lwr t5,0x8(v1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 420
800903DC lwl t6,0xF(v1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 421
800903E0 lwr t6,0xC(v1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 422
800903E4 swl t7,0x3(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 424
800903E8 swr t7,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 425
800903EC swl t8,0x7(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 426
800903F0 swr t8,0x4(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 427
800903F4 swl t5,0xB(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 428
800903F8 swr t5,0x8(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 429
800903FC swl t6,0xF(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 430
80090400 swr t6,0xC(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 431
80090404 addiu v1,0x10 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 433
80090408 bne v1,v0,0x800903C4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 434
8009040C addiu a0,a0,0x10 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 435
80090410 j 0x80090444 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 437
80090414 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 438
80090418 copy16bytes: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 441
80090418 lw t7,0x0(v1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 442
8009041C lw t8,0x4(v1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 443
80090420 lw t5,0x8(v1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 444
80090424 lw t6,0xC(v1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 445
80090428 sw t7,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 447
8009042C sw t8,0x4(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 448
80090430 sw t5,0x8(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 449
80090434 sw t6,0xC(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 450
80090438 addiu v1,0x10 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 452
8009043C bne v1,v0,0x80090418 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 453
80090440 addiu a0,a0,0x10 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 454
80090444 last4bytescopy: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 457
80090444 lwl t7,0x3(v1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 458
80090448 lwr t7,0x0(v1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 459
8009044C nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 462
80090450 swl t7,0x3(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 463
80090454 swr t7,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 464
80090458 link_char_dma_cmds: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 476
80090458 lw a0,0x10(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 477
8009045C lw v1,0x18(t1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 478
80090460 lw v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 479
80090464 lw v1,0x0(v1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 480
80090468 and v0,t2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 481
8009046C and v1,s0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 482
80090470 or v0,v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 483
80090474 sw v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 484
80090478 lw a0,0x18(t1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 486
8009047C lw v1,0x10(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 487
80090480 lw v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 488
80090484 and v1,s0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 489
80090488 and v0,t2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 490
8009048C or v0,v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 491
80090490 sw v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 492
80090494 j 0x800904DC ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 495
80090498 lw v0,0x10(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 496
8009049C enabled_lower_kanji: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 499
8009049C lw a0,0x14(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 503
800904A0 lw v1,0x10(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 504
800904A4 lw v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 505
800904A8 lw v1,0x0(v1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 506
800904AC and v0,t2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 507
800904B0 and v1,s0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 508
800904B4 or v0,v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 509
800904B8 sw v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 510
800904BC lw a0,0x10(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 512
800904C0 lw v1,0x14(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 513
800904C4 lw v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 514
800904C8 and v1,s0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 515
800904CC and v0,t2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 516
800904D0 or v0,v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 517
800904D4 sw v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 518
800904D8 lw v0,0x14(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 520
800904DC disabled_lower_kanji: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 522
800904DC addiu s2,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 523
800904E0 sw v0,0x18(t1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 524
800904E4 sltiu v0,s2,0x2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 526
800904E8 bnez v0,0x800902BC ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 527
800904EC addiu t1,t1,0x4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 528
800904F0 spacecharjumphere: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 531
800904F0 lhu v0,0x4(s4) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 532
800904F4 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 533
800904F8 addiu v0,v0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 534
800904FC lui t3,-0x7FF7 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 537
80090500 lhu v1,-0x10(t3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 538
80090504 lbu r4,0x0(s6) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 539
80090508 addiu s6,s6,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 540
8009050C sh v0,0x4(s4) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 541
80090510 bne v0,v1,0x8009027C ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 543
80090514 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 544
80090518 textend: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 554
80090518 clear s2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 555
8009051C lui s3,-0x7FF8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 556
80090520 addiu s5,s3,-0x6C20 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 557
80090524 lui s1,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 558
80090528 ori s1,s1,-0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 559
8009052C move s0,s4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 560
80090530 clear a1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 561
80090534 pagetloop: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 564
80090534 ori a2,r0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 565
80090538 addu s2,a2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 566
8009053C lui v0,-0x8000 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 567
80090540 lui a0,-0x100 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 568
80090544 lw v1,-0x6C20(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 571
80090548 lw a3,0xA0(gp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 572
8009054C and v1,s1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 573
80090550 or v1,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 574
80090554 sw v1,0x30(s0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 575
80090558 lw v0,-0x6C20(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 577
8009055C lw v1,0x0(v1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 578
80090560 and v0,a0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 579
80090564 and v1,s1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 580
80090568 lw a0,0x4(s5) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 581
8009056C or v0,v0,v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 582
80090570 sw v0,-0x6C20(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 583
80090574 addiu a0,a0,-0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 584
80090578 sw a0,0x4(s5) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 585
8009057C lw a0,0x30(s0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 587
80090580 jal 0x800522F0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 588
80090584 addiu s0,s0,0x4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 589
80090588 sltiu v0,s2,0x2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 591
8009058C bne v0,zero,0x80090534 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 592
80090590 clear a1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 593
80090594 returnfromfunction: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 596
80090594 move v0,s4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 597
80090598 lw ra,0x4C(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 598
8009059C lw s8,0x48(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 599
800905A0 lw s7,0x44(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 600
800905A4 lw s6,0x40(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 601
800905A8 lw s5,0x3C(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 602
800905AC lw s4,0x38(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 603
800905B0 lw s3,0x34(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 604
800905B4 lw s2,0x30(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 605
800905B8 lw s1,0x2C(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 606
800905BC lw s0,0x28(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 607
800905C0 jr ra ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 609
800905C4 addiu sp,sp,0x50 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 610
800905C8 makecharpixelscustom: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 4
800905C8 addiu sp,sp,-0x18 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 6
800905CC move a1,a0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 7
800905D0 lui a0,0x1F80 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 8
800905D4 ori a0,a0,0x358 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 9
800905D8 sw ra,0x10(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 11
800905DC ori a2,r0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 13
800905E0 lbu t2,0xA8(gp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 15
800905E4 move t0,r4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 16
800905E8 lui v1,-0x7FE1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 17
800905EC ori v1,v1,-0x5600 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 18
800905F0 sll v0,a1,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 19
800905F4 addu v0,v0,a1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 20
800905F8 sll v0,v0,0x2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 21
800905FC addu t1,v0,v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 22
80090600 ori r6,r0,0x6 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 23
80090604 move v0,r6 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 24
80090608 beq v0,zero,0x800906C8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 25
8009060C addiu r6,r6,-0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 26
80090610 lui a3,0x1F80 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 27
80090614 ori a3,a3,0x2E0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 28
80090618 charloop: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 29
80090618 lhu v1,0x0(t1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 30
8009061C nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 31
80090620 andi r4,v1,0xF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 32
80090624 srl v1,v1,0x4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 33
80090628 andi v0,v1,0xF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 34
8009062C sll v0,v0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 35
80090630 addu v0,v0,a3 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 36
80090634 lhu v0,0x0(v0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 37
80090638 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 38
8009063C mult v0,t2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 39
80090640 sll r4,r4,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 40
80090644 addu r4,r4,a3 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 41
80090648 mflo a1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 42
8009064C lhu v0,0x0(r4) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 43
80090650 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 44
80090654 mult v0,t2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 45
80090658 srl v1,v1,0x4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 46
8009065C andi r4,v1,0xF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 47
80090660 srl v1,v1,0x4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 48
80090664 sll v1,v1,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 49
80090668 addu v1,v1,a3 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 50
8009066C sll v0,a1,0x10 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 51
80090670 mflo t4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 52
80090674 or v0,t4,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 53
80090678 sw v0,0x0(t0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 54
8009067C lhu v0,0x0(v1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 55
80090680 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 56
80090684 mult v0,t2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 57
80090688 sll r4,r4,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 58
8009068C addu r4,r4,a3 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 59
80090690 mflo a1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 60
80090694 lhu v0,0x0(r4) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 61
80090698 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 62
8009069C mult v0,t2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 63
800906A0 addiu t1,t1,0x2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 64
800906A4 move v1,a2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 65
800906A8 addiu a2,a2,-0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 66
800906AC addiu t0,t0,0x4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 67
800906B0 sll v0,a1,0x10 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 68
800906B4 mflo t4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 69
800906B8 or v0,t4,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 70
800906BC sw v0,0x0(t0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 71
800906C0 bne v1,zero,0x80090618 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 72
800906C4 addiu t0,t0,0x4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 73
800906C8 charloaded: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 74
800906C8 lbu v1,0xA9(gp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 76
800906CC ori v0,r0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 77
800906D0 bne v1,v0,0x800906E4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 78
800906D4 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 79
800906D8 lui a0,0x1F80 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 80
800906DC jal 0x80019F0C ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 81
800906E0 ori a0,a0,0x358 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 82
800906E4 notshadow: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 84
800906E4 lw ra,0x10(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 85
800906E8 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 86
800906EC jr ra ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 87
800906F0 addiu sp,sp,0x18 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_charload.asm line 88
800906F4 returncharsinstring: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 1
800906F4 lhu v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 4
800906F8 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 5
800906FC srl v0,v0,0xD ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 6
80090700 bne v0,zero,0x80090710 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 7
80090704 clear v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 8
80090708 j 0x80090740 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 11
8009070C nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 12
80090710 ismy1bytestring: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 13
80090710 lhu v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 14
80090714 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 15
80090718 andi v0,v0,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 16
8009071C andi v1,v0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 18
80090720 beq v1,zero,0x8009072C ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 19
80090724 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 20
80090728 addiu v0,v0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 21
8009072C notand1: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 23
8009072C sra v0,v0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 24
80090730 addiu v0,v0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 25
80090734 jr ra ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 26
80090738 move v1,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 27
8009073C getnewchar: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 29
8009073C addiu v1,v1,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 30
80090740 startreading: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 31
80090740 lhu v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 32
80090744 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 33
80090748 sltiu v0,v0,0x1000 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 34
8009074C bne v0,zero,0x8009073C ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 35
80090750 addiu a0,a0,0x2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 36
80090754 jr ra ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 37
80090758 move v0,v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 38
8009075C calcnextxcustom: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 41
8009075C addiu sp,sp,-0x18 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 42
80090760 sw ra,0x10(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 43
80090764 lhu v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 45
80090768 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 46
8009076C andi v1,v0,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 47
80090770 srl v0,v0,0xD ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 48
80090774 beq v0,zero,0x80090784 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 49
80090778 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 50
8009077C j 0x8009078C ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 51
80090780 move v0,v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 52
80090784 japoldtext: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 53
80090784 jal 0x800906F4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 54
80090788 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 55
8009078C ihavestringlength: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 56
8009078C sll v1,v0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 57
80090790 addu v1,v1,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 58
80090794 lw ra,0x10(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 59
80090798 sll v0,v1,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 60
8009079C jr ra ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 61
800907A0 addiu sp,sp,0x18 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 62
800907A4 retuncharstocity: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 64
800907A4 lhu v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 65
800907A8 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 66
800907AC srl v0,v0,0xD ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 67
800907B0 bne v0,zero,0x800907C0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 68
800907B4 clear v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 69
800907B8 j 0x80090740 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 71
800907BC nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 72
800907C0 ismy1bytecity: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 73
800907C0 lhu v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 74
800907C4 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 75
800907C8 andi v0,v0,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 76
800907CC jr ra ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 77
800907D0 move v1,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 78
800907D4 retuncharstocitydiv2: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 81
800907D4 lhu v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 82
800907D8 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 83
800907DC srl v0,v0,0xD ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 84
800907E0 bne v0,zero,0x800907F0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 85
800907E4 clear v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 86
800907E8 j 0x80090740 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 88
800907EC nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 89
800907F0 ismy1bytecitydiv2: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 90
800907F0 lhu v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 91
800907F4 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 92
800907F8 andi v0,v0,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 93
800907FC andi v1,v0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 95
80090800 beq v1,zero,0x8009080C ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 96
80090804 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 97
80090808 addiu v0,v0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 98
8009080C notand1_2: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 100
8009080C sra v0,v0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 101
80090810 jr ra ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 103
80090814 move v1,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\1_IS\charCalcs.asm line 104
80090818 .close ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_main.asm line 616
FFFFFFFF .open ""C:\\Users\\Sergey\\Documents\\GitHub\\Persona2-PSX-asm-sources\\3_CD_EXTRA\\BIN\\SLPS_028.26"",0x8000F800; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_txtpatches.asm line 7
8000F800 .org 0x8001B5B8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_txtpatches.asm line 10
8001B5B8 ori a0,r0,0x0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_txtpatches.asm line 11
8001B5BC .org 0x8001927C ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_txtpatches.asm line 16
8001927C addiu v0,v0,0x6 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_txtpatches.asm line 17
80019280 .org 0x8001CA0C ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_txtpatches.asm line 26
8001CA0C ori a2,r0,0x4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_txtpatches.asm line 27
8001CA10 .org 0x8001CD58 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_txtpatches.asm line 32
8001CD58 jal 0x80090000 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_txtpatches.asm line 33
8001CD5C .org 0x8001CDD8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_txtpatches.asm line 34
8001CDD8 jal 0x80090000 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_txtpatches.asm line 35
8001CDDC .org 0x8001C098 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_txtpatches.asm line 37
8001C098 jal 0x80090000 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_txtpatches.asm line 38
8001C09C .org 0x8001C10C ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_txtpatches.asm line 39
8001C10C jal 0x80090000 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_txtpatches.asm line 40
8001C110 .org 0x8001C388 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_txtpatches.asm line 46
8001C388 jal 0x80090000 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_txtpatches.asm line 47
8001C38C .org 0x8001ABF4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_txtpatches.asm line 52
8001ABF4 j 0x800906F4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_txtpatches.asm line 53
8001ABF8 clear v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_txtpatches.asm line 54
8001ABFC .org 0x8001AC1C ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_txtpatches.asm line 59
8001AC1C j 0x8009075C ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_txtpatches.asm line 62
8001AC20 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_txtpatches.asm line 63
8001AC24 .close ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\3_CD_EXTRA\cd_extra_txtpatches.asm line 65

View File

@@ -0,0 +1,88 @@
; LOADING CHAR FROM CUSTOM FONT
makeCharPixelsCustom:
addiu sp,sp,-0x18
move a1,a0
lui a0,0x1f80
ori a0,a0,0x358
sw ra,0x10(sp)
li a2,1
lbu t2,0xa8(gp) ;a8(gp) -- color
move t0,r4
lui v1,0x801f ; ;load font addr to r3 (801ef480)
ori v1,v1,0xaa00 ;
sll v0,a1,0x1 ; r2 = r5 << 1 (*2)
addu v0,v0,a1 ; r2 += r5 (it. *3)
sll v0,v0,0x2 ; r2 << 2 (*4) (r2 = r5 *12)
addu t1,v0,v1 ;t1 = char addr ; r9 = r2(offs) + r3 (start)
li r6,0x6 ; r6 = byteslength = 6
move v0,r6 ; r2 = r6 (counter)
beq v0,zero,charLoaded ; if counter=0 then branch
addiu r6,r6,-0x1 ; dec r6
lui a3,0x1f80
ori a3,a3,0x2e0 ; set scratch convert addr r7 = 1f8002e0
CharLoop:
lhu v1,0x0(t1) ;load upperhalf of char to r3
nop
andi r4,v1,0xf ; r4 = r3 & 0f - cutting left semibyte
srl v1,v1,0x4 ; r3 >> 4
andi v0,v1,0xf ; r2 = r3 & 0f
sll v0,v0,0x1 ; r2 << 1
addu v0,v0,a3 ; r2 = r2 + to4bitConvertTableAddr (r7)
lhu v0,0x0(v0);>DAT_1f8002e0 r2 = *r2(half) pixel pattern
nop
mult v0,t2 ; r2*r10. make Color
sll r4,r4,0x1 ; r4 << 1
addu r4,r4,a3 ; r4 += r6 counter
mflo a1 ; load lo to r5
lhu v0,0x0(r4);>DAT_1f8002e0 load table+r4
nop
mult v0,t2 ; r2 * colorIndex r10
srl v1,v1,0x4 ; r3 >> 4, right 4 bits
andi r4,v1,0xf ; r4 = r3 & f0 (cut right semibyte)
srl v1,v1,0x4 ; r3 >> 4
sll v1,v1,0x1 ; r3 << 1 = *2
addu v1,v1,a3 ; r3=r3+Table r7
sll v0,a1,0x10 ; r2 = r5 << 10 bits
mflo t4 ; load r12,low
or v0,t4,v0 ; r2 = r12 | r2
sw v0,0x0(t0) ; load *r8(current Scratch) from r2(result)
lhu v0,0x0(v1);>DAT_1f8002e0 ; load r2 from TablePattern Half from r3
nop
mult v0,t2 ; r2*color r10
sll r4,r4,0x1 ; r4 << 1
addu r4,r4,a3 ; r4 = r4 + TableStart
mflo a1 ; ld r5,lo
lhu v0,0x0(r4);>DAT_1f8002e0 ; ld half r2 from *r4
nop
mult v0,t2 ; r2*col
addiu t1,t1,0x2 ; move charFont + +2
move v1,a2 ; r3 = byteCount (r6)
addiu a2,a2,-0x1 ; r6 -= 1
addiu t0,t0,0x4 ; scrathAddr r8 += 4
sll v0,a1,0x10 ; r2 = r5 << 10 bits (move to hi)
mflo t4 ; ld r12,lo (result)
or v0,t4,v0 ; combine r2 & r 12 (0001 x 1111)
sw v0,0x0(t0) ; store result to scratch r2 to *r8
bne v1,zero,charLoop ; if r3 counter<>0 goto loop
addiu t0,t0,0x4 ; r8 scrath += 4
charLoaded:
lbu v1, 0xa9(gp) ; a9(gp) -- shadow
li v0, 0x1
bne v1, v0, NotShadow ;Shadow character check
nop
lui a0,0x1f80
jal MakeShadowSmallChar ;Make shadow in Scratch DMA
ori a0,a0,0x358
NotShadow:
lw ra,0x10(sp) ;Restore stack and exit
nop
jr ra
addiu sp, sp, 0x18

View File

@@ -0,0 +1,620 @@
////////////////////////////////////////////////////////////////////////////////////////////////////////
//
// Persona 2 Eternal Punishment CD Extra (PSX) JAP / Custom Characters/Data Patch
//
// Author: Sergey Shemet 17/09/2025
//
.psx
.definelabel SetDrawTPage, 0x800522F0
.definelabel storeColor, 0x8001ADC8
.definelabel initCopyCharChain, 0x80019D70
.definelabel MakeShadowSmallChar, 0x80019F0C // 0x800196BC -big char shadow???
.definelabel OriginalKanjiPrint, 0x80019000
.definelabel MyAddr, 0x8009
.open "3_CD_EXTRA/BIN/SLPS_028.26", 0x8000F800
.org 0x80090000
ExternalPrint:
// Text routing test routine
move r3,s3
move s3,r4
lhu v0,0x0(s3) // Read half 2 bytes of text
move s3,r3
srl v1,v0,0xD // Check 13th bit (Russian text format 20XX cmd)
bne v1,zero,MyPrintLineRoutine
clear v1
j OriginalKanjiPrint // Если не включен 13 бит, то это обычный японский текст. Вызов обычной подпрограммы вывода.
nop
MyPrintLineRoutine:
addiu sp, sp, -0x50 // Выделение места в стеке (80 bytes)
sw s6, 0x40(sp) // Сохранение s6
move s6, a0 // s6 = param_1 (указатель на текст)
sw s1, 0x2C(sp) // Сохранение s1
move s1, a1 // s1 = param_2 (X координата)
sw s2, 0x30(sp) // Сохранение s2
move s2, a2 // s2 = param_3 (Y координата)
sw s3, 0x34(sp) // Сохранение s3
//v1/r3 - MyChars charcount
andi v0, 0xff
addiu s6, 0x2 //Moving text read pointer +2bytes
lui s3, MyAddr
sh v0, -0x10(s3) //store half bytecounter @ 8008fff0
sh v0, -0x0E(s3) //store half bytecounter @ 8008fff2
//////////////////////////////////////
// Инициализация адресов scratch и масок
lui s3, 0x1F80 // Базовый адрес GPU
ori s3, s3, 0x03D0 // Адрес для команд отрисовки
lui t0, 0xFF // Маска для DMA операций
ori t0, t0, 0xFFFF
sw s0, 0x28(sp) // Сохранение s0
andi s0, a3, 0xFF // s0 = param_4 (цвет/атрибуты)
move a0, s0 // a0 = цвет текста
// Блок инициализации DMA
InitDMA:
update_free_dma:
lui a3, 0x8008 // Базовый адрес для текстового DMA
lui a2, 0xFF00 // Маска для адресной части
addiu t1, a3, -0x6C20 // TextDMANexChainAddr
lw v1, -0x6C20(a3) // Загрузка текущего DMA адреса
lbu a1, 0x60(sp) // Загрузка цвета из стека
lui v0, 0x8000 // Флаг для адресации
// Сохранение всех регистров
sw ra, 0x4C(sp) // Сохранение return address
sw s8, 0x48(sp) // Сохранение s8
sw s7, 0x44(sp) // Сохранение s7
sw s5, 0x3C(sp) // Сохранение s5
sw s4, 0x38(sp) // Сохранение s4
// Подготовка DMA цепочки
PrepareDMAChain:
and a2, v1, a2 // Извлечение первого байта
and v1, v1, t0 // Отсекаем первый байт у адреса
or s4, v1, v0 // Совмещаем 80...... и 00ADDR = новый DMA адрес
lw v0, 0x4(t1) // TextDMACounter
lw v1, 0x0(s4) // Разыменовывание указателя на текущий адрес = след адрес
addiu v0, v0, -1 // Декремент счетчика
and v1, v1, t0 // Очистка адресной части
or a2, a2, v1 // Объединение исходного первого байта (FF) с новым адресом
sw v0, 0x4(t1) // Сохранение счетчика
// Подготовка атрибутов строки
PrepareAttrs:
andi a1, a1, 0xFF // Маскирование цвета
jal storeColor // Установка цвета и тени
sw a2, -0x6C20(a3) // Сохранение нового свободного DMA адреса
move a0, s4 // a0 = DMA адрес
// Подготовка координат
sll a1, s1, 0x10 // Подготовка X координаты
sra a1, a1, 0x10
sll a2, s2, 0x10 // Подготовка Y координаты
sra a2, a2, 0x10
jal initCopyCharChain // Инициализация строки
move a3, s0 // a3 = а-три-буты
init_cputovram_vars_int_scratch:
lui a3, 0x1F80
ori a3, a3, 0x0348 // Адрес паттернов в scratchpad
//lui a2, 0x1F80
//ori a2, a2, 0x038C // Disable second kanji half command
li v0, 0x02 // Ширина в px в 16битном режиме (Original 3px (12 in 4bit), my - 2px)
sh v0, 0x1C(sp)
li v0, 0x0C // Высота полукандзи. (Original 6px, my - 12px)
li a1, 0x0D // 0D - оригинальная длина команды CPUtoVRAM (Scratch) в words
lui a0, 0xA000 // A0000000 - CPUtoVRAM command
sh v0, 0x1E(sp) // sp+1c = 000C0002
li a1, 0x10 //INSERT // Переписываем длину команды (т.к. формируем символ в пределах одной команды)
sb a1, 0x3(a3) // Установка длины 0x10 элемента цепочки CPUtoVRAM (Scratch)
sw a0, 0x4(a3) // Установка команды A0000000 CPUtoVRAM (Scratch)
lhu t0, 0x9C(gp) // Загрузка vram X из глобальных настроек
lhu v0, 0x9E(gp) // Загрузка vram Y из глобальных настроек
lui v1, 0x0100 // GPU flushcache command (0100 0000)
lui at, 0x1F80
sw v1, 0x0388(at) // Save flushcache (конец первой команды)(not 37c!)
// lower half params set
// sb a1, 0x3(a2) // Отключаем данные нижней половины
// sw a0, 0x4(a2) //
// Настройка координат для каждой половины символа.
coords_size_cputovram_scr:
lh a1, 0x9C(gp) // Загрузка X
move s8, s2 // Сохранение Y позиции
// lui at, 0x1F80
// sw v1, 0x03C0(at) // Save flushcache (second command (Disabled))
sh t0, 0x18(sp) // Сохранение XY в стек как полуслова (CONCAT)
sh v0, 0x1A(sp)
lw a0, 0x18(sp) //Загружаем XY-word из стека для CPUtoVRAM
//Абсолютно неоптимальная хрень - можно было сразу вытащить word из 0x9C(gp),
// либо просто задать a0 = 3001F001,
// так как адрес всегда один и тот же. Скорее всего, он менялся при разработке и дебаге игры
// sh v0, 0x1A(sp) //Отключаем вычисление и сохранение VRAM-Y нижнего полусимвола.
lw v1, 0x18(sp)
lw v0, 0x1C(sp) //Грузим размер символа (16-бит) из стека
move t0, a1 // t0 будет X - пригодится ниже, в расчётах
sw a0, 0x8(a3) //сохраняем 3001F001 to 00350 (uv-коодинаты в команду cputovram - 130x1f0)
// sw v0, 0xc(a2) //disable lower
sw v0, 0xC(a3) // set 02000c00 to 00354 (sprite pixel size)
// sw v1, 0x8(a2)
lui v0,0x8001 //load 80010000 to r2
//4bit pattern in scratch
lui t8, 0x1f80
ori t8, t8, 0x2e0
addiu t7, v0, 0x3e8
lwl t5, 0x3(t7)
lwr t5, 0x0(t7)
lwl t6, 0x7(t7)
lwr t6, 0x4(t7)
swl t5, 0x3(t8)
swr t5, 0x0(t8)
swl t6, 0x7(t8)
swr t6, 0x4(t8)
lwl t5, 0xb(t7)
lwr t5, 0x8(t7)
lwl t6, 0xf(t7)
lwr t6, 0xc(t7)
swl t5, 0xb(t8)
swr t5, 0x8(t8)
swl t6, 0xf(t8)
swr t6, 0xc(t8)
lwl t5, 0x13(t7)
lwr t5, 0x10(t7)
lwl t6, 0x17(t7)
lwr t6, 0x14(t7)
swl t5, 0x13(t8)
swr t5, 0x10(t8)
swl t6, 0x17(t8)
swr t6, 0x14(t8)
lwl t5, 0x1b(t7)
lwr t5, 0x18(t7)
lwl t6, 0x1f(t7)
lwr t6, 0x1c(t7)
swl t5, 0x1b(t8)
swr t5, 0x18(t8)
swl t6, 0x1f(t8)
swr t6, 0x1c(t8)
// Copy Sprite DMA Command Forming
init_rect_cmd_in_scr:
li v0,0x4 // Длина команды RectTexBlend (04000000)
sb v0,0x3(s3) // сохраняем в scratch
li v0,0x64 // Команда RectTexBlend (64)
sb v0,0x7(s3) // Сохранение команды RectTexBlend (64)
li v0,0x80 // 80 - стандартная яркость спрайта
sb v0,0x4(s3) // R
sb v0,0x5(s3) // G
sb v0,0x6(s3) // B = Сохранение 80 80 80 + 64 (3d4,5,6,7)
//
// Здесь запаковка ИСХОДНЫХ координат спрайта в VRAM.
//Но они никогда не меняются. Наверное, можно оптимизировать и записывать f0c0
PositionProcessing:
bgez a1, CalculateXOffset // Проверка знака X координаты
sh s1, 0x20(sp) // Сохранение X позиции
AddOffsetX:
addiu t0, a1, 0x3F // Смещение, если меньше ноля
CalculateXOffset:
sra v0, t0, 0x6
sll v0, v0, 0x6 // округляем X
subu v0, a1, v0
lh v1, 0x9E(gp) // Загрузка Y параметра
sll v0, v0, 0x2 // Умножение X на 4
sb v0, 0xC(s3) // Сохранение X в команду Reсt
// Обработка Y координаты
YCoordinateProcessing:
bgez v1, CalculateYOffset // Проверка знака Y координаты
move v0, v1
AddOffsetY:
addiu v0, v1, 0xFF // Добавление смещения если отрицательно
CalculateYOffset:
sra v0, v0, 0x8 // Округление координаты Y
sll v0, v0, 0x8
subu v0, v1, v0
sb v0, 0xD(s3) // Сохранение Y текстуры в команду Reсt
// всю эту часть кода можно смело заменять записью 7DF3F0C0 в адрес 0xC(s3)
// она рассчитана на динамический расчёт координат UV и CLUT, но они у нас статические
lhu v1, 0xA4(gp) // Загружаем из глобальных настроек координаты CLUT текста в VRAM (ВСЕГДА 7FD3 - 304 x 511)
li v0, 0x8
sh v0, 0x10(s3) // Сохраняем ширину спрайта в пикселях
li v0, 0xc
sh v0, 0x12(s3) // Сохраняем высоту спрайта в пикселях (0xC = 12)
sh v1, 0xe(s3) // Сохраняем clut в команду rect
// Основной цикл чтения символов из памяти
LoadCharacter:
lbu a0, 0x0(s6) // Загрузка символа из текста (Читаем byte вместо half) - текст хранится побайтово
nop
//Неактуальный код проверки терминатора иероглифов
//sltiu v0, a0, 0x1000 // Проверка на конец текста
//beq v0, zero, FinishDrawing // Если символ > 0x1000 (команда) - завершаем
addiu s6, s6, 0x1 // Переход к следующему символу (в оригинале было смещение на 2 байта)
// Подготовка к отрисовке символа
lui s1, 0x8008
addiu s5, s1, -0x6C20 // TextDMANexChainAddr
lui s0, 0xFF
ori s0, s0, 0xFFFF
lui s7, 0x8000
// Цикл отрисовки символа
NextChar:
addiu r4, r4, -0x20 // Смещаем код символа для правильного рассчёта в шрифте
//Тут нужна проверка на пробел
isFirstChar:
jal makeCharPixelsCustom // Создание символа в scratchpad кастомной процедурой
clear s2 // Сброс счетчика
// Настройка X для символа
Setup_X_coord_in_rect_scratch:
lw v0, 0xAC(gp) // Первая координата текста
lhu v1, 0x4(s4) // Счётчик отрисованных символов в строке (print_params+4)
addiu v0, v0, 0x6 // Добавление смещения к первой координате
mult v1, v0 // Умножаем...
some_printparams_save:
lui t2, 0xFF00 // Маска для адреса
move t4, s4 // Копирование адреса print_params
addiu t3, sp, 0x10 // Сохраняем адрес стек+0x10
move t1, s4 // t1 - основной регистр print_params, который смещается для разных страниц
end_x_coord_rect:
sh s8, 0xA(s3) // Сохранение Y позиции в команду Rect (3dc)
lhu t5, 0x20(sp) // Загрузка X позиции из стека
mflo t6 // Результат умножения в t6
addu v0, t5, t6 // Вычисление финальной позиции (X + смещение)
sh v0, 0x8(s3) // Сохранение X позиции в команду Rect (3d8)
PageLoop:
update_free_dma2:
// получаем свободный адрес для цепочки в текущей странице
lw v0, -0x6C20(s1) // Текущий свободный DMA адрес
nop
and a0, v0, t2 // В a0 оставляем первый байт с помощью маски & FF000000 (должно получиться 80000000)
and v0, v0, s0 // В v0 срезаем первый байт с помощью маски & 00FFFFFF
or a1, v0, s7 // в a1 cовмещаем адрес, приводим к виду (80XXXXXX) - получаем конечный адрес для записи команды rect
lw v0, 0x4(s5) // DMA счетчик оставшихся свободных цепочек
lw v1, 0x0(a1) // Разыменовываем адрес следующей свободной цепочки (v1 = *a1)
addiu v0, v0, -1 // Декремент счетчика
and v1, v1, s0 // Очистка адресной части следующей свободной цепочки
or a0, a0, v1 // Совмещаем адрес с FF......
sw v0, 0x4(s5) // Сохранение счетчика
sw a0, -0x6C20(s1) // Сохранение нового адреса
// Копирование данных команды rect в RAM из scratch
CopyRectCmd:
lw t7, 0x0(s3) // Загрузка данных команды rect из scratch
lw t8, 0x4(s3)
lw t5, 0x8(s3)
lw t6, 0xC(s3)
sw t7, 0x0(a1) // Сохранение данных команды rect в RAM
sw t8, 0x4(a1)
sw t5, 0x8(a1)
sw t6, 0xC(a1)
lw t7, 0x10(s3)
nop // ждём команду, чтобы значение загрузилось в регистр (особенность MIPS)
sw t7, 0x10(a1) // докидываем данные
// Линкуем предыдущую команду страницы и текущую ()
previous_last_cmd_link_with_current:
lw v1, 0x18(t1) // Загрузка указателя хранения последней команды в странице print_params+0x18
lw v0, 0x0(a1) // Загружаем текущую длину (0004), которая перезаписала адрес в цепочке DMA, когда копировали из sсratch
lw v1, 0x0(v1) // Разыменование указателя (v1 = *v1), читаем количество команд последней команды (обычно XXFFFFFF)
and v0, v0, t2 // Чистим количество команд (& ff)
and v1, v1, s0 // Очистка адресной части из параметров строки print_params
or v0, v0, v1 // Объединение (делаем cmdCount + ffffff from next_cmd) - очистка/экранирование?
sw v0, 0x0(a1) // Сохранение адреса следующей команды в команде rect (04ffffff)
lw a0, 0x18(t1) // Снова грузим указатель на маску print_params+0x18 (00fffff)
nop // ПРОПУСК!
lw v0, 0x0(a0) // Разыменование указателя (v0 = *a0)
and v1, a1, s0 // Отрезаем первый байт у адреса цепочки команды rect (сначала это маска 00ФФФФФФ)
and v0, v0, t2 // &ff000000 (c маской)
or v0, v0, v1 // Объединение (берём у маски кол-во команд, и след адрес)
sw v0, 0x0(a0) // Сохраняем след адрес вместо маски (00freeChain)
sw a1, 0x18(t1) // Сохраняем адрес след свободной цепочки в print_params (t1+18)
// То, что было маской - стало ссылкой на след команду цепочки в этой странице
// Проверка на первый символ (нужна ли запись первой записи в print_params+0x28?)
lhu v0, 0x4(t4) // Проверка - есть ли хоть один сформированный символ
nop
bne v0, zero, NotFirstChar // Если не ноль, пропускаем
clear t0 // Очистка счетчика
sw a1, 0x28(t1) // Установка первичного адреса в print_params (+16 от ссылки на бывшую маску)
//ИТОГО -- PrintParams + 0x18 - указатель на последнюю команду на странице
// PrintParams + 0x28 - указатель на первую команду на странице
// Для второй страницы - смещаемся +0x04
NotFirstChar:
move a3, t0 // Обнуляем a3 - это смещение для копирования данных в полусимволе
move a2, t3 // загрузка адреса sp+10. В *a2 будет храниться сформированный адрес cputovram в ram
// Здесь был цикл на 2 полусимвола.
// Выдаются свободные адреса цепочек и формируется cputoVram1 и 2 (нам нужна одна команда вместо двух)
cputovram_cmd_from_scratch_copy:
update_free_dma3:
halfkanji_loop:
lui a1, 0x1F80
lw v0, -0x6C20(s1) // Берём адрес след свободной цепочки
ori a1, a1, 0x0348 // Берём адрес в scrathPad символа CPUtoVRAM
and v0, v0, s0 // отрезаем первый байт у свободной цепочки &00FFFFFF
or v0, v0, s7 // Прикручиваем адрес 80....... || nextChain
sw v0, 0x0(a2) // Сохранение след полного адреса в sp+0x10
lw v1, -0x6C20(s1) // Берём ЕЩЁ РАЗ адрес свободной цепочки, но уже в v1
lw v0, 0x0(v0) // Разыменование - v0 = *v0
lw a0, 0x4(s5) // Грузим счётчик
and v1, t2 // Отрезаем префикс у адреса свободной цепочки в v1 (0xFF - Мы грузили адрес свободной цепочки, чтобы взять префикс FF???)
and v0, s0 // чистим адрес от префикса (который и так 00, но неизвестно, что было в данных)(0x00FFFFFF)
or v1, v0 // в v1 - адрес NextFreeDMA cо старым префиксом
addiu a0, -0x01 // Декремент счётчика
sw v1, -0x6C20(s1) // Сохраняем NextFreeDMA
sw a0, 0x4(s5) // save counter
lw a0, 0x0(a2) // Грузим след свободный адрес из *sp+10
addu v1, a3, a1 // v1 = смещение полусимвола + начало первого символа в scratch (указание на начало данных полусимвола)
or v0, v1, a0 // v0 = Проверка на выравнивание адресов чтения и записи
andi v0, v0, 0x0003 // путём схлопывания их адресов через or и проверки первых 2 битов (то есть числа 3).
beqz v0, Copy16Bytes // Если биты пусты, значит оба адреса выровнены по 4 байта, можно копировать word целиком
addiu v0, v1, 0x40 // v0 = максимальный адрес копирования исходных данных символа в Scratch
// Копирование данных команды CPUtoVRAM символа из scratchpad в RAM
// Невыровненное копирование по 2 байта
CopyBy2Bytes:
lwl t7, 0x3(v1) // Загрузка полусловами по 2 байта
lwr t7, 0x0(v1)
lwl t8, 0x7(v1)
lwr t8, 0x4(v1)
lwl t5, 0xB(v1)
lwr t5, 0x8(v1)
lwl t6, 0xF(v1)
lwr t6, 0xC(v1)
swl t7, 0x3(a0) // Сохранение с выравниванием
swr t7, 0x0(a0)
swl t8, 0x7(a0)
swr t8, 0x4(a0)
swl t5, 0xB(a0)
swr t5, 0x8(a0)
swl t6, 0xF(a0)
swr t6, 0xC(a0)
addiu v1, 0x10 // Смещение адреса в scratch
bne v1, v0, CopyBy2Bytes // Проверяем на достижение целевого адреса
addiu a0, a0, 0x10 // Следующий целевой адрес
j last4BytesCopy
nop
// Быстрое выровненное копирование по 4 байта
Copy16Bytes:
lw t7, 0x0(v1) // Загрузка 32-битных слов
lw t8, 0x4(v1)
lw t5, 0x8(v1)
lw t6, 0xC(v1)
sw t7, 0x0(a0) // Сохранение
sw t8, 0x4(a0)
sw t5, 0x8(a0)
sw t6, 0xC(a0)
addiu v1, 0x10 // Смещение адреса в scratch
bne v1, v0, Copy16Bytes // Проверяем на достижение целевого адреса
addiu a0, a0, 0x10 // Следующий целевой адрес
// Завершение копирования
last4BytesCopy:
lwl t7, 0x3(v1) // Копирование остатка
lwr t7, 0x0(v1)
// lwl t8, 0x7(v1)
// lwr t8, 0x4(v1)
nop
swl t7, 0x3(a0)
swr t7, 0x0(a0)
// swl t8, 0x7(a0)
// swr t8, 0x4(a0)
// Здесь старый код цикла копирования второго полукандзи
// addiu a3, a3, 0x44 // Увеличение смещения
// addiu t0, t0, 0x1 // Инкремент счетчика полусимволов
// sltiu v0, t0, 0x2 // Если счётчик <2,
// bne v0, zero, halfkanji_loop// то считываем ещё раз,
// addiu a2, a2, 0x4 // увеличивая адрес хранения команды полусимвола (a2 = sp+14)
// Линковка DMA-команд
link_char_dma_cmds:
lw a0, 0x10(sp) // в a0 грузим адрес первого полусимвола (который хранился в *sp+10)
lw v1, 0x18(t1) // Получили адрес rect из print_params (вернее, видимо, адрес начала цепочки)
lw v0, 0x0(a0) // v0 = *a0 - длина команды cpoutovram (10/0d 000000) без следующего адреса
lw v1, 0x0(v1) // v1 = *v1 - разыменовали и получили длину команды rect (04ffffff) без следующего адреса
and v0, t2 // v0 & FF000000 - чистим длину команды
and v1, s0 // v1 & 00FFFFFF - отрезали маску у длины команды rect
or v0, v1 // || Совмещаем число количества команд cpoutovram и маску rect (0dffffff)
sw v0, 0x0(a0) // сохраняем длину команды cpoutovram с маской ffffff в цепочку
lw a0, 0x18(t1) // Опять грузим адрес rect из print_params
lw v1, 0x10(sp) // ОпятЬ! грузим адрес первого полусимвола
lw v0, 0x0(a0) // v0 = *a0, то есть грузим длину команды с маской (10ffffff) вместо адреса
and v1, s0 // &00ffffff у адреса первого полусимвола (режем префикс), оставляя адрес
and v0, t2 // в v0 - длина команды rect. Чистим (&ff000000)
or v0, v1 // СОЗДАЁТСЯ ЛИНК команды rect и след. адреса (04+nextCommandAddr)
sw v0, 0x0(a0) // сохраняем линк в цепочке (команда rect указывает на следующую команду)
// односимвольная система
j disabled_lower_kanji // перепрыгиваем линковку нижнего полусимвола
lw v0, 0x10(sp) // сразу грузим адрес цепочки cpoutovram1 для сохранения в print_params
enabled_lower_kanji:
// Второй полусимвол - код оставлен, чтобы понимать принцип линковки
// зачем-то сначала адрес следующей команды превращается в xxFFFFFF,
// скорее всего это маркер конца цепочки текста
lw a0, 0x14(sp) // в a0 грузим адрес второго полусимвола (который хранился в *sp+14)
lw v1, 0x10(sp) // грузим адрес первого полусимвола
lw v0, 0x0(a0) // v0 = *a0, грузим команду с маской (0d000000) вместо адреса
lw v1, 0x0(v1) // v1 = *v1, Разыменовываем адрес первого полусимвола (0dffffff)
and v0, t2 // в v0 - длина команды cpoutovram2 (&ff000000)
and v1, s0 // &00ffffff у адреса первого полусимвола (режем префикс)
or v0, v1 // получаем длину команды cpoutovram2 с &00ffffff (0dffffff)
sw v0, 0x0(a0) // сохраняем длину команды cpoutovram2 в цепочку
lw a0, 0x10(sp) // грузим адрес первого полусимвола
lw v1, 0x14(sp) // v1 - адрес второго полусимвола
lw v0, 0x0(a0) // v0 = *a0 Разыменовываем адрес первого полусимвола
and v1, s0 // &00ffffff у адреса второго полусимвола (режем префикс)
and v0, t2 // в v0 - длина команды cpoutovram1. чистим (&ff000000)
or v0, v1 // СОЗДАЁТСЯ ЛИНК команды cpoutovram1 и cpoutovram2 (0d+nextCommandAddr)
sw v0, 0x0(a0) // сохраняем линк в цепочке (команда cpoutovram1 указывает на следующую команду)
lw v0, 0x14(sp) // v0 - адрес второго полусимвола
disabled_lower_kanji:
addiu s2, 0x1 // Увеличение счетчика страниц
sw v0, 0x18(t1) // Обновление связи в print_params (она указывает на адрес последней команды символа в этой странице)
sltiu v0, s2, 0x2 // Проверка счётчика текущей страницы
bnez v0, PageLoop // Если < 2, то формируем символ ещё раз в новую страницу.
addiu t1, t1,0x4 // смещаем базовый адрес text_params для следующей страницы
// Обновление индекса и проверка конца чтения
SpaceCharJumpHere:
lhu v0, 0x4(s4) // Грузим счётчик символов в print_params
nop
addiu v0, v0, 0x1 // Инкремент счётчика
//Моя проверка переменных
lui t3, MyAddr
lhu v1, -0x10(t3) // грузим количество символов
lbu r4, 0x0(s6) // Читаем следующую букву
addiu s6, s6, 0x1 // Смещаем позицию чтения
sh v0, 0x4(s4) // Сохраняем счётчик сформированных символов в строке в print_params
bne v0, v1, NextChar // Сравниваем переменные - моё общее кол-во символов и счётчик символов из print_params. Завершаемся, если количество сошлось.
nop
//Старый код с иероглифами
// lhu a0, 0x0(s6) // Загрузка следующего символа
// nop
// sltiu v0, a0, 0x1000 // Проверка на конец текста
//addiu s6, s6, 0x2 // Старый код - следующий символ
// Закрытие отрисовки текста
TextEnd:
clear s2 // Очистка счётчика текстурных страниц s2
lui s3, 0x8008 // s3 = 80080000
addiu s5, s3, -0x6C20 // s5 = 800793e0 - nextFreeChain
lui s1, 0xFF
ori s1, s1, 0xFFFF // s1 = 00ffffff
move s0, s4 // s0 = print_params
clear a1 // Очистка a1
// Цикл установки текстурных страниц
PageTLoop:
li a2, 0x1 // Длина команды текстурных страниц. Читается в SetDrawTPage
addu s2, a2 // Обновление счетчика s += a2
lui v0, 0x8000 // Префикс адресации v0 = 80000000
lui a0, 0xFF00 // Маска адреса a0 = ff000000
//Расчищаем команду под установку текстурной страницы
lw v1, -0x6C20(s3) // v1 = nextFreeDma
lw a3, 0xA0(gp) // Загрузка a3 = 34 (текстурная страница). Читается в SetDrawTPage
and v1, s1 // Очистка префикса nextFreeDma
or v1, v0 // превращаем nextFreeDma в адрес (80000000 || nextFreeDma)
sw v1, 0x30(s0) // Сохранение адреса пустой команды для drawtpage в print_params
lw v0, -0x6C20(s3) // Ещё раз v0 = nextFreeDma
lw v1, 0x0(v1) // Разыменовывание v1 = *v1. Получаем содержимое адреса след. свободной цепочки.
and v0, a0 // оставляем префикс от nextFreeDma (99,999% это будет ff)
and v1, s1 // Чиcтка адреса в цепочке от префикса
lw a0, 0x4(s5) // Грузим DMA-счетчик
or v0, v0, v1 // Объединение префикса со след пустым адресом
sw v0, -0x6C20(s3) // Сохранение nextFreeDma
addiu a0, a0, -1 // Декремент счетчика
sw a0, 0x4(s5) // Сохранение счетчика свободных команд
lw a0, 0x30(s0) // Загрузка адреса пустой команды для drawtpage из print_params
jal SetDrawTPage // Установка DrawTPage (текстурной страницы)
addiu s0, s0, 0x4 // Смещение в print_params для следующей страницы
sltiu v0, s2, 0x2 // Проверка на завершение 2 страниц
bne v0, zero, PageTLoop // Если не закончили, продолжаем
clear a1 // Очистка a1
// Восстановление регистров и возврат
ReturnFromFunction:
move v0, s4 // Возвращаем DMA адрес
lw ra, 0x4C(sp) // Восстановление return address
lw s8, 0x48(sp) // Восстановление s8
lw s7, 0x44(sp) // Восстановление s7
lw s6, 0x40(sp) // Восстановление s6
lw s5, 0x3C(sp) // Восстановление s5
lw s4, 0x38(sp) // Восстановление s4
lw s3, 0x34(sp) // Восстановление s3
lw s2, 0x30(sp) // Восстановление s2
lw s1, 0x2C(sp) // Восстановление s1
lw s0, 0x28(sp) // Восстановление s0
jr ra // Возврат из функции
addiu sp, sp, 0x50 // Восстановление стека
.include "3_CD_EXTRA/cd_extra_charload.asm"
.include "1_IS/charCalcs.asm"
.close
.include "3_CD_EXTRA/cd_extra_txtpatches.asm" //misc text patches
// COMPILE COMMAND: ./armips -sym 3_CD_EXTRA/BUILD_LOGS/SLPS_028.26.map -temp 3_CD_EXTRA/BUILD_LOGS/SLPS_028.26.map 3_CD_EXTRA/cd_extra_main.asm

View File

@@ -0,0 +1,408 @@
smallCharLine:
addiu sp, sp, -0x50
sw s7, 0x44(sp)
move s7, a0 ; s7 = text_ptr
sw s0, 0x28(sp)
move s0, a1 ; s0 = X
sw s2, 0x30(sp)
move s2, a2 ; s2 = Y
sw s8, 0x48(sp)
move s8, s0 ; s8 = X (copy)
lui t0, 0xFF
ori t0, t0, 0xFFFF
sw s1, 0x2C(sp)
andi s1, a3, 0xFF ; s1 = color
move a0, s1
sw s5, 0x3C(sp)
lui s5, 0x8008
lui a2, 0xFF00
lui v0, 0x8000
move t5, s5
lw v1, -0x6C20(s5) ; TextDMANexChainAddr
lw a3, 0x60(sp)
addiu t5, t5, -0x6C20
sw ra, 0x4C(sp)
sw s6, 0x40(sp)
sw s4, 0x38(sp)
sw s3, 0x34(sp)
; === DMA INITIALIZATION ===
and a2, v1, a2
andi a1, a3, 0xFF
and v1, v1, t0
or s4, v1, v0 ; s4 = DMA base
andi a3, a3, 0x10
sltu a3, zero, a3
lw v0, 0x4(t5) ; TextDMACounter
lw v1, 0x0(s4)
addiu v0, v0, -1
and v1, v1, t0
or a2, a2, v1
sw v0, 0x4(t5)
sw a2, -0x6C20(s5)
jal FUN_8001adc8
sw a3, 0x18(sp)
; === CHARACTER SETUP ===
move a0, s4
sll s0, s0, 0x10
sra a1, s0, 0x10
sll s2, s2, 0x10
sra s0, s2, 0x10
move a2, s0
jal FUN_80019d70
move a3, s1
; === GPU REGISTER SETUP ===
lui a1, 0x1F80
ori a1, a1, 0x0348
li v0, 0x2
li a3, 0xC
sh v0, 0x14(sp)
li v0, 0x10
sh a3, 0x16(sp)
sb v0, 0x3(a1)
lui v0, 0xA000
sw v0, 0x4(a1)
lhu v1, 0x9C(gp) ; DAT_80078f40
lhu a0, 0x9E(gp) ; DAT_80078f42
lui v0, 0x100
lui at, 0x1F80
sw v0, 0x388(at)
lw v0, 0x14(sp)
lui s3, 0x1F80
sh v1, 0x10(sp)
sh a0, 0x12(sp)
lw v1, 0x10(sp)
lh a0, 0x9C(gp)
ori s3, s3, 0x3D0
sw v0, 0xC(a1)
lui v0, 0x8001
move a2, a0
sw v1, 0x8(a1)
; === PATTERN SETUP ===
lui t5, 0x1F80
ori t5, t5, 0x2E0
addiu t8, v0, 0x3E8
lwl t6, 0x3(t8)
lwr t6, 0x0(t8)
lwl t7, 0x7(t8)
lwr t7, 0x4(t8)
swl t6, 0x3(t5)
swr t6, 0x0(t5)
swl t7, 0x7(t5)
swr t7, 0x4(t5)
lwl t6, 0xB(t8)
lwr t6, 0x8(t8)
lwl t7, 0xF(t8)
lwr t7, 0xC(t8)
swl t6, 0xB(t5)
swr t6, 0x8(t5)
swl t7, 0xF(t5)
swr t7, 0xC(t5)
lwl t6, 0x13(t8)
lwr t6, 0x10(t8)
lwl t7, 0x17(t8)
lwr t7, 0x14(t8)
swl t6, 0x13(t5)
swr t6, 0x10(t5)
swl t7, 0x17(t5)
swr t7, 0x14(t5)
lwl t6, 0x1B(t8)
lwr t6, 0x18(t8)
lwl t7, 0x1F(t8)
lwr t7, 0x1C(t8)
swl t6, 0x1B(t5)
swr t6, 0x18(t5)
swl t7, 0x1F(t5)
swr t7, 0x1C(t5)
; === SPRITE COMMAND SETUP ===
li v0, 0x4
sb v0, 0x3(s3)
li v0, 0x64
sb v0, 0x7(s3)
li v0, 0x80
sb v0, 0x4(s3)
sb v0, 0x5(s3)
bgez a0, calc_x_offset
sb v0, 0x6(s3)
addiu a2, a0, 0x3F
calc_x_offset:
sra v0, a2, 0x6
sll v0, v0, 0x6
subu v0, a0, v0
lh v1, 0x9E(gp)
sll v0, v0, 0x2
sb v0, 0xC(s3)
bgez v1, calc_y_offset
move v0, v1
addiu v0, v1, 0xFF
calc_y_offset:
sra v0, v0, 0x8
sll v0, v0, 0x8
subu v0, v1, v0
sb v0, 0xD(s3)
lhu v1, 0xA4(gp) ; DAT_80078f48
li v0, 0x8
sh v0, 0x10(s3)
sh a3, 0x12(s3)
sh v1, 0xE(s3)
; === MAIN TEXT LOOP ===
lbu a1, 0x0(s7)
beq a1, zero, finish
addiu s7, s7, 0x1
move s6, s5
lui s5, 0x8008
addiu s5, s5, -0x6C20
sw s0, 0x1C(sp)
lui s0, 0xFF
ori s0, s0, 0xFFFF
sw s2, 0x20(sp)
text_loop:
addiu v1, a1, -0x67
sltiu v0, v1, 0x13
beq v0, zero, switch_default
sll v0, v1, 0x2
lui t6, 0x8001
addiu t6, t6, 0x4A0
addu v0, v0, t6
lw v0, 0x0(v0)
jr v0
switch_cases:
lw t7, 0x1C(sp)
j after_switch
addiu s2, t7, 0x2
switch_default:
lw t8, 0x20(sp)
sra s2, t8, 0x10
after_switch:
lw t5, 0x18(sp)
beq t5, zero, normal_pos
addiu a1, a1, -0x20
lui v0, 0x8001
addiu v0, v0, 0x43C
addu v0, a1, v0
lui v1, 0x8001
lbu v0, 0x0(v0)
addiu v1, v1, 0x428
sll v0, v0, 0x1
addu v0, v0, v1
lbu v1, 0x0(v0)
lbu v0, 0x1(v0)
subu v1, s8, v1
sll a0, v1, 0x10
sra s1, a0, 0x10
j pos_calculated
addu s8, v0, v1
normal_pos:
sll v1, s8, 0x10
lhu v0, 0x4(s4)
sra v1, v1, 0x10
sll v0, v0, 0x3
addu s1, v1, v0
pos_calculated:
jal FUN_80019f84
move a0, a1
lui t4, 0x8000
lui t2, 0xFF00
move t1, s4
lui t3, 0x1F80
ori t3, t3, 0x388
move t0, s4
sh s1, 0x8(s3)
sh s2, 0xA(s3)
; === DMA CHAIN PROCESSING ===
dma_loop:
lw v0, -0x6C20(s6)
and a0, v0, t2
and v0, v0, s0
or a1, v0, t4
lw v0, 0x4(s5)
lw v1, 0x0(a1)
addiu v0, v0, -1
and v1, v1, s0
or a0, a0, v1
sw v0, 0x4(s5)
sw a0, -0x6C20(s6)
lw t6, 0x0(s3)
lw t7, 0x4(s3)
lw t8, 0x8(s3)
lw t5, 0xC(s3)
sw t6, 0x0(a1)
sw t7, 0x4(a1)
sw t8, 0x8(a1)
sw t5, 0xC(a1)
lw t6, 0x10(s3)
sw t6, 0x10(a1)
lw v1, 0x18(t0)
lw v0, 0x0(a1)
lw v1, 0x0(v1)
and v0, v0, t2
and v1, v1, s0
or v0, v0, v1
sw v0, 0x0(a1)
lw a0, 0x18(t0)
lw v0, 0x0(a0)
and v1, a1, s0
and v0, v0, t2
or v0, v0, v1
sw v0, 0x0(a0)
sw a1, 0x18(t0)
lhu v0, 0x4(t1)
beq v0, zero, is_first
nop
j not_first
nop
is_first:
sw a1, 0x28(t0)
sh s1, 0xC(t1)
sh s2, 0xE(t1)
not_first:
lui a1, 0x1F80
ori a1, a1, 0x348
lw v0, -0x6C20(s6)
and a0, v0, t2
and v0, v0, s0
or a3, v0, t4
move a2, a3
lw v0, 0x4(s5)
lw v1, 0x0(a3)
addiu v0, v0, -1
and v1, v1, s0
or a0, a0, v1
sw v0, 0x4(s5)
andi v0, a3, 0x3
beq v0, zero, aligned_copy
sw a0, -0x6C20(s6)
unaligned_copy:
lwl t6, 0x3(a1)
lwr t6, 0x0(a1)
lwl t7, 0x7(a1)
lwr t7, 0x4(a1)
lwl t8, 0xB(a1)
lwr t8, 0x8(a1)
lwl t5, 0xF(a1)
lwr t5, 0xC(a1)
swl t6, 0x3(a2)
swr t6, 0x0(a2)
swl t7, 0x7(a2)
swr t7, 0x4(a2)
swl t8, 0xB(a2)
swr t8, 0x8(a2)
swl t5, 0xF(a2)
swr t5, 0xC(a2)
addiu a1, a1, 0x10
bne a1, t3, unaligned_copy
addiu a2, a2, 0x10
j copy_done
nop
aligned_copy:
lw t6, 0x0(a1)
lw t7, 0x4(a1)
lw t8, 0x8(a1)
lw t5, 0xC(a1)
sw t6, 0x0(a2)
sw t7, 0x4(a2)
sw t8, 0x8(a2)
sw t5, 0xC(a2)
addiu a1, a1, 0x10
bne a1, t3, aligned_copy
addiu a2, a2, 0x10
copy_done:
lwl t6, 0x3(a1)
lwr t6, 0x0(a1)
swl t6, 0x3(a2)
swr t6, 0x0(a2)
lw v1, 0x18(t0)
lw v0, 0x0(a3)
lw v1, 0x0(v1)
and v0, v0, t2
and v1, v1, s0
or v0, v0, v1
sw v0, 0x0(a3)
lw a0, 0x18(t0)
lw v0, 0x0(a0)
and v1, a3, s0
and v0, v0, t2
or v0, v0, v1
sw v0, 0x0(a0)
sw a3, 0x18(t0)
addiu t0, t0, 0x4
addiu v0, t1, 0x8
sltu v0, t0, v0
bne v0, zero, dma_loop
nop
lhu v0, 0x4(s4)
addiu v0, v0, 0x1
sh v0, 0x4(s4)
lbu a1, 0x0(s7)
bne a1, zero, text_loop
addiu s7, s7, 0x1
; === CLEANUP ===
finish:
clear s2
lui s3, 0x8008
addiu s5, s3, -0x6C20
lui s1, 0xFF
ori s1, s1, 0xFFFF
move s0, s4
clear a1
cleanup_loop:
li a2, 0x1
addu s2, s2, a2
lui v0, 0x8000
lui a0, 0xFF00
lw v1, -0x6C20(s3)
lw a3, 0xA0(gp)
and v1, v1, s1
or v1, v1, v0
sw v1, 0x30(s0)
lw v0, -0x6C20(s3)
lw v1, 0x0(v1)
and v0, v0, a0
and v1, v1, s1
lw a0, 0x4(s5)
or v0, v0, v1
sw v0, -0x6C20(s3)
addiu a0, a0, -1
sw a0, 0x4(s5)
lw a0, 0x30(s0)
jal SetDrawTPage
addiu s0, s0, 0x4
sltiu v0, s2, 0x2
bne v0, zero, cleanup_loop
clear a1
move v0, s4
lw ra, 0x4C(sp)
lw s8, 0x48(sp)
lw s7, 0x44(sp)
lw s6, 0x40(sp)
lw s5, 0x3C(sp)
lw s4, 0x38(sp)
lw s3, 0x34(sp)
lw s2, 0x30(sp)
lw s1, 0x2C(sp)
lw s0, 0x28(sp)
jr ra
addiu sp, sp, 0x50

View File

@@ -0,0 +1,453 @@
DrawCharLine_19000:
addiu sp, sp, -0x50
sw s6, 0x40(sp)
move s6, a0
sw s1, 0x2c(sp)
move s1, a1
sw s2, 0x30(sp)
move s2, a2
sw s3, 0x34(sp)
lui s3, 0x1f80
ori s3, s3, 0x3d0
lui t0, 0xff
ori t0, t0, 0xffff
sw s0, 0x28(sp)
andi s0, a3, 0xff
move a0, s0
InitDMA:
lui a3, 0x8008
lui a2, 0xff00
addiu t1, a3, -0x6c20
lw v1, -0x6c20(a3)
lbu a1, 0x60(sp)
lui v0, 0x8000
sw ra, 0x4c(sp)
sw s8, 0x48(sp)
sw s7, 0x44(sp)
sw s5, 0x3c(sp)
sw s4, 0x38(sp)
and a2, v1, a2
andi a1, a1, 0xff
and v1, v1, t0
or s4, v1, v0
lw v0, 0x4(t1)
lw v1, 0x0(s4)
addiu v0, v0, -0x1
and v1, v1, t0
or a2, a2, v1
sw v0, 0x4(t1)
jal FUN_8001adc8
sw a2, -0x6c20(a3)
move a0, s4
sll a1, s1, 0x10
sra a1, a1, 0x10
sll a2, s2, 0x10
sra a2, a2, 0x10
jal FUN_80019d70
move a3, s0
; Настройка GPU регистров
SetupGPURegisters:
lui a3, 0x1f80
ori a3, a3, 0x348
lui a2, 0x1f80
ori a2, a2, 0x38c
li v0, 0x3
sh v0, 0x1c(sp)
li v0, 0x6
li a1, 0xd
lui a0, 0xa000
; GPU init in scratch
ScratchCPUtoVRAMinit:
sh v0, 0x1e(sp)
sb a1, 0x3(a3)
sw a0, 0x4(a3)
lhu t0, 0x9c(gp)
lhu v0, 0x9e(gp)
lui v1, 0x100
lui at, 0x1f80
sw v1, 0x37c(at)
sb a1, 0x3(a2)
sw a0, 0x4(a2)
calculateCoords:
lh a1, 0x9c(gp)
move s8, s2
lui at, 0x1f80
sw v1, 0x3c0(at)
sh t0, 0x18(sp)
sh v0, 0x1a(sp)
lw a0, 0x18(sp)
addiu v0, v0, 0x6
sh v0, 0x1a(sp)
lw v0, 0x1c(sp)
lw v1, 0x18(sp)
move t0, a1
sw v0, 0xc(a3)
sw v0, 0xc(a2)
lui v0, 0x8001
sw a0, 0x8(a3)
sw v1, 0x8(a2)
;4bit pattern in scratch
lui t8, 0x1f80
ori t8, t8, 0x2e0
addiu t7, v0, 0x3e8
lwl t5, 0x3(t7)
lwr t5, 0x0(t7)
lwl t6, 0x7(t7)
lwr t6, 0x4(t7)
swl t5, 0x3(t8)
swr t5, 0x0(t8)
swl t6, 0x7(t8)
swr t6, 0x4(t8)
lwl t5, 0xb(t7)
lwr t5, 0x8(t7)
lwl t6, 0xf(t7)
lwr t6, 0xc(t7)
swl t5, 0xb(t8)
swr t5, 0x8(t8)
swl t6, 0xf(t8)
swr t6, 0xc(t8)
lwl t5, 0x13(t7)
lwr t5, 0x10(t7)
lwl t6, 0x17(t7)
lwr t6, 0x14(t7)
swl t5, 0x13(t8)
swr t5, 0x10(t8)
swl t6, 0x17(t8)
swr t6, 0x14(t8)
lwl t5, 0x1b(t7)
lwr t5, 0x18(t7)
lwl t6, 0x1f(t7)
lwr t6, 0x1c(t7)
swl t5, 0x1b(t8)
swr t5, 0x18(t8)
swl t6, 0x1f(t8)
swr t6, 0x1c(t8)
; Copy Sprite DMA Command Forming
li v0, 0x4
sb v0, 0x3(s3)
li v0, 0x64
sb v0, 0x7(s3)
li v0, 0x80
sb v0, 0x4(s3)
sb v0, 0x5(s3)
sb v0, 0x6(s3)
bgez a1, LAB_800191fc
sh s1, 0x20(sp)
AddOffsetX:
addiu t0, a1, 0x3f
LAB_800191fc:
sra v0, t0, 0x6
sll v0, v0, 0x6
subu v0, a1, v0
lh v1, 0x9e(gp)
sll v0, v0, 0x2
sb v0, 0xc(s3)
bgez v1, LAB_80019220
move v0, v1
AddOffsetY:
addiu v0, v1, 0xff
LAB_80019220:
sra v0, v0, 0x8
sll v0, v0, 0x8
subu v0, v1, v0
sb v0, 0xd(s3)
lhu v1, 0xa4(gp)
li v0, 0xc
sh v0, 0x10(s3)
sh v0, 0x12(s3)
sh v1, 0xe(s3)
LoadCharacter:
lhu a0, 0x0(s6)
nop
sltiu v0, a0, 0x1000
beq v0, zero, LAB_80019518
addiu s6, s6, 0x2
; Подготовка к отрисовке символа
lui s1, 0x8008
addiu s5, s1, -0x6c20
lui s0, 0xff
ori s0, s0, 0xffff
lui s7, 0x8000
LAB_8001926c:
jal MakeCharInScratch
clear s2
; Настройка DMA для символа
SetupDMAForChar:
lw v0, 0xac(gp)
lhu v1, 0x4(s4)
addiu v0, v0, 0xc
mult v1, v0
lui t2, 0xff00
move t4, s4
addiu t3, sp, 0x10
move t1, s4
sh s8, 0xa(s3)
lhu t5, 0x20(sp)
mflo t6
addu v0, t5, t6
sh v0, 0x8(s3)
LAB_800192a8:
lw v0, -0x6c20(s1)
nop
and a0, v0, t2
and v0, v0, s0
or a1, v0, s7
lw v0, 0x4(s5)
lw v1, 0x0(a1)
addiu v0, v0, -0x1
and v1, v1, s0
or a0, a0, v1
sw v0, 0x4(s5)
sw a0, -0x6c20(s1)
lw t7, 0x0(s3)
lw t8, 0x4(s3)
lw t5, 0x8(s3)
lw t6, 0xc(s3)
sw t7, 0x0(a1)
sw t8, 0x4(a1)
sw t5, 0x8(a1)
sw t6, 0xc(a1)
lw t7, 0x10(s3)
nop
sw t7, 0x10(a1)
; Подготовка адресов в DMA-цепочке в RAM
DMAcharAddres:
lw v1, 0x18(t1)
lw v0, 0x0(a1)
lw v1, 0x0(v1)
and v0, v0, t2
and v1, v1, s0
or v0, v0, v1
sw v0, 0x0(a1)
lw a0, 0x18(t1)
nop
lw v0, 0x0(a0)
and v1, a1, s0
and v0, v0, t2
or v0, v0, v1
sw v0, 0x0(a0)
sw a1, 0x18(t1)
lhu v0, 0x4(t4)
nop
bne v0, zero, LAB_80019354
clear t0
sw a1, 0x28(t1)
LAB_80019354:
move a3, t0
move a2, t3
LAB_8001935c:
lui a1, 0x1f80
lw v0, -0x6c20(s1)
ori a1, a1, 0x348
and v0, v0, s0
or v0, v0, s7
sw v0, 0x0(a2)
lw v1, -0x6c20(s1)
lw v0, 0x0(v0)
lw a0, 0x4(s5)
and v1, v1, t2
and v0, v0, s0
or v1, v1, v0
addiu a0, a0, -0x1
sw v1, -0x6c20(s1)
sw a0, 0x4(s5)
lw a0, 0x0(a2)
addu v1, a3, a1
or v0, v1, a0
andi v0, v0, 0x3
beq v0, zero, LAB_80019404
addiu v0, v1, 0x30
LAB_800193b0:
lwl t7, 0x3(v1)
lwr t7, 0x0(v1)
lwl t8, 0x7(v1)
lwr t8, 0x4(v1)
lwl t5, 0xb(v1)
lwr t5, 0x8(v1)
lwl t6, 0xf(v1)
lwr t6, 0xc(v1)
swl t7, 0x3(a0)
swr t7, 0x0(a0)
swl t8, 0x7(a0)
swr t8, 0x4(a0)
swl t5, 0xb(a0)
swr t5, 0x8(a0)
swl t6, 0xf(a0)
swr t6, 0xc(a0)
addiu v1, v1, 0x10
bne v1, v0, LAB_800193b0
addiu a0, a0, 0x10
j LAB_80019430
nop
LAB_80019404:
lw t7, 0x0(v1)
lw t8, 0x4(v1)
lw t5, 0x8(v1)
lw t6, 0xc(v1)
sw t7, 0x0(a0)
sw t8, 0x4(a0)
sw t5, 0x8(a0)
sw t6, 0xc(a0)
addiu v1, v1, 0x10
bne v1, v0, LAB_80019404
addiu a0, a0, 0x10
LAB_80019430:
lwl t7, 0x3(v1)
lwr t7, 0x0(v1)
lwl t8, 0x7(v1)
lwr t8, 0x4(v1)
swl t7, 0x3(a0)
swr t7, 0x0(a0)
swl t8, 0x7(a0)
swr t8, 0x4(a0)
addiu a3, a3, 0x44
addiu t0, t0, 0x1
sltiu v0, t0, 0x2
bne v0, zero, LAB_8001935c
addiu a2, a2, 0x4
lw a0, 0x10(sp)
lw v1, 0x18(t1)
lw v0, 0x0(a0)
lw v1, 0x0(v1)
and v0, v0, t2
and v1, v1, s0
or v0, v0, v1
sw v0, 0x0(a0)
lw a0, 0x18(t1)
lw v1, 0x10(sp)
lw v0, 0x0(a0)
and v1, v1, s0
and v0, v0, t2
or v0, v0, v1
sw v0, 0x0(a0)
lw a0, 0x14(sp)
lw v1, 0x10(sp)
lw v0, 0x0(a0)
lw v1, 0x0(v1)
and v0, v0, t2
and v1, v1, s0
or v0, v0, v1
sw v0, 0x0(a0)
lw a0, 0x10(sp)
lw v1, 0x14(sp)
lw v0, 0x0(a0)
and v1, v1, s0
and v0, v0, t2
or v0, v0, v1
sw v0, 0x0(a0)
lw v0, 0x14(sp)
addiu s2, s2, 0x1
sw v0, 0x18(t1)
sltiu v0, s2, 0x2
bne v0, zero, LAB_800192a8
addiu t1, t1, 0x4
lhu v0, 0x4(s4)
nop
addiu v0, v0, 0x1
sh v0, 0x4(s4)
lhu a0, 0x0(s6)
nop
sltiu v0, a0, 0x1000
bne v0, zero, LAB_8001926c
addiu s6, s6, 0x2
LAB_80019518:
clear s2
lui s3, 0x8008
addiu s5, s3, -0x6c20
lui s1, 0xff
ori s1, s1, 0xffff
move s0, s4
clear a1
LAB_80019534:
li a2, 0x1
addu s2, s2, a2
lui v0, 0x8000
lui a0, 0xff00
lw v1, -0x6c20(s3)
lw a3, 0xa0(gp)
and v1, v1, s1
or v1, v1, v0
sw v1, 0x30(s0)
lw v0, -0x6c20(s3)
lw v1, 0x0(v1)
and v0, v0, a0
and v1, v1, s1
lw a0, 0x4(s5)
or v0, v0, v1
sw v0, -0x6c20(s3)
addiu a0, a0, -0x1
sw a0, 0x4(s5)
lw a0, 0x30(s0)
jal SetDrawTPage
addiu s0, s0, 0x4
sltiu v0, s2, 0x2
bne v0, zero, LAB_80019534
clear a1
move v0, s4
lw ra, 0x4c(sp)
lw s8, 0x48(sp)
lw s7, 0x44(sp)
lw s6, 0x40(sp)
lw s5, 0x3c(sp)
lw s4, 0x38(sp)
lw s3, 0x34(sp)
lw s2, 0x30(sp)
lw s1, 0x2c(sp)
lw s0, 0x28(sp)
jr ra
addiu sp, sp, 0x50

View File

@@ -0,0 +1,67 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;
;;; Some txt Patches to JAPAN Version to print bi(u)g text smaller
;;;
.open "3_CD_EXTRA/BIN/SLPS_028.26", 0x8000F800
;Text speed patch (0 - show all text, 2 - Normal, 1 - Button Pressed (fast) )
.org 0x8001b5b8
li a0, 0
;lhu a0, 0xc0(gp) ;Original Code
; Main Bigfont size between letters for special codes
.org 0x8001927c
addiu v0,v0,0x6
;calcNextX Routine (calc X in line after command)
;.org 0x8001af38
; sll r2,r3,2h ; Its Original - Custom in custom routine
;dialog start line tabulation
;.org 0x8007b195
; .byte 0x4 ;pixels
.org 0x8001ca0c
li a2, 0x4
;;;;;;;;;;;;;;;;;;;;;;;;Print Routines Calls Replacing
;main dialog calls from PrintProgramText Routine
.org 0x8001cd58
jal ExternalPrint
.org 0x8001cdd8
jal ExternalPrint
.org 0x8001c098
jal ExternalPrint
.org 0x8001c10c
jal ExternalPrint
;printPlaneTEXT (PlayerName, etc...)
.org 0x8001c388
jal ExternalPrint
;custom CheckCharNumToLineEnd for proper Complex Lines Read (charcountread)
.org 0x8001abf4
j ReturnCharsInString ;custom routine
clear v1
;j 0x8001af00 ;original code
;calcnextX Custom
.org 0x8001ac1c
; addiu sp,sp,-0x18 ;Original Code
; sw ra,0x10(sp)
j calcnextXCustom ;PATCHED
nop
.close