;;;;;;;;;;;;;;;;;;;;;;;;; BOSSNAMECOPY .psx .open "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