Files
Persona2-PSX-asm-sources/1_IS/battle_patch.asm
2025-11-04 23:06:09 +05:00

102 lines
2.3 KiB
NASM
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;;;;;;;;;;;;;;;;;;;;;;;;; BOSSNAMECOPY
.psx
.open "1_IS/BIN/0001_BATTLE_CODE.bin", 0x800AB000
.definelabel SimpleCopyString, 0x800ef150
.org 0x800f9e60
;BOSSNAME COPY
lhu r2,0x0(r5)
addiu r5,2
sh r2,0x0(r4)
andi r3,r2,0xFF
addiu r4,2
nextch:
lbu r2,0x0(r5)
nop
sb r2,0x0(r4)
addiu r4,1
addiu r5,1
addiu r3,-1
bne r3,zero,nextch
nop
jr ra
nop
;BATTLE CONTACT RUS SCRIPT BUILDING
CheckAndCopyRusInScript:
lhu r3,0x0(r5)
nop
srl r3,r3,0xD ;;;;Check 13th bit (1byte system !!!)
bne v1,zero,MyCopy
nop
j SimpleCopyString
nop
MyCopy:
lhu r3,0x0(r5)
nop
andi r3,r3,0xFF
addiu r3,2
nx:
lbu r2,0x0(r5)
nop
sb r2,0x0(r4)
addiu r4,1
addiu r3,-1
bne r3,zero,nx
addiu r5,1
;needToCheck And1 ;ODD_OR_EVEN???
andi r2,r4,0x1
beq r2,zero,notAnd1_3
nop
addiu r4,r4,0x1
notAnd1_3:
jr ra
move r2,r4 ;Duplicate for futher script
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ДИНАМИЧЕСКОЕ ОБРУБАНИЕ ТЕКСТА В БОЁВКЕ!
.org 0x800f9f20
lui r2,0x8011 ;;; LUI ---==== LOAD UPPER INTEGER
lbu r2,0x0bc8(r2)
nop
li r3,3
bne r2,r3,not3 ;if mode not 3 = limit 30!
li r3,0x30 ;ЭТА СРОКА ВЫПОЛНИТСЯ ПРИ ПЕРЕХОДЕ. Если перехода нет, то r3 перезаписывается. Итого экономим 32 байта на дублях команд
li r3,0x80 ;Эта строка выполнится только если в 80110bc8 будет 03 (режим общения)
not3:
lui r2,0x8009 ;загружаем адрес 80090000 в r2
sb r3,-0x0c(r2) ;Записываем новый лимит в 80090000 - 0c
j 0x80016e10 ;вылетаем в программу дальше по плану! (Хз что там за программа, но выполняется каждый цикл)
nop
;BOSSNAME COPYЧёт формат
.org 0x800ad4e8
;jal 0x80016024 - ORIGINAL CALL
;custom call
; jal 0x8008f600
;.org 0x800ad508
; jal 0x8008f700
;Battlecontact copy
.org 0x800f1f60
jal CheckAndCopyRusInScript
.org 0x800f20bc
jal CheckAndCopyRusInScript
.close