EP: Groped chars v1.1
+ char calcs calls
This commit is contained in:
@@ -189,7 +189,7 @@ TextGroupReadLoop:
|
||||
lui s3, 0x1f80
|
||||
ori s3, 0x03f0 // Перезадаём адрес таблицы количества спрайтов для нового цикла
|
||||
lui t1, MyAddr //Постоянный счётчик
|
||||
//TODO!!!!!: Динамическая длина строки для соединения с переменными!
|
||||
|
||||
lh v1, -0x0e(t1) //Загружаем количество оставшихся символов
|
||||
lui t2, MyAddr //Сдвиг для буфера
|
||||
sltiu a0, v1, 0x0B //Меньше 10 в строке?
|
||||
@@ -431,13 +431,13 @@ TextEnd:
|
||||
clear a1
|
||||
|
||||
PageTLoop:
|
||||
// Завершающая обработка страниц
|
||||
//Добавляем команду переключения текстурной страницы (SetDrawTPage) в обе страницы
|
||||
li a2, 0x1 // a2 = 1
|
||||
addu s2, s2, a2 // Увеличиваем счетчик
|
||||
lui v0, 0x8000 // v0 = 80000000
|
||||
lui a0, 0xff00 // a0 = ff000000
|
||||
lw v1, -0x4930(s3) // Следующая свободная цепочка
|
||||
lw a3, 0xa4(gp) // Некоторые параметры (почти DMA)
|
||||
lw a3, 0xa4(gp) // Текстурная страница
|
||||
and v1, v1, s1 // v1 & 00FFFFFF
|
||||
or v1, v1, v0 // v1 | v0 = 80.....
|
||||
sw v1, 0x30(s0) // Сохраняем последний свободный адрес в параметрах DMA
|
||||
|
||||
Binary file not shown.
63
2_EP/BUILD_LOGS/SLPS_028.25.map
Normal file
63
2_EP/BUILD_LOGS/SLPS_028.25.map
Normal file
@@ -0,0 +1,63 @@
|
||||
00000000 0
|
||||
00008009 myaddr
|
||||
8001A3A8 printbigdmatext
|
||||
8001B110 initcopycharchain
|
||||
8001B2A8 makeshadowsmallchar
|
||||
8001C0B4 storecolor
|
||||
800578FC setdrawtpage
|
||||
80090000 externalprint
|
||||
8009001C myprintlineroutine
|
||||
800900DC cputovram_scratchpad_template
|
||||
8009010C _1bppto4bpp_table_template
|
||||
8009015C rect_scratchpad_template
|
||||
800901A0 make_sprite_size_table
|
||||
800901C8 misc_init
|
||||
800901CC textgroupreadloop
|
||||
800901F0 readtexttobuffer
|
||||
8009023C form_char_data_in_scratch
|
||||
80090244 rect_cmd_init
|
||||
80090268 rect_set_x
|
||||
8009027C rect_set_width
|
||||
80090284 pageloop
|
||||
800902B8 rect_copy_scratch_to_ram
|
||||
800902E4 rect_scratch_connect
|
||||
80090338 cpu2vram_cmd_loop
|
||||
800903A4 copy_char_data_start
|
||||
800903C0 copy_char_data_loop
|
||||
800903E8 set_flush_cache_cmd
|
||||
800903F8 cpu2vram_dma_link
|
||||
80090454 chunk_making_end
|
||||
80090470 textend
|
||||
8009048C pagetloop
|
||||
8009051C make_char_line_in_scratch
|
||||
80090538 char_data_clear
|
||||
80090544 char_data_loop
|
||||
80090570 chars_font_loop
|
||||
80090598 char_lines_loop
|
||||
800905A8 its_not_empty
|
||||
80090638 not_last
|
||||
80090644 divideby4
|
||||
80090644 zero_jump
|
||||
80090654 spacejump
|
||||
80090670 sprite_end
|
||||
80090688 make_shadow
|
||||
800906AC shadow_row_loop
|
||||
800906B0 shadow_sprites_loop
|
||||
800906C0 shadow_pixel_loop
|
||||
8009071C normal_case
|
||||
80090740 no_s
|
||||
8009076C notshadow
|
||||
80090780 returncharsinstring
|
||||
8009079C ismy1bytestring
|
||||
800907B8 notand1
|
||||
800907C8 getnewchar
|
||||
800907CC startreading
|
||||
800907E8 calcnextxcustom
|
||||
80090810 japoldtext
|
||||
80090818 ihavestringlength
|
||||
80090830 retuncharstocity
|
||||
8009084C ismy1bytecity
|
||||
80090860 retuncharstocitydiv2
|
||||
8009087C ismy1bytecitydiv2
|
||||
80090898 notand1_2
|
||||
|
||||
648
2_EP/BUILD_LOGS/SLPS_028.25.txt
Normal file
648
2_EP/BUILD_LOGS/SLPS_028.25.txt
Normal file
@@ -0,0 +1,648 @@
|
||||
; 4 files included
|
||||
; 889 lines
|
||||
; 79 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_txtpatches.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
|
||||
8001C0B4 storecolor: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 13
|
||||
8001B110 initcopycharchain: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 14
|
||||
8001B2A8 makeshadowsmallchar: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 15
|
||||
8001A3A8 printbigdmatext: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 16
|
||||
00008009 myaddr: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 18
|
||||
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_main_grouped.asm line 20
|
||||
8000F800 .org 0x80090000 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 22
|
||||
80090000 externalprint: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 24
|
||||
80090000 lhu v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 26
|
||||
80090004 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 27
|
||||
80090008 srl v1,v0,0xD ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 28
|
||||
8009000C bne v1,zero,0x8009001C ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 29
|
||||
80090010 clear v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 30
|
||||
80090014 j 0x8001A3A8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 31
|
||||
80090018 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 32
|
||||
8009001C myprintlineroutine: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 34
|
||||
8009001C addiu sp,sp,-0x50 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 35
|
||||
80090020 sw ra,0x48(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 36
|
||||
80090024 sw s0,0x28(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 37
|
||||
80090028 sw s1,0x2C(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 38
|
||||
8009002C sw s2,0x30(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 39
|
||||
80090030 sw s3,0x34(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 40
|
||||
80090034 sw s4,0x38(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 41
|
||||
80090038 sw s5,0x3C(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 42
|
||||
8009003C sw s6,0x40(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 43
|
||||
80090040 sw s7,0x44(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 44
|
||||
80090044 move s6,a0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 46
|
||||
80090048 move s1,a1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 47
|
||||
8009004C move s2,a2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 48
|
||||
80090050 andi v0,v0,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 52
|
||||
80090054 addiu s6,s6,0x2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 53
|
||||
80090058 lui s3,-0x7FF7 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 54
|
||||
8009005C sh v0,-0x10(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 55
|
||||
80090060 sh v0,-0xE(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 56
|
||||
80090064 lui t0,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 58
|
||||
80090068 ori t0,t0,-0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 59
|
||||
8009006C sw s0,0x28(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 61
|
||||
80090070 andi s0,a3,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 62
|
||||
80090074 move a0,s0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 63
|
||||
80090078 lui a3,-0x7FF8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 64
|
||||
8009007C lui a2,-0x100 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 65
|
||||
80090080 addiu t1,a3,-0x31A8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 68
|
||||
80090084 lw v1,0x0(t1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 69
|
||||
80090088 lbu a1,0x60(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 70
|
||||
8009008C lui v0,-0x8000 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 71
|
||||
80090090 and a2,v1,a2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 73
|
||||
80090094 andi a1,a1,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 74
|
||||
80090098 and v1,v1,t0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 75
|
||||
8009009C or s4,v1,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 76
|
||||
800900A0 lw v0,0x4(t1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 77
|
||||
800900A4 lw v1,0x0(s5) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 78
|
||||
800900A8 addiu v0,v0,-0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 79
|
||||
800900AC and v1,v1,t0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 80
|
||||
800900B0 or a2,a2,v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 81
|
||||
800900B4 sw v0,0x4(t1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 82
|
||||
800900B8 jal 0x8001C0B4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 83
|
||||
800900BC sw a2,0x0(t1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 84
|
||||
800900C0 move a0,s4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 86
|
||||
800900C4 sll a1,s1,0x10 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 87
|
||||
800900C8 sra a1,a1,0x10 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 88
|
||||
800900CC sll a2,s2,0x10 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 89
|
||||
800900D0 sra a2,a2,0x10 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 90
|
||||
800900D4 jal 0x8001B110 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 91
|
||||
800900D8 move a3,s0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 92
|
||||
800900DC cputovram_scratchpad_template: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 94
|
||||
800900DC lui a3,0x1F80 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 96
|
||||
800900E0 ori a3,a3,0x348 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 97
|
||||
800900E4 lui a1,0xF00 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 99
|
||||
800900E8 sw a1,0x0(a3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 100
|
||||
800900EC lui a0,-0x6000 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 102
|
||||
800900F0 sw a0,0x4(a3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 103
|
||||
800900F4 lui v0,0x1F0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 105
|
||||
800900F8 ori v0,0x130 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 106
|
||||
800900FC sw v0,0x8(a3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 107
|
||||
80090100 lui v0,0xC ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 109
|
||||
80090104 ori v0,0x2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 110
|
||||
80090108 sw v0,0xC(a3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 111
|
||||
8009010C _1bppto4bpp_table_template: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 113
|
||||
8009010C lui t8,0x1F80 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 115
|
||||
80090110 ori t8,t8,0x390 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 116
|
||||
80090114 lui t7,-0x7FFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 117
|
||||
80090118 ori t7,t7,0x3E8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 118
|
||||
8009011C lw t5,0x0(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 119
|
||||
80090120 lw t6,0x4(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 120
|
||||
80090124 sw t5,0x0(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 121
|
||||
80090128 sw t6,0x4(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 122
|
||||
8009012C lw t5,0x8(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 123
|
||||
80090130 lw t6,0xC(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 124
|
||||
80090134 sw t5,0x8(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 125
|
||||
80090138 sw t6,0xC(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 126
|
||||
8009013C lw t5,0x10(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 127
|
||||
80090140 lw t6,0x14(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 128
|
||||
80090144 sw t5,0x10(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 129
|
||||
80090148 sw t6,0x14(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 130
|
||||
8009014C lw t5,0x18(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 131
|
||||
80090150 lw t6,0x1C(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 132
|
||||
80090154 sw t5,0x18(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 133
|
||||
80090158 sw t6,0x1C(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 134
|
||||
8009015C rect_scratchpad_template: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 136
|
||||
8009015C lui s3,0x1F80 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 138
|
||||
80090160 ori s3,0x3D0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 139
|
||||
80090164 lui v0,0x400 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 140
|
||||
80090168 sw v0,0x0(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 141
|
||||
8009016C lui v0,0x6480 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 142
|
||||
80090170 ori v0,-0x7F80 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 143
|
||||
80090174 sw v0,0x4(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 144
|
||||
80090178 ori v0,r0,-0xF40 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 145
|
||||
8009017C sh v0,0xC(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 146
|
||||
80090180 lhu v1,0x9A(gp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 147
|
||||
80090184 ori v0,r0,0x0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 149
|
||||
80090188 sw v0,0x8(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 150
|
||||
8009018C sh s2,0xA(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 151
|
||||
80090190 lui v0,0xC ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 153
|
||||
80090194 ori v0,0x8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 154
|
||||
80090198 sw v0,0x10(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 155
|
||||
8009019C sh v1,0xE(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 156
|
||||
800901A0 make_sprite_size_table: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 158
|
||||
800901A0 lui s3,0x1F80 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 159
|
||||
800901A4 ori s3,0x3F0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 160
|
||||
800901A8 lui v0,0x403 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 161
|
||||
800901AC ori v0,0x201 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 162
|
||||
800901B0 sw v0,0x0(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 163
|
||||
800901B4 lui v1,0x706 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 164
|
||||
800901B8 ori v1,0x504 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 165
|
||||
800901BC sw v1,0x4(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 166
|
||||
800901C0 ori v0,r0,0x807 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 167
|
||||
800901C4 sh v0,0x8(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 168
|
||||
800901C8 misc_init: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 170
|
||||
800901C8 move t6,s1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 171
|
||||
800901CC textgroupreadloop: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 174
|
||||
800901CC lui s3,0x1F80 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 179
|
||||
800901D0 ori s3,0x3F0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 180
|
||||
800901D4 lui t1,-0x7FF7 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 181
|
||||
800901D8 lh v1,-0xE(t1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 183
|
||||
800901DC lui t2,-0x7FF7 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 184
|
||||
800901E0 sltiu a0,v1,0xB ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 185
|
||||
800901E4 bne a0,zero,0x800901F0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 186
|
||||
800901E8 clear s2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 187
|
||||
800901EC ori v1,r0,0xA ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 188
|
||||
800901F0 readtexttobuffer: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 190
|
||||
800901F0 lbu a0,0x0(s6) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 191
|
||||
800901F4 addiu s6,s6,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 192
|
||||
800901F8 addiu v1,v1,-0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 193
|
||||
800901FC sb a0,-0xC(t2) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 194
|
||||
80090200 addiu s2,s2,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 195
|
||||
80090204 lh v0,-0xE(t1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 196
|
||||
80090208 addiu t2,t2,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 197
|
||||
8009020C addiu v0,v0,-0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 198
|
||||
80090210 bne v1,zero,0x800901F0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 199
|
||||
80090214 sh v0,-0xE(t1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 200
|
||||
80090218 ori a0,r0,0x0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 202
|
||||
8009021C sb a0,-0xC(t2) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 203
|
||||
80090220 addu s3,s3,s2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 205
|
||||
80090224 addiu s3,-0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 206
|
||||
80090228 lbu a1,0x0(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 207
|
||||
8009022C nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 208
|
||||
80090230 move t5,a1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 209
|
||||
80090234 lui t3,0x1F80 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 211
|
||||
80090238 ori t3,t3,0x1C0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 212
|
||||
8009023C form_char_data_in_scratch: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 214
|
||||
8009023C jal 0x8009051C ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 215
|
||||
80090240 move a0,s2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 216
|
||||
80090244 rect_cmd_init: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 219
|
||||
80090244 lui s3,0x1F80 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 221
|
||||
80090248 ori s3,0x3D0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 222
|
||||
8009024C lui s1,-0x7FF8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 224
|
||||
80090250 lui s0,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 226
|
||||
80090254 ori s0,s0,-0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 227
|
||||
80090258 lui s7,-0x8000 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 228
|
||||
8009025C lui t2,-0x100 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 230
|
||||
80090260 move t4,s4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 231
|
||||
80090264 move t1,s4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 232
|
||||
80090268 rect_set_x: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 234
|
||||
80090268 sh t6,0x8(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 235
|
||||
8009026C sll v0,s2,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 237
|
||||
80090270 addu v0,s2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 238
|
||||
80090274 sll v0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 239
|
||||
80090278 addu t6,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 240
|
||||
8009027C rect_set_width: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 241
|
||||
8009027C sll v0,t5,0x3 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 242
|
||||
80090280 sh v0,0x10(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 243
|
||||
80090284 pageloop: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 245
|
||||
80090284 addiu s5,s1,-0x3198 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 249
|
||||
80090288 lw v0,0x0(s5) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 254
|
||||
8009028C nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 255
|
||||
80090290 and a0,v0,t2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 256
|
||||
80090294 and v0,v0,s0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 257
|
||||
80090298 or a1,v0,s7 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 258
|
||||
8009029C lw v0,0x4(s5) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 259
|
||||
800902A0 lw v1,0x0(a1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 260
|
||||
800902A4 addiu v0,v0,-0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 261
|
||||
800902A8 and v1,v1,s0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 262
|
||||
800902AC or a0,a0,v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 263
|
||||
800902B0 sw v0,0x4(s5) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 264
|
||||
800902B4 sw a0,0x0(s5) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 265
|
||||
800902B8 rect_copy_scratch_to_ram: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 267
|
||||
800902B8 lw t8,0x0(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 268
|
||||
800902BC lw t7,0x4(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 269
|
||||
800902C0 sw t8,0x0(a1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 270
|
||||
800902C4 sw t7,0x4(a1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 271
|
||||
800902C8 lw a3,0x8(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 272
|
||||
800902CC lw t7,0xC(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 273
|
||||
800902D0 sw a3,0x8(a1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 274
|
||||
800902D4 sw t7,0xC(a1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 275
|
||||
800902D8 lw t8,0x10(s3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 276
|
||||
800902DC nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 277
|
||||
800902E0 sw t8,0x10(a1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 278
|
||||
800902E4 rect_scratch_connect: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 281
|
||||
800902E4 lw v1,0x18(t1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 282
|
||||
800902E8 lw v0,0x0(a1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 283
|
||||
800902EC lw v1,0x0(v1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 284
|
||||
800902F0 and v0,v0,t2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 285
|
||||
800902F4 and v1,v1,s0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 286
|
||||
800902F8 or v0,v0,v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 287
|
||||
800902FC sw v0,0x0(a1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 288
|
||||
80090300 lw a0,0x18(t1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 290
|
||||
80090304 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 291
|
||||
80090308 lw v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 292
|
||||
8009030C and v1,a1,s0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 293
|
||||
80090310 and v0,v0,t2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 294
|
||||
80090314 or v0,v0,v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 295
|
||||
80090318 sw v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 296
|
||||
8009031C sw a1,0x18(t1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 297
|
||||
80090320 lhu v0,0x4(t4) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 299
|
||||
80090324 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 300
|
||||
80090328 bne v0,zero,0x80090338 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 301
|
||||
8009032C clear s8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 302
|
||||
80090330 sw a1,0x28(t1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 304
|
||||
80090334 sw a3,0xC(t4) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 305
|
||||
80090338 cpu2vram_cmd_loop: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 308
|
||||
80090338 addiu s5,s1,-0x31A8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 313
|
||||
8009033C lw v0,0x0(s5) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 317
|
||||
80090340 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 318
|
||||
80090344 and a0,v0,t2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 319
|
||||
80090348 and v0,v0,s0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 320
|
||||
8009034C or a3,v0,s7 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 321
|
||||
80090350 move a2,a3 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 322
|
||||
80090354 lw v0,0x4(s5) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 323
|
||||
80090358 lw v1,0x0(a3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 324
|
||||
8009035C addiu v0,v0,-0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 325
|
||||
80090360 and v1,v1,s0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 326
|
||||
80090364 or a0,a0,v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 327
|
||||
80090368 sw v0,0x4(s5) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 328
|
||||
8009036C sw a0,0x0(s5) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 329
|
||||
80090370 lui a1,0x1F80 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 333
|
||||
80090374 ori a1,a1,0x348 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 334
|
||||
80090378 lw t8,0x0(a1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 335
|
||||
8009037C lw t7,0x4(a1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 336
|
||||
80090380 sw t8,0x0(a2) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 337
|
||||
80090384 sw t7,0x4(a2) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 338
|
||||
80090388 lw t8,0x8(a1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 339
|
||||
8009038C lw t7,0xC(a1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 340
|
||||
80090390 sw t8,0x8(a2) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 341
|
||||
80090394 sw t7,0xC(a2) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 342
|
||||
80090398 sll v1,s8,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 344
|
||||
8009039C addiu v0,v1,0x130 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 345
|
||||
800903A0 sh v0,0x8(a2) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 346
|
||||
800903A4 copy_char_data_start: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 348
|
||||
800903A4 lui t3,0x1F80 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 349
|
||||
800903A8 ori t3,t3,0x1C0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 350
|
||||
800903AC addiu a2,0x10 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 352
|
||||
800903B0 clear v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 353
|
||||
800903B4 sll v1,t5,0x2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 355
|
||||
800903B8 sll a1,s8,0x2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 356
|
||||
800903BC addu a1,t3 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 357
|
||||
800903C0 copy_char_data_loop: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 359
|
||||
800903C0 lw t7,0x0(a1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 360
|
||||
800903C4 addu a1,v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 361
|
||||
800903C8 sw t7,0x0(a2) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 362
|
||||
800903CC addiu a2,0x4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 364
|
||||
800903D0 addiu v0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 365
|
||||
800903D4 ori r1,r0,0xC ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 366
|
||||
800903D8 bne v0,r1,0x800903C0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 366
|
||||
800903DC nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 367
|
||||
800903E0 bne s8,zero,0x800903F8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 369
|
||||
800903E4 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 370
|
||||
800903E8 set_flush_cache_cmd: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 372
|
||||
800903E8 ori t8,r0,0x10 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 373
|
||||
800903EC sb t8,-0x3D(a2) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 374
|
||||
800903F0 lui t8,0x100 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 375
|
||||
800903F4 sw t8,0x0(a2) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 376
|
||||
800903F8 cpu2vram_dma_link: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 378
|
||||
800903F8 lw v1,0x18(t1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 380
|
||||
800903FC lw v0,0x0(a3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 381
|
||||
80090400 lw v1,0x0(v1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 382
|
||||
80090404 and v0,v0,t2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 383
|
||||
80090408 and v1,v1,s0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 384
|
||||
8009040C or v0,v0,v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 385
|
||||
80090410 sw v0,0x0(a3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 386
|
||||
80090414 lw a0,0x18(t1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 389
|
||||
80090418 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 390
|
||||
8009041C lw v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 391
|
||||
80090420 and v1,a3,s0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 392
|
||||
80090424 and v0,v0,t2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 393
|
||||
80090428 or v0,v0,v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 394
|
||||
8009042C sw v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 395
|
||||
80090430 sw a3,0x18(t1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 396
|
||||
80090434 addiu s8,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 399
|
||||
80090438 bne s8,t5,0x80090338 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 400
|
||||
8009043C nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 401
|
||||
80090440 addiu t1,t1,0x4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 403
|
||||
80090444 addiu v0,t4,0x8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 404
|
||||
80090448 sltu v0,t1,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 405
|
||||
8009044C bne v0,zero,0x80090284 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 406
|
||||
80090450 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 407
|
||||
80090454 chunk_making_end: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 409
|
||||
80090454 lhu v0,0x4(s4) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 411
|
||||
80090458 lui t3,-0x7FF7 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 412
|
||||
8009045C addiu v0,v0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 413
|
||||
80090460 lhu v1,-0xE(t3) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 414
|
||||
80090464 sh v0,0x4(s4) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 415
|
||||
80090468 bne v1,zero,0x800901CC ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 417
|
||||
8009046C nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 419
|
||||
80090470 textend: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 422
|
||||
80090470 clear s2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 423
|
||||
80090474 lui s3,-0x7FF8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 424
|
||||
80090478 addiu s5,s3,-0x3198 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 425
|
||||
8009047C lui s1,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 426
|
||||
80090480 ori s1,s1,-0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 427
|
||||
80090484 move s0,s4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 428
|
||||
80090488 clear a1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 429
|
||||
8009048C pagetloop: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 431
|
||||
8009048C ori a2,r0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 433
|
||||
80090490 addu s2,s2,a2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 434
|
||||
80090494 lui v0,-0x8000 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 436
|
||||
80090498 lui a0,-0x100 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 437
|
||||
8009049C lw v1,0x0(s5) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 439
|
||||
800904A0 lw a3,0x9C(gp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 440
|
||||
800904A4 and v1,v1,s1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 441
|
||||
800904A8 or v1,v1,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 442
|
||||
800904AC sw v1,0x30(s0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 443
|
||||
800904B0 lw v0,0x0(s5) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 446
|
||||
800904B4 lw v1,0x0(v1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 447
|
||||
800904B8 and v0,v0,a0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 448
|
||||
800904BC and v1,v1,s1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 449
|
||||
800904C0 lw a0,0x4(s5) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 450
|
||||
800904C4 or v0,v0,v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 451
|
||||
800904C8 sw v0,0x0(s5) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 452
|
||||
800904CC addiu a0,-0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 453
|
||||
800904D0 sw a0,0x4(s5) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 454
|
||||
800904D4 lw a0,0x30(s0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 455
|
||||
800904D8 jal 0x800578FC ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 456
|
||||
800904DC addiu s0,s0,0x4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 457
|
||||
800904E0 sltiu v0,s2,0x2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 458
|
||||
800904E4 bne v0,zero,0x8009048C ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 459
|
||||
800904E8 clear a1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 460
|
||||
800904EC move v0,s5 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 462
|
||||
800904F0 lw ra,0x48(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 465
|
||||
800904F4 lw s7,0x44(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 466
|
||||
800904F8 lw s6,0x40(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 467
|
||||
800904FC lw s5,0x3C(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 468
|
||||
80090500 lw s4,0x38(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 469
|
||||
80090504 lw s3,0x34(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 470
|
||||
80090508 lw s2,0x30(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 471
|
||||
8009050C lw s1,0x2C(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 472
|
||||
80090510 lw s0,0x28(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 473
|
||||
80090514 jr ra ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 475
|
||||
80090518 addiu sp,sp,0x50 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 476
|
||||
8009051C make_char_line_in_scratch: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 4
|
||||
8009051C addiu sp,sp,-0x18 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 6
|
||||
80090520 sw ra,0x10(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 7
|
||||
80090524 sw t5,0x14(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 8
|
||||
80090528 move t5,a0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 9
|
||||
8009052C sll s3,a1,0x2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 11
|
||||
80090530 lui t7,-0x7FF7 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 12
|
||||
80090534 addiu t7,-0xC ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 13
|
||||
80090538 char_data_clear: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 15
|
||||
80090538 move a1,t3 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 16
|
||||
8009053C addiu a0,a1,0x184 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 17
|
||||
80090540 ori v0,r0,0x0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 18
|
||||
80090544 char_data_loop: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 19
|
||||
80090544 sw v0,0x0(a1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 20
|
||||
80090548 addiu a1,0x4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 21
|
||||
8009054C bne a1,a0,0x80090544 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 22
|
||||
80090550 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 23
|
||||
80090554 move s1,t3 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 25
|
||||
80090558 ori a2,r0,0x0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 27
|
||||
8009055C lbu v0,0x0(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 28
|
||||
80090560 lbu t2,0xA4(gp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 29
|
||||
80090564 addiu t7,t7,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 30
|
||||
80090568 lui a3,0x1F80 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 32
|
||||
8009056C ori a3,a3,0x390 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 33
|
||||
80090570 chars_font_loop: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 36
|
||||
80090570 addiu v0,-0x20 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 37
|
||||
80090574 beq v0,zero,0x80090654 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 39
|
||||
80090578 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 40
|
||||
8009057C lui v1,-0x7FE1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 42
|
||||
80090580 ori v1,v1,-0x5600 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 43
|
||||
80090584 sll t0,v0,0x2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 44
|
||||
80090588 sll v0,v0,0x3 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 45
|
||||
8009058C addu v0,v0,t0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 46
|
||||
80090590 addu t1,v0,v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 47
|
||||
80090594 clear t3 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 49
|
||||
80090598 char_lines_loop: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 51
|
||||
80090598 lbu v1,0x0(t1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 52
|
||||
8009059C nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 53
|
||||
800905A0 beq v1,zero,0x80090644 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 54
|
||||
800905A4 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 55
|
||||
800905A8 its_not_empty: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 57
|
||||
800905A8 andi a0,v1,0xF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 59
|
||||
800905AC sll a0,a0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 60
|
||||
800905B0 addu a0,a0,a3 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 61
|
||||
800905B4 lhu a0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 62
|
||||
800905B8 srl a1,v1,0x4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 64
|
||||
800905BC andi a1,a1,0xF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 65
|
||||
800905C0 sll a1,a1,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 66
|
||||
800905C4 addu a1,a1,a3 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 67
|
||||
800905C8 lhu a1,0x0(a1) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 68
|
||||
800905CC nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 69
|
||||
800905D0 sll a1,0x10 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 71
|
||||
800905D4 or a0,a1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 72
|
||||
800905D8 mult a0,t2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 73
|
||||
800905DC sll a1,a2,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 78
|
||||
800905E0 addu a1,a1,a2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 79
|
||||
800905E4 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 82
|
||||
800905E8 mflo t4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 83
|
||||
800905EC mult t3,s3 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 86
|
||||
800905F0 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 87
|
||||
800905F4 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 88
|
||||
800905F8 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 89
|
||||
800905FC mflo a0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 90
|
||||
80090600 addu a0,a0,a1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 93
|
||||
80090604 addu a0,a0,s1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 94
|
||||
80090608 andi v0,t4,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 96
|
||||
8009060C sb v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 97
|
||||
80090610 sra v0,t4,0x8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 99
|
||||
80090614 andi v0,v0,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 100
|
||||
80090618 sb v0,0x1(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 101
|
||||
8009061C sra v0,t4,0x10 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 103
|
||||
80090620 andi v0,v0,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 104
|
||||
80090624 sb v0,0x2(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 105
|
||||
80090628 addiu v0,t5,-0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 107
|
||||
8009062C bne a2,v0,0x80090638 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 108
|
||||
80090630 andi v1,t5,0x3 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 109
|
||||
80090634 beq v1,zero,0x80090644 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 111
|
||||
80090638 not_last: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 113
|
||||
80090638 sra v0,t4,0x18 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 114
|
||||
8009063C andi v0,v0,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 115
|
||||
80090640 sb v0,0x3(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 116
|
||||
80090644 divideby4: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 118
|
||||
80090644 zero_jump: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 120
|
||||
80090644 addiu t3,t3,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 121
|
||||
80090648 ori v0,r0,0xC ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 122
|
||||
8009064C bne t3,v0,0x80090598 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 123
|
||||
80090650 addiu t1,t1,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 124
|
||||
80090654 spacejump: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 126
|
||||
80090654 addiu a2,a2,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 127
|
||||
80090658 lbu v0,0x0(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 128
|
||||
8009065C addiu t7,t7,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 129
|
||||
80090660 beq v0,zero,0x80090670 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 131
|
||||
80090664 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 132
|
||||
80090668 bne a2,t5,0x80090570 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 134
|
||||
8009066C nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 135
|
||||
80090670 sprite_end: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 137
|
||||
80090670 lbu v1,0xA5(gp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 138
|
||||
80090674 ori v0,r0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 139
|
||||
80090678 bne v1,v0,0x8009076C ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 140
|
||||
8009067C nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 141
|
||||
80090680 move a0,s1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 143
|
||||
80090684 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 144
|
||||
80090688 make_shadow: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 147
|
||||
80090688 move a1,s3 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 148
|
||||
8009068C sll a1,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 149
|
||||
80090690 sll v0,s3,0x3 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 150
|
||||
80090694 addu v0,a1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 151
|
||||
80090698 addu a3,a0,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 153
|
||||
8009069C addu a0,a1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 154
|
||||
800906A0 lbu t1,0xA4(gp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 156
|
||||
800906A4 ori t2,r0,0xF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 157
|
||||
800906A8 addiu t1,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 158
|
||||
800906AC shadow_row_loop: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 161
|
||||
800906AC clear t5 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 163
|
||||
800906B0 shadow_sprites_loop: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 166
|
||||
800906B0 addu t7,a3,t5 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 168
|
||||
800906B4 lw t0,0x0(t7) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 169
|
||||
800906B8 clear a2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 170
|
||||
800906BC ori a1,r0,0x4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 171
|
||||
800906C0 shadow_pixel_loop: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 174
|
||||
800906C0 move a1,a2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 175
|
||||
800906C4 addiu a1,a1,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 176
|
||||
800906C8 sll a1,a1,0x2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 177
|
||||
800906CC sll v0,a2,0x2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 179
|
||||
800906D0 sllv v0,t2,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 180
|
||||
800906D4 and v0,t0,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 181
|
||||
800906D8 beq v0,zero,0x80090740 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 182
|
||||
800906DC nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 183
|
||||
800906E0 ori v0,r0,0x7 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 186
|
||||
800906E4 bne a2,v0,0x8009071C ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 187
|
||||
800906E8 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 188
|
||||
800906EC addu t8,t7,s3 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 191
|
||||
800906F0 addiu t8,t8,0x4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 192
|
||||
800906F4 lw v1,0x0(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 193
|
||||
800906F8 ori v0,r0,0xF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 194
|
||||
800906FC and v0,v1,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 195
|
||||
80090700 bne v0,zero,0x80090740 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 196
|
||||
80090704 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 197
|
||||
80090708 move v0,t1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 198
|
||||
8009070C or v0,v1,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 199
|
||||
80090710 sw v0,0x0(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 200
|
||||
80090714 b 0x80090740 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 201
|
||||
80090718 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 202
|
||||
8009071C normal_case: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 204
|
||||
8009071C addu t8,t7,s3 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 205
|
||||
80090720 lw v1,0x0(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 206
|
||||
80090724 sllv v0,t2,a1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 207
|
||||
80090728 and v0,v1,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 208
|
||||
8009072C bne v0,zero,0x80090740 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 209
|
||||
80090730 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 210
|
||||
80090734 sllv v0,t1,a1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 211
|
||||
80090738 or v0,v1,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 212
|
||||
8009073C sw v0,0x0(t8) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 213
|
||||
80090740 no_s: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 215
|
||||
80090740 addiu a2,a2,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 216
|
||||
80090744 sltiu v0,a2,0x8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 217
|
||||
80090748 bne v0,zero,0x800906C0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 218
|
||||
8009074C nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 219
|
||||
80090750 addiu t5,t5,0x4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 221
|
||||
80090754 bne t5,s3,0x800906B0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 222
|
||||
80090758 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 223
|
||||
8009075C subu a3,s3 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 226
|
||||
80090760 sltu v0,a3,a0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 227
|
||||
80090764 beq v0,zero,0x800906AC ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 228
|
||||
80090768 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 229
|
||||
8009076C notshadow: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 231
|
||||
8009076C lw t5,0x14(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 232
|
||||
80090770 lw ra,0x10(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 233
|
||||
80090774 move v0,s1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 234
|
||||
80090778 jr ra ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 235
|
||||
8009077C addiu sp,sp,0x18 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charload_grouped.asm line 236
|
||||
80090780 returncharsinstring: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 1
|
||||
80090780 lhu v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 4
|
||||
80090784 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 5
|
||||
80090788 srl v0,v0,0xD ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 6
|
||||
8009078C bne v0,zero,0x8009079C ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 7
|
||||
80090790 clear v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 8
|
||||
80090794 j 0x800907CC ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 11
|
||||
80090798 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 12
|
||||
8009079C ismy1bytestring: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 13
|
||||
8009079C lhu v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 14
|
||||
800907A0 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 15
|
||||
800907A4 andi v0,v0,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 16
|
||||
800907A8 andi v1,v0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 18
|
||||
800907AC beq v1,zero,0x800907B8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 19
|
||||
800907B0 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 20
|
||||
800907B4 addiu v0,v0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 21
|
||||
800907B8 notand1: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 23
|
||||
800907B8 sra v0,v0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 24
|
||||
800907BC addiu v0,v0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 25
|
||||
800907C0 jr ra ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 26
|
||||
800907C4 move v1,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 27
|
||||
800907C8 getnewchar: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 29
|
||||
800907C8 addiu v1,v1,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 30
|
||||
800907CC startreading: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 31
|
||||
800907CC lhu v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 32
|
||||
800907D0 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 33
|
||||
800907D4 sltiu v0,v0,0x1000 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 34
|
||||
800907D8 bne v0,zero,0x800907C8 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 35
|
||||
800907DC addiu a0,a0,0x2 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 36
|
||||
800907E0 jr ra ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 37
|
||||
800907E4 move v0,v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 38
|
||||
800907E8 calcnextxcustom: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 41
|
||||
800907E8 addiu sp,sp,-0x18 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 42
|
||||
800907EC sw ra,0x10(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 43
|
||||
800907F0 lhu v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 45
|
||||
800907F4 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 46
|
||||
800907F8 andi v1,v0,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 47
|
||||
800907FC srl v0,v0,0xD ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 48
|
||||
80090800 beq v0,zero,0x80090810 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 49
|
||||
80090804 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 50
|
||||
80090808 j 0x80090818 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 51
|
||||
8009080C move v0,v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 52
|
||||
80090810 japoldtext: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 53
|
||||
80090810 jal 0x80090780 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 54
|
||||
80090814 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 55
|
||||
80090818 ihavestringlength: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 56
|
||||
80090818 sll v1,v0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 57
|
||||
8009081C addu v1,v1,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 58
|
||||
80090820 lw ra,0x10(sp) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 59
|
||||
80090824 sll v0,v1,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 60
|
||||
80090828 jr ra ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 61
|
||||
8009082C addiu sp,sp,0x18 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 62
|
||||
80090830 retuncharstocity: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 64
|
||||
80090830 lhu v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 65
|
||||
80090834 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 66
|
||||
80090838 srl v0,v0,0xD ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 67
|
||||
8009083C bne v0,zero,0x8009084C ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 68
|
||||
80090840 clear v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 69
|
||||
80090844 j 0x800907CC ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 71
|
||||
80090848 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 72
|
||||
8009084C ismy1bytecity: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 73
|
||||
8009084C lhu v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 74
|
||||
80090850 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 75
|
||||
80090854 andi v0,v0,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 76
|
||||
80090858 jr ra ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 77
|
||||
8009085C move v1,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 78
|
||||
80090860 retuncharstocitydiv2: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 81
|
||||
80090860 lhu v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 82
|
||||
80090864 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 83
|
||||
80090868 srl v0,v0,0xD ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 84
|
||||
8009086C bne v0,zero,0x8009087C ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 85
|
||||
80090870 clear v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 86
|
||||
80090874 j 0x800907CC ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 88
|
||||
80090878 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 89
|
||||
8009087C ismy1bytecitydiv2: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 90
|
||||
8009087C lhu v0,0x0(a0) ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 91
|
||||
80090880 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 92
|
||||
80090884 andi v0,v0,0xFF ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 93
|
||||
80090888 andi v1,v0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 95
|
||||
8009088C beq v1,zero,0x80090898 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 96
|
||||
80090890 nop ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 97
|
||||
80090894 addiu v0,v0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 98
|
||||
80090898 notand1_2: ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 100
|
||||
80090898 sra v0,v0,0x1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 101
|
||||
8009089C jr ra ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 103
|
||||
800908A0 move v1,v0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_charCalcs.asm line 104
|
||||
800908A4 .close ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_main_grouped.asm line 481
|
||||
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
|
||||
8001B5BC .org 0x8001D0C4 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_txtpatches.asm line 32
|
||||
8001D0C4 jal 0x80090000 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_txtpatches.asm line 33
|
||||
8001D0C8 .org 0x8001D138 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_txtpatches.asm line 34
|
||||
8001D138 jal 0x80090000 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_txtpatches.asm line 35
|
||||
8001D13C .org 0x8001DF7C ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_txtpatches.asm line 37
|
||||
8001DF7C jal 0x80090000 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_txtpatches.asm line 38
|
||||
8001DF80 .org 0x8001DFFC ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_txtpatches.asm line 39
|
||||
8001DFFC jal 0x80090000 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_txtpatches.asm line 40
|
||||
8001E000 .org 0x8001D1DC ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_txtpatches.asm line 43
|
||||
8001D1DC jal 0x80090000 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_txtpatches.asm line 44
|
||||
8001D1E0 .org 0x8001BEE0 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_txtpatches.asm line 47
|
||||
8001BEE0 j 0x80090780 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_txtpatches.asm line 48
|
||||
8001BEE4 clear v1 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_txtpatches.asm line 49
|
||||
8001BEE8 .org 0x8001BF08 ; C:\Users\Sergey\Documents\GitHub\Persona2-PSX-asm-sources\2_EP\EP_txtpatches.asm line 53
|
||||
8001BF08 j 0x800907E8 ; 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
|
||||
104
2_EP/EP_charCalcs.asm
Normal file
104
2_EP/EP_charCalcs.asm
Normal file
@@ -0,0 +1,104 @@
|
||||
ReturnCharsInString:
|
||||
|
||||
|
||||
lhu v0,0x0(a0)
|
||||
nop
|
||||
srl v0,v0,0xD ;;;;Check 13th bit (1byte system !!!)
|
||||
bne v0,zero,IsMy1byteString
|
||||
clear v1
|
||||
;v1 = charCount
|
||||
|
||||
j StartReading
|
||||
nop
|
||||
IsMy1byteString:
|
||||
lhu v0,0x0(a0)
|
||||
nop
|
||||
andi v0,v0,0xff ;Clear from cmd flag
|
||||
|
||||
andi v1,v0,0x1
|
||||
beq v1,zero,notAnd1
|
||||
nop
|
||||
addiu v0,v0,0x1
|
||||
|
||||
notAnd1:
|
||||
sra v0,v0,1 ;v0/2 (bytes Pairs)
|
||||
addiu v0,v0,1 ;v0 += = header 2 bytes
|
||||
jr ra
|
||||
move v1,v0 ;return v0,v1 - charsNum
|
||||
|
||||
GetNewChar:
|
||||
addiu v1,v1,1
|
||||
StartReading:
|
||||
lhu v0,0x0(a0) ;a0 - curTextAddr
|
||||
nop
|
||||
sltiu v0,v0,0x1000
|
||||
bne v0,zero,GetNewChar ;if currentChar<1000 - goto next addr+2b
|
||||
addiu a0,a0,2
|
||||
jr ra
|
||||
move v0,v1 ;return v0,v1 - charsNum
|
||||
|
||||
|
||||
calcNextXCustom:
|
||||
addiu sp,sp,-0x18
|
||||
sw ra,0x10(sp)
|
||||
|
||||
lhu v0,0x0(a0)
|
||||
nop
|
||||
andi v1,v0,0xff ;Clear from cmd flag
|
||||
srl v0,v0,0xD ;;;;Check 13th bit (1byte system !!!)
|
||||
beq v0,zero,JapOldText ;if bit 0d = 0 - OldTypeText
|
||||
nop
|
||||
j IHaveStringLength
|
||||
move v0,v1 ;double char count
|
||||
JapOldText:
|
||||
jal ReturnCharsInString
|
||||
nop
|
||||
IHaveStringLength:
|
||||
sll v1,v0,0x1
|
||||
addu v1,v1,v0
|
||||
lw ra,0x10(sp)
|
||||
sll v0,v1,0x1 ;*charcount * 6 pix
|
||||
jr ra
|
||||
addiu sp,sp,0x18
|
||||
|
||||
RetunCharsToCity:
|
||||
lhu v0,0x0(a0)
|
||||
nop
|
||||
srl v0,v0,0xD ;;;;Check 13th bit (1byte system !!!)
|
||||
bne v0,zero,IsMy1byteCity
|
||||
clear v1 ;v1 = charCount
|
||||
|
||||
j StartReading
|
||||
nop
|
||||
IsMy1byteCity:
|
||||
lhu v0,0x0(a0)
|
||||
nop
|
||||
andi v0,v0,0xff ;Clear from cmd flag
|
||||
jr ra
|
||||
move v1,v0 ;return v0,v1 - charsNum
|
||||
|
||||
|
||||
RetunCharsToCityDiv2:
|
||||
lhu v0,0x0(a0)
|
||||
nop
|
||||
srl v0,v0,0xD ;;;;Check 13th bit (1byte system !!!)
|
||||
bne v0,zero,IsMy1byteCityDiv2
|
||||
clear v1 ;v1 = charCount
|
||||
|
||||
j StartReading
|
||||
nop
|
||||
IsMy1byteCityDiv2:
|
||||
lhu v0,0x0(a0)
|
||||
nop
|
||||
andi v0,v0,0xff ;Clear from cmd flag
|
||||
|
||||
andi v1,v0,0x1
|
||||
beq v1,zero,notAnd1_2
|
||||
nop
|
||||
addiu v0,v0,0x1
|
||||
|
||||
notAnd1_2:
|
||||
sra v0,v0,1 ;v0/2 (bytes Pairs)
|
||||
; addiu v0,v0,1 ;v0 += = header 2 bytes
|
||||
jr ra
|
||||
move v1,v0 ;return v0,v1 - charsNum
|
||||
236
2_EP/EP_charload_grouped.asm
Normal file
236
2_EP/EP_charload_grouped.asm
Normal file
@@ -0,0 +1,236 @@
|
||||
|
||||
// LOADING CHAR FROM CUSTOM FONT FOR ALL LINE
|
||||
|
||||
make_char_line_in_scratch:
|
||||
|
||||
addiu sp, sp,-0x18
|
||||
sw ra, 0x10(sp)
|
||||
sw t5, 0x14(sp)
|
||||
move t5, a0 //char num
|
||||
|
||||
sll s3, a1, 0x2 //width in bytes (sprite count * 4)
|
||||
lui t7, MyAddr
|
||||
addiu t7, -0x0c //Text buffer pointer
|
||||
|
||||
char_data_clear:
|
||||
move a1, t3 //dest address
|
||||
addiu a0, a1, 0x184
|
||||
li v0, 0
|
||||
char_data_loop:
|
||||
sw v0, 0x0(a1)
|
||||
addiu a1, 0x4
|
||||
bne a1, a0, char_data_loop
|
||||
nop
|
||||
|
||||
move s1, t3 // destination address reset
|
||||
|
||||
li a2, 0 // char index counter
|
||||
lbu v0, 0x0(t7)
|
||||
lbu t2, 0xa4(gp) //load color
|
||||
addiu t7, t7, 0x01
|
||||
|
||||
lui a3, 0x1f80
|
||||
ori a3, a3,0x390 // set scratch convert addr r7 = 1f8002e0
|
||||
|
||||
|
||||
chars_font_loop:
|
||||
addiu v0, -0x20 //shift unprintable
|
||||
|
||||
beq v0, zero, spaceJump //If space (0x20 ASCII) -- bypass char
|
||||
nop
|
||||
|
||||
lui v1, 0x801f // //load font addr to r3 (801ef000 + BA00)
|
||||
ori v1, v1, 0xaa00 // ==== 801faa00
|
||||
sll t0, v0, 2 // t0 = v0 * 4
|
||||
sll v0, v0, 3 // v0 = v0 * 8
|
||||
addu v0, v0, t0 // v0 = (v0*8) + (v0*4) = v0*12
|
||||
addu t1, v0, v1 //t1 = char addr // t1 = r2(offs) + r3 (start)
|
||||
|
||||
clear t3 //new lines counter
|
||||
|
||||
char_lines_loop:
|
||||
lbu v1, 0x0(t1) //load byte of char font to r3
|
||||
nop
|
||||
beq v1, zero, zero_jump
|
||||
nop
|
||||
|
||||
its_not_empty:
|
||||
//right
|
||||
andi a0, v1, 0xf // a0 = r3 & 0f - cutting left semibyte
|
||||
sll a0, a0, 0x1 // a0 << 1
|
||||
addu a0, a0, a3 // a0 += bit table
|
||||
lhu a0, 0x0(a0) // в a0 - правый полусимвол в 4 бит
|
||||
//left
|
||||
srl a1, v1, 0x4 // r3 >> 4
|
||||
andi a1, a1, 0xf // r2 = r3 & 0f
|
||||
sll a1, a1, 0x1 // r2 << 1
|
||||
addu a1, a1, a3 // r2 = r2 + to4bitConvertTableAddr (r7)
|
||||
lhu a1, 0x0(a1)//>DAT_1f8002e0 в a1 - левый полусимвол в 4 бит
|
||||
nop
|
||||
//combine & color
|
||||
sll a1, 0x10
|
||||
or a0, a1
|
||||
mult a0, t2 //set color - сохраняем в регистре умножения готовые 4 байта
|
||||
//line dest addr calc -
|
||||
// s1(dest addr) + ((current line * (charcount * 4) + charIndex * 3))
|
||||
|
||||
//calc char index * 3
|
||||
sll a1, a2, 1
|
||||
addu a1, a1, a2
|
||||
|
||||
//getting final char line word...
|
||||
nop
|
||||
mflo t4 // t4 = final char
|
||||
|
||||
//multiplying current line * width
|
||||
mult t3, s3
|
||||
nop
|
||||
nop
|
||||
nop
|
||||
mflo a0
|
||||
|
||||
//getting final address
|
||||
addu a0, a0, a1 // a0 = current_line * width_in_bytes + charindex * 3
|
||||
addu a0, a0, s1 // s1 = destination write address
|
||||
|
||||
andi v0, t4, 0xFF //
|
||||
sb v0, 0x00(a0) //
|
||||
|
||||
sra v0, t4, 0x08 //
|
||||
andi v0, v0, 0xFF //
|
||||
sb v0, 0x01(a0) // Byte by byte char data save in LITTLE ENDIAN
|
||||
|
||||
sra v0, t4, 0x10 // cause we are not fitting to memory words
|
||||
andi v0, v0, 0xFF //
|
||||
sb v0, 0x02(a0) //
|
||||
|
||||
addiu v0, t5, -0x1
|
||||
bne a2, v0, not_last
|
||||
andi v1, t5, 0x3
|
||||
|
||||
beq v1, zero, divideby4
|
||||
|
||||
not_last:
|
||||
sra v0, t4, 0x18 // Байт рисуется только если длина не кратна 4
|
||||
andi v0, v0, 0xFF // и это не последний байт
|
||||
sb v0, 0x03(a0) // (иначе происходит наложение байта на следующую строку)
|
||||
|
||||
divideby4:
|
||||
|
||||
zero_jump:
|
||||
addiu t3, t3, 0x01 //inc line counter
|
||||
li v0, 0x0C //line max count
|
||||
bne t3, v0, char_lines_loop //comparing...
|
||||
addiu t1, t1, 0x01 //shift char font line address
|
||||
|
||||
spaceJump:
|
||||
addiu a2, a2, 0x1 // inc char index
|
||||
lbu v0, 0x0(t7)
|
||||
addiu t7, t7, 0x01
|
||||
|
||||
beq v0, zero, sprite_end //if we read 0 - end
|
||||
nop
|
||||
|
||||
bne a2, t5, chars_font_loop // if r3 counter<>0 goto loop
|
||||
nop
|
||||
|
||||
sprite_end:
|
||||
lbu v1, 0xa5(gp) // >DAT_8007b23d_textMode load curText Shadow?
|
||||
li v0, 0x1
|
||||
bne v1, v0, NotShadow //Shadow character check
|
||||
nop
|
||||
|
||||
move a0, s1
|
||||
nop
|
||||
|
||||
|
||||
make_shadow: //s3 - line width in bytes, a0 - data start
|
||||
move a1, s3 // a1 = ширина
|
||||
sll a1, 0x1 //a1 = смещение на 3 строку (ширина * 2)
|
||||
sll v0, s3, 3 //v0 = ширина строки * 8
|
||||
addu v0, a1 //v0 = ширина строки * 10
|
||||
|
||||
addu a3, a0, v0 // a3 = указатель на 10 строку
|
||||
addu a0, a1 // a0 = Указатель на 3 строку
|
||||
|
||||
lbu t1, 0xa4(gp) // v0 = базовый цвет символа
|
||||
li t2, 0xf // t2 = маска 0xF для работы с 4 битами пикселя
|
||||
addiu t1, 0x1 // t1 = цвет тени (базовый цвет + 1)
|
||||
|
||||
// Основной цикл по строкам (снизу вверх)
|
||||
shadow_row_loop:
|
||||
|
||||
clear t5 //clear sprite shift counter
|
||||
|
||||
//Цикл спрайтов в строке
|
||||
shadow_sprites_loop:
|
||||
|
||||
addu t7, a3, t5 //Текущий адрес спрайта = Адрес текущей строки + смещение спрайта
|
||||
lw t0, 0x0(t7) // t0 = текущая полоса спрайта
|
||||
clear a2 // a2 = счётчик пикселей в строке (X координата)
|
||||
li a1, 0x4 // a1 = сдвиг 1 пиксель вправо (4 бита)
|
||||
|
||||
// Внутренний цикл по пикселям в строке
|
||||
shadow_pixel_loop:
|
||||
move a1, a2 // a1 = текущий X пиксель
|
||||
addiu a1, a1, 0x1 // +1 пиксель вправо
|
||||
sll a1, a1, 0x2 // ×4 (перевод в биты)
|
||||
|
||||
sll v0, a2, 0x2 // v0 = смещение исходного пикселя (X * 4)
|
||||
sllv v0, t2, v0 // v0 = маска для исходного пикселя
|
||||
and v0, t0, v0 // проверяем есть ли исходный пиксель
|
||||
beq v0, zero, no_s // если пикселя нет, пропускаем
|
||||
nop
|
||||
|
||||
//Проверяем граничный случай (8-й пиксель)
|
||||
li v0, 0x7 // последний пиксель (X = 7)
|
||||
bne a2, v0, normal_case // если не 8-й пиксель - обычная обработка
|
||||
nop
|
||||
// Граничный случай: 8-й пиксель исходного спрайта
|
||||
// Тень будет в позиции a1 = 32 (8 × 4) - это следующий word!
|
||||
addu t8, t7, s3 // адрес следующей строки
|
||||
addiu t8, t8, 0x4 // переходим к следующему word
|
||||
lw v1, 0x0(t8) // загружаем следующий word
|
||||
li v0, 0xF // маска для ПЕРВОГО пикселя в новом word
|
||||
and v0, v1, v0 // проверяем занятость (биты 0-3 нового word)
|
||||
bne v0, zero, no_s // если занято - пропускаем
|
||||
nop
|
||||
move v0, t1 // цвет тени (в биты 0-3 нового word)
|
||||
or v0, v1, v0 // добавляем тень
|
||||
sw v0, 0x0(t8) // сохраняем
|
||||
b no_s
|
||||
nop
|
||||
|
||||
normal_case:
|
||||
addu t8, t7, s3 // этот же word в следующей строке
|
||||
lw v1, 0x0(t8) // следующая строка
|
||||
sllv v0, t2, a1 // маска для пикселя тени
|
||||
and v0, v1, v0 // проверяем занятость
|
||||
bne v0, zero, no_s // если занято - пропускаем
|
||||
nop
|
||||
sllv v0, t1, a1 // цвет тени
|
||||
or v0, v1, v0 // добавляем тень
|
||||
sw v0, 0x0(t8) // сохраняем
|
||||
|
||||
no_s:
|
||||
addiu a2, a2, 0x1 // следующий пиксель
|
||||
sltiu v0, a2, 0x8 // X < 8 (все 8 пикселей!)
|
||||
bne v0, zero, shadow_pixel_loop
|
||||
nop
|
||||
|
||||
addiu t5, t5, 0x04
|
||||
bne t5, s3, shadow_sprites_loop
|
||||
nop
|
||||
|
||||
// next line
|
||||
subu a3, s3 //Двигаемся назад на ширину строки
|
||||
sltu v0, a3, a0 // проверяем вышли ли за верхнюю границу
|
||||
beq v0, zero, shadow_row_loop // продолжаем цикл по строкам
|
||||
nop
|
||||
|
||||
NotShadow:
|
||||
lw t5,0x14(sp)
|
||||
lw ra,0x10(sp) //Restore stack and exit
|
||||
move v0, s1
|
||||
jr ra
|
||||
addiu sp, sp, 0x18
|
||||
@@ -1,6 +1,10 @@
|
||||
;
|
||||
; Persona 2 Eternal Punishment (PSX) JAP / Custom Characters/Data Patch
|
||||
; Author: Sergey Shemet 06/10/2022
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// Persona 2 Eternal Punishment (PSX) JAP / Custom Characters/Data Patch
|
||||
// Author: Sergey Shemet 05/11/2025
|
||||
//
|
||||
// v 1.1 - Grouped Chars VRAM Rendering
|
||||
//
|
||||
|
||||
.psx
|
||||
|
||||
@@ -13,12 +17,12 @@
|
||||
|
||||
.definelabel MyAddr, 0x8009
|
||||
|
||||
.open "SLPS_028.25", 0x8000F800
|
||||
.open "2_EP/BIN/SLPS_028.25", 0x8000F800
|
||||
|
||||
.org 0x80090000
|
||||
|
||||
ExternalPrint:
|
||||
// Текстовая тестовая процедура
|
||||
|
||||
lhu v0, 0x0(a0) // Читаем 2 байта текста
|
||||
nop
|
||||
srl v1, v0, 0xD // Проверяем 13-й бит (система 1 байт)
|
||||
@@ -29,366 +33,428 @@ ExternalPrint:
|
||||
|
||||
MyPrintLineRoutine:
|
||||
addiu sp, sp, -0x50 // Выделяем место в стеке
|
||||
sw s4, 0x38(sp) // Сохраняем регистры
|
||||
move s4, a0 // Адрес чтения текста -> s4
|
||||
sw ra, 0x48(sp) // Сохраняем регистры
|
||||
sw s0, 0x28(sp)
|
||||
move s0, a1
|
||||
sw s1, 0x2c(sp)
|
||||
move s1, a2
|
||||
sw s2, 0x30(sp)
|
||||
sw s3, 0x34(sp)
|
||||
sw s4, 0x38(sp) // Сохраняем регистры
|
||||
sw s5, 0x3c(sp)
|
||||
sw s6, 0x40(sp)
|
||||
sw s7, 0x44(sp)
|
||||
|
||||
// Обработка новой команды
|
||||
move s6, a0 // Адрес чтения текста -> s6
|
||||
move s1, a1
|
||||
move s2, a2
|
||||
|
||||
|
||||
// Смещаем поинтер чтения
|
||||
andi v0, v0, 0xff // Берем младший байт
|
||||
addiu s4, s4, 0x2 // Сдвигаем указатель текста на +2 байта
|
||||
|
||||
addiu s6, s6, 0x2 // Сдвигаем указатель текста на +2 байта
|
||||
lui s3, MyAddr
|
||||
sw v0, -0x10(s3) // Сохраняем счетчик байтов @ 8008fff0
|
||||
sh v0, -0x10(s3) // Сохраняем счетчик байтов @ 8008fff0 для общего количества
|
||||
sh v0, -0x0e(s3) // Сохраняем счетчик байтов @ 8008fff2 для обратного отсчёта
|
||||
|
||||
// Инициализация scratchpad
|
||||
lui s3, 0x1f80
|
||||
ori s3, s3, 0x3d0 // s3 = 1f8003d0 - команда копирования спрайта
|
||||
lui t0, 0xff
|
||||
ori t0, t0, 0xffff // t0 = 00FFFFFF
|
||||
|
||||
andi a0, a3, 0xff // Режим текста (цвет и тень)
|
||||
lui a3, 0x8008 // a3 = 80080000
|
||||
lui a2, 0xff00 // a2 = FF000000
|
||||
sw s0, 0x28(sp) // Сохраняем s0 в стеке
|
||||
andi s0, a3, 0xff // s0 - режим текста (цвет и тень)
|
||||
move a0, s0 // a0 = s0 (обрезанный цвет)
|
||||
lui a3, 0x8008 // a3 = 80080000
|
||||
lui a2, 0xff00 // a2 = FF000000
|
||||
|
||||
addiu t1, a3, -0x31a8 // t1 = 8007b6d0 - новая свободная цепочка
|
||||
lw v1, -0x31a8(a3) // v1 = загружаем свободную цепочку
|
||||
//Начинаем формировать цепочки
|
||||
addiu t1, a3, -0x31a8 // t1 = 8007ce68 - Второй счётчик цепочек (корорый меньше)
|
||||
lw v1, 0x0(t1) // v1 = загружаем свободную цепочку
|
||||
lbu a1, 0x60(sp) // Флаг тени из стека -> a1
|
||||
lui v0, 0x8000 // v0 = 80000000
|
||||
sw ra, 0x48(sp) // Сохраняем регистры
|
||||
sw s7, 0x44(sp)
|
||||
sw s6, 0x40(sp)
|
||||
sw s5, 0x3c(sp)
|
||||
sw s2, 0x30(sp)
|
||||
lui v0, 0x8000 // v0 = 80000000
|
||||
|
||||
// Инициализация цепочек
|
||||
and a2, v1, a2 // a2 = v1 & ff000000
|
||||
and a2, v1, a2 // a2 = v1 & ff000000
|
||||
andi a1, a1, 0xff // Очищаем режим текста
|
||||
and v1, v1, t0 // v1 & 00ffffff
|
||||
or s5, v1, v0 // s5 - основной адрес свободной цепочки
|
||||
and v1, v1, t0 // v1 & 00ffffff
|
||||
or s4, v1, v0 // s5 - основной адрес свободной цепочки
|
||||
lw v0, 0x4(t1) // Загружаем счетчик DMA
|
||||
lw v1, 0x0(s5) // v1 = следующая свободная цепочка
|
||||
addiu v0, v0, -0x1 // Уменьшаем счетчик DMA
|
||||
and v1, v1, t0 // v1 & 00ffffff
|
||||
or a2, a2, v1 // a2 | v1 = следующая свободная цепочка
|
||||
and v1, v1, t0 // v1 & 00ffffff
|
||||
or a2, a2, v1 // a2 | v1 = следующая свободная цепочка
|
||||
sw v0, 0x4(t1) // Сохраняем счетчик DMA
|
||||
sw a2, -0x31a8(a3) // Сохраняем следующую свободную цепочку
|
||||
jal storeColor
|
||||
move a0, s5 // Текущий адрес цепочки
|
||||
sll a1, s0, 0x10 // a1 = X << 16
|
||||
jal storeColor //Сохраняем цвет
|
||||
sw a2, 0x0(t1) // Сохраняем следующую свободную цепочку
|
||||
|
||||
move a0, s4 // Текущий адрес цепочки
|
||||
sll a1, s1, 0x10 // a1 = X << 16
|
||||
sra a1, a1, 0x10 // a1 = X координата
|
||||
sll a2, s1, 0x10 // a2 = Y << 16
|
||||
jal initCopyCharChain // Инициализация цепочек символов
|
||||
sll a2, s2, 0x10 // a2 = Y << 16
|
||||
sra a2, a2, 0x10 // a2 = Y координата
|
||||
jal initCopyCharChain // Инициализация цепочки символов (в a0 адрес, a1 - X, a2 - Y)
|
||||
move a3, s0 //Режим
|
||||
|
||||
cputovram_scratchpad_template:
|
||||
// Инициализация ScratchPad (CPU to VRAM)
|
||||
lui a2, 0x1f80
|
||||
ori a2, a2, 0x348 // a2 = первый символ начала
|
||||
lui a3, 0x1f80
|
||||
ori a3, a3, 0x0348 // a3 = CpuToVram cmd template addr
|
||||
|
||||
// 4-битная таблица паттернов
|
||||
.include "EP_4bitPattern.asm"
|
||||
lui a1, 0x0F00 // Количество команд без flushcache
|
||||
sw a1, 0x0(a3) // Сохраняем количество команд
|
||||
|
||||
li v0, 0x2
|
||||
sh v0, 0x1c(sp)
|
||||
li v0, 0xc
|
||||
li a0, 0x10 // Команды в цепочке формирования символа?
|
||||
lui v1, 0xa000 // a0 = a0000000
|
||||
sh v0, 0x1e(sp) // Сохраняем 000C0002 в стек+1c
|
||||
lui a0, 0xa000 // a0 = a0000000
|
||||
sw a0, 0x4(a3)
|
||||
|
||||
// Инициализация символа
|
||||
lui v0, 0x100 // Сброс кэша 01000000
|
||||
sb a0, 0x3(a2) // Сохраняем количество команд
|
||||
sw v1, 0x4(a2) // Сохраняем a0000000
|
||||
lui v0, 0x01f0
|
||||
ori v0, 0x0130
|
||||
sw v0, 0x8(a3) // сохраняем VU для CPUtoVRAM
|
||||
|
||||
lui at, 0x1f80 // Начало scratchpad
|
||||
sw v0, 0x388(at) // Сохраняем в конец первой цепочки символов
|
||||
lui v0, 0xc
|
||||
ori v0, 0x2
|
||||
sw v0, 0xc(a3) // сохраняем 000c0002 (ширина в 16-битных пикселях)
|
||||
|
||||
// Формирование команды DMA копирования спрайта
|
||||
li v0, 0x4
|
||||
sb v0, 0x3(s3) // Длина цепочки = 4
|
||||
li v0, 0x64
|
||||
sb v0, 0x7(s3) // Команда копирования спрайта
|
||||
_1bppTo4bpp_table_template:
|
||||
// Копирование таблицы преобразования 1bpp в 4bpp
|
||||
lui t8, 0x1f80
|
||||
ori t8, t8, 0x390
|
||||
lui t7, 0x8001
|
||||
ori t7, t7, 0x3e8
|
||||
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)
|
||||
sw t5, 0x10(t8)
|
||||
sw t6, 0x14(t8)
|
||||
lw t5, 0x18(t7)
|
||||
lw t6, 0x1C(t7)
|
||||
sw t5, 0x18(t8)
|
||||
sw t6, 0x1C(t8)
|
||||
|
||||
lhu a0, 0x98(gp) // Загружаем X координату
|
||||
lhu v1, 0x9a(gp) // Загружаем Y координату
|
||||
rect_scratchpad_template:
|
||||
// Шаблон команды rect в scratchpad
|
||||
lui s3, 0x1f80
|
||||
ori s3, 0x03d0 // s3 = 1f8003d0 - адрес rect в scratchpad
|
||||
lui v0, 0x0400
|
||||
sw v0, 0x0(s3) // Длина цепочки = 4
|
||||
lui v0, 0x6480
|
||||
ori v0, 0x8080
|
||||
sw v0, 0x4(s3)
|
||||
li v0, 0xf0c0
|
||||
sh v0, 0xc(s3) // Сохраняем координаты VU (всегда f0c0)
|
||||
lhu v1, 0x9a(gp) // Загружаем CLUT из GP (всегда 7FD3)
|
||||
|
||||
li v0, 0
|
||||
sw v0, 0x8(s3) //Чистим экранные координаты
|
||||
sh s2, 0xa(s3) //И сразу устанавливаем Y
|
||||
|
||||
li v0, 0x80
|
||||
sb v0, 0x4(s3)
|
||||
sb v0, 0x5(s3)
|
||||
sb v0, 0x6(s3) // Формируем 80808064
|
||||
lui v0, 0xc
|
||||
ori v0, 0x8 // Ширина спрайта = 8
|
||||
sw v0, 0x10(s3) // Сохраняем ширину
|
||||
sh v1, 0xe(s3) // Сохраняем CLUT
|
||||
|
||||
setY1:
|
||||
lw v0, 0x1c(sp) // v0 = 000c0002 из стека
|
||||
lh a3, 0x98(gp) // Для дальнейших расчетов X спрайта
|
||||
sh a0, 0x18(sp)
|
||||
sh v1, 0x1a(sp) // Сохраняем координаты в стек
|
||||
lw a0, 0x18(sp) // Загружаем координаты из стека
|
||||
move t0, a3
|
||||
sw a0, 0x8(a2) // Загружаем координаты в DMA
|
||||
sw v0, 0xc(a2) // Сохраняем в первый символ
|
||||
make_sprite_size_table:
|
||||
lui s3, 0x1f80
|
||||
ori s3, 0x03f0 // Будем серить в scratch
|
||||
lui v0, 0x0403 // таблицей рассчитанных команд и ширин
|
||||
ori v0, 0x0201 // необходимых для спрайтов линии (cmdCount << 2)
|
||||
sw v0, 0x0(s3)
|
||||
lui v1, 0x0706
|
||||
ori v1, 0x0504
|
||||
sw v1, 0x4(s3)
|
||||
li v0, 0x0807
|
||||
sh v0, 0x8(s3)
|
||||
|
||||
bgez a3, LAB_800194fc
|
||||
misc_init:
|
||||
move t6, s1 // Текущий экранный X, который будет смещаться и писаться в команду rect
|
||||
// Устанавливаем, исходя из прилетевшей координаты X
|
||||
|
||||
SetX1:
|
||||
sh s1, 0x20(sp) // Сохраняем X половину в sp+20
|
||||
addiu t0, a3, 0x3f
|
||||
TextGroupReadLoop:
|
||||
// Смотрим количество символов до предела (не более 10) (проверяем MyAddr-0xE)
|
||||
// Отнимаем количество символов в MyAddr-0xE. Устанавливаем признак, если ещё не конец
|
||||
// Копируем символы во временный буфер MyAddr (-0x0с)
|
||||
|
||||
LAB_800194fc:
|
||||
// Декодирование координат для исходного спрайта
|
||||
sra v0, t0, 0x6 // v0 = t0 >> 6
|
||||
sll v0, v0, 0x6 // v0 << 6
|
||||
subu v0, a3, v0 // v0 = a3 - v0
|
||||
lh v1, 0x9a(gp) // Загружаем Y половину из памяти
|
||||
sll v0, v0, 0x2 // v0 << 2
|
||||
sb v0, 0xc(s3) // Сохраняем X байт спрайта символа
|
||||
bgez v1, LAB_80019520 // Если Y >= 0 - ветвление
|
||||
move v0, v1
|
||||
addiu v0, v1, 0xff // Иначе v0 = ff - v1
|
||||
lui s3, 0x1f80
|
||||
ori s3, 0x03f0 // Перезадаём адрес таблицы количества спрайтов для нового цикла
|
||||
lui t1, MyAddr //Постоянный счётчик
|
||||
|
||||
LAB_80019520:
|
||||
sra v0, v0, 0x8
|
||||
sll v0, v0, 0x8
|
||||
subu v0, v1, v0
|
||||
sb v0, 0xd(s3) // Сохраняем Y байт спрайта символа
|
||||
lhu v1, 0xa0(gp)
|
||||
lh v1, -0x0e(t1) //Загружаем количество оставшихся символов
|
||||
lui t2, MyAddr //Сдвиг для буфера
|
||||
sltiu a0, v1, 0x0B //Меньше 10 в строке?
|
||||
bne a0, zero, readTextToBuffer
|
||||
clear s2 //Обнуляем счётчик символов
|
||||
li v1, 0xA //Установка максимального количество символов
|
||||
|
||||
li v0, 0x8 // Ширина спрайта = 8
|
||||
sh v0, 0x10(s3) // Сохраняем ширину
|
||||
sh v1, 0xe(s3) // Сохраняем значение
|
||||
readTextToBuffer:
|
||||
lbu a0, 0x0(s6) // Основное чтение байта текста
|
||||
addiu s6, s6, 0x1 // Сдвиг адреса чтения на +1 байт
|
||||
addiu v1, v1, -0x1 // Осталось в этом блоке...
|
||||
sb a0, -0x0c(t2) // Запись символа в буфер
|
||||
addiu s2, s2, 0x1 // Счётчик прочитанного +1
|
||||
lh v0, -0x0e(t1) // Грузим общий счётчик
|
||||
addiu t2, t2, 0x1 // Сдвиг записи +1
|
||||
addiu v0, v0, -0x01 // Общий счётчик -1
|
||||
bne v1, zero, readTextToBuffer // Проверяем частный счётчик != 0
|
||||
sh v0, -0x0e(t1) // Сохраняем общий счётчик
|
||||
|
||||
li a0, 0
|
||||
sb a0, -0x0c(t2) //На всякий случай сохраняем 00-терминатор
|
||||
|
||||
sh s0, 0x8(s3) // Сохраняем X
|
||||
sh s1, 0xa(s3) // Сохраняем Y
|
||||
addu s3, s3, s2 // получаем адрес количества спрайтов из таблицы
|
||||
addiu s3, -0x1 // index -1
|
||||
lbu a1, 0x0(s3) // Читаем количество в a1
|
||||
nop
|
||||
move t5, a1 // Храним количество блоков для спрайта
|
||||
|
||||
li v0, 0xc // Высота спрайта = 12
|
||||
sh v0, 0x12(s3) // Сохраняем высоту
|
||||
lui t3, 0x1f80
|
||||
ori t3, t3, 0x1c0 // Начало данных спрайта в scratch
|
||||
|
||||
// Начало чтения текста
|
||||
lbu a0, 0x0(s4) // Основное чтение байта команды
|
||||
nop
|
||||
addiu s4, s4, 0x1 // Сдвиг адреса чтения на +1 байт
|
||||
form_char_data_in_scratch:
|
||||
jal make_char_line_in_scratch //Вызываем процедуру формирования строки
|
||||
move a0, s2 //Передаём в неё длину строки в символах (a0) и в спрайтах (a1)
|
||||
// (формируем спрайт размером до 60x12)
|
||||
|
||||
SpaceCheckBranch:
|
||||
jal makeCharPixelsCustom // Создание маленького символа в scratch
|
||||
clear s2
|
||||
rect_cmd_init:
|
||||
|
||||
lui t2, 0xff00 // t2 = ff000000
|
||||
move t6, s5 // Параметры
|
||||
addiu t5, sp, 0x10 // t5 = sp + 10
|
||||
lui t3, 0x8008
|
||||
addiu t4, t3, -0x31a8
|
||||
move t1, s5 // Параметры снова
|
||||
lui s3, 0x1f80
|
||||
ori s3, 0x03d0 // s3 = 1f8003d0 - адрес rect в scratchpad
|
||||
|
||||
SetY:
|
||||
SetX:
|
||||
PageLoop:
|
||||
// Создание цепочки копирования спрайта
|
||||
lw v0, -0x3198(s6) // v0 = *адрес свободной цепочки
|
||||
nop
|
||||
and a0, v0, t2 // a0 = v0 & ff00..
|
||||
and v0, v0, s0 // v0 & 00FFFFFF
|
||||
or a1, v0, s1 // a1 = v0 | 80000000
|
||||
lw v0, 0x4(s7) // Счетчик команд
|
||||
lw v1, 0x0(a1) // Новый адрес свободной цепочки
|
||||
addiu v0, v0, -0x1 // Уменьшаем счетчик
|
||||
and v1, v1, s0 // v1 & 00FFFFFF
|
||||
or a0, a0, v1 // a0 & v1
|
||||
sw v0, 0x4(s7) // Сохраняем счетчик DMA
|
||||
sw a0, -0x3198(s6) // Сохраняем новую свободную цепочку
|
||||
lui s1, 0x8008 // Загружаем 80080000
|
||||
|
||||
CopyCmdFromScratch:
|
||||
// Копирование команды из scratch
|
||||
lw t9, 0x0(s3) // Количество команд DMA
|
||||
lw t7, 0x4(s3) // Команда копирования спрайта
|
||||
lw t8, 0x8(s3) // Координаты экрана XY
|
||||
lw t5, 0xc(s3) // CLUT и координаты текстуры
|
||||
sw t9, 0x0(a1)
|
||||
sw t7, 0x4(a1)
|
||||
sw t8, 0x8(a1)
|
||||
sw t5, 0xc(a1)
|
||||
lw t9, 0x10(s3) // Размер спрайта после копирования
|
||||
nop
|
||||
sw t9, 0x10(a1) // Сохраняем последнюю команду
|
||||
lui s0, 0xff
|
||||
ori s0, s0, 0xffff // s0 = 00ffffff
|
||||
lui s7, 0x8000 // s7 = 80000000
|
||||
|
||||
lw v1, 0x18(t1) // Следующий параметр
|
||||
lw v0, 0x0(a1) // Текущий новый адрес цепочки
|
||||
lw v1, 0x0(v1) // Загружаем значение
|
||||
and v0, v0, t2 // v0 & ff000000
|
||||
and v1, v1, s0 // v1 & 00FFFFFF
|
||||
or v0, v0, v1 // Команды с FFFFFF
|
||||
sw v0, 0x0(a1) // Обновляем текущий адрес цепочки
|
||||
lw a0, 0x18(t1) // Первый адрес цепочки
|
||||
nop
|
||||
lw v0, 0x0(a0) // Первая ссылка цепочки на следующую
|
||||
and v1, a1, s0 // v1 = a1 & 00FFFFFF
|
||||
and v0, v0, t2 // v0 & FF000000
|
||||
or v0, v0, v1 // Последний адрес цепочки
|
||||
sw v0, 0x0(a0) // Первая цепочка следующего адреса
|
||||
sw a1, 0x18(t1) // Текущий адрес цепочки
|
||||
lhu v0, 0x4(t6) // Счетчик символов
|
||||
nop
|
||||
bne v0, zero, NotFirstChar // Если счетчик символов ≠ 0, переходим
|
||||
nop
|
||||
lui t2, 0xff00 // t2 = ff000000
|
||||
move t4, s4 // t4 - указатель на print params ОСНОВНОЙ
|
||||
move t1, s4 // t1 - print params для смещения страниц
|
||||
|
||||
sw a1, 0x28(t1) // Устанавливаем первую цепочку символов
|
||||
sw t8, 0xc(t6) // Сохраняем координаты в параметры
|
||||
// sh s2, 0xe(t4) // Сохраняем половину Y
|
||||
rect_set_X:
|
||||
sh t6, 0x8(s3) // Сохраняем X координату в текущий rect
|
||||
|
||||
NotFirstChar:
|
||||
lui a1, 0x1f80 // Адрес символа здесь
|
||||
lw v0, -0x31a8(t3) // Следующая свободная цепочка
|
||||
ori a1, a1, 0x348 // a1 | 1f800348 = Scratch данные символа
|
||||
and a0, v0, t2 // a0 = v0 & FF000000
|
||||
and v0, v0, s0 // v0 & 00FFFFFF
|
||||
or a3, v0, s1 // a3 = следующая цепочка & 80...
|
||||
move a2, a3 // a2 = a3 (следующая цепочка)
|
||||
lw v0, 0x4(t4) // Счетчик команд
|
||||
lw v1, 0x0(a3) // Новый адрес свободной цепочки
|
||||
addiu v0, v0, -0x1 // Уменьшаем счетчик
|
||||
and v1, v1, s0 // v1 & 80... количество команд
|
||||
or a0, a0, v1 // a0 & v1
|
||||
sw v0, 0x4(t4) // Сохраняем счетчик DMA
|
||||
andi v0, a3, 0x3 // Проверяем адрес назначения MOD 4
|
||||
sw a0, -0x31a8(t3) // Сохраняем новую свободную цепочку
|
||||
sll v0, s2, 1
|
||||
addu v0, s2 // Умножаем количество обработанных символов на 6
|
||||
sll v0, 1
|
||||
addu t6, v0 // Сдвигаем X (прочитаем со следующим блоком символов)
|
||||
rect_set_width:
|
||||
sll v0, t5, 3 //Количество блоков спрайта * 8 = ширина спрайта
|
||||
sh v0, 0x10(s3) // Сохраняем ширину спрайта
|
||||
|
||||
beq v0, zero, Copy16Bytes // Если MOD 4 = 0, ветвление
|
||||
addiu v0, a1, 0x40
|
||||
PageLoop:
|
||||
|
||||
CopyBy2Bytes:
|
||||
// Копируем по 2 байта если MOD 4 ≠ 0
|
||||
lwl t9, 0x3(a1)
|
||||
lwr t9, 0x0(a1)
|
||||
lwl t7, 0x7(a1)
|
||||
lwr t7, 0x4(a1)
|
||||
lwl t8, 0xb(a1)
|
||||
lwr t8, 0x8(a1)
|
||||
lwl t5, 0xf(a1)
|
||||
lwr t5, 0xc(a1)
|
||||
swl t9, 0x3(a2)
|
||||
swr t9, 0x0(a2)
|
||||
swl t7, 0x7(a2)
|
||||
swr t7, 0x4(a2)
|
||||
swl t8, 0xb(a2)
|
||||
swr t8, 0x8(a2)
|
||||
swl t5, 0xf(a2)
|
||||
swr t5, 0xc(a2)
|
||||
addiu a1, a1, 0x10
|
||||
bne a1, v0, CopyBy2Bytes
|
||||
addiu a2, a2, 0x10
|
||||
j last4BytesCopy
|
||||
nop
|
||||
////// Балансировщик нагрузки выбора цепочек для равномерного размещения команд (2 команды в 7ce58 + 1 команда в 7ce68)
|
||||
//////////////////////////////////////// TODO: CHAIN BALANCER
|
||||
addiu s5, s1, -0x3198 // s5 = 7ce68 (Второй свободный адрес dma)
|
||||
|
||||
Copy16Bytes:
|
||||
// Копируем по 16 байт
|
||||
lw t9, 0x0(a1)
|
||||
lw t7, 0x4(a1)
|
||||
lw t8, 0x8(a1)
|
||||
lw t5, 0xc(a1)
|
||||
sw t9, 0x0(a2)
|
||||
sw t7, 0x4(a2)
|
||||
sw t8, 0x8(a2)
|
||||
sw t5, 0xc(a2)
|
||||
addiu a1, a1, 0x10
|
||||
bne a1, v0, Copy16Bytes
|
||||
addiu a2, a2, 0x10
|
||||
//s5 - содержит указатель на адрес следующей свободной цепочки. В зависимости от балансировщика может быть 7ce58 или 7ce68
|
||||
|
||||
// Создание цепочки копирования спрайта
|
||||
lw v0, 0x0(s5) // v0 = *адрес свободной цепочки
|
||||
nop
|
||||
and a0, v0, t2 // a0 = v0 & ff00..
|
||||
and v0, v0, s0 // v0 & 00FFFFFF
|
||||
or a1, v0, s7 // a1 = v0 | s7 (80000000)
|
||||
lw v0, 0x4(s5) // Счетчик команд
|
||||
lw v1, 0x0(a1) // Новый адрес свободной цепочки
|
||||
addiu v0, v0, -0x1 // Уменьшаем счетчик
|
||||
and v1, v1, s0 // v1 & 00FFFFFF
|
||||
or a0, a0, v1 // a0 & v1
|
||||
sw v0, 0x4(s5) // Сохраняем счетчик DMA
|
||||
sw a0, 0x0(s5) // Сохраняем новую свободную цепочку
|
||||
|
||||
last4BytesCopy:
|
||||
// Копируем последние 4 байта
|
||||
lwl t9, 0x3(a1)
|
||||
lwr t9, 0x0(a1)
|
||||
nop
|
||||
swl t9, 0x3(a2)
|
||||
swr t9, 0x0(a2)
|
||||
rect_copy_scratch_to_ram:
|
||||
lw t8, 0x0(s3) // Количество команд DMA
|
||||
lw t7, 0x4(s3) // Команда копирования спрайта
|
||||
sw t8, 0x0(a1)
|
||||
sw t7, 0x4(a1)
|
||||
lw a3, 0x8(s3) // Координаты экрана XY
|
||||
lw t7, 0xc(s3) // CLUT и координаты текстуры
|
||||
sw a3, 0x8(a1)
|
||||
sw t7, 0xc(a1)
|
||||
lw t8, 0x10(s3) // Размер спрайта после копирования
|
||||
nop
|
||||
sw t8, 0x10(a1) // Сохраняем последнюю команду
|
||||
|
||||
// Связывание DMA символа + копирование спрайта
|
||||
lw v1, 0x18(t1) // Текущая цепочка DMA копирования спрайта
|
||||
lw v0, 0x0(a3) // Текущие команды цепочки символов
|
||||
lw v1, 0x0(v1) // Количество команд + следующая ссылка
|
||||
and v0, v0, t2 // v0 & FF.....
|
||||
and v1, v1, s0 // v1 & 00FFFFFF
|
||||
or v0, v0, v1 // Количество команд & FF..
|
||||
sw v0, 0x0(a3) // Сохраняем текущую команду цепочки
|
||||
lw a0, 0x18(t1) // Адрес заголовка текущей команды копирования спрайта
|
||||
nop
|
||||
lw v0, 0x0(a0) // 04FFFFFF
|
||||
and v1, a3, s0 // v1 = копирование текущей цепочки символов
|
||||
and v0, v0, t2 // v0 & FF000000 (количество команд)
|
||||
or v0, v0, v1 // Полная команда со ссылкой
|
||||
sw v0, 0x0(a0) // Сохраняем с ссылкой на цепочку символов
|
||||
sw a3, 0x18(t1) // Последняя цепочка символов
|
||||
|
||||
addiu t1, t1, 0x4 // Сдвигаем параметры для следующей страницы
|
||||
addiu v0, t6, 0x8 // Сдвигаем первый параметр цепочки для страницы
|
||||
sltu v0, t1, v0 // Проверяем прохождение первой страницы
|
||||
bne v0, zero, PageLoop // Если не прошли, продолжаем цикл страниц
|
||||
nop
|
||||
rect_scratch_connect:
|
||||
lw v1, 0x18(t1) // Загружаем адрес след цепочки из print params (cur page)
|
||||
lw v0, 0x0(a1) // Текущий новый адрес цепочки
|
||||
lw v1, 0x0(v1) // Разыменование
|
||||
and v0, v0, t2 // v0 & ff000000
|
||||
and v1, v1, s0 // v1 & 00FFFFFF
|
||||
or v0, v0, v1 // Команды с FFFFFF
|
||||
sw v0, 0x0(a1) // Обновляем текущий адрес цепочки
|
||||
|
||||
// Сдвиг X координаты (+6)
|
||||
lhu v0, 0xa8(gp) // Загружаем начальный X
|
||||
lhu v1, 0x8(s3) // Загружаем последний X в scratch
|
||||
addiu v0, v0, 0x6 // v0 = начальный X + 6
|
||||
addu v1, v1, v0 // Последний X = последний X + (начальный X + 6)
|
||||
sh v1, 0x8(s3) // Обновляем последний X в DMA scratch
|
||||
lw a0, 0x18(t1) // Загружаем адрес след цепочки из print params (cur page)
|
||||
nop
|
||||
lw v0, 0x0(a0) // Разыменование
|
||||
and v1, a1, s0 // v1 = a1 & 00FFFFFF
|
||||
and v0, v0, t2 // v0 & FF000000 - чистим кол-во команд
|
||||
or v0, v0, v1 // прикручиваем кол-во команд к след адресу
|
||||
sw v0, 0x0(a0) // Сохраняем в цепочку ссылку
|
||||
sw a1, 0x18(t1) // Сохраняем адрес след актуальной цепочки в print params (cur page)
|
||||
|
||||
lhu v0, 0x4(t4) // Проверяем счетчик символов в print params
|
||||
nop
|
||||
bne v0, zero, cpu2vram_cmd_loop // Если счетчик символов ≠ 0, переходим (уже инициализировали)
|
||||
clear s8 // Сбрасываем счётчик команд спрайтов
|
||||
|
||||
SpaceJump:
|
||||
// Увеличиваем счетчик символов + проверка
|
||||
lhu v0, 0x4(s5) // Текущее количество символов DMA
|
||||
lui t9, MyAddr
|
||||
addiu v0, v0, 0x1 // Увеличиваем на 1
|
||||
sh v0, 0x4(s5) // Сохраняем счетчик в цепочку
|
||||
sw a1, 0x28(t1) // Устанавливаем адрес начала цепочки символов в print_params (для хранения значения "цепочка от адреса...")
|
||||
sw a3, 0xc(t4) // Сохраняем экранные координаты в print params
|
||||
|
||||
// Проверка переполнения DMA
|
||||
lw v0, 0x4(s7) // Счетчик команд DMA
|
||||
move v1, 5 // Минимальный счетчик команд
|
||||
sltu v0, v0, v1 // v0 < v1?
|
||||
bne v0, zero, TextEnd // Если переполнение DMA, завершаем текст
|
||||
nop
|
||||
|
||||
lui t3, MyAddr
|
||||
lhu v0, -0xE(t3) // Количество символов в строке
|
||||
lhu v1, -0x10(t3) // Общее количество символов в строке
|
||||
addiu v0, v0, 0x1 // Увеличиваем на 1
|
||||
lbu a0, 0x0(s4) // Загружаем следующий символ
|
||||
sh v0, -0xE(t3) // Сохраняем счетчик символов
|
||||
addiu s4, s4, 0x1 // Сдвигаем адрес символа
|
||||
cpu2vram_cmd_loop:
|
||||
// Цикл команд cpu_to_vram (формирование спрайтов текста в VRAM)
|
||||
|
||||
////// Балансировщик нагрузки выбора цепочек для равномерного размещения команд (2 команды в 7ce58 + 1 команда в 7ce68)
|
||||
//////////////////////////////////////// TODO: CHAIN BALANCER
|
||||
addiu s5, s1, -0x31a8 // s5 = 7ce58 (Первый свободный адрес dma)
|
||||
|
||||
//s5 - содержит указатель на адрес следующей свободной цепочки. В зависимости от балансировщика может быть 7ce58 или 7ce68
|
||||
|
||||
lw v0, 0x0(s5) // Следующая свободная цепочка 7ce58 ()
|
||||
nop
|
||||
and a0, v0, t2 // a0 = v0 & FF000000
|
||||
and v0, v0, s0 // v0 & 00FFFFFF
|
||||
or a3, v0, s7 // a3 = следующая цепочка & 80...
|
||||
move a2, a3 // a2 = a3 (следующая цепочка)
|
||||
lw v0, 0x4(s5) // Счетчик команд
|
||||
lw v1, 0x0(a3) // Новый адрес свободной цепочки
|
||||
addiu v0, v0, -0x1 // Уменьшаем счетчик
|
||||
and v1, v1, s0 // v1 & 00FFFFFF
|
||||
or a0, a0, v1 // a0 & v1
|
||||
sw v0, 0x4(s5) // Сохраняем счетчик DMA
|
||||
sw a0, 0x0(s5) // Сохраняем новую свободную цепочку
|
||||
|
||||
//Копируем шаблон cpu2vram
|
||||
|
||||
lui a1, 0x1f80
|
||||
ori a1, a1, 0x348 // 1f800348 = Scratch команда cpu2vram
|
||||
lw t8, 0x0(a1)
|
||||
lw t7, 0x4(a1)
|
||||
sw t8, 0x0(a2)
|
||||
sw t7, 0x4(a2)
|
||||
lw t8, 0x8(a1) //Сохраняем базу команды cpu2vram
|
||||
lw t7, 0xc(a1)
|
||||
sw t8, 0x8(a2)
|
||||
sw t7, 0xc(a2)
|
||||
|
||||
sll v1, s8, 1 //Текущий индекс блока * 2
|
||||
addiu v0, v1, 0x130 //складываем со 0x130 (X начала спрайта в VRAM)
|
||||
sh v0, 0x8(a2) //Обновляем VU X прямо в RAM
|
||||
|
||||
copy_char_data_start:
|
||||
lui t3, 0x1f80
|
||||
ori t3, t3, 0x1c0 // Начало данных спрайта в scratch
|
||||
|
||||
addiu a2, 0x10 //Адрес для записи данных после заголовка команды
|
||||
clear v0 //Основной счётчик строк (0-11)
|
||||
|
||||
sll v1, t5, 2 //v1 = количество байт в одной строке (блоки * 4) (инкремент)
|
||||
sll a1, s8, 2 //Вычисляем смещение начала чтения
|
||||
addu a1, t3 //a1 = адрес начала чтения в scratch
|
||||
|
||||
copy_char_data_loop:
|
||||
lw t7, 0x0(a1) //Грузим данные
|
||||
addu a1, v1 //Смещаем адрес чтения
|
||||
sw t7, 0x0(a2) //Сохраняем данные
|
||||
|
||||
addiu a2, 0x04 //Смещаем адрес записи
|
||||
addiu v0, 0x01 //Инкремент счётчика строк
|
||||
bne v0, 0x0c, copy_char_data_loop
|
||||
nop
|
||||
|
||||
bne s8, zero, cpu2vram_dma_link // Если это первая команда (последняя выполняемая, то добавляем flushcache)
|
||||
nop
|
||||
|
||||
set_flush_cache_cmd:
|
||||
li t8, 0x10
|
||||
sb t8, -0x3d(a2) //Обновляем длину команды до 0x10
|
||||
lui t8, 0x0100
|
||||
sw t8, 0x0(a2) //Устанавливаем команду flush cache в конце команды
|
||||
|
||||
cpu2vram_dma_link:
|
||||
// Связывание предыдущей команды с текущей (формирование ссылки в заголовке команды)
|
||||
lw v1, 0x18(t1) // v1 <- 18+(t1) - указатель на конец цепочки в текущей странице)
|
||||
lw v0, 0x0(a3) // v0 <- 0+(a3) - снова читаем первую команду (в данном случае - количество команд)
|
||||
lw v1, 0x0(v1) // Разыменование указателя на след свободный адрес в цепочке (из print_params)
|
||||
and v0, v0, t2 // v0 & FF..... Чистим количество команд
|
||||
and v1, v1, s0 // v1 & 00FFFFFF - чистим след свободный адрес
|
||||
or v0, v0, v1 // Совмещаем ссылку - Cmd+ADDR
|
||||
sw v0, 0x0(a3) // Сохраняем ссылку в цепочку
|
||||
|
||||
//Связывание текущей команды со следующей (формирование ссылки в заголовке команды + запись в print params)
|
||||
lw a0, 0x18(t1) // v1 <- 18+(t1) - указатель на конец цепочки в текущей странице)
|
||||
nop
|
||||
lw v0, 0x0(a0) // Читаем то, на что указывает указатель (след адрес в цепочке из цепочки)
|
||||
and v1, a3, s0 // v1 = a3 & 00FFFFFF - от следующего адреса свободной команды отрезаем 80
|
||||
and v0, v0, t2 // v0 & FF000000 (количество команд) от след адреса
|
||||
or v0, v0, v1 // Совмещаем ссылку - Cmd+ADDR
|
||||
sw v0, 0x0(a0) // Сохраняем ссылку в цепочку
|
||||
sw a3, 0x18(t1) // Сохраняем адрес последней команды в print params
|
||||
|
||||
//Конец цикла команд cpu_to_vram
|
||||
addiu s8, 0x1 //Смешаем индекс читаемого спрайта
|
||||
bne s8, t5, cpu2vram_cmd_loop //Проверка на достижение количества спрайтов
|
||||
nop
|
||||
|
||||
addiu t1, t1, 0x4 // Сдвигаем print params для следующей страницы
|
||||
addiu v0, t4, 0x8 // v0 = t4 + 8 (t1 не должен быть больше, чем t4 + 4)
|
||||
sltu v0, t1, v0 // Проверяем прохождение первой страницы
|
||||
bne v0, zero, PageLoop // Если не прошли, продолжаем цикл страниц
|
||||
nop
|
||||
|
||||
chunk_making_end:
|
||||
// Увеличиваем счетчик символов + проверка
|
||||
lhu v0, 0x4(s4) // Текущее количество спрайтов
|
||||
lui t3, MyAddr
|
||||
addiu v0, v0, 0x1 // Увеличиваем на 1
|
||||
lhu v1, -0x0e(t3) // Количество оставшихся символов
|
||||
sh v0, 0x4(s4) // Сохраняем счетчик спрайтов в print_params
|
||||
|
||||
bne v1, zero, TextGroupReadLoop
|
||||
// Если обработаны все буквы и созданы все спрайты, то выходим
|
||||
nop
|
||||
|
||||
bne v0, v1, NextChar // Если текущий символ ≠ общему количеству, продолжаем
|
||||
nop
|
||||
|
||||
TextEnd:
|
||||
clear s2
|
||||
lui s3, 0x8008
|
||||
addiu s4, s3, -0x3198 // s4 = 7b6d0
|
||||
addiu s5, s3, -0x3198 // s5 = 7ce68 (Второй свободный адрес dma)
|
||||
lui s1, 0xff
|
||||
ori s1, s1, 0xffff // s1 = 00ffffff
|
||||
move s0, s5 // s0 = текущие параметры строки
|
||||
move s0, s4 // s0 = Указатель на print params (теперь они и в t1, s4 и s0)
|
||||
clear a1
|
||||
|
||||
PageTLoop:
|
||||
// Завершающая обработка страниц
|
||||
//Добавляем команду переключения текстурной страницы (SetDrawTPage) в обе страницы
|
||||
li a2, 0x1 // a2 = 1
|
||||
addu s2, s2, a2 // Увеличиваем счетчик
|
||||
addu s2, s2, a2 // Увеличиваем счетчик страниц
|
||||
|
||||
lui v0, 0x8000 // v0 = 80000000
|
||||
lui a0, 0xff00 // a0 = ff000000
|
||||
lw v1, -0x3198(s3) // Следующая свободная цепочка
|
||||
lw a3, 0x9c(gp) // Некоторые параметры (почти DMA)
|
||||
|
||||
lw v1, 0x0(s5) // Следующая свободная цепочка
|
||||
lw a3, 0x9c(gp) // Текстурная страница из параметров
|
||||
and v1, v1, s1 // v1 & 00FFFFFF
|
||||
or v1, v1, v0 // v1 | v0 = 80.....
|
||||
sw v1, 0x30(s0) // Сохраняем последний свободный адрес в параметрах DMA
|
||||
lw v0, -0x3198(s3) // Следующая свободная цепочка
|
||||
lw v1, 0x0(v1) // Создаем еще одну цепочку
|
||||
sw v1, 0x30(s0) // Сохраняем последний адрес в print params
|
||||
|
||||
//Линкуем адреса
|
||||
lw v0, 0x0(s5) // Следующая свободная цепочка ещё раз!
|
||||
lw v1, 0x0(v1) // разыменование
|
||||
and v0, v0, a0 // v0 & ff000000
|
||||
and v1, v1, s1 // v1 & 00FFFFFF
|
||||
lw a0, 0x4(s4) // Счетчик DMA
|
||||
lw a0, 0x4(s5) // Счетчик DMA
|
||||
or v0, v0, v1 // v0 | v1
|
||||
sw v0, -0x3198(s3) // Новый адрес свободной цепочки
|
||||
addiu a0, a0, -0x1 // Уменьшаем счетчик DMA
|
||||
sw a0, 0x4(s4) // Сохраняем счетчик DMA
|
||||
lw a0, 0x30(s0) // Начало цепочки DMA
|
||||
sw v0, 0x0(s5) // Сохраняем свободный адрес
|
||||
addiu a0, -0x1 // Уменьшаем счетчик DMA
|
||||
sw a0, 0x4(s5) // Сохраняем счетчик DMA
|
||||
lw a0, 0x30(s0) // Читаем адрес команды в a0 для передачи в функцию установки texPage
|
||||
jal SetDrawTPage // Устанавливаем страницу отрисовки
|
||||
addiu s0, s0, 0x4 // Сдвигаем параметры DMA для следующей страницы
|
||||
addiu s0, s0, 0x4 // Смещаем print params для следующей страницы
|
||||
sltiu v0, s2, 0x2 // Проверяем счетчик < 2
|
||||
bne v0, zero, PageTLoop // Если да, продолжаем цикл
|
||||
clear a1 // a1 = 0
|
||||
@@ -407,4 +473,16 @@ PageTLoop:
|
||||
lw s0, 0x28(sp)
|
||||
|
||||
jr ra // Возврат
|
||||
addiu sp, sp, 0x50 // Восстанавливаем стек
|
||||
addiu sp, sp, 0x50 // Восстанавливаем стек
|
||||
|
||||
|
||||
.include "2_EP/EP_charload_grouped.asm"
|
||||
.include "2_EP/EP_charCalcs.asm"
|
||||
.close
|
||||
|
||||
.include "2_EP/EP_txtpatches.asm" // misc text patches
|
||||
|
||||
|
||||
|
||||
|
||||
// compile with ./armips -sym 2_EP/BUILD_LOGS/SLPS_028.25.map -temp 2_EP/BUILD_LOGS/SLPS_028.25.txt 2_EP/EP_main_grouped.asm
|
||||
@@ -29,38 +29,32 @@
|
||||
// ;;;;;;;;;;;;;;;;;;;;;;;;Print Routines Calls Replacing
|
||||
|
||||
// ;main dialog calls from PrintProgramText Routine
|
||||
// .org 0x8001cd58
|
||||
// jal ExternalPrint
|
||||
// .org 0x8001cdd8
|
||||
// jal ExternalPrint
|
||||
|
||||
// .org 0x8001c098
|
||||
// jal ExternalPrint
|
||||
// .org 0x8001c10c
|
||||
// jal ExternalPrint
|
||||
|
||||
|
||||
.org 0x8001d0c4
|
||||
jal ExternalPrint
|
||||
.org 0x8001d138
|
||||
jal ExternalPrint
|
||||
|
||||
.org 0x8001df7c
|
||||
jal ExternalPrint
|
||||
.org 0x8001dffc
|
||||
jal ExternalPrint
|
||||
|
||||
// ;printPlaneTEXT (PlayerName, etc...)
|
||||
// .org 0x8001c388
|
||||
// jal ExternalPrint
|
||||
|
||||
|
||||
.org 0x8001d1dc
|
||||
jal ExternalPrint
|
||||
|
||||
// ;custom CheckCharNumToLineEnd for proper Complex Lines Read (charcountread)
|
||||
// .org 0x8001abf4
|
||||
// j ReturnCharsInString ;custom routine
|
||||
// clear v1
|
||||
.org 0x8001bee0
|
||||
j ReturnCharsInString ;custom routine
|
||||
clear v1
|
||||
// ;j 0x8001af00 ;original code
|
||||
|
||||
// ;calcnextX Custom
|
||||
|
||||
// .org 0x8001ac1c
|
||||
// ; addiu sp,sp,-0x18 ;Original Code
|
||||
// ; sw ra,0x10(sp)
|
||||
// j calcnextXCustom ;PATCHED
|
||||
// nop
|
||||
.org 0x8001bf08
|
||||
; addiu sp,sp,-0x18 ;Original Code
|
||||
; sw ra,0x10(sp)
|
||||
j calcnextXCustom ;PATCHED
|
||||
nop
|
||||
|
||||
.close
|
||||
|
||||
|
||||
@@ -60,7 +60,7 @@ next x
|
||||
|
||||
IS inner data
|
||||
|
||||
1f8001e0 -
|
||||
1f8001c0 -
|
||||
1f800348 - 4bit chardata
|
||||
|
||||
1f800348 - CpuToVram cmd template
|
||||
@@ -83,6 +83,11 @@ IS inner data
|
||||
c0f0d37f - src coords & clut
|
||||
08000c00 - width & heigth
|
||||
|
||||
|
||||
1f8003f0 - SpriteCmdLengthTable
|
||||
|
||||
|
||||
|
||||
IS regs:
|
||||
a2 - FF000000
|
||||
a3 - 80080000
|
||||
@@ -92,6 +97,7 @@ IS regs:
|
||||
s7 - 80000000 address mask
|
||||
|
||||
t0 - 00FFFFFF
|
||||
t2 - FF000000
|
||||
|
||||
t1 - print_params for PAGE
|
||||
|
||||
@@ -122,20 +128,26 @@ Custom regs:
|
||||
|
||||
s8 - chunk block index (cpu2vram)
|
||||
|
||||
|
||||
- всегда за тобой
|
||||
- новая система вывода текста (отказ от посимвольного вывода)
|
||||
- splash screen переводчика
|
||||
+ имя в боёвке
|
||||
- описания статов персон
|
||||
- описания статов персон/демонов (блок!)
|
||||
- жнец!
|
||||
- группа пернатых феникс р
|
||||
- розовый аргус
|
||||
- майя-прайм
|
||||
- Рейх и прочие арканы
|
||||
- Измеритель звёзд и прочие заклинания
|
||||
- группы крови
|
||||
- оракул где-то рядом
|
||||
- всегда за тобой
|
||||
- "регистрируем Персоны"
|
||||
- ортр суммон + название
|
||||
- аэшма суммон + название
|
||||
- перебрать все локации в данжах
|
||||
- распаковать файлы общения с демонами
|
||||
|
||||
- ПЕРЕСОБРАТЬ ОБРАЗ xml2iso!
|
||||
|
||||
|
||||
|
||||
|
||||
8
Persona2-PSX-asm-sources.code-workspace
Normal file
8
Persona2-PSX-asm-sources.code-workspace
Normal file
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"folders": [
|
||||
{
|
||||
"path": "."
|
||||
}
|
||||
],
|
||||
"settings": {}
|
||||
}
|
||||
Reference in New Issue
Block a user