EP battle names print src
This commit is contained in:
@@ -473,7 +473,7 @@ PageTLoop:
|
||||
|
||||
jr ra // Возврат
|
||||
addiu sp, sp, 0x50 // Восстанавливаем стек
|
||||
.ascii "This game was officially cracked by SERGEY SHEMET 2021-2025. WHAT ARE YOU DOING HERE, BOY?"
|
||||
.ascii "This game was officially cracked by SERGEY SHEMET 2021-2026. WHAT ARE YOU DOING HERE, BOY?"
|
||||
.byte 0x00
|
||||
.byte 0x00
|
||||
|
||||
|
||||
BIN
2_EP/BIN/789_BATTLE_CODE_JAP.bin
Normal file
BIN
2_EP/BIN/789_BATTLE_CODE_JAP.bin
Normal file
Binary file not shown.
Binary file not shown.
@@ -60,4 +60,9 @@
|
||||
80090868 retuncharstocitydiv2
|
||||
80090884 ismy1bytecitydiv2
|
||||
800908A0 notand1_2
|
||||
800908AC customnamerender
|
||||
800908C8 read_chars_jap
|
||||
800908F8 read_chars_rus
|
||||
80090908 read_rus_char
|
||||
80090924 end_of_name_read
|
||||
|
||||
@@ -1,12 +1,14 @@
|
||||
; 4 files included
|
||||
; 895 lines
|
||||
; 79 labels
|
||||
; 6 files included
|
||||
; 1033 lines
|
||||
; 84 labels
|
||||
; 0 equations
|
||||
|
||||
; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm
|
||||
; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm
|
||||
; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm
|
||||
; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm
|
||||
; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_txtpatches.asm
|
||||
; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_code_links_main.asm
|
||||
|
||||
FFFFFFFF .psx ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 9
|
||||
800578FC setdrawtpage: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 12
|
||||
@@ -372,7 +374,7 @@ FFFFFFFF .open ""C:\\Users\\Sergey\\Documents\\GitHub\\Persona2-PSX-asm-sources\
|
||||
80090520 addiu sp,sp,0x50 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 482
|
||||
80090524 make_char_line_in_scratch: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 4
|
||||
80090524 addiu sp,sp,-0x18 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 6
|
||||
80090528 sw ra,0x10(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 7
|
||||
80090528 sw s3,0x10(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 7
|
||||
8009052C sw t5,0x14(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 8
|
||||
80090530 move t5,a0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 9
|
||||
80090534 sll s3,a1,0x2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 11
|
||||
@@ -537,7 +539,7 @@ FFFFFFFF .open ""C:\\Users\\Sergey\\Documents\\GitHub\\Persona2-PSX-asm-sources\
|
||||
80090770 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 229
|
||||
80090774 notshadow: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 231
|
||||
80090774 lw t5,0x14(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 232
|
||||
80090778 lw ra,0x10(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 233
|
||||
80090778 lw s3,0x10(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 233
|
||||
8009077C move v0,s1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 234
|
||||
80090780 jr ra ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 235
|
||||
80090784 addiu sp,sp,0x18 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 236
|
||||
@@ -627,7 +629,63 @@ FFFFFFFF .open ""C:\\Users\\Sergey\\Documents\\GitHub\\Persona2-PSX-asm-sources\
|
||||
800908A0 sra v0,v0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 101
|
||||
800908A4 jr ra ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 103
|
||||
800908A8 move v1,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 104
|
||||
800908AC .close ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 487
|
||||
800908AC customnamerender: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 7
|
||||
800908AC clear a1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 52
|
||||
800908B0 lui v1,-0x7FF7 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 55
|
||||
800908B4 lh v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 56
|
||||
800908B8 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 57
|
||||
800908BC srl v0,v0,0xD ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 58
|
||||
800908C0 bne v0,zero,0x800908F8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 59
|
||||
800908C4 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 60
|
||||
800908C8 read_chars_jap: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 62
|
||||
800908C8 lbu v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 63
|
||||
800908CC nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 64
|
||||
800908D0 sb v0,-0xC(v1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 66
|
||||
800908D4 beq v0,zero,0x80090924 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 67
|
||||
800908D8 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 68
|
||||
800908DC addiu v1,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 69
|
||||
800908E0 addiu a1,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 70
|
||||
800908E4 sltiu v0,a1,0x7 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 71
|
||||
800908E8 bne v0,zero,0x800908C8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 72
|
||||
800908EC addiu a0,0x2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 73
|
||||
800908F0 j 0x80090924 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 75
|
||||
800908F4 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 76
|
||||
800908F8 read_chars_rus: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 79
|
||||
800908F8 lh v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 80
|
||||
800908FC nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 81
|
||||
80090900 andi a2,v0,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 82
|
||||
80090904 addiu a0,0x2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 83
|
||||
80090908 read_rus_char: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 84
|
||||
80090908 lbu v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 85
|
||||
8009090C nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 86
|
||||
80090910 sb v0,-0xC(v1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 87
|
||||
80090914 addiu v1,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 88
|
||||
80090918 addiu a1,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 89
|
||||
8009091C bne a1,a2,0x80090908 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 90
|
||||
80090920 addiu a0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 91
|
||||
80090924 end_of_name_read: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 93
|
||||
80090924 lui v0,0x1F80 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 95
|
||||
80090928 ori v0,0x3F0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 96
|
||||
8009092C move a0,a2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 98
|
||||
80090930 addu v0,v0,a0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 99
|
||||
80090934 addiu v0,-0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 100
|
||||
80090938 lbu a1,0x0(v0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 101
|
||||
8009093C nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 102
|
||||
80090940 sll a1,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 104
|
||||
80090944 sw a1,0x5E(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 106
|
||||
80090948 sra a1,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 107
|
||||
8009094C lui t3,-0x7FF7 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 109
|
||||
80090950 ori t3,t3,0x1500 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 110
|
||||
80090954 jal 0x80090524 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 112
|
||||
80090958 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 113
|
||||
8009095C addiu a0,sp,0x58 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 115
|
||||
80090960 jal 0x80054894 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 116
|
||||
80090964 move a1,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 117
|
||||
80090968 jal 0x800545E8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 118
|
||||
8009096C clear a0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 119
|
||||
80090970 j 0x800D2268 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 121
|
||||
80090974 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_name_render.asm line 122
|
||||
80090978 .close ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 488
|
||||
FFFFFFFF .open ""C:\\Users\\Sergey\\Documents\\GitHub\\Persona2-PSX-asm-sources\\2_EP\\BIN\\SLPS_028.25"",0x8000F800; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_txtpatches.asm line 7
|
||||
8000F800 .org 0x8001B5B8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_txtpatches.asm line 10
|
||||
8001B5B8 ori a1,r0,0x0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_txtpatches.asm line 11
|
||||
@@ -650,3 +708,8 @@ FFFFFFFF .open ""C:\\Users\\Sergey\\Documents\\GitHub\\Persona2-PSX-asm-sources\
|
||||
8001BF08 j 0x800907F0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_txtpatches.asm line 56
|
||||
8001BF0C nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_txtpatches.asm line 57
|
||||
8001BF10 .close ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_txtpatches.asm line 59
|
||||
FFFFFFFF .open ""C:\\Users\\Sergey\\Documents\\GitHub\\Persona2-PSX-asm-sources\\2_EP\\BIN\\789_BATTLE_CODE_JAP.bin"",0x800AB000; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_code_links_main.asm line 2
|
||||
800AB000 .org 0x800D2214 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_code_links_main.asm line 5
|
||||
800D2214 j 0x800908AC ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_code_links_main.asm line 11
|
||||
800D2218 move a0,s0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_code_links_main.asm line 12
|
||||
800D221C .close ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_battle_code_links_main.asm line 14
|
||||
|
||||
14
2_EP/EP_battle_code_links_main.asm
Normal file
14
2_EP/EP_battle_code_links_main.asm
Normal file
@@ -0,0 +1,14 @@
|
||||
;BATTLE CUSTOM NAME RENDERING REDIRECT
|
||||
.open "2_EP/BIN/789_BATTLE_CODE_JAP.bin", 0x800AB000
|
||||
|
||||
|
||||
.org 0x800d2214
|
||||
|
||||
;ORIGINAL
|
||||
; jal 0x8001bee0 //Оригинальный вызов процедуры подсчёта символов в текущем имени. Мы заменим её вызовом своего кода
|
||||
; move a0, s0 //a0 - адрес имени
|
||||
|
||||
j customNameRender
|
||||
move a0, s0
|
||||
|
||||
.close
|
||||
122
2_EP/EP_battle_name_render.asm
Normal file
122
2_EP/EP_battle_name_render.asm
Normal file
@@ -0,0 +1,122 @@
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Persona 2 Eternal Punishment (PSX) JAP / Custom Name Render In Battle VRAM
|
||||
// Author: Sergey Shemet 24/01/2026
|
||||
//
|
||||
|
||||
customNameRender:
|
||||
// _4bit_conversion_table2:
|
||||
// lui t8, 0x1f80
|
||||
// ori t8, t8, 0x390
|
||||
// lui t7, 0x8001
|
||||
// ori t7, t7, 0x5fc
|
||||
// lw t5, 0x0(t7)
|
||||
// lw t6, 0x4(t7)
|
||||
// sw t5, 0x0(t8)
|
||||
// sw t6, 0x4(t8)
|
||||
// lw t5, 0x8(t7)
|
||||
// lw t6, 0xC(t7)
|
||||
// sw t5, 0x8(t8)
|
||||
// sw t6, 0xC(t8)
|
||||
// lw t5, 0x10(t7)
|
||||
// lw t6, 0x14(t7) //Удалим этот код, потому что эта таблица в 99.999999% есть в scratchpad
|
||||
// sw t5, 0x10(t8)
|
||||
// sw t6, 0x14(t8)
|
||||
// lw t5, 0x18(t7)
|
||||
// lw t6, 0x1C(t7)
|
||||
// sw t5, 0x18(t8)
|
||||
// sw t6, 0x1C(t8)
|
||||
|
||||
// make_sprite_size_table2:
|
||||
// lui s3, 0x1f80
|
||||
// ori s3, 0x03f0
|
||||
// lui v0, 0x0403
|
||||
// ori v0, 0x0201 //И эта моя кастомная таблица тоже
|
||||
// sw v0, 0x0(s3)
|
||||
// lui v1, 0x0706
|
||||
// ori v1, 0x0504
|
||||
// sw v1, 0x4(s3)
|
||||
|
||||
|
||||
|
||||
// Занятые регистры после перехода из процедуры рендеринга
|
||||
// ИХ НЕ ТРОГАТЬ (Если трогать, то сохранять в стеке, либо в вызове make_char_line_in_scratch)
|
||||
// s3 - входящий a0 функции (используется позже в коде)
|
||||
// s4 - адрес параметров перса (смещение 0x54)
|
||||
// s5 - счётчик персов
|
||||
// s6 - глобальный RECT.x VRAM
|
||||
|
||||
//адрес имени в a0
|
||||
|
||||
// заполняем буфер и активируем счётчик в зависимости от типа хранения имени
|
||||
clear a1
|
||||
|
||||
|
||||
lui v1, MyAddr
|
||||
lh v0, 0x0(a0)
|
||||
nop
|
||||
srl v0, v0, 0xD // Проверяем 13-й бит (имя в моём формате)
|
||||
bne v0, zero, read_chars_rus // Если установлен, читаем текст по-другому
|
||||
nop
|
||||
|
||||
read_chars_jap: //читаем японское имя ГГ из IS
|
||||
lbu v0, 0x0(a0)
|
||||
nop
|
||||
|
||||
sb v0, -0x0c(v1) // Запись символа в буфер
|
||||
beq v0, zero, end_of_name_read
|
||||
nop
|
||||
addiu v1, 0x1 //Увеличиваем адрес записи в буфер
|
||||
addiu a1, 0x1 //Счётчик +1
|
||||
sltiu v0, a1, 0x7
|
||||
bne v0, zero, read_chars_jap //Продолжаем 6 символов... TODO: Считывать до управляющего кода! Хотя он и так остановится на 0x00 в следующей функции.
|
||||
addiu a0, 0x2 //адрес чтения + 2
|
||||
|
||||
j end_of_name_read //Пропускаем чтение русского имени
|
||||
nop
|
||||
|
||||
|
||||
read_chars_rus: //Читаем русское имя из EP
|
||||
lh v0, 0x0(a0)
|
||||
nop
|
||||
andi a2, v0, 0xFF //чистим количество символов и превращаем в счётчик
|
||||
addiu a0, 2 //Смещаем адрес чтения текста (пропускаем управляющий код)
|
||||
read_rus_char:
|
||||
lbu v0, 0x0(a0) //грузим символ...
|
||||
nop
|
||||
sb v0, -0x0c(v1)
|
||||
addiu v1, 0x1 //Увеличиваем адрес записи в буфер
|
||||
addiu a1, 0x1 //Счётчик +1
|
||||
bne a1, a2, read_rus_char //Продолжаем, пока не достигнем счётчика символов
|
||||
addiu a0, 0x1 //адрес чтения + 1
|
||||
|
||||
end_of_name_read:
|
||||
|
||||
lui v0, 0x1f80 //Адрес хранения таблицы количества спрайтов на количество символов
|
||||
ori v0, 0x03f0
|
||||
|
||||
move a0, a2 // Перебрасываем cчётчик символов в a0
|
||||
addu v0, v0, a0 // получаем адрес количества спрайтов из таблицы
|
||||
addiu v0, -0x1 // index -1
|
||||
lbu a1, 0x0(v0) // Читаем количество ширину спрайтов в a1
|
||||
nop
|
||||
|
||||
sll a1, 1 //*2 = Ширина в 16 битах
|
||||
|
||||
sw a1, 0x5e(sp) //Сохраняем rect.h в стек
|
||||
sra a1, 1 //Возвращаем ширину блоков спрайта и передаём в функцию
|
||||
|
||||
lui t3, 0x8009
|
||||
ori t3, t3, 0x1500 // Начало данных спрайта в RAM (LoadImage не работает со scratch!)
|
||||
|
||||
jal make_char_line_in_scratch //Формируем символы в RAM
|
||||
nop
|
||||
|
||||
addiu a0, sp, 0x58 //RECT хранится в стеке...
|
||||
jal 0x80054894 //Вызов LoadImage
|
||||
move a1, v0 //Адрес данных символов, которые вернулись из процедуры формирования пикулей
|
||||
jal 0x800545e8 //Тут же вызов DrawSync
|
||||
clear a0 //Обязательно обнуляем аргумент 0
|
||||
|
||||
j 0x800d2268 //Возврат в оригинальную процедуру на команду смещения глобального X
|
||||
nop
|
||||
@@ -4,7 +4,7 @@
|
||||
make_char_line_in_scratch:
|
||||
|
||||
addiu sp, sp,-0x18
|
||||
sw ra, 0x10(sp)
|
||||
sw s3, 0x10(sp)
|
||||
sw t5, 0x14(sp)
|
||||
move t5, a0 //char num
|
||||
|
||||
@@ -230,7 +230,7 @@ shadow_row_loop:
|
||||
|
||||
NotShadow:
|
||||
lw t5,0x14(sp)
|
||||
lw ra,0x10(sp) //Restore stack and exit
|
||||
lw s3,0x10(sp) //Restore stack and exit
|
||||
move v0, s1
|
||||
jr ra
|
||||
addiu sp, sp, 0x18
|
||||
@@ -484,9 +484,11 @@ PageTLoop:
|
||||
|
||||
.include "2_EP/EP_charload_grouped.asm"
|
||||
.include "2_EP/EP_charCalcs.asm"
|
||||
.include "2_EP/EP_battle_name_render.asm"
|
||||
.close
|
||||
|
||||
.include "2_EP/EP_txtpatches.asm" // misc text patches
|
||||
.include "2_EP/EP_battle_code_links_main.asm" //links battle calls to main code funcs
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user