102 lines
2.3 KiB
NASM
102 lines
2.3 KiB
NASM
;;;;;;;;;;;;;;;;;;;;;;;;; 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 |