53 lines
1.7 KiB
NASM
53 lines
1.7 KiB
NASM
/////////////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// Persona 2 Eternal Punishment (PSX) JAP / User Menu Persona/Demon russian info 2-line rendering PATCH
|
|
// Author: Sergey Shemet 09/01/2026
|
|
//
|
|
// v 1.0 - Initial
|
|
//
|
|
|
|
.psx
|
|
|
|
.open "2_EP/BIN/0684_PLAYER_MENU_CODE.bin", 0x80096000
|
|
|
|
.org 0x80098dd0
|
|
.area 0x174, 0
|
|
|
|
move s0, v0 // saving read addr in save2 reg
|
|
move a0, s0 // moving text address to arg to print text (no more 8 byte shift!)
|
|
li a1, 0x30
|
|
li a2, 0x25 //print params
|
|
li a3, 0x1
|
|
move v0, a3
|
|
jal 0x80090000 //my print procedure
|
|
sw v0, 0x10(sp) //wtf
|
|
|
|
lui a1,0x800a
|
|
addiu a1,a1,0x20
|
|
andi v1,s1,0xff
|
|
sll v1,v1,0x2
|
|
lui t0,0x8008
|
|
|
|
addu v1,v1,a1
|
|
sw v0,0x0(v1) //saving 1st link address
|
|
nop
|
|
|
|
lhu v0, 0x0(s0) //we need to shift current string
|
|
nop
|
|
andi v0, 0xFF //cleaning length
|
|
addiu s0, 4 //shift text string command + next line cmd
|
|
addu s0, v0 //shift read address
|
|
andi v0, s0, 1
|
|
beq v0, zero, not_and_1
|
|
nop
|
|
addiu s0, 1 //16bit align
|
|
not_and_1:
|
|
move a0, s0 //another print
|
|
|
|
.endarea
|
|
//........................................
|
|
//........ORIGINAL 2nd STRING PRINT CODE..
|
|
//........................................
|
|
.close
|
|
|
|
// compile with ./armips -sym 2_EP/BUILD_LOGS/0681_PLAYER_MENU_P.map -temp 2_EP/BUILD_LOGS/0681_PLAYER_MENU_P.txt 2_EP/EP_684_Persona_Info_render.asm |