diff --git a/generated/SCPH1001_full.c b/generated/SCPH1001_full.c index b253fa84..ce7a1dd4 100644 --- a/generated/SCPH1001_full.c +++ b/generated/SCPH1001_full.c @@ -15,6 +15,12 @@ extern void gte_write_data(CPUState* cpu, uint8_t reg, uint32_t val); extern uint32_t gte_read_data(CPUState* cpu, uint8_t reg); extern void debug_server_log_call_entry(uint32_t func_addr); extern uint32_t g_debug_last_store_pc; +/* Phase 1.0e-d: per-block guest cycle accounting. + * Compile generated code with -DPSX_ENABLE_BLOCK_CYCLES=1 to + * activate cycle advancement at every block leader. */ +#ifdef PSX_ENABLE_BLOCK_CYCLES +extern void psx_advance_cycles(uint32_t cycles); +#endif void func_1FC00000(CPUState* cpu); void func_1FC00180(CPUState* cpu); @@ -1237,6 +1243,9 @@ void func_1FC42BF0(CPUState* cpu); void func_1FC00000(CPUState* cpu) { debug_server_log_call_entry(0x1FC00000u); label_BFC00000: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(30u); +#endif psx_check_interrupts(cpu); /* 0xBFC00000: 3C080013 lui $t0, 0x13 */ cpu->gpr[8] = 0x00130000u; @@ -1299,6 +1308,9 @@ label_BFC00000: /* nop */ goto label_BFC00150; label_BFC00150: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC00150: 3C091F80 lui $t1, 0x1F80 */ cpu->gpr[9] = 0x1F800000u; @@ -1330,6 +1342,9 @@ label_BFC00150: void func_1FC00180(CPUState* cpu) { debug_server_log_call_entry(0x1FC00180u); label_BFC00180: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(52u); +#endif psx_check_interrupts(cpu); /* 0xBFC00180: AD280008 sw $t0, 8($t1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00180u); return; } g_debug_last_store_pc = 0xBFC00180u; cpu->write_word(psx_addr, cpu->gpr[8]); } @@ -1436,6 +1451,9 @@ label_BFC00180: /* 0xBFC0024C: 240B0F80 addiu $t3, $zero, 3968 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (3968)); label_BFC00250: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC00250: AD400000 sw $zero, 0($t2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[10] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00250u); return; } g_debug_last_store_pc = 0xBFC00250u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -1460,6 +1478,9 @@ label_BFC00250: { int32_t psx_a = (int32_t)cpu->gpr[10]; int32_t psx_b = (128); int64_t psx_r = (int64_t)psx_a + (int64_t)psx_b; if (psx_r < (int64_t)INT32_MIN || psx_r > (int64_t)INT32_MAX) { psx_arith_overflow(cpu); return; } cpu->gpr[10] = (uint32_t)(int32_t)psx_r; } if (psx_taken_BFC00270) goto label_BFC00250; label_BFC00278: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC00278: 40806000 mtc0 $zero, cop0[12] */ cpu->cop0[12] = cpu->gpr[0]; @@ -1482,6 +1503,9 @@ label_BFC00278: /* 0xBFC0029C: 240B0F80 addiu $t3, $zero, 3968 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (3968)); label_BFC002A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(34u); +#endif psx_check_interrupts(cpu); /* 0xBFC002A0: AD400000 sw $zero, 0($t2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[10] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC002A0u); return; } g_debug_last_store_pc = 0xBFC002A0u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -1554,6 +1578,9 @@ label_BFC002A0: { int32_t psx_a = (int32_t)cpu->gpr[10]; int32_t psx_b = (128); int64_t psx_r = (int64_t)psx_a + (int64_t)psx_b; if (psx_r < (int64_t)INT32_MIN || psx_r > (int64_t)INT32_MAX) { psx_arith_overflow(cpu); return; } cpu->gpr[10] = (uint32_t)(int32_t)psx_r; } if (psx_taken_BFC00320) goto label_BFC002A0; label_BFC00328: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(36u); +#endif psx_check_interrupts(cpu); /* 0xBFC00328: 40806000 mtc0 $zero, cop0[12] */ cpu->cop0[12] = cpu->gpr[0]; @@ -1628,6 +1655,9 @@ label_BFC00328: /* 0xBFC003B4: 2463C160 addiu $v1, $v1, -16032 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (-16032)); label_BFC003B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC003B8: AC400000 sw $zero, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC003B8u); return; } g_debug_last_store_pc = 0xBFC003B8u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -1642,6 +1672,9 @@ label_BFC003B8: /* nop */ if (psx_taken_BFC003C4) goto label_BFC003B8; label_BFC003CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(21u); +#endif psx_check_interrupts(cpu); /* 0xBFC003CC: 3C1D801F lui $sp, 0x801F */ cpu->gpr[29] = 0x801F0000u; @@ -1690,6 +1723,9 @@ label_BFC003CC: void func_1FC00420(CPUState* cpu) { debug_server_log_call_entry(0x1FC00420u); label_BFC00420: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC00420: 3C04BFC1 lui $a0, 0xBFC1 */ cpu->gpr[4] = 0xBFC10000u; @@ -1702,6 +1738,9 @@ label_BFC00420: /* 0xBFC00430: 24A50500 addiu $a1, $a1, 1280 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (1280)); label_BFC00434: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC00434: 8C870000 lw $a3, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00434u); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } @@ -1718,6 +1757,9 @@ label_BFC00434: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00448u); return; } g_debug_last_store_pc = 0xBFC00448u; cpu->write_word(psx_addr, cpu->gpr[7]); } if (psx_taken_BFC00444) goto label_BFC00434; label_BFC0044C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0044C: 3C04A000 lui $a0, 0xA000 */ cpu->gpr[4] = 0xA0000000u; @@ -1741,6 +1783,9 @@ void func_1FC00678(CPUState* cpu) { } } label_BFC00678: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC00678: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -1752,6 +1797,9 @@ label_BFC00678: cpu->gpr[31] = 0xBFC00688u; psx_dispatch(cpu, 0xBFC03910u); label_BFC00688: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC00688: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -1763,6 +1811,9 @@ label_BFC00688: cpu->gpr[31] = 0xBFC00698u; psx_dispatch(cpu, 0xBFC006D8u); label_BFC00698: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC00698: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00698u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -1786,6 +1837,9 @@ void func_1FC006A8(CPUState* cpu) { } } label_BFC006A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC006A8: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -1797,6 +1851,9 @@ label_BFC006A8: cpu->gpr[31] = 0xBFC006B8u; psx_dispatch(cpu, 0xBFC03910u); label_BFC006B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC006B8: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -1808,6 +1865,9 @@ label_BFC006B8: cpu->gpr[31] = 0xBFC006C8u; psx_dispatch(cpu, 0xBFC006D8u); label_BFC006C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC006C8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC006C8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -1838,6 +1898,9 @@ void func_1FC006D8(CPUState* cpu) { } } label_BFC006D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC006D8: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -1855,6 +1918,9 @@ label_BFC006D8: cpu->gpr[31] = 0xBFC006F4u; psx_dispatch(cpu, 0xBFC03F8Cu); label_BFC006F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC006F4: 0FF00FE3 jal 0xBFC03F8C */ /* 0xBFC006F8: 3C040300 lui $a0, 0x300 */ @@ -1862,6 +1928,9 @@ label_BFC006F4: cpu->gpr[31] = 0xBFC006FCu; psx_dispatch(cpu, 0xBFC03F8Cu); label_BFC006FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC006FC: 3C0406C4 lui $a0, 0x6C4 */ cpu->gpr[4] = 0x06C40000u; @@ -1871,6 +1940,9 @@ label_BFC006FC: cpu->gpr[31] = 0xBFC00708u; psx_dispatch(cpu, 0xBFC03F8Cu); label_BFC00708: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC00708: 3C04E100 lui $a0, 0xE100 */ cpu->gpr[4] = 0xE1000000u; @@ -1880,6 +1952,9 @@ label_BFC00708: cpu->gpr[31] = 0xBFC00714u; psx_dispatch(cpu, 0xBFC03FACu); label_BFC00714: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00714: 0FF00FEB jal 0xBFC03FAC */ /* 0xBFC00718: 3C04E300 lui $a0, 0xE300 */ @@ -1887,6 +1962,9 @@ label_BFC00714: cpu->gpr[31] = 0xBFC0071Cu; psx_dispatch(cpu, 0xBFC03FACu); label_BFC0071C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0071C: 3C04E407 lui $a0, 0xE407 */ cpu->gpr[4] = 0xE4070000u; @@ -1896,6 +1974,9 @@ label_BFC0071C: cpu->gpr[31] = 0xBFC00728u; psx_dispatch(cpu, 0xBFC03FACu); label_BFC00728: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00728: 0FF00FEB jal 0xBFC03FAC */ /* 0xBFC0072C: 3C04E500 lui $a0, 0xE500 */ @@ -1903,6 +1984,9 @@ label_BFC00728: cpu->gpr[31] = 0xBFC00730u; psx_dispatch(cpu, 0xBFC03FACu); label_BFC00730: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC00730: 3C040800 lui $a0, 0x800 */ cpu->gpr[4] = 0x08000000u; @@ -1912,6 +1996,9 @@ label_BFC00730: cpu->gpr[31] = 0xBFC0073Cu; psx_dispatch(cpu, 0xBFC03F8Cu); label_BFC0073C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC0073C: 8FAE0038 lw $t6, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0073Cu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -1937,6 +2024,9 @@ label_BFC0073C: cpu->gpr[31] = 0xBFC00768u; psx_dispatch(cpu, 0xBFC00810u); label_BFC00768: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC00768: 8FBF0034 lw $ra, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00768u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -1962,6 +2052,9 @@ void func_1FC00778(CPUState* cpu) { } } label_BFC00778: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC00778: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -1985,6 +2078,9 @@ label_BFC00778: cpu->gpr[31] = 0xBFC007A0u; psx_dispatch(cpu, 0xBFC00810u); label_BFC007A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC007A0: AFA00010 sw $zero, 16($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC007A0u); return; } g_debug_last_store_pc = 0xBFC007A0u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -2004,6 +2100,9 @@ label_BFC007A0: cpu->gpr[31] = 0xBFC007C0u; psx_dispatch(cpu, 0xBFC00810u); label_BFC007C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC007C0: AFA00010 sw $zero, 16($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC007C0u); return; } g_debug_last_store_pc = 0xBFC007C0u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -2023,6 +2122,9 @@ label_BFC007C0: cpu->gpr[31] = 0xBFC007E0u; psx_dispatch(cpu, 0xBFC00810u); label_BFC007E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC007E0: AFA00010 sw $zero, 16($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC007E0u); return; } g_debug_last_store_pc = 0xBFC007E0u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -2042,6 +2144,9 @@ label_BFC007E0: cpu->gpr[31] = 0xBFC00800u; psx_dispatch(cpu, 0xBFC00810u); label_BFC00800: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC00800: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00800u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -2064,6 +2169,9 @@ void func_1FC00810(CPUState* cpu) { } } label_BFC00810: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(32u); +#endif psx_check_interrupts(cpu); /* 0xBFC00810: 27BDFFB8 addiu $sp, $sp, -72 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-72)); @@ -2131,6 +2239,9 @@ label_BFC00810: cpu->gpr[31] = 0xBFC00890u; psx_dispatch(cpu, 0xBFC03FE0u); label_BFC00890: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC00890: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00890u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -2156,6 +2267,9 @@ void func_1FC008A0(CPUState* cpu) { } } label_BFC008A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC008A0: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -2172,6 +2286,9 @@ label_BFC008A0: /* 0xBFC008B8: 00A01821 addu $v1, $a1, $zero */ cpu->gpr[3] = cpu->gpr[5] + cpu->gpr[0]; label_BFC008BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC008BC: 24420001 addiu $v0, $v0, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (1)); @@ -2184,6 +2301,9 @@ label_BFC008BC: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_taken_BFC008C4) goto label_BFC008BC; label_BFC008CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC008CC: 8FAE0030 lw $t6, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC008CCu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -2203,6 +2323,9 @@ label_BFC008CC: cpu->gpr[31] = 0xBFC008ECu; psx_dispatch(cpu, 0xBFC00944u); label_BFC008EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC008EC: 8FA5002C lw $a1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC008ECu); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -2218,6 +2341,9 @@ label_BFC008EC: cpu->gpr[31] = 0xBFC00904u; psx_dispatch(cpu, 0xBFC00944u); label_BFC00904: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC00904: 8FA5002C lw $a1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00904u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -2233,6 +2359,9 @@ label_BFC00904: cpu->gpr[31] = 0xBFC0091Cu; psx_dispatch(cpu, 0xBFC00944u); label_BFC0091C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0091C: 8FA40028 lw $a0, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0091Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -2248,6 +2377,9 @@ label_BFC0091C: cpu->gpr[31] = 0xBFC00934u; psx_dispatch(cpu, 0xBFC00B7Cu); label_BFC00934: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC00934: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00934u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -2276,6 +2408,9 @@ void func_1FC00944(CPUState* cpu) { } } label_BFC00944: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC00944: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -2302,6 +2437,9 @@ label_BFC00944: cpu->gpr[16] = cpu->gpr[17] + cpu->gpr[0]; if (psx_taken_BFC00968) goto label_BFC00978; label_BFC00970: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00970: 10000022 beq $zero, $zero, 0xBFC009FC */ uint32_t psx_brA_BFC00970 = cpu->gpr[0]; uint32_t psx_brB_BFC00970 = cpu->gpr[0]; @@ -2310,6 +2448,9 @@ label_BFC00970: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); if (psx_taken_BFC00970) goto label_BFC009FC; label_BFC00978: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00978: 0FF00D25 jal 0xBFC03494 */ /* 0xBFC0097C: 02402021 addu $a0, $s2, $zero */ @@ -2317,6 +2458,9 @@ label_BFC00978: cpu->gpr[31] = 0xBFC00980u; psx_dispatch(cpu, 0xBFC03494u); label_BFC00980: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC00980: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -2328,6 +2472,9 @@ label_BFC00980: cpu->gpr[31] = 0xBFC00990u; psx_dispatch(cpu, 0xBFC03310u); label_BFC00990: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00990: 14400004 bne $v0, $zero, 0xBFC009A4 */ uint32_t psx_brA_BFC00990 = cpu->gpr[2]; uint32_t psx_brB_BFC00990 = cpu->gpr[0]; @@ -2336,6 +2483,9 @@ label_BFC00990: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); if (psx_taken_BFC00990) goto label_BFC009A4; label_BFC00998: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00998: 10000018 beq $zero, $zero, 0xBFC009FC */ uint32_t psx_brA_BFC00998 = cpu->gpr[0]; uint32_t psx_brB_BFC00998 = cpu->gpr[0]; @@ -2344,10 +2494,16 @@ label_BFC00998: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); if (psx_taken_BFC00998) goto label_BFC009FC; label_BFC009A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC009A0: 2411000A addiu $s1, $zero, 10 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); label_BFC009A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC009A4: 82040000 lb $a0, 0($s0) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (0))); @@ -2360,6 +2516,9 @@ label_BFC009A4: /* nop */ if (psx_taken_BFC009AC) goto label_BFC009CC; label_BFC009B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC009B4: 1080006C beq $a0, $zero, 0xBFC00B68 */ uint32_t psx_brA_BFC009B4 = cpu->gpr[4]; uint32_t psx_brB_BFC009B4 = cpu->gpr[0]; @@ -2368,6 +2527,9 @@ label_BFC009B4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC009B8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC009B4) goto label_BFC00B68; label_BFC009BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC009BC: 82040001 lb $a0, 1($s0) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (1))); @@ -2380,6 +2542,9 @@ label_BFC009BC: /* nop */ if (psx_taken_BFC009C4) goto label_BFC009B4; label_BFC009CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC009CC: 820F0001 lb $t7, 1($s0) */ cpu->gpr[15] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (1))); @@ -2392,6 +2557,9 @@ label_BFC009CC: /* nop */ if (psx_taken_BFC009D4) goto label_BFC009FC; label_BFC009DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC009DC: 0FF00D25 jal 0xBFC03494 */ /* 0xBFC009E0: 02402021 addu $a0, $s2, $zero */ @@ -2399,6 +2567,9 @@ label_BFC009DC: cpu->gpr[31] = 0xBFC009E4u; psx_dispatch(cpu, 0xBFC03494u); label_BFC009E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC009E4: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -2410,6 +2581,9 @@ label_BFC009E4: cpu->gpr[31] = 0xBFC009F4u; psx_dispatch(cpu, 0xBFC03310u); label_BFC009F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC009F4: 1440FFEB bne $v0, $zero, 0xBFC009A4 */ uint32_t psx_brA_BFC009F4 = cpu->gpr[2]; uint32_t psx_brB_BFC009F4 = cpu->gpr[0]; @@ -2418,6 +2592,9 @@ label_BFC009F4: /* nop */ if (psx_taken_BFC009F4) goto label_BFC009A4; label_BFC009FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC009FC: 0FF00D25 jal 0xBFC03494 */ /* 0xBFC00A00: 02402021 addu $a0, $s2, $zero */ @@ -2425,6 +2602,9 @@ label_BFC009FC: cpu->gpr[31] = 0xBFC00A04u; psx_dispatch(cpu, 0xBFC03494u); label_BFC00A04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC00A04: 02028021 addu $s0, $s0, $v0 */ cpu->gpr[16] = cpu->gpr[16] + cpu->gpr[2]; @@ -2451,6 +2631,9 @@ label_BFC00A04: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (61)); if (psx_taken_BFC00A28) goto label_BFC00A64; label_BFC00A30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00A30: 1224004D beq $s1, $a0, 0xBFC00B68 */ uint32_t psx_brA_BFC00A30 = cpu->gpr[17]; uint32_t psx_brB_BFC00A30 = cpu->gpr[4]; @@ -2459,6 +2642,9 @@ label_BFC00A30: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00A34u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC00A30) goto label_BFC00B68; label_BFC00A38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00A38: 1080004B beq $a0, $zero, 0xBFC00B68 */ uint32_t psx_brA_BFC00A38 = cpu->gpr[4]; uint32_t psx_brB_BFC00A38 = cpu->gpr[0]; @@ -2467,6 +2653,9 @@ label_BFC00A38: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00A3Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC00A38) goto label_BFC00B68; label_BFC00A40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC00A40: 82040001 lb $a0, 1($s0) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (1))); @@ -2489,6 +2678,9 @@ label_BFC00A40: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (61)); if (psx_taken_BFC00A5C) goto label_BFC00A30; label_BFC00A64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00A64: 14810040 bne $a0, $at, 0xBFC00B68 */ uint32_t psx_brA_BFC00A64 = cpu->gpr[4]; uint32_t psx_brB_BFC00A64 = cpu->gpr[1]; @@ -2497,6 +2689,9 @@ label_BFC00A64: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00A68u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC00A64) goto label_BFC00B68; label_BFC00A6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00A6C: 1224003E beq $s1, $a0, 0xBFC00B68 */ uint32_t psx_brA_BFC00A6C = cpu->gpr[17]; uint32_t psx_brB_BFC00A6C = cpu->gpr[4]; @@ -2505,6 +2700,9 @@ label_BFC00A6C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00A70u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC00A6C) goto label_BFC00B68; label_BFC00A74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00A74: 1080003C beq $a0, $zero, 0xBFC00B68 */ uint32_t psx_brA_BFC00A74 = cpu->gpr[4]; uint32_t psx_brB_BFC00A74 = cpu->gpr[0]; @@ -2513,6 +2711,9 @@ label_BFC00A74: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00A78u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC00A74) goto label_BFC00B68; label_BFC00A7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC00A7C: 82040001 lb $a0, 1($s0) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (1))); @@ -2537,6 +2738,9 @@ label_BFC00A7C: cpu->gpr[10] = cpu->gpr[2] & 0x44u; if (psx_taken_BFC00A9C) goto label_BFC00AE0; label_BFC00AA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00AA4: 12240030 beq $s1, $a0, 0xBFC00B68 */ uint32_t psx_brA_BFC00AA4 = cpu->gpr[17]; uint32_t psx_brB_BFC00AA4 = cpu->gpr[4]; @@ -2545,6 +2749,9 @@ label_BFC00AA4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00AA8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC00AA4) goto label_BFC00B68; label_BFC00AAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00AAC: 1080002E beq $a0, $zero, 0xBFC00B68 */ uint32_t psx_brA_BFC00AAC = cpu->gpr[4]; uint32_t psx_brB_BFC00AAC = cpu->gpr[0]; @@ -2553,6 +2760,9 @@ label_BFC00AAC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00AB0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC00AAC) goto label_BFC00B68; label_BFC00AB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC00AB4: 82040001 lb $a0, 1($s0) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (1))); @@ -2577,10 +2787,16 @@ label_BFC00AB4: /* nop */ if (psx_taken_BFC00AD4) goto label_BFC00AA4; label_BFC00ADC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC00ADC: 304A0044 andi $t2, $v0, 0x44 */ cpu->gpr[10] = cpu->gpr[2] & 0x44u; label_BFC00AE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00AE0: 11400019 beq $t2, $zero, 0xBFC00B48 */ uint32_t psx_brA_BFC00AE0 = cpu->gpr[10]; uint32_t psx_brB_BFC00AE0 = cpu->gpr[0]; @@ -2589,10 +2805,16 @@ label_BFC00AE0: cpu->gpr[17] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC00AE0) goto label_BFC00B48; label_BFC00AE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC00AE8: 304B0004 andi $t3, $v0, 0x4 */ cpu->gpr[11] = cpu->gpr[2] & 0x4u; label_BFC00AEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00AEC: 11600005 beq $t3, $zero, 0xBFC00B04 */ uint32_t psx_brA_BFC00AEC = cpu->gpr[11]; uint32_t psx_brB_BFC00AEC = cpu->gpr[0]; @@ -2601,6 +2823,9 @@ label_BFC00AEC: /* nop */ if (psx_taken_BFC00AEC) goto label_BFC00B04; label_BFC00AF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC00AF4: 00116100 sll $t4, $s1, 4 */ cpu->gpr[12] = cpu->gpr[17] << 4u; @@ -2613,6 +2838,9 @@ label_BFC00AF4: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (-48)); if (psx_taken_BFC00AFC) goto label_BFC00B20; label_BFC00B04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00B04: 0FF00BA8 jal 0xBFC02EA0 */ /* 0xBFC00B08: 00000000 nop */ @@ -2620,6 +2848,9 @@ label_BFC00B04: cpu->gpr[31] = 0xBFC00B0Cu; psx_dispatch(cpu, 0xBFC02EA0u); label_BFC00B0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC00B0C: 00116900 sll $t5, $s1, 4 */ cpu->gpr[13] = cpu->gpr[17] << 4u; @@ -2632,6 +2863,9 @@ label_BFC00B0C: /* 0xBFC00B1C: 2631FFC9 addiu $s1, $s1, -55 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (-55)); label_BFC00B20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC00B20: 82040001 lb $a0, 1($s0) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (1))); @@ -2656,6 +2890,9 @@ label_BFC00B20: cpu->gpr[11] = cpu->gpr[2] & 0x4u; if (psx_taken_BFC00B40) goto label_BFC00AEC; label_BFC00B48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC00B48: 8FB9002C lw $t9, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00B48u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -2673,10 +2910,16 @@ label_BFC00B48: cpu->gpr[31] = 0xBFC00B64u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC00B64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC00B64: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00B64u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC00B68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC00B68: 8FB00018 lw $s0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00B68u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -2706,6 +2949,9 @@ void func_1FC00B7C(CPUState* cpu) { } } label_BFC00B7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC00B7C: 27BDFFB8 addiu $sp, $sp, -72 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-72)); @@ -2733,6 +2979,9 @@ label_BFC00B7C: cpu->gpr[31] = 0xBFC00BACu; psx_dispatch(cpu, 0xBFC03494u); label_BFC00BAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC00BAC: 822E0000 lb $t6, 0($s1) */ cpu->gpr[14] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (0))); @@ -2745,12 +2994,18 @@ label_BFC00BAC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00BB8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC00BB4) goto label_BFC00D8C; label_BFC00BBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00BBC: 2411000A addiu $s1, $zero, 10 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); /* 0xBFC00BC0: 8FA50054 lw $a1, 84($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (84)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00BC0u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } label_BFC00BC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC00BC4: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -2760,6 +3015,9 @@ label_BFC00BC4: cpu->gpr[31] = 0xBFC00BD0u; psx_dispatch(cpu, 0xBFC03310u); label_BFC00BD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00BD0: 1440005F bne $v0, $zero, 0xBFC00D50 */ uint32_t psx_brA_BFC00BD0 = cpu->gpr[2]; uint32_t psx_brB_BFC00BD0 = cpu->gpr[0]; @@ -2768,6 +3026,9 @@ label_BFC00BD0: /* nop */ if (psx_taken_BFC00BD0) goto label_BFC00D50; label_BFC00BD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC00BD8: 02128021 addu $s0, $s0, $s2 */ cpu->gpr[16] = cpu->gpr[16] + cpu->gpr[18]; @@ -2794,6 +3055,9 @@ label_BFC00BD8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (61)); if (psx_taken_BFC00BFC) goto label_BFC00C38; label_BFC00C04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00C04: 12220061 beq $s1, $v0, 0xBFC00D8C */ uint32_t psx_brA_BFC00C04 = cpu->gpr[17]; uint32_t psx_brB_BFC00C04 = cpu->gpr[2]; @@ -2802,6 +3066,9 @@ label_BFC00C04: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00C08u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC00C04) goto label_BFC00D8C; label_BFC00C0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00C0C: 1040005F beq $v0, $zero, 0xBFC00D8C */ uint32_t psx_brA_BFC00C0C = cpu->gpr[2]; uint32_t psx_brB_BFC00C0C = cpu->gpr[0]; @@ -2810,6 +3077,9 @@ label_BFC00C0C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00C10u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC00C0C) goto label_BFC00D8C; label_BFC00C14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC00C14: 82020001 lb $v0, 1($s0) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (1))); @@ -2832,6 +3102,9 @@ label_BFC00C14: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (61)); if (psx_taken_BFC00C30) goto label_BFC00C04; label_BFC00C38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00C38: 14410054 bne $v0, $at, 0xBFC00D8C */ uint32_t psx_brA_BFC00C38 = cpu->gpr[2]; uint32_t psx_brB_BFC00C38 = cpu->gpr[1]; @@ -2840,6 +3113,9 @@ label_BFC00C38: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00C3Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC00C38) goto label_BFC00D8C; label_BFC00C40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00C40: 12220052 beq $s1, $v0, 0xBFC00D8C */ uint32_t psx_brA_BFC00C40 = cpu->gpr[17]; uint32_t psx_brB_BFC00C40 = cpu->gpr[2]; @@ -2848,6 +3124,9 @@ label_BFC00C40: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00C44u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC00C40) goto label_BFC00D8C; label_BFC00C48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00C48: 10400050 beq $v0, $zero, 0xBFC00D8C */ uint32_t psx_brA_BFC00C48 = cpu->gpr[2]; uint32_t psx_brB_BFC00C48 = cpu->gpr[0]; @@ -2856,6 +3135,9 @@ label_BFC00C48: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00C4Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC00C48) goto label_BFC00D8C; label_BFC00C50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC00C50: 82020001 lb $v0, 1($s0) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (1))); @@ -2878,6 +3160,9 @@ label_BFC00C50: /* nop */ if (psx_taken_BFC00C6C) goto label_BFC00CA8; label_BFC00C74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00C74: 12220045 beq $s1, $v0, 0xBFC00D8C */ uint32_t psx_brA_BFC00C74 = cpu->gpr[17]; uint32_t psx_brB_BFC00C74 = cpu->gpr[2]; @@ -2886,6 +3171,9 @@ label_BFC00C74: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00C78u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC00C74) goto label_BFC00D8C; label_BFC00C7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00C7C: 10400043 beq $v0, $zero, 0xBFC00D8C */ uint32_t psx_brA_BFC00C7C = cpu->gpr[2]; uint32_t psx_brB_BFC00C7C = cpu->gpr[0]; @@ -2894,6 +3182,9 @@ label_BFC00C7C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00C80u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC00C7C) goto label_BFC00D8C; label_BFC00C84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC00C84: 82020001 lb $v0, 1($s0) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (1))); @@ -2916,6 +3207,9 @@ label_BFC00C84: /* nop */ if (psx_taken_BFC00CA0) goto label_BFC00C74; label_BFC00CA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00CA8: 12220005 beq $s1, $v0, 0xBFC00CC0 */ uint32_t psx_brA_BFC00CA8 = cpu->gpr[17]; uint32_t psx_brB_BFC00CA8 = cpu->gpr[2]; @@ -2924,6 +3218,9 @@ label_BFC00CA8: cpu->gpr[5] = cpu->gpr[16] + cpu->gpr[0]; if (psx_taken_BFC00CA8) goto label_BFC00CC0; label_BFC00CB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC00CB0: 820B0001 lb $t3, 1($s0) */ cpu->gpr[11] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (1))); @@ -2936,6 +3233,9 @@ label_BFC00CB0: /* nop */ if (psx_taken_BFC00CB8) goto label_BFC00CB0; label_BFC00CC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC00CC0: A2000000 sb $zero, 0($s0) */ g_debug_last_store_pc = 0xBFC00CC0u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[16] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -2958,6 +3258,9 @@ label_BFC00CC0: /* nop */ if (psx_taken_BFC00CDC) goto label_BFC00D04; label_BFC00CE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC00CE4: 90580001 lbu $t8, 1($v0) */ cpu->gpr[24] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[2] + (1))); @@ -2978,6 +3281,9 @@ label_BFC00CE4: /* nop */ if (psx_taken_BFC00CFC) goto label_BFC00CE4; label_BFC00D04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC00D04: A0400000 sb $zero, 0($v0) */ g_debug_last_store_pc = 0xBFC00D04u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[2] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -2989,6 +3295,9 @@ label_BFC00D04: cpu->gpr[31] = 0xBFC00D14u; psx_dispatch(cpu, 0xBFC033C8u); label_BFC00D14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC00D14: 8FA20030 lw $v0, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00D14u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -3002,6 +3311,9 @@ label_BFC00D14: cpu->gpr[31] = 0xBFC00D28u; psx_dispatch(cpu, 0xBFC03418u); label_BFC00D28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC00D28: 3C04BFC1 lui $a0, 0xBFC1 */ cpu->gpr[4] = 0xBFC10000u; @@ -3013,6 +3325,9 @@ label_BFC00D28: cpu->gpr[31] = 0xBFC00D38u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC00D38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC00D38: 3C04BFC1 lui $a0, 0xBFC1 */ cpu->gpr[4] = 0xBFC10000u; @@ -3024,6 +3339,9 @@ label_BFC00D38: cpu->gpr[31] = 0xBFC00D48u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC00D48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00D48: 10000010 beq $zero, $zero, 0xBFC00D8C */ uint32_t psx_brA_BFC00D48 = cpu->gpr[0]; uint32_t psx_brB_BFC00D48 = cpu->gpr[0]; @@ -3032,6 +3350,9 @@ label_BFC00D48: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00D4Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC00D48) goto label_BFC00D8C; label_BFC00D50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC00D50: 82020000 lb $v0, 0($s0) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (0))); @@ -3044,6 +3365,9 @@ label_BFC00D50: /* nop */ if (psx_taken_BFC00D58) goto label_BFC00D78; label_BFC00D60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00D60: 1040000A beq $v0, $zero, 0xBFC00D8C */ uint32_t psx_brA_BFC00D60 = cpu->gpr[2]; uint32_t psx_brB_BFC00D60 = cpu->gpr[0]; @@ -3052,6 +3376,9 @@ label_BFC00D60: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00D64u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC00D60) goto label_BFC00D8C; label_BFC00D68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC00D68: 82020001 lb $v0, 1($s0) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (1))); @@ -3064,6 +3391,9 @@ label_BFC00D68: /* nop */ if (psx_taken_BFC00D70) goto label_BFC00D60; label_BFC00D78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC00D78: 820A0001 lb $t2, 1($s0) */ cpu->gpr[10] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (1))); @@ -3076,10 +3406,16 @@ label_BFC00D78: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (84)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00D84u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } if (psx_taken_BFC00D80) goto label_BFC00BC4; label_BFC00D88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC00D88: 8FBF002C lw $ra, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00D88u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC00D8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC00D8C: 8FB00020 lw $s0, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00D8Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -3116,6 +3452,9 @@ void func_1FC00DA0(CPUState* cpu) { } } label_BFC00DA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC00DA0: 27BDFDD0 addiu $sp, $sp, -560 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-560)); @@ -3132,6 +3471,9 @@ label_BFC00DA0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (560)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00DB4u); return; } g_debug_last_store_pc = 0xBFC00DB4u; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC00DB0) goto label_BFC00DC0; label_BFC00DB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00DB8: 100002C4 beq $zero, $zero, 0xBFC018CC */ uint32_t psx_brA_BFC00DB8 = cpu->gpr[0]; uint32_t psx_brB_BFC00DB8 = cpu->gpr[0]; @@ -3140,6 +3482,9 @@ label_BFC00DB8: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC00DB8) goto label_BFC018CC; label_BFC00DC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(23u); +#endif psx_check_interrupts(cpu); /* 0xBFC00DC0: AFBE0044 sw $fp, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00DC0u); return; } g_debug_last_store_pc = 0xBFC00DC0u; cpu->write_word(psx_addr, cpu->gpr[30]); } @@ -3188,6 +3533,9 @@ label_BFC00DC0: /* 0xBFC00E18: 241F0030 addiu $ra, $zero, 48 */ cpu->gpr[31] = (uint32_t)((int32_t)cpu->gpr[0] + (48)); label_BFC00E1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC00E1C: 92440000 lbu $a0, 0($s2) */ cpu->gpr[4] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[18] + (0))); @@ -3200,6 +3548,9 @@ label_BFC00E1C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (37)); if (psx_taken_BFC00E24) goto label_BFC00E5C; label_BFC00E2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC00E2C: 8FA20224 lw $v0, 548($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (548)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00E2Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -3226,10 +3577,16 @@ label_BFC00E2C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00E54u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC00E50) goto label_BFC018D0; label_BFC00E58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC00E58: 24010025 addiu $at, $zero, 37 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (37)); label_BFC00E5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00E5C: 1081000D beq $a0, $at, 0xBFC00E94 */ uint32_t psx_brA_BFC00E5C = cpu->gpr[4]; uint32_t psx_brB_BFC00E5C = cpu->gpr[1]; @@ -3238,6 +3595,9 @@ label_BFC00E5C: cpu->gpr[17] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC00E5C) goto label_BFC00E94; label_BFC00E64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00E64: 0FF03620 jal 0xBFC0D880 */ /* 0xBFC00E68: 00000000 nop */ @@ -3245,6 +3605,9 @@ label_BFC00E64: cpu->gpr[31] = 0xBFC00E6Cu; psx_dispatch(cpu, 0xBFC0D880u); label_BFC00E6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC00E6C: 2407002A addiu $a3, $zero, 42 */ cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[0] + (42)); @@ -3267,10 +3630,16 @@ label_BFC00E6C: cpu->gpr[31] = (uint32_t)((int32_t)cpu->gpr[0] + (48)); if (psx_taken_BFC00E88) goto label_BFC018C4; label_BFC00E90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC00E90: 00008821 addu $s1, $zero, $zero */ cpu->gpr[17] = cpu->gpr[0] + cpu->gpr[0]; label_BFC00E94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC00E94: AFA00204 sw $zero, 516($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (516)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00E94u); return; } g_debug_last_store_pc = 0xBFC00E94u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -3283,6 +3652,9 @@ label_BFC00E94: /* 0xBFC00EA4: 0000A021 addu $s4, $zero, $zero */ cpu->gpr[20] = cpu->gpr[0] + cpu->gpr[0]; label_BFC00EA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC00EA8: 92430001 lbu $v1, 1($s2) */ cpu->gpr[3] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[18] + (1))); @@ -3295,6 +3667,9 @@ label_BFC00EA8: cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC00EB0) goto label_BFC0164C; label_BFC00EB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00EB8: 1680FFFB bne $s4, $zero, 0xBFC00EA8 */ uint32_t psx_brA_BFC00EB8 = cpu->gpr[20]; uint32_t psx_brB_BFC00EB8 = cpu->gpr[0]; @@ -3303,6 +3678,9 @@ label_BFC00EB8: /* nop */ if (psx_taken_BFC00EB8) goto label_BFC00EA8; label_BFC00EC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00EC0: 1000FFF9 beq $zero, $zero, 0xBFC00EA8 */ uint32_t psx_brA_BFC00EC0 = cpu->gpr[0]; uint32_t psx_brB_BFC00EC0 = cpu->gpr[0]; @@ -3311,6 +3689,9 @@ label_BFC00EC0: cpu->gpr[20] = (uint32_t)((int32_t)cpu->gpr[0] + (32)); if (psx_taken_BFC00EC0) goto label_BFC00EA8; label_BFC00EC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00EC8: 1000FFF7 beq $zero, $zero, 0xBFC00EA8 */ uint32_t psx_brA_BFC00EC8 = cpu->gpr[0]; uint32_t psx_brB_BFC00EC8 = cpu->gpr[0]; @@ -3319,6 +3700,9 @@ label_BFC00EC8: cpu->gpr[17] = cpu->gpr[17] | 0x8u; if (psx_taken_BFC00EC8) goto label_BFC00EA8; label_BFC00ED0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC00ED0: 8E750000 lw $s5, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00ED0u); return; } cpu->gpr[21] = cpu->read_word(psx_addr); } @@ -3331,10 +3715,16 @@ label_BFC00ED0: /* nop */ if (psx_taken_BFC00ED8) goto label_BFC00EA8; label_BFC00EE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC00EE0: 0015A823 subu $s5, $zero, $s5 */ cpu->gpr[21] = cpu->gpr[0] - cpu->gpr[21]; label_BFC00EE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00EE4: 1000FFF0 beq $zero, $zero, 0xBFC00EA8 */ uint32_t psx_brA_BFC00EE4 = cpu->gpr[0]; uint32_t psx_brB_BFC00EE4 = cpu->gpr[0]; @@ -3343,6 +3733,9 @@ label_BFC00EE4: cpu->gpr[17] = cpu->gpr[17] | 0x10u; if (psx_taken_BFC00EE4) goto label_BFC00EA8; label_BFC00EEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00EEC: 1000FFEE beq $zero, $zero, 0xBFC00EA8 */ uint32_t psx_brA_BFC00EEC = cpu->gpr[0]; uint32_t psx_brB_BFC00EEC = cpu->gpr[0]; @@ -3351,6 +3744,9 @@ label_BFC00EEC: cpu->gpr[20] = (uint32_t)((int32_t)cpu->gpr[0] + (43)); if (psx_taken_BFC00EEC) goto label_BFC00EA8; label_BFC00EF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC00EF4: 92430001 lbu $v1, 1($s2) */ cpu->gpr[3] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[18] + (1))); @@ -3363,6 +3759,9 @@ label_BFC00EF4: cpu->gpr[1] = (uint32_t)(cpu->gpr[3] < 0x00000080u ? 1 : 0); if (psx_taken_BFC00EFC) goto label_BFC00F14; label_BFC00F04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC00F04: 8E700000 lw $s0, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00F04u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -3373,10 +3772,16 @@ label_BFC00F04: cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (4)); if (psx_taken_BFC00F08) goto label_BFC00F74; label_BFC00F10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC00F10: 2C610080 sltiu $at, $v1, 128 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[3] < 0x00000080u ? 1 : 0); label_BFC00F14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00F14: 10200016 beq $at, $zero, 0xBFC00F70 */ uint32_t psx_brA_BFC00F14 = cpu->gpr[1]; uint32_t psx_brB_BFC00F14 = cpu->gpr[0]; @@ -3385,6 +3790,9 @@ label_BFC00F14: cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC00F14) goto label_BFC00F70; label_BFC00F1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC00F1C: 03C37821 addu $t7, $fp, $v1 */ cpu->gpr[15] = cpu->gpr[30] + cpu->gpr[3]; @@ -3401,10 +3809,16 @@ label_BFC00F1C: /* nop */ if (psx_taken_BFC00F2C) goto label_BFC00F70; label_BFC00F34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC00F34: 00107080 sll $t6, $s0, 2 */ cpu->gpr[14] = cpu->gpr[16] << 2u; label_BFC00F38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC00F38: 01D07021 addu $t6, $t6, $s0 */ cpu->gpr[14] = cpu->gpr[14] + cpu->gpr[16]; @@ -3425,6 +3839,9 @@ label_BFC00F38: cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (1)); if (psx_taken_BFC00F50) goto label_BFC00F70; label_BFC00F58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC00F58: 03C37821 addu $t7, $fp, $v1 */ cpu->gpr[15] = cpu->gpr[30] + cpu->gpr[3]; @@ -3441,10 +3858,16 @@ label_BFC00F58: cpu->gpr[14] = cpu->gpr[16] << 2u; if (psx_taken_BFC00F68) goto label_BFC00F38; label_BFC00F70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC00F70: 2652FFFF addiu $s2, $s2, -1 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (-1)); label_BFC00F74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00F74: 06010003 bgez $s0, 0xBFC00F84 */ uint32_t psx_brA_BFC00F74 = cpu->gpr[16]; @@ -3453,6 +3876,9 @@ label_BFC00F74: /* nop */ if (psx_taken_BFC00F74) goto label_BFC00F84; label_BFC00F7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00F7C: 1000FFCA beq $zero, $zero, 0xBFC00EA8 */ uint32_t psx_brA_BFC00F7C = cpu->gpr[0]; uint32_t psx_brB_BFC00F7C = cpu->gpr[0]; @@ -3461,6 +3887,9 @@ label_BFC00F7C: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC00F7C) goto label_BFC00EA8; label_BFC00F84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00F84: 1000FFC8 beq $zero, $zero, 0xBFC00EA8 */ uint32_t psx_brA_BFC00F84 = cpu->gpr[0]; uint32_t psx_brB_BFC00F84 = cpu->gpr[0]; @@ -3469,6 +3898,9 @@ label_BFC00F84: cpu->gpr[6] = cpu->gpr[16] + cpu->gpr[0]; if (psx_taken_BFC00F84) goto label_BFC00EA8; label_BFC00F8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00F8C: 1000FFC6 beq $zero, $zero, 0xBFC00EA8 */ uint32_t psx_brA_BFC00F8C = cpu->gpr[0]; uint32_t psx_brB_BFC00F8C = cpu->gpr[0]; @@ -3477,14 +3909,23 @@ label_BFC00F8C: cpu->gpr[17] = cpu->gpr[17] | 0x20u; if (psx_taken_BFC00F8C) goto label_BFC00EA8; label_BFC00F94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC00F94: 00008021 addu $s0, $zero, $zero */ cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; label_BFC00F98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC00F98: 00107080 sll $t6, $s0, 2 */ cpu->gpr[14] = cpu->gpr[16] << 2u; label_BFC00F9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC00F9C: 01D07021 addu $t6, $t6, $s0 */ cpu->gpr[14] = cpu->gpr[14] + cpu->gpr[16]; @@ -3505,6 +3946,9 @@ label_BFC00F9C: cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (1)); if (psx_taken_BFC00FB4) goto label_BFC00FD4; label_BFC00FBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC00FBC: 03C37821 addu $t7, $fp, $v1 */ cpu->gpr[15] = cpu->gpr[30] + cpu->gpr[3]; @@ -3521,6 +3965,9 @@ label_BFC00FBC: cpu->gpr[14] = cpu->gpr[16] << 2u; if (psx_taken_BFC00FCC) goto label_BFC00F9C; label_BFC00FD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC00FD4: 0200A821 addu $s5, $s0, $zero */ cpu->gpr[21] = cpu->gpr[16] + cpu->gpr[0]; @@ -3531,6 +3978,9 @@ label_BFC00FD4: cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (-1)); if (psx_taken_BFC00FD8) goto label_BFC00EA8; label_BFC00FE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00FE0: 1000FFB1 beq $zero, $zero, 0xBFC00EA8 */ uint32_t psx_brA_BFC00FE0 = cpu->gpr[0]; uint32_t psx_brB_BFC00FE0 = cpu->gpr[0]; @@ -3539,6 +3989,9 @@ label_BFC00FE0: cpu->gpr[17] = cpu->gpr[17] | 0x2u; if (psx_taken_BFC00FE0) goto label_BFC00EA8; label_BFC00FE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00FE8: 1000FFAF beq $zero, $zero, 0xBFC00EA8 */ uint32_t psx_brA_BFC00FE8 = cpu->gpr[0]; uint32_t psx_brB_BFC00FE8 = cpu->gpr[0]; @@ -3547,6 +4000,9 @@ label_BFC00FE8: cpu->gpr[17] = cpu->gpr[17] | 0x4u; if (psx_taken_BFC00FE8) goto label_BFC00EA8; label_BFC00FF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC00FF0: 1000FFAD beq $zero, $zero, 0xBFC00EA8 */ uint32_t psx_brA_BFC00FF0 = cpu->gpr[0]; uint32_t psx_brB_BFC00FF0 = cpu->gpr[0]; @@ -3555,6 +4011,9 @@ label_BFC00FF0: cpu->gpr[17] = cpu->gpr[17] | 0x1u; if (psx_taken_BFC00FF0) goto label_BFC00EA8; label_BFC00FF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC00FF8: 8E6E0000 lw $t6, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC00FF8u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -3573,10 +4032,16 @@ label_BFC00FF8: g_debug_last_store_pc = 0xBFC01010u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[29] + (128)), (uint8_t)(cpu->gpr[14] & 0xFFu)); if (psx_taken_BFC0100C) goto label_BFC01318; label_BFC01014: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01014: 36310001 ori $s1, $s1, 0x1 */ cpu->gpr[17] = cpu->gpr[17] | 0x1u; label_BFC01018: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC01018: 322F0001 andi $t7, $s1, 0x1 */ cpu->gpr[15] = cpu->gpr[17] & 0x1u; @@ -3589,6 +4054,9 @@ label_BFC01018: cpu->gpr[22] = (uint32_t)((int32_t)cpu->gpr[29] + (476)); if (psx_taken_BFC01020) goto label_BFC01034; label_BFC01028: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01028: 8E630000 lw $v1, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01028u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -3599,6 +4067,9 @@ label_BFC01028: cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (4)); if (psx_taken_BFC0102C) goto label_BFC01058; label_BFC01034: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01034: 32380004 andi $t8, $s1, 0x4 */ cpu->gpr[24] = cpu->gpr[17] & 0x4u; @@ -3609,6 +4080,9 @@ label_BFC01034: /* nop */ if (psx_taken_BFC01038) goto label_BFC0104C; label_BFC01040: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01040: 86620000 lh $v0, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01040u); return; } cpu->gpr[2] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -3619,16 +4093,25 @@ label_BFC01040: cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (4)); if (psx_taken_BFC01044) goto label_BFC01054; label_BFC0104C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0104C: 8E620000 lw $v0, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0104Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } /* 0xBFC01050: 26730004 addiu $s3, $s3, 4 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (4)); label_BFC01054: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01054: 00401821 addu $v1, $v0, $zero */ cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; label_BFC01058: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01058: 04610089 bgez $v1, 0xBFC01280 */ uint32_t psx_brA_BFC01058 = cpu->gpr[3]; @@ -3637,6 +4120,9 @@ label_BFC01058: /* nop */ if (psx_taken_BFC01058) goto label_BFC01280; label_BFC01060: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01060: 00031823 subu $v1, $zero, $v1 */ cpu->gpr[3] = cpu->gpr[0] - cpu->gpr[3]; @@ -3647,6 +4133,9 @@ label_BFC01060: cpu->gpr[20] = (uint32_t)((int32_t)cpu->gpr[0] + (45)); if (psx_taken_BFC01064) goto label_BFC01280; label_BFC0106C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0106C: 32390001 andi $t9, $s1, 0x1 */ cpu->gpr[25] = cpu->gpr[17] & 0x1u; @@ -3657,6 +4146,9 @@ label_BFC0106C: cpu->gpr[24] = cpu->gpr[17] & 0x4u; if (psx_taken_BFC01070) goto label_BFC01090; label_BFC01078: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC01078: 8FAE0224 lw $t6, 548($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (548)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01078u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -3671,10 +4163,16 @@ label_BFC01078: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[15] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01088u); return; } g_debug_last_store_pc = 0xBFC01088u; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC01084) goto label_BFC018C4; label_BFC0108C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0108C: 32380004 andi $t8, $s1, 0x4 */ cpu->gpr[24] = cpu->gpr[17] & 0x4u; label_BFC01090: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01090: 13000007 beq $t8, $zero, 0xBFC010B0 */ uint32_t psx_brA_BFC01090 = cpu->gpr[24]; uint32_t psx_brB_BFC01090 = cpu->gpr[0]; @@ -3683,6 +4181,9 @@ label_BFC01090: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (548)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01094u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } if (psx_taken_BFC01090) goto label_BFC010B0; label_BFC01098: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC01098: 8FB90224 lw $t9, 548($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (548)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01098u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -3697,10 +4198,16 @@ label_BFC01098: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[14] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC010A8u); return; } g_debug_last_store_pc = 0xBFC010A8u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[25] & 0xFFFFu)); } if (psx_taken_BFC010A4) goto label_BFC018C4; label_BFC010AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC010AC: 8FAF0224 lw $t7, 548($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (548)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC010ACu); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } label_BFC010B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC010B0: 8E780000 lw $t8, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC010B0u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -3713,12 +4220,18 @@ label_BFC010B0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[24] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC010BCu); return; } g_debug_last_store_pc = 0xBFC010BCu; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC010B8) goto label_BFC018C4; label_BFC010C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC010C0: 36310001 ori $s1, $s1, 0x1 */ cpu->gpr[17] = cpu->gpr[17] | 0x1u; /* 0xBFC010C4: 32390001 andi $t9, $s1, 0x1 */ cpu->gpr[25] = cpu->gpr[17] & 0x1u; label_BFC010C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC010C8: 0000A021 addu $s4, $zero, $zero */ cpu->gpr[20] = cpu->gpr[0] + cpu->gpr[0]; @@ -3731,6 +4244,9 @@ label_BFC010C8: cpu->gpr[22] = (uint32_t)((int32_t)cpu->gpr[29] + (476)); if (psx_taken_BFC010D0) goto label_BFC010E4; label_BFC010D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC010D8: 8E630000 lw $v1, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC010D8u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -3741,6 +4257,9 @@ label_BFC010D8: cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (4)); if (psx_taken_BFC010DC) goto label_BFC01280; label_BFC010E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC010E4: 322E0004 andi $t6, $s1, 0x4 */ cpu->gpr[14] = cpu->gpr[17] & 0x4u; @@ -3751,6 +4270,9 @@ label_BFC010E4: /* nop */ if (psx_taken_BFC010E8) goto label_BFC010FC; label_BFC010F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC010F0: 86620000 lh $v0, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC010F0u); return; } cpu->gpr[2] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -3761,12 +4283,18 @@ label_BFC010F0: cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (4)); if (psx_taken_BFC010F4) goto label_BFC01104; label_BFC010FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC010FC: 8E620000 lw $v0, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC010FCu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } /* 0xBFC01100: 26730004 addiu $s3, $s3, 4 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (4)); label_BFC01104: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01104: 1000005E beq $zero, $zero, 0xBFC01280 */ uint32_t psx_brA_BFC01104 = cpu->gpr[0]; uint32_t psx_brB_BFC01104 = cpu->gpr[0]; @@ -3775,6 +4303,9 @@ label_BFC01104: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC01104) goto label_BFC01280; label_BFC0110C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0110C: 8E630000 lw $v1, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0110Cu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -3791,6 +4322,9 @@ label_BFC0110C: cpu->gpr[22] = (uint32_t)((int32_t)cpu->gpr[29] + (476)); if (psx_taken_BFC0111C) goto label_BFC01280; label_BFC01124: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC01124: 8E760000 lw $s6, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01124u); return; } cpu->gpr[22] = cpu->read_word(psx_addr); } @@ -3803,12 +4337,18 @@ label_BFC01124: cpu->gpr[20] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC0112C) goto label_BFC0113C; label_BFC01134: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01134: 3C16BFC1 lui $s6, 0xBFC1 */ cpu->gpr[22] = 0xBFC10000u; /* 0xBFC01138: 26D6DD74 addiu $s6, $s6, -8844 */ cpu->gpr[22] = (uint32_t)((int32_t)cpu->gpr[22] + (-8844)); label_BFC0113C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0113C: 04C00017 bltz $a2, 0xBFC0119C */ uint32_t psx_brA_BFC0113C = cpu->gpr[6]; @@ -3817,6 +4357,9 @@ label_BFC0113C: /* nop */ if (psx_taken_BFC0113C) goto label_BFC0119C; label_BFC01144: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC01144: 02C02021 addu $a0, $s6, $zero */ cpu->gpr[4] = cpu->gpr[22] + cpu->gpr[0]; @@ -3828,6 +4371,9 @@ label_BFC01144: cpu->gpr[31] = 0xBFC01154u; psx_dispatch(cpu, 0xBFC02CC0u); label_BFC01154: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC01154: 8FA601F4 lw $a2, 500($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (500)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01154u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -3852,6 +4398,9 @@ label_BFC01154: cpu->gpr[31] = (uint32_t)((int32_t)cpu->gpr[0] + (48)); if (psx_taken_BFC01174) goto label_BFC01194; label_BFC0117C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0117C: 00561823 subu $v1, $v0, $s6 */ cpu->gpr[3] = cpu->gpr[2] - cpu->gpr[22]; @@ -3864,6 +4413,9 @@ label_BFC0117C: cpu->gpr[23] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC01184) goto label_BFC01318; label_BFC0118C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0118C: 10000062 beq $zero, $zero, 0xBFC01318 */ uint32_t psx_brA_BFC0118C = cpu->gpr[0]; uint32_t psx_brB_BFC0118C = cpu->gpr[0]; @@ -3872,6 +4424,9 @@ label_BFC0118C: cpu->gpr[23] = cpu->gpr[6] + cpu->gpr[0]; if (psx_taken_BFC0118C) goto label_BFC01318; label_BFC01194: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01194: 10000060 beq $zero, $zero, 0xBFC01318 */ uint32_t psx_brA_BFC01194 = cpu->gpr[0]; uint32_t psx_brB_BFC01194 = cpu->gpr[0]; @@ -3880,6 +4435,9 @@ label_BFC01194: cpu->gpr[23] = cpu->gpr[6] + cpu->gpr[0]; if (psx_taken_BFC01194) goto label_BFC01318; label_BFC0119C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0119C: 0FF00D25 jal 0xBFC03494 */ /* 0xBFC011A0: 02C02021 addu $a0, $s6, $zero */ @@ -3887,6 +4445,9 @@ label_BFC0119C: cpu->gpr[31] = 0xBFC011A4u; psx_dispatch(cpu, 0xBFC03494u); label_BFC011A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC011A4: 2407002A addiu $a3, $zero, 42 */ cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[0] + (42)); @@ -3911,10 +4472,16 @@ label_BFC011A4: cpu->gpr[23] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC011C4) goto label_BFC01318; label_BFC011CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC011CC: 36310001 ori $s1, $s1, 0x1 */ cpu->gpr[17] = cpu->gpr[17] | 0x1u; label_BFC011D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC011D0: 322F0001 andi $t7, $s1, 0x1 */ cpu->gpr[15] = cpu->gpr[17] & 0x1u; @@ -3929,6 +4496,9 @@ label_BFC011D0: cpu->gpr[22] = (uint32_t)((int32_t)cpu->gpr[29] + (476)); if (psx_taken_BFC011DC) goto label_BFC011F0; label_BFC011E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC011E4: 8E630000 lw $v1, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC011E4u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -3939,6 +4509,9 @@ label_BFC011E4: cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (4)); if (psx_taken_BFC011E8) goto label_BFC01280; label_BFC011F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC011F0: 32380004 andi $t8, $s1, 0x4 */ cpu->gpr[24] = cpu->gpr[17] & 0x4u; @@ -3949,6 +4522,9 @@ label_BFC011F0: /* nop */ if (psx_taken_BFC011F4) goto label_BFC01208; label_BFC011FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC011FC: 86620000 lh $v0, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC011FCu); return; } cpu->gpr[2] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -3959,12 +4535,18 @@ label_BFC011FC: cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (4)); if (psx_taken_BFC01200) goto label_BFC01210; label_BFC01208: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01208: 8E620000 lw $v0, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01208u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } /* 0xBFC0120C: 26730004 addiu $s3, $s3, 4 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (4)); label_BFC01210: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01210: 1000001B beq $zero, $zero, 0xBFC01280 */ uint32_t psx_brA_BFC01210 = cpu->gpr[0]; uint32_t psx_brB_BFC01210 = cpu->gpr[0]; @@ -3973,6 +4555,9 @@ label_BFC01210: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC01210) goto label_BFC01280; label_BFC01218: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC01218: 3C19BFC1 lui $t9, 0xBFC1 */ cpu->gpr[25] = 0xBFC10000u; @@ -3983,6 +4568,9 @@ label_BFC01218: /* 0xBFC01224: 322E0001 andi $t6, $s1, 0x1 */ cpu->gpr[14] = cpu->gpr[17] & 0x1u; label_BFC01228: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC01228: 0000A021 addu $s4, $zero, $zero */ cpu->gpr[20] = cpu->gpr[0] + cpu->gpr[0]; @@ -3995,6 +4583,9 @@ label_BFC01228: cpu->gpr[22] = (uint32_t)((int32_t)cpu->gpr[29] + (476)); if (psx_taken_BFC01230) goto label_BFC01244; label_BFC01238: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01238: 8E630000 lw $v1, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01238u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -4005,6 +4596,9 @@ label_BFC01238: cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (4)); if (psx_taken_BFC0123C) goto label_BFC01268; label_BFC01244: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01244: 322F0004 andi $t7, $s1, 0x4 */ cpu->gpr[15] = cpu->gpr[17] & 0x4u; @@ -4015,6 +4609,9 @@ label_BFC01244: /* nop */ if (psx_taken_BFC01248) goto label_BFC0125C; label_BFC01250: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01250: 86620000 lh $v0, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01250u); return; } cpu->gpr[2] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -4025,16 +4622,25 @@ label_BFC01250: cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (4)); if (psx_taken_BFC01254) goto label_BFC01264; label_BFC0125C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0125C: 8E620000 lw $v0, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0125Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } /* 0xBFC01260: 26730004 addiu $s3, $s3, 4 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (4)); label_BFC01264: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01264: 00401821 addu $v1, $v0, $zero */ cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; label_BFC01268: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01268: 32380008 andi $t8, $s1, 0x8 */ cpu->gpr[24] = cpu->gpr[17] & 0x8u; @@ -4045,6 +4651,9 @@ label_BFC01268: /* nop */ if (psx_taken_BFC0126C) goto label_BFC01280; label_BFC01274: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01274: 10600002 beq $v1, $zero, 0xBFC01280 */ uint32_t psx_brA_BFC01274 = cpu->gpr[3]; uint32_t psx_brB_BFC01274 = cpu->gpr[0]; @@ -4053,10 +4662,16 @@ label_BFC01274: /* nop */ if (psx_taken_BFC01274) goto label_BFC01280; label_BFC0127C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0127C: 36310040 ori $s1, $s1, 0x40 */ cpu->gpr[17] = cpu->gpr[17] | 0x40u; label_BFC01280: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01280: 04C00003 bltz $a2, 0xBFC01290 */ uint32_t psx_brA_BFC01280 = cpu->gpr[6]; @@ -4065,12 +4680,18 @@ label_BFC01280: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (516)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01284u); return; } g_debug_last_store_pc = 0xBFC01284u; cpu->write_word(psx_addr, cpu->gpr[6]); } if (psx_taken_BFC01280) goto label_BFC01290; label_BFC01288: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01288: 2401FFDF addiu $at, $zero, -33 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-33)); /* 0xBFC0128C: 02218824 and $s1, $s1, $at */ cpu->gpr[17] = cpu->gpr[17] & cpu->gpr[1]; label_BFC01290: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01290: 14600003 bne $v1, $zero, 0xBFC012A0 */ uint32_t psx_brA_BFC01290 = cpu->gpr[3]; uint32_t psx_brB_BFC01290 = cpu->gpr[0]; @@ -4079,6 +4700,9 @@ label_BFC01290: /* nop */ if (psx_taken_BFC01290) goto label_BFC012A0; label_BFC01298: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01298: 10C0001E beq $a2, $zero, 0xBFC01314 */ uint32_t psx_brA_BFC01298 = cpu->gpr[6]; uint32_t psx_brB_BFC01298 = cpu->gpr[0]; @@ -4087,12 +4711,18 @@ label_BFC01298: cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[29] + (476)); if (psx_taken_BFC01298) goto label_BFC01314; label_BFC012A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC012A0: 8FA501DC lw $a1, 476($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (476)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC012A0u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } /* 0xBFC012A4: 32220008 andi $v0, $s1, 0x8 */ cpu->gpr[2] = cpu->gpr[17] & 0x8u; label_BFC012A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC012A8: 0064001B divu $v1, $a0 */ { uint32_t psx_n = cpu->gpr[3]; uint32_t psx_d = cpu->gpr[4]; if (psx_d == 0) { cpu->lo = 0xFFFFFFFFu; cpu->hi = psx_n; } else { uint32_t psx_q = psx_n / psx_d; uint32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = psx_q; cpu->hi = psx_r; } } @@ -4115,10 +4745,16 @@ label_BFC012A8: /* nop */ if (psx_taken_BFC012C4) goto label_BFC012D0; label_BFC012CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC012CC: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC012CCu); return; label_BFC012D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC012D0: 1460FFF5 bne $v1, $zero, 0xBFC012A8 */ uint32_t psx_brA_BFC012D0 = cpu->gpr[3]; uint32_t psx_brB_BFC012D0 = cpu->gpr[0]; @@ -4127,6 +4763,9 @@ label_BFC012D0: /* nop */ if (psx_taken_BFC012D0) goto label_BFC012A8; label_BFC012D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC012D8: 3C18BFC1 lui $t8, 0xBFC1 */ cpu->gpr[24] = 0xBFC10000u; @@ -4139,6 +4778,9 @@ label_BFC012D8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (476)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC012E4u); return; } g_debug_last_store_pc = 0xBFC012E4u; cpu->write_word(psx_addr, cpu->gpr[24]); } if (psx_taken_BFC012E0) goto label_BFC01310; label_BFC012E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC012E8: 24010008 addiu $at, $zero, 8 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (8)); @@ -4149,6 +4791,9 @@ label_BFC012E8: cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[29] + (476)); if (psx_taken_BFC012EC) goto label_BFC01314; label_BFC012F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC012F4: 82D90000 lb $t9, 0($s6) */ cpu->gpr[25] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[22] + (0))); @@ -4161,6 +4806,9 @@ label_BFC012F4: cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[29] + (476)); if (psx_taken_BFC012FC) goto label_BFC01314; label_BFC01304: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01304: 240E0030 addiu $t6, $zero, 48 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (48)); @@ -4169,14 +4817,23 @@ label_BFC01304: /* 0xBFC0130C: 26D6FFFF addiu $s6, $s6, -1 */ cpu->gpr[22] = (uint32_t)((int32_t)cpu->gpr[22] + (-1)); label_BFC01310: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01310: 27AF01DC addiu $t7, $sp, 476 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[29] + (476)); label_BFC01314: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01314: 01F6B823 subu $s7, $t7, $s6 */ cpu->gpr[23] = cpu->gpr[15] - cpu->gpr[22]; label_BFC01318: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC01318: 02E01021 addu $v0, $s7, $zero */ cpu->gpr[2] = cpu->gpr[23] + cpu->gpr[0]; @@ -4189,6 +4846,9 @@ label_BFC01318: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01324u); return; } g_debug_last_store_pc = 0xBFC01324u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC01320) goto label_BFC01338; label_BFC01328: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC01328: 8FB80200 lw $t8, 512($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (512)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01328u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -4199,6 +4859,9 @@ label_BFC01328: /* 0xBFC01334: AFB90200 sw $t9, 512($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (512)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01334u); return; } g_debug_last_store_pc = 0xBFC01334u; cpu->write_word(psx_addr, cpu->gpr[25]); } label_BFC01338: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01338: 32220040 andi $v0, $s1, 0x40 */ cpu->gpr[2] = cpu->gpr[17] & 0x40u; @@ -4209,6 +4872,9 @@ label_BFC01338: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (108)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01340u); return; } g_debug_last_store_pc = 0xBFC01340u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC0133C) goto label_BFC01354; label_BFC01344: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC01344: 8FAE0200 lw $t6, 512($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (512)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01344u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -4219,6 +4885,9 @@ label_BFC01344: /* 0xBFC01350: AFAF0200 sw $t7, 512($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (512)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01350u); return; } g_debug_last_store_pc = 0xBFC01350u; cpu->write_word(psx_addr, cpu->gpr[15]); } label_BFC01354: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC01354: 8FB80204 lw $t8, 516($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (516)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01354u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -4235,6 +4904,9 @@ label_BFC01354: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (512)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01368u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } if (psx_taken_BFC01364) goto label_BFC01378; label_BFC0136C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0136C: 10000004 beq $zero, $zero, 0xBFC01380 */ uint32_t psx_brA_BFC0136C = cpu->gpr[0]; uint32_t psx_brB_BFC0136C = cpu->gpr[0]; @@ -4243,16 +4915,25 @@ label_BFC0136C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (496)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01370u); return; } g_debug_last_store_pc = 0xBFC01370u; cpu->write_word(psx_addr, cpu->gpr[24]); } if (psx_taken_BFC0136C) goto label_BFC01380; label_BFC01374: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01374: 8FAE0200 lw $t6, 512($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (512)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01374u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } label_BFC01378: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01378: 00000000 nop */ /* nop */ /* 0xBFC0137C: AFAE01F0 sw $t6, 496($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (496)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0137Cu); return; } g_debug_last_store_pc = 0xBFC0137Cu; cpu->write_word(psx_addr, cpu->gpr[14]); } label_BFC01380: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01380: 32220030 andi $v0, $s1, 0x30 */ cpu->gpr[2] = cpu->gpr[17] & 0x30u; @@ -4263,6 +4944,9 @@ label_BFC01380: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (104)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01388u); return; } g_debug_last_store_pc = 0xBFC01388u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC01384) goto label_BFC013DC; label_BFC0138C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0138C: 12A00013 beq $s5, $zero, 0xBFC013DC */ uint32_t psx_brA_BFC0138C = cpu->gpr[21]; uint32_t psx_brB_BFC0138C = cpu->gpr[0]; @@ -4271,6 +4955,9 @@ label_BFC0138C: /* nop */ if (psx_taken_BFC0138C) goto label_BFC013DC; label_BFC01394: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC01394: 8FA201F0 lw $v0, 496($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (496)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01394u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -4285,6 +4972,9 @@ label_BFC01394: cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC013A0) goto label_BFC013DC; label_BFC013A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC013A8: 0FF03620 jal 0xBFC0D880 */ /* 0xBFC013AC: 24040020 addiu $a0, $zero, 32 */ @@ -4292,6 +4982,9 @@ label_BFC013A8: cpu->gpr[31] = 0xBFC013B0u; psx_dispatch(cpu, 0xBFC0D880u); label_BFC013B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC013B0: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -4318,6 +5011,9 @@ label_BFC013B0: cpu->gpr[31] = (uint32_t)((int32_t)cpu->gpr[0] + (48)); if (psx_taken_BFC013D4) goto label_BFC013A8; label_BFC013DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC013DC: 1280000C beq $s4, $zero, 0xBFC01410 */ uint32_t psx_brA_BFC013DC = cpu->gpr[20]; uint32_t psx_brB_BFC013DC = cpu->gpr[0]; @@ -4326,6 +5022,9 @@ label_BFC013DC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (108)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC013E0u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } if (psx_taken_BFC013DC) goto label_BFC01410; label_BFC013E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC013E4: 0FF03620 jal 0xBFC0D880 */ /* 0xBFC013E8: 02802021 addu $a0, $s4, $zero */ @@ -4333,6 +5032,9 @@ label_BFC013E4: cpu->gpr[31] = 0xBFC013ECu; psx_dispatch(cpu, 0xBFC0D880u); label_BFC013EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC013EC: 2407002A addiu $a3, $zero, 42 */ cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[0] + (42)); @@ -4353,6 +5055,9 @@ label_BFC013EC: /* 0xBFC0140C: 8FAF006C lw $t7, 108($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (108)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0140Cu); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } label_BFC01410: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01410: 00000000 nop */ /* nop */ @@ -4363,6 +5068,9 @@ label_BFC01410: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (104)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01418u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } if (psx_taken_BFC01414) goto label_BFC01470; label_BFC0141C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0141C: 0FF03620 jal 0xBFC0D880 */ /* 0xBFC01420: 24040030 addiu $a0, $zero, 48 */ @@ -4370,6 +5078,9 @@ label_BFC0141C: cpu->gpr[31] = 0xBFC01424u; psx_dispatch(cpu, 0xBFC0D880u); label_BFC01424: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC01424: 241F0030 addiu $ra, $zero, 48 */ cpu->gpr[31] = (uint32_t)((int32_t)cpu->gpr[0] + (48)); @@ -4393,6 +5104,9 @@ label_BFC01424: cpu->gpr[31] = 0xBFC0144Cu; psx_dispatch(cpu, 0xBFC0D880u); label_BFC0144C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC0144C: 2407002A addiu $a3, $zero, 42 */ cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[0] + (42)); @@ -4413,6 +5127,9 @@ label_BFC0144C: /* 0xBFC0146C: 8FB90068 lw $t9, 104($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (104)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0146Cu); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } label_BFC01470: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01470: 24010020 addiu $at, $zero, 32 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (32)); @@ -4423,6 +5140,9 @@ label_BFC01470: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (512)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01478u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } if (psx_taken_BFC01474) goto label_BFC014C8; label_BFC0147C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0147C: 8FA201F0 lw $v0, 496($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (496)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0147Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -4437,6 +5157,9 @@ label_BFC0147C: cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC01488) goto label_BFC014C4; label_BFC01490: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01490: 0FF03620 jal 0xBFC0D880 */ /* 0xBFC01494: 24040030 addiu $a0, $zero, 48 */ @@ -4444,6 +5167,9 @@ label_BFC01490: cpu->gpr[31] = 0xBFC01498u; psx_dispatch(cpu, 0xBFC0D880u); label_BFC01498: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC01498: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -4470,10 +5196,16 @@ label_BFC01498: cpu->gpr[31] = (uint32_t)((int32_t)cpu->gpr[0] + (48)); if (psx_taken_BFC014BC) goto label_BFC01490; label_BFC014C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC014C4: 8FB80200 lw $t8, 512($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (512)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC014C4u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } label_BFC014C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC014C8: 8FAE0204 lw $t6, 516($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (516)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC014C8u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -4488,6 +5220,9 @@ label_BFC014C8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC014D8u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } if (psx_taken_BFC014D4) goto label_BFC01518; label_BFC014DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC014DC: 0FF03620 jal 0xBFC0D880 */ /* 0xBFC014E0: 24040030 addiu $a0, $zero, 48 */ @@ -4495,6 +5230,9 @@ label_BFC014DC: cpu->gpr[31] = 0xBFC014E4u; psx_dispatch(cpu, 0xBFC0D880u); label_BFC014E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC014E4: 8FAF0204 lw $t7, 516($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (516)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC014E4u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -4523,10 +5261,16 @@ label_BFC014E4: cpu->gpr[31] = (uint32_t)((int32_t)cpu->gpr[0] + (48)); if (psx_taken_BFC0150C) goto label_BFC014DC; label_BFC01514: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01514: 8FB90064 lw $t9, 100($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01514u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } label_BFC01518: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01518: 26F0FFFF addiu $s0, $s7, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[23] + (-1)); @@ -4537,6 +5281,9 @@ label_BFC01518: /* nop */ if (psx_taken_BFC0151C) goto label_BFC01558; label_BFC01524: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01524: 82C40000 lb $a0, 0($s6) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[22] + (0))); @@ -4546,6 +5293,9 @@ label_BFC01524: cpu->gpr[31] = 0xBFC01530u; psx_dispatch(cpu, 0xBFC0D880u); label_BFC01530: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC01530: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); @@ -4570,6 +5320,9 @@ label_BFC01530: cpu->gpr[31] = (uint32_t)((int32_t)cpu->gpr[0] + (48)); if (psx_taken_BFC01550) goto label_BFC01524; label_BFC01558: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01558: 2410FFFF addiu $s0, $zero, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -4580,6 +5333,9 @@ label_BFC01558: cpu->gpr[24] = cpu->gpr[17] & 0x10u; if (psx_taken_BFC0155C) goto label_BFC01598; label_BFC01564: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01564: 0FF03620 jal 0xBFC0D880 */ /* 0xBFC01568: 24040030 addiu $a0, $zero, 48 */ @@ -4587,6 +5343,9 @@ label_BFC01564: cpu->gpr[31] = 0xBFC0156Cu; psx_dispatch(cpu, 0xBFC0D880u); label_BFC0156C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC0156C: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); @@ -4611,10 +5370,16 @@ label_BFC0156C: cpu->gpr[31] = (uint32_t)((int32_t)cpu->gpr[0] + (48)); if (psx_taken_BFC0158C) goto label_BFC01564; label_BFC01594: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01594: 32380010 andi $t8, $s1, 0x10 */ cpu->gpr[24] = cpu->gpr[17] & 0x10u; label_BFC01598: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01598: 13000014 beq $t8, $zero, 0xBFC015EC */ uint32_t psx_brA_BFC01598 = cpu->gpr[24]; uint32_t psx_brB_BFC01598 = cpu->gpr[0]; @@ -4623,6 +5388,9 @@ label_BFC01598: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (496)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0159Cu); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } if (psx_taken_BFC01598) goto label_BFC015EC; label_BFC015A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC015A0: 8FAE01F0 lw $t6, 496($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (496)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC015A0u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -4637,6 +5405,9 @@ label_BFC015A0: cpu->gpr[16] = cpu->gpr[14] + cpu->gpr[0]; if (psx_taken_BFC015AC) goto label_BFC015E8; label_BFC015B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC015B4: 0FF03620 jal 0xBFC0D880 */ /* 0xBFC015B8: 24040020 addiu $a0, $zero, 32 */ @@ -4644,6 +5415,9 @@ label_BFC015B4: cpu->gpr[31] = 0xBFC015BCu; psx_dispatch(cpu, 0xBFC0D880u); label_BFC015BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC015BC: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -4670,10 +5444,16 @@ label_BFC015BC: cpu->gpr[31] = (uint32_t)((int32_t)cpu->gpr[0] + (48)); if (psx_taken_BFC015E0) goto label_BFC015B4; label_BFC015E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC015E8: 8FAF01F0 lw $t7, 496($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (496)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC015E8u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } label_BFC015EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC015EC: 00000000 nop */ /* nop */ @@ -4686,6 +5466,9 @@ label_BFC015EC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (496)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC015F8u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } if (psx_taken_BFC015F4) goto label_BFC01608; label_BFC015FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC015FC: 10000003 beq $zero, $zero, 0xBFC0160C */ uint32_t psx_brA_BFC015FC = cpu->gpr[0]; uint32_t psx_brB_BFC015FC = cpu->gpr[0]; @@ -4694,14 +5477,23 @@ label_BFC015FC: cpu->gpr[2] = cpu->gpr[21] + cpu->gpr[0]; if (psx_taken_BFC015FC) goto label_BFC0160C; label_BFC01604: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01604: 8FA201F0 lw $v0, 496($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (496)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01604u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } label_BFC01608: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01608: 00000000 nop */ /* nop */ label_BFC0160C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0160C: 8FB90224 lw $t9, 548($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (548)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0160Cu); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -4716,10 +5508,16 @@ label_BFC0160C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (548)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0161Cu); return; } g_debug_last_store_pc = 0xBFC0161Cu; cpu->write_word(psx_addr, cpu->gpr[24]); } if (psx_taken_BFC01618) goto label_BFC018C4; label_BFC01620: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01620: 8FA20224 lw $v0, 548($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (548)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01620u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } label_BFC01624: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC01624: 8FB00060 lw $s0, 96($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (96)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01624u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -4744,6 +5542,9 @@ label_BFC01624: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01648u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC01644) goto label_BFC018D0; label_BFC0164C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0164C: 1048FE71 beq $v0, $t0, 0xBFC01014 */ uint32_t psx_brA_BFC0164C = cpu->gpr[2]; uint32_t psx_brB_BFC0164C = cpu->gpr[8]; @@ -4752,6 +5553,9 @@ label_BFC0164C: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000045u ? 1 : 0); if (psx_taken_BFC0164C) goto label_BFC01014; label_BFC01654: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01654: 10200058 beq $at, $zero, 0xBFC017B8 */ uint32_t psx_brA_BFC01654 = cpu->gpr[1]; uint32_t psx_brB_BFC01654 = cpu->gpr[0]; @@ -4760,6 +5564,9 @@ label_BFC01654: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (105)); if (psx_taken_BFC01654) goto label_BFC017B8; label_BFC0165C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0165C: 1049FE4D beq $v0, $t1, 0xBFC00F94 */ uint32_t psx_brA_BFC0165C = cpu->gpr[2]; uint32_t psx_brB_BFC0165C = cpu->gpr[9]; @@ -4768,6 +5575,9 @@ label_BFC0165C: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000033u ? 1 : 0); if (psx_taken_BFC0165C) goto label_BFC00F94; label_BFC01664: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01664: 10200034 beq $at, $zero, 0xBFC01738 */ uint32_t psx_brA_BFC01664 = cpu->gpr[1]; uint32_t psx_brB_BFC01664 = cpu->gpr[0]; @@ -4776,6 +5586,9 @@ label_BFC01664: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (54)); if (psx_taken_BFC01664) goto label_BFC01738; label_BFC0166C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0166C: 104AFE1D beq $v0, $t2, 0xBFC00EE4 */ uint32_t psx_brA_BFC0166C = cpu->gpr[2]; uint32_t psx_brB_BFC0166C = cpu->gpr[10]; @@ -4784,6 +5597,9 @@ label_BFC0166C: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000002Eu ? 1 : 0); if (psx_taken_BFC0166C) goto label_BFC00EE4; label_BFC01674: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01674: 10200022 beq $at, $zero, 0xBFC01700 */ uint32_t psx_brA_BFC01674 = cpu->gpr[1]; uint32_t psx_brB_BFC01674 = cpu->gpr[0]; @@ -4792,6 +5608,9 @@ label_BFC01674: /* nop */ if (psx_taken_BFC01674) goto label_BFC01700; label_BFC0167C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0167C: 1047FE14 beq $v0, $a3, 0xBFC00ED0 */ uint32_t psx_brA_BFC0167C = cpu->gpr[2]; uint32_t psx_brB_BFC0167C = cpu->gpr[7]; @@ -4800,6 +5619,9 @@ label_BFC0167C: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000002Bu ? 1 : 0); if (psx_taken_BFC0167C) goto label_BFC00ED0; label_BFC01684: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01684: 1020001A beq $at, $zero, 0xBFC016F0 */ uint32_t psx_brA_BFC01684 = cpu->gpr[1]; uint32_t psx_brB_BFC01684 = cpu->gpr[0]; @@ -4808,6 +5630,9 @@ label_BFC01684: /* nop */ if (psx_taken_BFC01684) goto label_BFC016F0; label_BFC0168C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0168C: 104BFE0A beq $v0, $t3, 0xBFC00EB8 */ uint32_t psx_brA_BFC0168C = cpu->gpr[2]; uint32_t psx_brB_BFC0168C = cpu->gpr[11]; @@ -4816,6 +5641,9 @@ label_BFC0168C: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000021u ? 1 : 0); if (psx_taken_BFC0168C) goto label_BFC00EB8; label_BFC01694: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01694: 10200005 beq $at, $zero, 0xBFC016AC */ uint32_t psx_brA_BFC01694 = cpu->gpr[1]; uint32_t psx_brB_BFC01694 = cpu->gpr[0]; @@ -4824,6 +5652,9 @@ label_BFC01694: /* nop */ if (psx_taken_BFC01694) goto label_BFC016AC; label_BFC0169C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0169C: 1040FFE1 beq $v0, $zero, 0xBFC01624 */ uint32_t psx_brA_BFC0169C = cpu->gpr[2]; uint32_t psx_brB_BFC0169C = cpu->gpr[0]; @@ -4832,6 +5663,9 @@ label_BFC0169C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (548)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC016A0u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } if (psx_taken_BFC0169C) goto label_BFC01624; label_BFC016A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC016A4: 10000004 beq $zero, $zero, 0xBFC016B8 */ uint32_t psx_brA_BFC016A4 = cpu->gpr[0]; uint32_t psx_brB_BFC016A4 = cpu->gpr[0]; @@ -4840,6 +5674,9 @@ label_BFC016A4: cpu->gpr[4] = cpu->gpr[3] << 24u; if (psx_taken_BFC016A4) goto label_BFC016B8; label_BFC016AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC016AC: 104CFE06 beq $v0, $t4, 0xBFC00EC8 */ uint32_t psx_brA_BFC016AC = cpu->gpr[2]; uint32_t psx_brB_BFC016AC = cpu->gpr[12]; @@ -4848,10 +5685,16 @@ label_BFC016AC: /* nop */ if (psx_taken_BFC016AC) goto label_BFC00EC8; label_BFC016B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC016B4: 00032600 sll $a0, $v1, 24 */ cpu->gpr[4] = cpu->gpr[3] << 24u; label_BFC016B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC016B8: 0FF03620 jal 0xBFC0D880 */ /* 0xBFC016BC: 00042603 sra $a0, $a0, 24 */ @@ -4859,6 +5702,9 @@ label_BFC016B8: cpu->gpr[31] = 0xBFC016C0u; psx_dispatch(cpu, 0xBFC0D880u); label_BFC016C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC016C0: 8FAE0224 lw $t6, 548($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (548)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC016C0u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -4887,6 +5733,9 @@ label_BFC016C0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (548)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC016ECu); return; } g_debug_last_store_pc = 0xBFC016ECu; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC016E8) goto label_BFC018C4; label_BFC016F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC016F0: 104DFDFE beq $v0, $t5, 0xBFC00EEC */ uint32_t psx_brA_BFC016F0 = cpu->gpr[2]; uint32_t psx_brB_BFC016F0 = cpu->gpr[13]; @@ -4895,6 +5744,9 @@ label_BFC016F0: /* nop */ if (psx_taken_BFC016F0) goto label_BFC00EEC; label_BFC016F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC016F8: 1000FFEF beq $zero, $zero, 0xBFC016B8 */ uint32_t psx_brA_BFC016F8 = cpu->gpr[0]; uint32_t psx_brB_BFC016F8 = cpu->gpr[0]; @@ -4903,6 +5755,9 @@ label_BFC016F8: cpu->gpr[4] = cpu->gpr[3] << 24u; if (psx_taken_BFC016F8) goto label_BFC016B8; label_BFC01700: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01700: 105FFE22 beq $v0, $ra, 0xBFC00F8C */ uint32_t psx_brA_BFC01700 = cpu->gpr[2]; uint32_t psx_brB_BFC01700 = cpu->gpr[31]; @@ -4911,6 +5766,9 @@ label_BFC01700: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000031u ? 1 : 0); if (psx_taken_BFC01700) goto label_BFC00F8C; label_BFC01708: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01708: 10200005 beq $at, $zero, 0xBFC01720 */ uint32_t psx_brA_BFC01708 = cpu->gpr[1]; uint32_t psx_brB_BFC01708 = cpu->gpr[0]; @@ -4919,6 +5777,9 @@ label_BFC01708: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (46)); if (psx_taken_BFC01708) goto label_BFC01720; label_BFC01710: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01710: 1041FDF8 beq $v0, $at, 0xBFC00EF4 */ uint32_t psx_brA_BFC01710 = cpu->gpr[2]; uint32_t psx_brB_BFC01710 = cpu->gpr[1]; @@ -4927,6 +5788,9 @@ label_BFC01710: /* nop */ if (psx_taken_BFC01710) goto label_BFC00EF4; label_BFC01718: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01718: 1000FFE7 beq $zero, $zero, 0xBFC016B8 */ uint32_t psx_brA_BFC01718 = cpu->gpr[0]; uint32_t psx_brB_BFC01718 = cpu->gpr[0]; @@ -4935,6 +5799,9 @@ label_BFC01718: cpu->gpr[4] = cpu->gpr[3] << 24u; if (psx_taken_BFC01718) goto label_BFC016B8; label_BFC01720: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01720: 24010031 addiu $at, $zero, 49 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (49)); @@ -4945,6 +5812,9 @@ label_BFC01720: cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC01724) goto label_BFC00F98; label_BFC0172C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0172C: 1000FFE2 beq $zero, $zero, 0xBFC016B8 */ uint32_t psx_brA_BFC0172C = cpu->gpr[0]; uint32_t psx_brB_BFC0172C = cpu->gpr[0]; @@ -4953,10 +5823,16 @@ label_BFC0172C: cpu->gpr[4] = cpu->gpr[3] << 24u; if (psx_taken_BFC0172C) goto label_BFC016B8; label_BFC01734: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01734: 24010036 addiu $at, $zero, 54 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (54)); label_BFC01738: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01738: 1041FE16 beq $v0, $at, 0xBFC00F94 */ uint32_t psx_brA_BFC01738 = cpu->gpr[2]; uint32_t psx_brB_BFC01738 = cpu->gpr[1]; @@ -4965,6 +5841,9 @@ label_BFC01738: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000037u ? 1 : 0); if (psx_taken_BFC01738) goto label_BFC00F94; label_BFC01740: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01740: 1020000E beq $at, $zero, 0xBFC0177C */ uint32_t psx_brA_BFC01740 = cpu->gpr[1]; uint32_t psx_brB_BFC01740 = cpu->gpr[0]; @@ -4973,6 +5852,9 @@ label_BFC01740: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); if (psx_taken_BFC01740) goto label_BFC0177C; label_BFC01748: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01748: 1041FE12 beq $v0, $at, 0xBFC00F94 */ uint32_t psx_brA_BFC01748 = cpu->gpr[2]; uint32_t psx_brB_BFC01748 = cpu->gpr[1]; @@ -4981,6 +5863,9 @@ label_BFC01748: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000035u ? 1 : 0); if (psx_taken_BFC01748) goto label_BFC00F94; label_BFC01750: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01750: 10200005 beq $at, $zero, 0xBFC01768 */ uint32_t psx_brA_BFC01750 = cpu->gpr[1]; uint32_t psx_brB_BFC01750 = cpu->gpr[0]; @@ -4989,6 +5874,9 @@ label_BFC01750: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (51)); if (psx_taken_BFC01750) goto label_BFC01768; label_BFC01758: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01758: 1041FE0F beq $v0, $at, 0xBFC00F98 */ uint32_t psx_brA_BFC01758 = cpu->gpr[2]; uint32_t psx_brB_BFC01758 = cpu->gpr[1]; @@ -4997,6 +5885,9 @@ label_BFC01758: cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC01758) goto label_BFC00F98; label_BFC01760: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01760: 1000FFD5 beq $zero, $zero, 0xBFC016B8 */ uint32_t psx_brA_BFC01760 = cpu->gpr[0]; uint32_t psx_brB_BFC01760 = cpu->gpr[0]; @@ -5005,6 +5896,9 @@ label_BFC01760: cpu->gpr[4] = cpu->gpr[3] << 24u; if (psx_taken_BFC01760) goto label_BFC016B8; label_BFC01768: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01768: 24010035 addiu $at, $zero, 53 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (53)); @@ -5015,6 +5909,9 @@ label_BFC01768: cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC0176C) goto label_BFC00F98; label_BFC01774: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01774: 1000FFD0 beq $zero, $zero, 0xBFC016B8 */ uint32_t psx_brA_BFC01774 = cpu->gpr[0]; uint32_t psx_brB_BFC01774 = cpu->gpr[0]; @@ -5023,6 +5920,9 @@ label_BFC01774: cpu->gpr[4] = cpu->gpr[3] << 24u; if (psx_taken_BFC01774) goto label_BFC016B8; label_BFC0177C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0177C: 24010038 addiu $at, $zero, 56 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (56)); @@ -5033,6 +5933,9 @@ label_BFC0177C: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000039u ? 1 : 0); if (psx_taken_BFC01780) goto label_BFC00F94; label_BFC01788: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01788: 10200005 beq $at, $zero, 0xBFC017A0 */ uint32_t psx_brA_BFC01788 = cpu->gpr[1]; uint32_t psx_brB_BFC01788 = cpu->gpr[0]; @@ -5041,6 +5944,9 @@ label_BFC01788: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (55)); if (psx_taken_BFC01788) goto label_BFC017A0; label_BFC01790: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01790: 1041FE01 beq $v0, $at, 0xBFC00F98 */ uint32_t psx_brA_BFC01790 = cpu->gpr[2]; uint32_t psx_brB_BFC01790 = cpu->gpr[1]; @@ -5049,6 +5955,9 @@ label_BFC01790: cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC01790) goto label_BFC00F98; label_BFC01798: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01798: 1000FFC7 beq $zero, $zero, 0xBFC016B8 */ uint32_t psx_brA_BFC01798 = cpu->gpr[0]; uint32_t psx_brB_BFC01798 = cpu->gpr[0]; @@ -5057,6 +5966,9 @@ label_BFC01798: cpu->gpr[4] = cpu->gpr[3] << 24u; if (psx_taken_BFC01798) goto label_BFC016B8; label_BFC017A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC017A0: 24010039 addiu $at, $zero, 57 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (57)); @@ -5067,6 +5979,9 @@ label_BFC017A0: cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC017A4) goto label_BFC00F98; label_BFC017AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC017AC: 1000FFC2 beq $zero, $zero, 0xBFC016B8 */ uint32_t psx_brA_BFC017AC = cpu->gpr[0]; uint32_t psx_brB_BFC017AC = cpu->gpr[0]; @@ -5075,10 +5990,16 @@ label_BFC017AC: cpu->gpr[4] = cpu->gpr[3] << 24u; if (psx_taken_BFC017AC) goto label_BFC016B8; label_BFC017B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC017B4: 24010069 addiu $at, $zero, 105 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (105)); label_BFC017B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC017B8: 1041FE17 beq $v0, $at, 0xBFC01018 */ uint32_t psx_brA_BFC017B8 = cpu->gpr[2]; uint32_t psx_brB_BFC017B8 = cpu->gpr[1]; @@ -5087,6 +6008,9 @@ label_BFC017B8: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000006Au ? 1 : 0); if (psx_taken_BFC017B8) goto label_BFC01018; label_BFC017C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC017C0: 10200020 beq $at, $zero, 0xBFC01844 */ uint32_t psx_brA_BFC017C0 = cpu->gpr[1]; uint32_t psx_brB_BFC017C0 = cpu->gpr[0]; @@ -5095,6 +6019,9 @@ label_BFC017C0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (88)); if (psx_taken_BFC017C0) goto label_BFC01844; label_BFC017C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC017C8: 1041FE93 beq $v0, $at, 0xBFC01218 */ uint32_t psx_brA_BFC017C8 = cpu->gpr[2]; uint32_t psx_brB_BFC017C8 = cpu->gpr[1]; @@ -5103,6 +6030,9 @@ label_BFC017C8: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000059u ? 1 : 0); if (psx_taken_BFC017C8) goto label_BFC01218; label_BFC017D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC017D0: 1020000E beq $at, $zero, 0xBFC0180C */ uint32_t psx_brA_BFC017D0 = cpu->gpr[1]; uint32_t psx_brB_BFC017D0 = cpu->gpr[0]; @@ -5111,6 +6041,9 @@ label_BFC017D0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (79)); if (psx_taken_BFC017D0) goto label_BFC0180C; label_BFC017D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC017D8: 1041FE39 beq $v0, $at, 0xBFC010C0 */ uint32_t psx_brA_BFC017D8 = cpu->gpr[2]; uint32_t psx_brB_BFC017D8 = cpu->gpr[1]; @@ -5119,6 +6052,9 @@ label_BFC017D8: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000050u ? 1 : 0); if (psx_taken_BFC017D8) goto label_BFC010C0; label_BFC017E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC017E0: 10200005 beq $at, $zero, 0xBFC017F8 */ uint32_t psx_brA_BFC017E0 = cpu->gpr[1]; uint32_t psx_brB_BFC017E0 = cpu->gpr[0]; @@ -5127,6 +6063,9 @@ label_BFC017E0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (76)); if (psx_taken_BFC017E0) goto label_BFC017F8; label_BFC017E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC017E8: 1041FDFD beq $v0, $at, 0xBFC00FE0 */ uint32_t psx_brA_BFC017E8 = cpu->gpr[2]; uint32_t psx_brB_BFC017E8 = cpu->gpr[1]; @@ -5135,6 +6074,9 @@ label_BFC017E8: /* nop */ if (psx_taken_BFC017E8) goto label_BFC00FE0; label_BFC017F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC017F0: 1000FFB1 beq $zero, $zero, 0xBFC016B8 */ uint32_t psx_brA_BFC017F0 = cpu->gpr[0]; uint32_t psx_brB_BFC017F0 = cpu->gpr[0]; @@ -5143,6 +6085,9 @@ label_BFC017F0: cpu->gpr[4] = cpu->gpr[3] << 24u; if (psx_taken_BFC017F0) goto label_BFC016B8; label_BFC017F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC017F8: 24010055 addiu $at, $zero, 85 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (85)); @@ -5153,6 +6098,9 @@ label_BFC017F8: cpu->gpr[17] = cpu->gpr[17] | 0x1u; if (psx_taken_BFC017FC) goto label_BFC011D0; label_BFC01804: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01804: 1000FFAC beq $zero, $zero, 0xBFC016B8 */ uint32_t psx_brA_BFC01804 = cpu->gpr[0]; uint32_t psx_brB_BFC01804 = cpu->gpr[0]; @@ -5161,6 +6109,9 @@ label_BFC01804: cpu->gpr[4] = cpu->gpr[3] << 24u; if (psx_taken_BFC01804) goto label_BFC016B8; label_BFC0180C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0180C: 24010064 addiu $at, $zero, 100 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (100)); @@ -5171,6 +6122,9 @@ label_BFC0180C: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000065u ? 1 : 0); if (psx_taken_BFC01810) goto label_BFC01018; label_BFC01818: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01818: 10200005 beq $at, $zero, 0xBFC01830 */ uint32_t psx_brA_BFC01818 = cpu->gpr[1]; uint32_t psx_brB_BFC01818 = cpu->gpr[0]; @@ -5179,6 +6133,9 @@ label_BFC01818: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (99)); if (psx_taken_BFC01818) goto label_BFC01830; label_BFC01820: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01820: 1041FDF5 beq $v0, $at, 0xBFC00FF8 */ uint32_t psx_brA_BFC01820 = cpu->gpr[2]; uint32_t psx_brB_BFC01820 = cpu->gpr[1]; @@ -5187,6 +6144,9 @@ label_BFC01820: /* nop */ if (psx_taken_BFC01820) goto label_BFC00FF8; label_BFC01828: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01828: 1000FFA3 beq $zero, $zero, 0xBFC016B8 */ uint32_t psx_brA_BFC01828 = cpu->gpr[0]; uint32_t psx_brB_BFC01828 = cpu->gpr[0]; @@ -5195,6 +6155,9 @@ label_BFC01828: cpu->gpr[4] = cpu->gpr[3] << 24u; if (psx_taken_BFC01828) goto label_BFC016B8; label_BFC01830: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01830: 24010068 addiu $at, $zero, 104 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (104)); @@ -5205,6 +6168,9 @@ label_BFC01830: /* nop */ if (psx_taken_BFC01834) goto label_BFC00FE8; label_BFC0183C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0183C: 1000FF9E beq $zero, $zero, 0xBFC016B8 */ uint32_t psx_brA_BFC0183C = cpu->gpr[0]; uint32_t psx_brB_BFC0183C = cpu->gpr[0]; @@ -5213,6 +6179,9 @@ label_BFC0183C: cpu->gpr[4] = cpu->gpr[3] << 24u; if (psx_taken_BFC0183C) goto label_BFC016B8; label_BFC01844: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01844: 24010070 addiu $at, $zero, 112 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (112)); @@ -5223,6 +6192,9 @@ label_BFC01844: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000071u ? 1 : 0); if (psx_taken_BFC01848) goto label_BFC0110C; label_BFC01850: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01850: 1020000E beq $at, $zero, 0xBFC0188C */ uint32_t psx_brA_BFC01850 = cpu->gpr[1]; uint32_t psx_brB_BFC01850 = cpu->gpr[0]; @@ -5231,6 +6203,9 @@ label_BFC01850: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (110)); if (psx_taken_BFC01850) goto label_BFC0188C; label_BFC01858: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01858: 1041FE04 beq $v0, $at, 0xBFC0106C */ uint32_t psx_brA_BFC01858 = cpu->gpr[2]; uint32_t psx_brB_BFC01858 = cpu->gpr[1]; @@ -5239,6 +6214,9 @@ label_BFC01858: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000006Fu ? 1 : 0); if (psx_taken_BFC01858) goto label_BFC0106C; label_BFC01860: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01860: 10200005 beq $at, $zero, 0xBFC01878 */ uint32_t psx_brA_BFC01860 = cpu->gpr[1]; uint32_t psx_brB_BFC01860 = cpu->gpr[0]; @@ -5247,6 +6225,9 @@ label_BFC01860: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (108)); if (psx_taken_BFC01860) goto label_BFC01878; label_BFC01868: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01868: 1041FDE1 beq $v0, $at, 0xBFC00FF0 */ uint32_t psx_brA_BFC01868 = cpu->gpr[2]; uint32_t psx_brB_BFC01868 = cpu->gpr[1]; @@ -5255,6 +6236,9 @@ label_BFC01868: /* nop */ if (psx_taken_BFC01868) goto label_BFC00FF0; label_BFC01870: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01870: 1000FF91 beq $zero, $zero, 0xBFC016B8 */ uint32_t psx_brA_BFC01870 = cpu->gpr[0]; uint32_t psx_brB_BFC01870 = cpu->gpr[0]; @@ -5263,6 +6247,9 @@ label_BFC01870: cpu->gpr[4] = cpu->gpr[3] << 24u; if (psx_taken_BFC01870) goto label_BFC016B8; label_BFC01878: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01878: 2401006F addiu $at, $zero, 111 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (111)); @@ -5273,6 +6260,9 @@ label_BFC01878: cpu->gpr[25] = cpu->gpr[17] & 0x1u; if (psx_taken_BFC0187C) goto label_BFC010C8; label_BFC01884: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01884: 1000FF8C beq $zero, $zero, 0xBFC016B8 */ uint32_t psx_brA_BFC01884 = cpu->gpr[0]; uint32_t psx_brB_BFC01884 = cpu->gpr[0]; @@ -5281,6 +6271,9 @@ label_BFC01884: cpu->gpr[4] = cpu->gpr[3] << 24u; if (psx_taken_BFC01884) goto label_BFC016B8; label_BFC0188C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0188C: 24010075 addiu $at, $zero, 117 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (117)); @@ -5291,6 +6284,9 @@ label_BFC0188C: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000076u ? 1 : 0); if (psx_taken_BFC01890) goto label_BFC011D0; label_BFC01898: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01898: 10200005 beq $at, $zero, 0xBFC018B0 */ uint32_t psx_brA_BFC01898 = cpu->gpr[1]; uint32_t psx_brB_BFC01898 = cpu->gpr[0]; @@ -5299,6 +6295,9 @@ label_BFC01898: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (115)); if (psx_taken_BFC01898) goto label_BFC018B0; label_BFC018A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC018A0: 1041FE20 beq $v0, $at, 0xBFC01124 */ uint32_t psx_brA_BFC018A0 = cpu->gpr[2]; uint32_t psx_brB_BFC018A0 = cpu->gpr[1]; @@ -5307,6 +6306,9 @@ label_BFC018A0: /* nop */ if (psx_taken_BFC018A0) goto label_BFC01124; label_BFC018A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC018A8: 1000FF83 beq $zero, $zero, 0xBFC016B8 */ uint32_t psx_brA_BFC018A8 = cpu->gpr[0]; uint32_t psx_brB_BFC018A8 = cpu->gpr[0]; @@ -5315,6 +6317,9 @@ label_BFC018A8: cpu->gpr[4] = cpu->gpr[3] << 24u; if (psx_taken_BFC018A8) goto label_BFC016B8; label_BFC018B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC018B0: 24010078 addiu $at, $zero, 120 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (120)); @@ -5325,6 +6330,9 @@ label_BFC018B0: cpu->gpr[14] = cpu->gpr[17] & 0x1u; if (psx_taken_BFC018B4) goto label_BFC01228; label_BFC018BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC018BC: 1000FF7E beq $zero, $zero, 0xBFC016B8 */ uint32_t psx_brA_BFC018BC = cpu->gpr[0]; uint32_t psx_brB_BFC018BC = cpu->gpr[0]; @@ -5333,6 +6341,9 @@ label_BFC018BC: cpu->gpr[4] = cpu->gpr[3] << 24u; if (psx_taken_BFC018BC) goto label_BFC016B8; label_BFC018C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC018C4: 1000FD55 beq $zero, $zero, 0xBFC00E1C */ uint32_t psx_brA_BFC018C4 = cpu->gpr[0]; uint32_t psx_brB_BFC018C4 = cpu->gpr[0]; @@ -5341,10 +6352,16 @@ label_BFC018C4: cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (1)); if (psx_taken_BFC018C4) goto label_BFC00E1C; label_BFC018CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC018CC: 8FBF003C lw $ra, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC018CCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC018D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC018D0: 8FB30038 lw $s3, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC018D0u); return; } cpu->gpr[19] = cpu->read_word(psx_addr); } @@ -5365,6 +6382,9 @@ void func_1FC018E0(CPUState* cpu) { } } label_BFC018E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC018E0: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -5392,6 +6412,9 @@ label_BFC018E0: cpu->gpr[31] = 0xBFC01910u; psx_dispatch(cpu, 0xBFC00DA0u); label_BFC01910: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC01910: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01910u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -5406,6 +6429,9 @@ label_BFC01910: void func_1FC01920(CPUState* cpu) { debug_server_log_call_entry(0x1FC01920u); label_BFC01920: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC01920: 40086000 mfc0 $t0, cop0[12] */ cpu->gpr[8] = cpu->cop0[12]; @@ -5426,6 +6452,9 @@ label_BFC01920: void func_1FC0193C(CPUState* cpu) { debug_server_log_call_entry(0x1FC0193Cu); label_BFC0193C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC0193C: 24090804 addiu $t1, $zero, 2052 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (2052)); @@ -5446,6 +6475,9 @@ label_BFC0193C: /* 0xBFC0195C: 240B0F80 addiu $t3, $zero, 3968 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (3968)); label_BFC01960: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC01960: AD400000 sw $zero, 0($t2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[10] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01960u); return; } g_debug_last_store_pc = 0xBFC01960u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -5470,6 +6502,9 @@ label_BFC01960: { int32_t psx_a = (int32_t)cpu->gpr[10]; int32_t psx_b = (128); int64_t psx_r = (int64_t)psx_a + (int64_t)psx_b; if (psx_r < (int64_t)INT32_MIN || psx_r > (int64_t)INT32_MAX) { psx_arith_overflow(cpu); return; } cpu->gpr[10] = (uint32_t)(int32_t)psx_r; } if (psx_taken_BFC01980) goto label_BFC01960; label_BFC01988: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC01988: 40806000 mtc0 $zero, cop0[12] */ cpu->cop0[12] = cpu->gpr[0]; @@ -5492,6 +6527,9 @@ label_BFC01988: /* 0xBFC019AC: 240B0F80 addiu $t3, $zero, 3968 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (3968)); label_BFC019B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(34u); +#endif psx_check_interrupts(cpu); /* 0xBFC019B0: AD400000 sw $zero, 0($t2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[10] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC019B0u); return; } g_debug_last_store_pc = 0xBFC019B0u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -5564,6 +6602,9 @@ label_BFC019B0: { int32_t psx_a = (int32_t)cpu->gpr[10]; int32_t psx_b = (128); int64_t psx_r = (int64_t)psx_a + (int64_t)psx_b; if (psx_r < (int64_t)INT32_MIN || psx_r > (int64_t)INT32_MAX) { psx_arith_overflow(cpu); return; } cpu->gpr[10] = (uint32_t)(int32_t)psx_r; } if (psx_taken_BFC01A30) goto label_BFC019B0; label_BFC01A38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC01A38: 40806000 mtc0 $zero, cop0[12] */ cpu->cop0[12] = cpu->gpr[0]; @@ -5598,6 +6639,9 @@ void func_1FC01A60(CPUState* cpu) { } } label_BFC01A60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC01A60: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -5613,6 +6657,9 @@ label_BFC01A60: cpu->gpr[31] = 0xBFC01A78u; psx_dispatch(cpu, 0xBFC03990u); label_BFC01A78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC01A78: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01A78u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -5627,6 +6674,9 @@ label_BFC01A78: void func_1FC01A90(CPUState* cpu) { debug_server_log_call_entry(0x1FC01A90u); label_BFC01A90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01A90: 14800003 bne $a0, $zero, 0xBFC01AA0 */ uint32_t psx_brA_BFC01A90 = cpu->gpr[4]; uint32_t psx_brB_BFC01A90 = cpu->gpr[0]; @@ -5635,12 +6685,18 @@ label_BFC01A90: /* nop */ if (psx_taken_BFC01A90) goto label_BFC01AA0; label_BFC01A98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01A98: 03E00008 jr $ra */ /* 0xBFC01A9C: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; return; label_BFC01AA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01AA0: 18C00007 blez $a2, 0xBFC01AC0 */ uint32_t psx_brA_BFC01AA0 = cpu->gpr[6]; @@ -5649,6 +6705,9 @@ label_BFC01AA0: cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC01AA0) goto label_BFC01AC0; label_BFC01AA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC01AA8: 908E0000 lbu $t6, 0($a0) */ cpu->gpr[14] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (0))); @@ -5665,6 +6724,9 @@ label_BFC01AA8: g_debug_last_store_pc = 0xBFC01ABCu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[5] + (-1)), (uint8_t)(cpu->gpr[14] & 0xFFu)); if (psx_taken_BFC01AB8) goto label_BFC01AA8; label_BFC01AC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01AC0: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; @@ -5677,6 +6739,9 @@ label_BFC01AC0: void func_1FC01ACC(CPUState* cpu) { debug_server_log_call_entry(0x1FC01ACCu); label_BFC01ACC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01ACC: 10800003 beq $a0, $zero, 0xBFC01ADC */ uint32_t psx_brA_BFC01ACC = cpu->gpr[4]; uint32_t psx_brB_BFC01ACC = cpu->gpr[0]; @@ -5685,6 +6750,9 @@ label_BFC01ACC: /* nop */ if (psx_taken_BFC01ACC) goto label_BFC01ADC; label_BFC01AD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01AD4: 1CA00003 bgtz $a1, 0xBFC01AE4 */ uint32_t psx_brA_BFC01AD4 = cpu->gpr[5]; @@ -5693,12 +6761,18 @@ label_BFC01AD4: /* nop */ if (psx_taken_BFC01AD4) goto label_BFC01AE4; label_BFC01ADC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01ADC: 03E00008 jr $ra */ /* 0xBFC01AE0: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; return; label_BFC01AE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01AE4: 18A00005 blez $a1, 0xBFC01AFC */ uint32_t psx_brA_BFC01AE4 = cpu->gpr[5]; @@ -5707,6 +6781,9 @@ label_BFC01AE4: cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC01AE4) goto label_BFC01AFC; label_BFC01AEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC01AEC: 24A5FFFF addiu $a1, $a1, -1 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (-1)); @@ -5719,6 +6796,9 @@ label_BFC01AEC: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (1)); if (psx_taken_BFC01AF4) goto label_BFC01AEC; label_BFC01AFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01AFC: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; @@ -5731,6 +6811,9 @@ label_BFC01AFC: void func_1FC01B80(CPUState* cpu) { debug_server_log_call_entry(0x1FC01B80u); label_BFC01B80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01B80: 10800021 beq $a0, $zero, 0xBFC01C08 */ uint32_t psx_brA_BFC01B80 = cpu->gpr[4]; uint32_t psx_brB_BFC01B80 = cpu->gpr[0]; @@ -5739,6 +6822,9 @@ label_BFC01B80: /* nop */ if (psx_taken_BFC01B80) goto label_BFC01C08; label_BFC01B88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC01B88: 3C02A001 lui $v0, 0xA001 */ cpu->gpr[2] = 0xA0010000u; @@ -5755,6 +6841,9 @@ label_BFC01B88: cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC01B98) goto label_BFC01BB0; label_BFC01BA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01BA0: 00401821 addu $v1, $v0, $zero */ cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; @@ -5765,14 +6854,23 @@ label_BFC01BA0: cpu->gpr[5] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC01BA4) goto label_BFC01BB4; label_BFC01BAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01BAC: 00801821 addu $v1, $a0, $zero */ cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[0]; label_BFC01BB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01BB0: 00402821 addu $a1, $v0, $zero */ cpu->gpr[5] = cpu->gpr[2] + cpu->gpr[0]; label_BFC01BB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC01BB4: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -5801,6 +6899,9 @@ label_BFC01BB4: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < cpu->gpr[5] ? 1 : 0); if (psx_taken_BFC01BDC) goto label_BFC01BF0; label_BFC01BE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01BE4: 10000013 beq $zero, $zero, 0xBFC01C34 */ uint32_t psx_brA_BFC01BE4 = cpu->gpr[0]; uint32_t psx_brB_BFC01BE4 = cpu->gpr[0]; @@ -5809,10 +6910,16 @@ label_BFC01BE4: cpu->gpr[6] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC01BE4) goto label_BFC01C34; label_BFC01BEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01BEC: 0045082B sltu $at, $v0, $a1 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < cpu->gpr[5] ? 1 : 0); label_BFC01BF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01BF0: 14200003 bne $at, $zero, 0xBFC01C00 */ uint32_t psx_brA_BFC01BF0 = cpu->gpr[1]; uint32_t psx_brB_BFC01BF0 = cpu->gpr[0]; @@ -5821,6 +6928,9 @@ label_BFC01BF0: /* nop */ if (psx_taken_BFC01BF0) goto label_BFC01C00; label_BFC01BF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01BF8: 1000000E beq $zero, $zero, 0xBFC01C34 */ uint32_t psx_brA_BFC01BF8 = cpu->gpr[0]; uint32_t psx_brB_BFC01BF8 = cpu->gpr[0]; @@ -5829,12 +6939,18 @@ label_BFC01BF8: cpu->gpr[6] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC01BF8) goto label_BFC01C34; label_BFC01C00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01C00: 03E00008 jr $ra */ /* 0xBFC01C04: 2402FFFF addiu $v0, $zero, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); return; label_BFC01C08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC01C08: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -5855,12 +6971,18 @@ label_BFC01C08: cpu->gpr[6] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC01C20) goto label_BFC01C34; label_BFC01C28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01C28: 03E00008 jr $ra */ /* 0xBFC01C2C: 2402FFFF addiu $v0, $zero, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); return; label_BFC01C34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC01C34: 24CB0004 addiu $t3, $a2, 4 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[6] + (4)); @@ -5877,10 +6999,16 @@ label_BFC01C34: cpu->gpr[1] = cpu->gpr[6] + cpu->gpr[0]; if (psx_taken_BFC01C44) goto label_BFC01C50; label_BFC01C4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01C4C: 24210003 addiu $at, $at, 3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (3)); label_BFC01C50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC01C50: 0001C883 sra $t9, $at, 2 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[1] >> 2u); @@ -5899,10 +7027,16 @@ label_BFC01C50: cpu->gpr[1] = cpu->gpr[11] + cpu->gpr[0]; if (psx_taken_BFC01C64) goto label_BFC01C70; label_BFC01C6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01C6C: 24210003 addiu $at, $at, 3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (3)); label_BFC01C70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC01C70: 00016083 sra $t4, $at, 2 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[1] >> 2u); @@ -5923,6 +7057,9 @@ label_BFC01C70: void func_1FC01C8C(CPUState* cpu) { debug_server_log_call_entry(0x1FC01C8Cu); label_BFC01C8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC01C8C: 24A50001 addiu $a1, $a1, 1 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (1)); @@ -5943,12 +7080,18 @@ label_BFC01C8C: cpu->gpr[5] = cpu->gpr[5] & cpu->gpr[1]; if (psx_taken_BFC01CA4) goto label_BFC01CB4; label_BFC01CAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01CAC: 03E00008 jr $ra */ /* 0xBFC01CB0: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; return; label_BFC01CB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC01CB4: 2482FFFC addiu $v0, $a0, -4 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[4] + (-4)); @@ -5967,6 +7110,9 @@ label_BFC01CB4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-4)); if (psx_taken_BFC01CC8) goto label_BFC01DAC; label_BFC01CD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC01CD0: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -5981,6 +7127,9 @@ label_BFC01CD0: /* 0xBFC01CE4: 00077882 srl $t7, $a3, 2 */ cpu->gpr[15] = cpu->gpr[7] >> 2u; label_BFC01CE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC01CE8: 000FC080 sll $t8, $t7, 2 */ cpu->gpr[24] = cpu->gpr[15] << 2u; @@ -5997,6 +7146,9 @@ label_BFC01CE8: /* nop */ if (psx_taken_BFC01CF8) goto label_BFC01D1C; label_BFC01D00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01D00: 30F90001 andi $t9, $a3, 0x1 */ cpu->gpr[25] = cpu->gpr[7] & 0x1u; @@ -6007,6 +7159,9 @@ label_BFC01D00: /* nop */ if (psx_taken_BFC01D04) goto label_BFC01D1C; label_BFC01D0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC01D0C: 8C460000 lw $a2, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01D0Cu); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -6019,6 +7174,9 @@ label_BFC01D0C: cpu->gpr[8] = cpu->gpr[6] & cpu->gpr[1]; if (psx_taken_BFC01D14) goto label_BFC01DA8; label_BFC01D1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01D1C: 15470014 bne $t2, $a3, 0xBFC01D70 */ uint32_t psx_brA_BFC01D1C = cpu->gpr[10]; uint32_t psx_brB_BFC01D1C = cpu->gpr[7]; @@ -6027,6 +7185,9 @@ label_BFC01D1C: /* nop */ if (psx_taken_BFC01D1C) goto label_BFC01D70; label_BFC01D24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC01D24: 01245823 subu $t3, $t1, $a0 */ cpu->gpr[11] = cpu->gpr[9] - cpu->gpr[4]; @@ -6045,6 +7206,9 @@ label_BFC01D24: cpu->gpr[14] = cpu->gpr[8] >> 2u; if (psx_taken_BFC01D38) goto label_BFC01D54; label_BFC01D40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC01D40: 8C460000 lw $a2, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01D40u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -6057,10 +7221,16 @@ label_BFC01D40: cpu->gpr[8] = cpu->gpr[6] & cpu->gpr[1]; if (psx_taken_BFC01D48) goto label_BFC01DA8; label_BFC01D50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01D50: 00087082 srl $t6, $t0, 2 */ cpu->gpr[14] = cpu->gpr[8] >> 2u; label_BFC01D54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC01D54: 000E7880 sll $t7, $t6, 2 */ cpu->gpr[15] = cpu->gpr[14] << 2u; @@ -6077,6 +7247,9 @@ label_BFC01D54: /* 0xBFC01D6C: 00000000 nop */ /* nop */ label_BFC01D70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC01D70: 8C4B0000 lw $t3, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01D70u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -6103,6 +7276,9 @@ label_BFC01D70: cpu->gpr[15] = cpu->gpr[7] >> 2u; if (psx_taken_BFC01D94) goto label_BFC01CE8; label_BFC01D9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01D9C: 8C460000 lw $a2, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01D9Cu); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -6111,10 +7287,16 @@ label_BFC01D9C: /* 0xBFC01DA4: 00C14024 and $t0, $a2, $at */ cpu->gpr[8] = cpu->gpr[6] & cpu->gpr[1]; label_BFC01DA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01DA8: 2401FFFC addiu $at, $zero, -4 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-4)); label_BFC01DAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC01DAC: 00C17824 and $t7, $a2, $at */ cpu->gpr[15] = cpu->gpr[6] & cpu->gpr[1]; @@ -6127,6 +7309,9 @@ label_BFC01DAC: cpu->gpr[1] = (uint32_t)(cpu->gpr[8] < cpu->gpr[5] ? 1 : 0); if (psx_taken_BFC01DB4) goto label_BFC01E0C; label_BFC01DBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01DBC: 04A10002 bgez $a1, 0xBFC01DC8 */ uint32_t psx_brA_BFC01DBC = cpu->gpr[5]; @@ -6135,10 +7320,16 @@ label_BFC01DBC: cpu->gpr[1] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC01DBC) goto label_BFC01DC8; label_BFC01DC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01DC4: 24210003 addiu $at, $at, 3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (3)); label_BFC01DC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC01DC8: 0001C083 sra $t8, $at, 2 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[1] >> 2u); @@ -6175,10 +7366,16 @@ label_BFC01DC8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01E04u); return; } g_debug_last_store_pc = 0xBFC01E04u; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC01E00) goto label_BFC01E18; label_BFC01E08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01E08: 0105082B sltu $at, $t0, $a1 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[8] < cpu->gpr[5] ? 1 : 0); label_BFC01E0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01E0C: 10200003 beq $at, $zero, 0xBFC01E1C */ uint32_t psx_brA_BFC01E0C = cpu->gpr[1]; uint32_t psx_brB_BFC01E0C = cpu->gpr[0]; @@ -6187,14 +7384,23 @@ label_BFC01E0C: cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC01E0C) goto label_BFC01E1C; label_BFC01E14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01E14: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; label_BFC01E18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01E18: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; label_BFC01E1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01E1C: 03E00008 jr $ra */ /* 0xBFC01E20: 00000000 nop */ @@ -6205,6 +7411,9 @@ label_BFC01E1C: void func_1FC01E24(CPUState* cpu) { debug_server_log_call_entry(0x1FC01E24u); label_BFC01E24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC01E24: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -6249,6 +7458,9 @@ void func_1FC01E5C(CPUState* cpu) { } } label_BFC01E5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC01E5C: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -6283,6 +7495,9 @@ label_BFC01E5C: cpu->gpr[17] = cpu->gpr[17] & cpu->gpr[1]; if (psx_taken_BFC01E90) goto label_BFC01EA0; label_BFC01E98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01E98: 1000001F beq $zero, $zero, 0xBFC01F18 */ uint32_t psx_brA_BFC01E98 = cpu->gpr[0]; uint32_t psx_brB_BFC01E98 = cpu->gpr[0]; @@ -6291,6 +7506,9 @@ label_BFC01E98: cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[0] + (-2)); if (psx_taken_BFC01E98) goto label_BFC01F18; label_BFC01EA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC01EA0: 3C02A001 lui $v0, 0xA001 */ cpu->gpr[2] = 0xA0010000u; @@ -6311,6 +7529,9 @@ label_BFC01EA0: cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[0] + (-2)); if (psx_taken_BFC01EB8) goto label_BFC01ECC; label_BFC01EC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01EC0: 10000085 beq $zero, $zero, 0xBFC020D8 */ uint32_t psx_brA_BFC01EC0 = cpu->gpr[0]; uint32_t psx_brB_BFC01EC0 = cpu->gpr[0]; @@ -6319,10 +7540,16 @@ label_BFC01EC0: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC01EC0) goto label_BFC020D8; label_BFC01EC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01EC8: 2412FFFE addiu $s2, $zero, -2 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[0] + (-2)); label_BFC01ECC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC01ECC: AC520000 sw $s2, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01ECCu); return; } g_debug_last_store_pc = 0xBFC01ECCu; cpu->write_word(psx_addr, cpu->gpr[18]); } @@ -6342,6 +7569,9 @@ label_BFC01ECC: cpu->gpr[31] = 0xBFC01EECu; psx_dispatch(cpu, 0xBFC01B80u); label_BFC01EEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01EEC: 10400003 beq $v0, $zero, 0xBFC01EFC */ uint32_t psx_brA_BFC01EEC = cpu->gpr[2]; uint32_t psx_brB_BFC01EEC = cpu->gpr[0]; @@ -6350,6 +7580,9 @@ label_BFC01EEC: /* nop */ if (psx_taken_BFC01EEC) goto label_BFC01EFC; label_BFC01EF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01EF4: 10000078 beq $zero, $zero, 0xBFC020D8 */ uint32_t psx_brA_BFC01EF4 = cpu->gpr[0]; uint32_t psx_brB_BFC01EF4 = cpu->gpr[0]; @@ -6358,6 +7591,9 @@ label_BFC01EF4: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC01EF4) goto label_BFC020D8; label_BFC01EFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC01EFC: 3C18A001 lui $t8, 0xA001 */ cpu->gpr[24] = 0xA0010000u; @@ -6374,6 +7610,9 @@ label_BFC01EFC: /* 0xBFC01F14: AC39900C sw $t9, -28660($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28660)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01F14u); return; } g_debug_last_store_pc = 0xBFC01F14u; cpu->write_word(psx_addr, cpu->gpr[25]); } label_BFC01F18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC01F18: 3C08A001 lui $t0, 0xA001 */ cpu->gpr[8] = 0xA0010000u; @@ -6388,6 +7627,9 @@ label_BFC01F18: /* 0xBFC01F2C: 30830001 andi $v1, $a0, 0x1 */ cpu->gpr[3] = cpu->gpr[4] & 0x1u; label_BFC01F30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01F30: 10600047 beq $v1, $zero, 0xBFC02050 */ uint32_t psx_brA_BFC01F30 = cpu->gpr[3]; uint32_t psx_brB_BFC01F30 = cpu->gpr[0]; @@ -6396,6 +7638,9 @@ label_BFC01F30: /* nop */ if (psx_taken_BFC01F30) goto label_BFC02050; label_BFC01F38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01F38: 36220001 ori $v0, $s1, 0x1 */ cpu->gpr[2] = cpu->gpr[17] | 0x1u; @@ -6406,6 +7651,9 @@ label_BFC01F38: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < cpu->gpr[4] ? 1 : 0); if (psx_taken_BFC01F3C) goto label_BFC01F5C; label_BFC01F44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC01F44: 3C0AA001 lui $t2, 0xA001 */ cpu->gpr[10] = 0xA0010000u; @@ -6420,10 +7668,16 @@ label_BFC01F44: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[10] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01F54u); return; } g_debug_last_store_pc = 0xBFC01F54u; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC01F50) goto label_BFC020C8; label_BFC01F58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01F58: 0044082B sltu $at, $v0, $a0 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < cpu->gpr[4] ? 1 : 0); label_BFC01F5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01F5C: 10200011 beq $at, $zero, 0xBFC01FA4 */ uint32_t psx_brA_BFC01F5C = cpu->gpr[1]; uint32_t psx_brB_BFC01F5C = cpu->gpr[0]; @@ -6432,6 +7686,9 @@ label_BFC01F5C: cpu->gpr[1] = (uint32_t)(cpu->gpr[4] < cpu->gpr[17] ? 1 : 0); if (psx_taken_BFC01F5C) goto label_BFC01FA4; label_BFC01F64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC01F64: 3C0DA001 lui $t5, 0xA001 */ cpu->gpr[13] = 0xA0010000u; @@ -6450,10 +7707,16 @@ label_BFC01F64: cpu->gpr[1] = cpu->gpr[17] + cpu->gpr[0]; if (psx_taken_BFC01F78) goto label_BFC01F84; label_BFC01F80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01F80: 24210003 addiu $at, $at, 3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (3)); label_BFC01F84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC01F84: 00017083 sra $t6, $at, 2 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[1] >> 2u); @@ -6472,10 +7735,16 @@ label_BFC01F84: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[25] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC01F9Cu); return; } g_debug_last_store_pc = 0xBFC01F9Cu; cpu->write_word(psx_addr, cpu->gpr[17]); } if (psx_taken_BFC01F98) goto label_BFC020C8; label_BFC01FA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC01FA0: 0091082B sltu $at, $a0, $s1 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[4] < cpu->gpr[17] ? 1 : 0); label_BFC01FA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01FA4: 1020FFE2 beq $at, $zero, 0xBFC01F30 */ uint32_t psx_brA_BFC01FA4 = cpu->gpr[1]; uint32_t psx_brB_BFC01FA4 = cpu->gpr[0]; @@ -6484,6 +7753,9 @@ label_BFC01FA4: /* nop */ if (psx_taken_BFC01FA4) goto label_BFC01F30; label_BFC01FAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC01FAC: 3C08A001 lui $t0, 0xA001 */ cpu->gpr[8] = 0xA0010000u; @@ -6506,6 +7778,9 @@ label_BFC01FAC: cpu->gpr[14] = cpu->gpr[2] & 0x1u; if (psx_taken_BFC01FC8) goto label_BFC0200C; label_BFC01FD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC01FD0: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); @@ -6516,6 +7791,9 @@ label_BFC01FD0: /* nop */ if (psx_taken_BFC01FD4) goto label_BFC01FF4; label_BFC01FDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01FDC: 0FF006E0 jal 0xBFC01B80 */ /* 0xBFC01FE0: 02202021 addu $a0, $s1, $zero */ @@ -6523,6 +7801,9 @@ label_BFC01FDC: cpu->gpr[31] = 0xBFC01FE4u; psx_dispatch(cpu, 0xBFC01B80u); label_BFC01FE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01FE4: 10400014 beq $v0, $zero, 0xBFC02038 */ uint32_t psx_brA_BFC01FE4 = cpu->gpr[2]; uint32_t psx_brB_BFC01FE4 = cpu->gpr[0]; @@ -6531,6 +7812,9 @@ label_BFC01FE4: /* nop */ if (psx_taken_BFC01FE4) goto label_BFC02038; label_BFC01FEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC01FEC: 1000003A beq $zero, $zero, 0xBFC020D8 */ uint32_t psx_brA_BFC01FEC = cpu->gpr[0]; uint32_t psx_brB_BFC01FEC = cpu->gpr[0]; @@ -6539,6 +7823,9 @@ label_BFC01FEC: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC01FEC) goto label_BFC020D8; label_BFC01FF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC01FF4: 3C0BA001 lui $t3, 0xA001 */ cpu->gpr[11] = 0xA0010000u; @@ -6553,10 +7840,16 @@ label_BFC01FF4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-20380)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02004u); return; } g_debug_last_store_pc = 0xBFC02004u; cpu->write_word(psx_addr, cpu->gpr[11]); } if (psx_taken_BFC02000) goto label_BFC02038; label_BFC02008: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC02008: 304E0001 andi $t6, $v0, 0x1 */ cpu->gpr[14] = cpu->gpr[2] & 0x1u; label_BFC0200C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0200C: 11C00008 beq $t6, $zero, 0xBFC02030 */ uint32_t psx_brA_BFC0200C = cpu->gpr[14]; uint32_t psx_brB_BFC0200C = cpu->gpr[0]; @@ -6565,6 +7858,9 @@ label_BFC0200C: /* nop */ if (psx_taken_BFC0200C) goto label_BFC02030; label_BFC02014: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC02014: 00526824 and $t5, $v0, $s2 */ cpu->gpr[13] = cpu->gpr[2] & cpu->gpr[18]; @@ -6583,12 +7879,18 @@ label_BFC02014: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[24] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0202Cu); return; } g_debug_last_store_pc = 0xBFC0202Cu; cpu->write_word(psx_addr, cpu->gpr[12]); } if (psx_taken_BFC02028) goto label_BFC02038; label_BFC02030: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02030: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; /* 0xBFC02034: AC23B064 sw $v1, -20380($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-20380)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02034u); return; } g_debug_last_store_pc = 0xBFC02034u; cpu->write_word(psx_addr, cpu->gpr[3]); } label_BFC02038: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC02038: 3C19A001 lui $t9, 0xA001 */ cpu->gpr[25] = 0xA0010000u; @@ -6605,6 +7907,9 @@ label_BFC02038: cpu->gpr[3] = cpu->gpr[4] & 0x1u; if (psx_taken_BFC02048) goto label_BFC01F30; label_BFC02050: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02050: 1244000A beq $s2, $a0, 0xBFC0207C */ uint32_t psx_brA_BFC02050 = cpu->gpr[18]; uint32_t psx_brB_BFC02050 = cpu->gpr[4]; @@ -6613,6 +7918,9 @@ label_BFC02050: /* nop */ if (psx_taken_BFC02050) goto label_BFC0207C; label_BFC02058: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC02058: 3C09A001 lui $t1, 0xA001 */ cpu->gpr[9] = 0xA0010000u; @@ -6635,6 +7943,9 @@ label_BFC02058: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-20380)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02078u); return; } g_debug_last_store_pc = 0xBFC02078u; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC02074) goto label_BFC020B0; label_BFC0207C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0207C: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); @@ -6645,6 +7956,9 @@ label_BFC0207C: /* nop */ if (psx_taken_BFC02080) goto label_BFC020A0; label_BFC02088: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02088: 0FF006E0 jal 0xBFC01B80 */ /* 0xBFC0208C: 02202021 addu $a0, $s1, $zero */ @@ -6652,6 +7966,9 @@ label_BFC02088: cpu->gpr[31] = 0xBFC02090u; psx_dispatch(cpu, 0xBFC01B80u); label_BFC02090: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02090: 10400007 beq $v0, $zero, 0xBFC020B0 */ uint32_t psx_brA_BFC02090 = cpu->gpr[2]; uint32_t psx_brB_BFC02090 = cpu->gpr[0]; @@ -6660,6 +7977,9 @@ label_BFC02090: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC02090) goto label_BFC020B0; label_BFC02098: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02098: 1000000F beq $zero, $zero, 0xBFC020D8 */ uint32_t psx_brA_BFC02098 = cpu->gpr[0]; uint32_t psx_brB_BFC02098 = cpu->gpr[0]; @@ -6668,6 +7988,9 @@ label_BFC02098: cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC02098) goto label_BFC020D8; label_BFC020A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC020A0: 3C0DA001 lui $t5, 0xA001 */ cpu->gpr[13] = 0xA0010000u; @@ -6678,6 +8001,9 @@ label_BFC020A0: /* 0xBFC020AC: AC2DB064 sw $t5, -20380($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-20380)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC020ACu); return; } g_debug_last_store_pc = 0xBFC020ACu; cpu->write_word(psx_addr, cpu->gpr[13]); } label_BFC020B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC020B0: 3C0FA001 lui $t7, 0xA001 */ cpu->gpr[15] = 0xA0010000u; @@ -6694,6 +8020,9 @@ label_BFC020B0: cpu->gpr[3] = cpu->gpr[4] & 0x1u; if (psx_taken_BFC020C0) goto label_BFC01F30; label_BFC020C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC020C8: 3C02A001 lui $v0, 0xA001 */ cpu->gpr[2] = 0xA0010000u; @@ -6704,6 +8033,9 @@ label_BFC020C8: /* 0xBFC020D4: 24420004 addiu $v0, $v0, 4 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (4)); label_BFC020D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC020D8: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC020D8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -6722,6 +8054,9 @@ label_BFC020D8: void func_1FC020F0(CPUState* cpu) { debug_server_log_call_entry(0x1FC020F0u); label_BFC020F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC020F0: 8C8EFFFC lw $t6, -4($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC020F0u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -6751,6 +8086,9 @@ void func_1FC02104(CPUState* cpu) { } } label_BFC02104: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC02104: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -6767,6 +8105,9 @@ label_BFC02104: cpu->gpr[6] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC02114) goto label_BFC0212C; label_BFC0211C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0211C: 0FF00797 jal 0xBFC01E5C */ /* 0xBFC02120: 00C02021 addu $a0, $a2, $zero */ @@ -6774,6 +8115,9 @@ label_BFC0211C: cpu->gpr[31] = 0xBFC02124u; psx_dispatch(cpu, 0xBFC01E5Cu); label_BFC02124: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02124: 10000019 beq $zero, $zero, 0xBFC0218C */ uint32_t psx_brA_BFC02124 = cpu->gpr[0]; uint32_t psx_brB_BFC02124 = cpu->gpr[0]; @@ -6782,6 +8126,9 @@ label_BFC02124: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02128u); return; } g_debug_last_store_pc = 0xBFC02128u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC02124) goto label_BFC0218C; label_BFC0212C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0212C: 14C00006 bne $a2, $zero, 0xBFC02148 */ uint32_t psx_brA_BFC0212C = cpu->gpr[6]; uint32_t psx_brB_BFC0212C = cpu->gpr[0]; @@ -6790,6 +8137,9 @@ label_BFC0212C: cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; if (psx_taken_BFC0212C) goto label_BFC02148; label_BFC02134: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02134: 0FF0083C jal 0xBFC020F0 */ /* 0xBFC02138: 02002021 addu $a0, $s0, $zero */ @@ -6797,6 +8147,9 @@ label_BFC02134: cpu->gpr[31] = 0xBFC0213Cu; psx_dispatch(cpu, 0xBFC020F0u); label_BFC0213C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0213C: 10000014 beq $zero, $zero, 0xBFC02190 */ uint32_t psx_brA_BFC0213C = cpu->gpr[0]; uint32_t psx_brB_BFC0213C = cpu->gpr[0]; @@ -6805,10 +8158,16 @@ label_BFC0213C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02140u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0213C) goto label_BFC02190; label_BFC02144: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC02144: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; label_BFC02148: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC02148: 00C02821 addu $a1, $a2, $zero */ cpu->gpr[5] = cpu->gpr[6] + cpu->gpr[0]; @@ -6818,6 +8177,9 @@ label_BFC02148: cpu->gpr[31] = 0xBFC02154u; psx_dispatch(cpu, 0xBFC01C8Cu); label_BFC02154: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC02154: 8FA6002C lw $a2, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02154u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -6828,6 +8190,9 @@ label_BFC02154: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0215Cu); return; } g_debug_last_store_pc = 0xBFC0215Cu; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC02158) goto label_BFC0218C; label_BFC02160: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC02160: 00C02021 addu $a0, $a2, $zero */ cpu->gpr[4] = cpu->gpr[6] + cpu->gpr[0]; @@ -6837,6 +8202,9 @@ label_BFC02160: cpu->gpr[31] = 0xBFC0216Cu; psx_dispatch(cpu, 0xBFC01E5Cu); label_BFC0216C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0216C: 8FA6002C lw $a2, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0216Cu); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -6847,6 +8215,9 @@ label_BFC0216C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02174u); return; } g_debug_last_store_pc = 0xBFC02174u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC02170) goto label_BFC0218C; label_BFC02178: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC02178: 8FA50024 lw $a1, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02178u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -6856,6 +8227,9 @@ label_BFC02178: cpu->gpr[31] = 0xBFC02184u; psx_dispatch(cpu, 0xBFC01A90u); label_BFC02184: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02184: 0FF0083C jal 0xBFC020F0 */ /* 0xBFC02188: 02002021 addu $a0, $s0, $zero */ @@ -6863,10 +8237,16 @@ label_BFC02184: cpu->gpr[31] = 0xBFC0218Cu; psx_dispatch(cpu, 0xBFC020F0u); label_BFC0218C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0218C: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0218Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC02190: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC02190: 8FA20024 lw $v0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02190u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -6881,6 +8261,9 @@ label_BFC02190: void func_1FC02200(CPUState* cpu) { debug_server_log_call_entry(0x1FC02200u); label_BFC02200: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC02200: 3C03A001 lui $v1, 0xA001 */ cpu->gpr[3] = 0xA0010000u; @@ -6911,6 +8294,9 @@ label_BFC02200: void func_1FC02240(CPUState* cpu) { debug_server_log_call_entry(0x1FC02240u); label_BFC02240: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC02240: AC9F0000 sw $ra, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02240u); return; } g_debug_last_store_pc = 0xBFC02240u; cpu->write_word(psx_addr, cpu->gpr[31]); } @@ -6947,6 +8333,9 @@ label_BFC02240: void func_1FC0227C(CPUState* cpu) { debug_server_log_call_entry(0x1FC0227Cu); label_BFC0227C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC0227C: 8C9F0000 lw $ra, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0227Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -6991,6 +8380,9 @@ void func_1FC022C0(CPUState* cpu) { } } label_BFC022C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC022C0: 00042600 sll $a0, $a0, 24 */ cpu->gpr[4] = cpu->gpr[4] << 24u; @@ -7015,6 +8407,9 @@ label_BFC022C0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC022E4u); return; } g_debug_last_store_pc = 0xBFC022E4u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC022E0) goto label_BFC022F0; label_BFC022E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC022E8: 1000000A beq $zero, $zero, 0xBFC02314 */ uint32_t psx_brA_BFC022E8 = cpu->gpr[0]; uint32_t psx_brB_BFC022E8 = cpu->gpr[0]; @@ -7023,6 +8418,9 @@ label_BFC022E8: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[4] + (-48)); if (psx_taken_BFC022E8) goto label_BFC02314; label_BFC022F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC022F0: 30580003 andi $t8, $v0, 0x3 */ cpu->gpr[24] = cpu->gpr[2] & 0x3u; @@ -7033,6 +8431,9 @@ label_BFC022F0: cpu->gpr[3] = 0x00980000u; if (psx_taken_BFC022F4) goto label_BFC02310; label_BFC022FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC022FC: 0FF00BB7 jal 0xBFC02EDC */ /* 0xBFC02300: 00000000 nop */ @@ -7040,6 +8441,9 @@ label_BFC022FC: cpu->gpr[31] = 0xBFC02304u; psx_dispatch(cpu, 0xBFC02EDCu); label_BFC02304: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02304: 10000003 beq $zero, $zero, 0xBFC02314 */ uint32_t psx_brA_BFC02304 = cpu->gpr[0]; uint32_t psx_brB_BFC02304 = cpu->gpr[0]; @@ -7048,14 +8452,23 @@ label_BFC02304: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[2] + (-87)); if (psx_taken_BFC02304) goto label_BFC02314; label_BFC0230C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0230C: 3C030098 lui $v1, 0x98 */ cpu->gpr[3] = 0x00980000u; label_BFC02310: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC02310: 3463967F ori $v1, $v1, 0x967F */ cpu->gpr[3] = cpu->gpr[3] | 0x967Fu; label_BFC02314: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC02314: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02314u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -7078,6 +8491,9 @@ void func_1FC02590(CPUState* cpu) { } } label_BFC02590: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC02590: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -7089,6 +8505,9 @@ label_BFC02590: cpu->gpr[31] = 0xBFC025A0u; psx_dispatch(cpu, 0xBFC02324u); label_BFC025A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC025A0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC025A0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -7113,6 +8532,9 @@ void func_1FC025B0(CPUState* cpu) { } } label_BFC025B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC025B0: 27BDFFC0 addiu $sp, $sp, -64 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-64)); @@ -7137,6 +8559,9 @@ label_BFC025B0: cpu->gpr[18] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC025D0) goto label_BFC025E0; label_BFC025D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC025D8: 10000051 beq $zero, $zero, 0xBFC02720 */ uint32_t psx_brA_BFC025D8 = cpu->gpr[0]; uint32_t psx_brB_BFC025D8 = cpu->gpr[0]; @@ -7145,6 +8570,9 @@ label_BFC025D8: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC025D8) goto label_BFC02720; label_BFC025E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC025E0: AFB0002C sw $s0, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC025E0u); return; } g_debug_last_store_pc = 0xBFC025E0u; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -7171,6 +8599,9 @@ label_BFC025E0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[19] < (2) ? 1 : 0); if (psx_taken_BFC02604) goto label_BFC02630; label_BFC0260C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC0260C: 82240001 lb $a0, 1($s1) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (1))); @@ -7193,6 +8624,9 @@ label_BFC0260C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[19] < (2) ? 1 : 0); if (psx_taken_BFC02628) goto label_BFC0260C; label_BFC02630: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02630: 14200003 bne $at, $zero, 0xBFC02640 */ uint32_t psx_brA_BFC02630 = cpu->gpr[1]; uint32_t psx_brB_BFC02630 = cpu->gpr[0]; @@ -7201,6 +8635,9 @@ label_BFC02630: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[19] < (37) ? 1 : 0); if (psx_taken_BFC02630) goto label_BFC02640; label_BFC02638: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02638: 14200002 bne $at, $zero, 0xBFC02644 */ uint32_t psx_brA_BFC02638 = cpu->gpr[1]; uint32_t psx_brB_BFC02638 = cpu->gpr[0]; @@ -7209,10 +8646,16 @@ label_BFC02638: /* nop */ if (psx_taken_BFC02638) goto label_BFC02644; label_BFC02640: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC02640: 00009821 addu $s3, $zero, $zero */ cpu->gpr[19] = cpu->gpr[0] + cpu->gpr[0]; label_BFC02644: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02644: 16600003 bne $s3, $zero, 0xBFC02654 */ uint32_t psx_brA_BFC02644 = cpu->gpr[19]; uint32_t psx_brB_BFC02644 = cpu->gpr[0]; @@ -7221,12 +8664,18 @@ label_BFC02644: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (48)); if (psx_taken_BFC02644) goto label_BFC02654; label_BFC0264C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0264C: 2413000A addiu $s3, $zero, 10 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); /* 0xBFC02650: 24010030 addiu $at, $zero, 48 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (48)); label_BFC02654: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02654: 14810015 bne $a0, $at, 0xBFC026AC */ uint32_t psx_brA_BFC02654 = cpu->gpr[4]; uint32_t psx_brB_BFC02654 = cpu->gpr[1]; @@ -7235,6 +8684,9 @@ label_BFC02654: /* nop */ if (psx_taken_BFC02654) goto label_BFC026AC; label_BFC0265C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0265C: 82240001 lb $a0, 1($s1) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (1))); @@ -7249,6 +8701,9 @@ label_BFC0265C: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); if (psx_taken_BFC02668) goto label_BFC0269C; label_BFC02670: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC02670: 24010058 addiu $at, $zero, 88 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (88)); @@ -7259,6 +8714,9 @@ label_BFC02670: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (98)); if (psx_taken_BFC02674) goto label_BFC0268C; label_BFC0267C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0267C: 10410007 beq $v0, $at, 0xBFC0269C */ uint32_t psx_brA_BFC0267C = cpu->gpr[2]; uint32_t psx_brB_BFC0267C = cpu->gpr[1]; @@ -7267,6 +8725,9 @@ label_BFC0267C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (120)); if (psx_taken_BFC0267C) goto label_BFC0269C; label_BFC02684: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02684: 14410012 bne $v0, $at, 0xBFC026D0 */ uint32_t psx_brA_BFC02684 = cpu->gpr[2]; uint32_t psx_brB_BFC02684 = cpu->gpr[1]; @@ -7275,6 +8736,9 @@ label_BFC02684: /* nop */ if (psx_taken_BFC02684) goto label_BFC026D0; label_BFC0268C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0268C: 82240001 lb $a0, 1($s1) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (1))); @@ -7287,6 +8751,9 @@ label_BFC0268C: cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); if (psx_taken_BFC02694) goto label_BFC026D0; label_BFC0269C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0269C: 82240001 lb $a0, 1($s1) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (1))); @@ -7299,6 +8766,9 @@ label_BFC0269C: cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC026A4) goto label_BFC026D0; label_BFC026AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC026AC: 0FF00BA8 jal 0xBFC02EA0 */ /* 0xBFC026B0: 00000000 nop */ @@ -7306,6 +8776,9 @@ label_BFC026AC: cpu->gpr[31] = 0xBFC026B4u; psx_dispatch(cpu, 0xBFC02EA0u); label_BFC026B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC026B4: 2401004F addiu $at, $zero, 79 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (79)); @@ -7316,18 +8789,27 @@ label_BFC026B4: /* nop */ if (psx_taken_BFC026B8) goto label_BFC026C8; label_BFC026C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC026C0: 26310001 addiu $s1, $s1, 1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); /* 0xBFC026C4: 24130008 addiu $s3, $zero, 8 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[0] + (8)); label_BFC026C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC026C8: 82240000 lb $a0, 0($s1) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (0))); /* 0xBFC026CC: 00000000 nop */ /* nop */ label_BFC026D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC026D0: 0FF008B0 jal 0xBFC022C0 */ /* 0xBFC026D4: 26310001 addiu $s1, $s1, 1 */ @@ -7335,6 +8817,9 @@ label_BFC026D0: cpu->gpr[31] = 0xBFC026D8u; psx_dispatch(cpu, 0xBFC022C0u); label_BFC026D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC026D8: 0053082B sltu $at, $v0, $s3 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < cpu->gpr[19] ? 1 : 0); @@ -7345,6 +8830,9 @@ label_BFC026D8: cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC026DC) goto label_BFC0270C; label_BFC026E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC026E4: 02530019 multu $s2, $s3 */ { uint64_t psx_p = (uint64_t)cpu->gpr[18] * (uint64_t)cpu->gpr[19]; cpu->lo = (uint32_t)(psx_p & 0xFFFFFFFFu); cpu->hi = (uint32_t)(psx_p >> 32); } @@ -7362,6 +8850,9 @@ label_BFC026E4: cpu->gpr[31] = 0xBFC02700u; psx_dispatch(cpu, 0xBFC022C0u); label_BFC02700: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC02700: 0053082B sltu $at, $v0, $s3 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < cpu->gpr[19] ? 1 : 0); @@ -7372,6 +8863,9 @@ label_BFC02700: cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC02704) goto label_BFC026E4; label_BFC0270C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0270C: 8FAC0044 lw $t4, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0270Cu); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -7384,6 +8878,9 @@ label_BFC0270C: /* 0xBFC0271C: 02401021 addu $v0, $s2, $zero */ cpu->gpr[2] = cpu->gpr[18] + cpu->gpr[0]; label_BFC02720: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC02720: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02720u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -7412,6 +8909,9 @@ void func_1FC02738(CPUState* cpu) { } } label_BFC02738: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC02738: 27BDFFB0 addiu $sp, $sp, -80 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-80)); @@ -7440,6 +8940,9 @@ label_BFC02738: cpu->gpr[18] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC02760) goto label_BFC02770; label_BFC02768: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02768: 10000064 beq $zero, $zero, 0xBFC028FC */ uint32_t psx_brA_BFC02768 = cpu->gpr[0]; uint32_t psx_brB_BFC02768 = cpu->gpr[0]; @@ -7448,6 +8951,9 @@ label_BFC02768: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC02768) goto label_BFC028FC; label_BFC02770: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC02770: AFB10034 sw $s1, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02770u); return; } g_debug_last_store_pc = 0xBFC02770u; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -7474,6 +8980,9 @@ label_BFC02770: /* nop */ if (psx_taken_BFC02794) goto label_BFC027C0; label_BFC0279C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC0279C: 82040001 lb $a0, 1($s0) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (1))); @@ -7496,6 +9005,9 @@ label_BFC0279C: /* nop */ if (psx_taken_BFC027B8) goto label_BFC0279C; label_BFC027C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC027C0: 2402002D addiu $v0, $zero, 45 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (45)); @@ -7506,6 +9018,9 @@ label_BFC027C0: cpu->gpr[1] = (uint32_t)(cpu->gpr[19] < 0x00000002u ? 1 : 0); if (psx_taken_BFC027C4) goto label_BFC027E0; label_BFC027CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC027CC: 82040001 lb $a0, 1($s0) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (1))); @@ -7518,10 +9033,16 @@ label_BFC027CC: cpu->gpr[20] = cpu->gpr[0] - cpu->gpr[20]; if (psx_taken_BFC027D4) goto label_BFC027CC; label_BFC027DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC027DC: 2E610002 sltiu $at, $s3, 2 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[19] < 0x00000002u ? 1 : 0); label_BFC027E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC027E0: 14200003 bne $at, $zero, 0xBFC027F0 */ uint32_t psx_brA_BFC027E0 = cpu->gpr[1]; uint32_t psx_brB_BFC027E0 = cpu->gpr[0]; @@ -7530,6 +9051,9 @@ label_BFC027E0: cpu->gpr[1] = (uint32_t)(cpu->gpr[19] < 0x00000025u ? 1 : 0); if (psx_taken_BFC027E0) goto label_BFC027F0; label_BFC027E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC027E8: 14200002 bne $at, $zero, 0xBFC027F4 */ uint32_t psx_brA_BFC027E8 = cpu->gpr[1]; uint32_t psx_brB_BFC027E8 = cpu->gpr[0]; @@ -7538,10 +9062,16 @@ label_BFC027E8: /* nop */ if (psx_taken_BFC027E8) goto label_BFC027F4; label_BFC027F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC027F0: 00009821 addu $s3, $zero, $zero */ cpu->gpr[19] = cpu->gpr[0] + cpu->gpr[0]; label_BFC027F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC027F4: 16600003 bne $s3, $zero, 0xBFC02804 */ uint32_t psx_brA_BFC027F4 = cpu->gpr[19]; uint32_t psx_brB_BFC027F4 = cpu->gpr[0]; @@ -7550,12 +9080,18 @@ label_BFC027F4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (48)); if (psx_taken_BFC027F4) goto label_BFC02804; label_BFC027FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC027FC: 2413000A addiu $s3, $zero, 10 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); /* 0xBFC02800: 24010030 addiu $at, $zero, 48 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (48)); label_BFC02804: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02804: 14810015 bne $a0, $at, 0xBFC0285C */ uint32_t psx_brA_BFC02804 = cpu->gpr[4]; uint32_t psx_brB_BFC02804 = cpu->gpr[1]; @@ -7564,6 +9100,9 @@ label_BFC02804: /* nop */ if (psx_taken_BFC02804) goto label_BFC0285C; label_BFC0280C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0280C: 82040001 lb $a0, 1($s0) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (1))); @@ -7578,6 +9117,9 @@ label_BFC0280C: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); if (psx_taken_BFC02818) goto label_BFC0284C; label_BFC02820: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC02820: 24010058 addiu $at, $zero, 88 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (88)); @@ -7588,6 +9130,9 @@ label_BFC02820: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (98)); if (psx_taken_BFC02824) goto label_BFC0283C; label_BFC0282C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0282C: 10410007 beq $v0, $at, 0xBFC0284C */ uint32_t psx_brA_BFC0282C = cpu->gpr[2]; uint32_t psx_brB_BFC0282C = cpu->gpr[1]; @@ -7596,6 +9141,9 @@ label_BFC0282C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (120)); if (psx_taken_BFC0282C) goto label_BFC0284C; label_BFC02834: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02834: 14410012 bne $v0, $at, 0xBFC02880 */ uint32_t psx_brA_BFC02834 = cpu->gpr[2]; uint32_t psx_brB_BFC02834 = cpu->gpr[1]; @@ -7604,6 +9152,9 @@ label_BFC02834: /* nop */ if (psx_taken_BFC02834) goto label_BFC02880; label_BFC0283C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0283C: 82040001 lb $a0, 1($s0) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (1))); @@ -7616,6 +9167,9 @@ label_BFC0283C: cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); if (psx_taken_BFC02844) goto label_BFC02880; label_BFC0284C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0284C: 82040001 lb $a0, 1($s0) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (1))); @@ -7628,6 +9182,9 @@ label_BFC0284C: cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC02854) goto label_BFC02880; label_BFC0285C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0285C: 0FF00BA8 jal 0xBFC02EA0 */ /* 0xBFC02860: 00000000 nop */ @@ -7635,6 +9192,9 @@ label_BFC0285C: cpu->gpr[31] = 0xBFC02864u; psx_dispatch(cpu, 0xBFC02EA0u); label_BFC02864: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC02864: 2401004F addiu $at, $zero, 79 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (79)); @@ -7645,18 +9205,27 @@ label_BFC02864: /* nop */ if (psx_taken_BFC02868) goto label_BFC02878; label_BFC02870: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02870: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); /* 0xBFC02874: 24130008 addiu $s3, $zero, 8 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[0] + (8)); label_BFC02878: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02878: 82040000 lb $a0, 0($s0) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (0))); /* 0xBFC0287C: 00000000 nop */ /* nop */ label_BFC02880: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02880: 0FF008B0 jal 0xBFC022C0 */ /* 0xBFC02884: 26100001 addiu $s0, $s0, 1 */ @@ -7664,6 +9233,9 @@ label_BFC02880: cpu->gpr[31] = 0xBFC02888u; psx_dispatch(cpu, 0xBFC022C0u); label_BFC02888: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC02888: 0053082B sltu $at, $v0, $s3 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < cpu->gpr[19] ? 1 : 0); @@ -7674,6 +9246,9 @@ label_BFC02888: cpu->gpr[17] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC0288C) goto label_BFC028DC; label_BFC02894: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC02894: 240CFFFF addiu $t4, $zero, -1 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -7688,10 +9263,16 @@ label_BFC02894: /* nop */ if (psx_taken_BFC028A0) goto label_BFC028AC; label_BFC028A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC028A8: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC028A8u); return; label_BFC028AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC028AC: 02530019 multu $s2, $s3 */ { uint64_t psx_p = (uint64_t)cpu->gpr[18] * (uint64_t)cpu->gpr[19]; cpu->lo = (uint32_t)(psx_p & 0xFFFFFFFFu); cpu->hi = (uint32_t)(psx_p >> 32); } @@ -7711,6 +9292,9 @@ label_BFC028AC: cpu->gpr[31] = 0xBFC028CCu; psx_dispatch(cpu, 0xBFC022C0u); label_BFC028CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC028CC: 8FA30038 lw $v1, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC028CCu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -7723,6 +9307,9 @@ label_BFC028CC: cpu->gpr[17] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC028D4) goto label_BFC028AC; label_BFC028DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC028DC: 02540019 multu $s2, $s4 */ { uint64_t psx_p = (uint64_t)cpu->gpr[18] * (uint64_t)cpu->gpr[20]; cpu->lo = (uint32_t)(psx_p & 0xFFFFFFFFu); cpu->hi = (uint32_t)(psx_p >> 32); } @@ -7741,6 +9328,9 @@ label_BFC028DC: /* 0xBFC028F8: 00000000 nop */ /* nop */ label_BFC028FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC028FC: 8FBF002C lw $ra, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC028FCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -7770,6 +9360,9 @@ void func_1FC02950(CPUState* cpu) { } } label_BFC02950: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC02950: 27BDFFB0 addiu $sp, $sp, -80 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-80)); @@ -7796,6 +9389,9 @@ label_BFC02950: cpu->gpr[18] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC02974) goto label_BFC02984; label_BFC0297C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0297C: 10000055 beq $zero, $zero, 0xBFC02AD4 */ uint32_t psx_brA_BFC0297C = cpu->gpr[0]; uint32_t psx_brB_BFC0297C = cpu->gpr[0]; @@ -7804,6 +9400,9 @@ label_BFC0297C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC0297C) goto label_BFC02AD4; label_BFC02984: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC02984: AFB10030 sw $s1, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02984u); return; } g_debug_last_store_pc = 0xBFC02984u; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -7830,6 +9429,9 @@ label_BFC02984: /* nop */ if (psx_taken_BFC029A8) goto label_BFC029D4; label_BFC029B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC029B0: 82040001 lb $a0, 1($s0) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (1))); @@ -7852,6 +9454,9 @@ label_BFC029B0: /* nop */ if (psx_taken_BFC029CC) goto label_BFC029B0; label_BFC029D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC029D4: 2402002D addiu $v0, $zero, 45 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (45)); @@ -7862,6 +9467,9 @@ label_BFC029D4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (48)); if (psx_taken_BFC029D8) goto label_BFC029F4; label_BFC029E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC029E0: 82040001 lb $a0, 1($s0) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (1))); @@ -7874,10 +9482,16 @@ label_BFC029E0: cpu->gpr[22] = cpu->gpr[0] - cpu->gpr[22]; if (psx_taken_BFC029E8) goto label_BFC029E0; label_BFC029F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC029F0: 24010030 addiu $at, $zero, 48 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (48)); label_BFC029F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC029F4: 14810017 bne $a0, $at, 0xBFC02A54 */ uint32_t psx_brA_BFC029F4 = cpu->gpr[4]; uint32_t psx_brB_BFC029F4 = cpu->gpr[1]; @@ -7886,6 +9500,9 @@ label_BFC029F4: /* nop */ if (psx_taken_BFC029F4) goto label_BFC02A54; label_BFC029FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC029FC: 82040001 lb $a0, 1($s0) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (1))); @@ -7898,6 +9515,9 @@ label_BFC029FC: cpu->gpr[2] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC02A04) goto label_BFC02A2C; label_BFC02A0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC02A0C: 82040001 lb $a0, 1($s0) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (1))); @@ -7910,6 +9530,9 @@ label_BFC02A0C: cpu->gpr[21] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); if (psx_taken_BFC02A14) goto label_BFC02A54; label_BFC02A1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC02A1C: 82040001 lb $a0, 1($s0) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (1))); @@ -7922,6 +9545,9 @@ label_BFC02A1C: cpu->gpr[21] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC02A24) goto label_BFC02A54; label_BFC02A2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC02A2C: 24010042 addiu $at, $zero, 66 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (66)); @@ -7932,6 +9558,9 @@ label_BFC02A2C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (88)); if (psx_taken_BFC02A30) goto label_BFC02A1C; label_BFC02A38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02A38: 1041FFF4 beq $v0, $at, 0xBFC02A0C */ uint32_t psx_brA_BFC02A38 = cpu->gpr[2]; uint32_t psx_brB_BFC02A38 = cpu->gpr[1]; @@ -7940,6 +9569,9 @@ label_BFC02A38: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (98)); if (psx_taken_BFC02A38) goto label_BFC02A0C; label_BFC02A40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02A40: 1041FFF6 beq $v0, $at, 0xBFC02A1C */ uint32_t psx_brA_BFC02A40 = cpu->gpr[2]; uint32_t psx_brB_BFC02A40 = cpu->gpr[1]; @@ -7948,6 +9580,9 @@ label_BFC02A40: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (120)); if (psx_taken_BFC02A40) goto label_BFC02A1C; label_BFC02A48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02A48: 1041FFF0 beq $v0, $at, 0xBFC02A0C */ uint32_t psx_brA_BFC02A48 = cpu->gpr[2]; uint32_t psx_brB_BFC02A48 = cpu->gpr[1]; @@ -7956,10 +9591,16 @@ label_BFC02A48: /* nop */ if (psx_taken_BFC02A48) goto label_BFC02A0C; label_BFC02A50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC02A50: 24150008 addiu $s5, $zero, 8 */ cpu->gpr[21] = (uint32_t)((int32_t)cpu->gpr[0] + (8)); label_BFC02A54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02A54: 0FF008B0 jal 0xBFC022C0 */ /* 0xBFC02A58: 26100001 addiu $s0, $s0, 1 */ @@ -7967,6 +9608,9 @@ label_BFC02A54: cpu->gpr[31] = 0xBFC02A5Cu; psx_dispatch(cpu, 0xBFC022C0u); label_BFC02A5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC02A5C: 0055082B sltu $at, $v0, $s5 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < cpu->gpr[21] ? 1 : 0); @@ -7977,6 +9621,9 @@ label_BFC02A5C: cpu->gpr[17] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC02A60) goto label_BFC02AC0; label_BFC02A68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC02A68: 240CFFFF addiu $t4, $zero, -1 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -7997,10 +9644,16 @@ label_BFC02A68: /* nop */ if (psx_taken_BFC02A80) goto label_BFC02A8C; label_BFC02A88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC02A88: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC02A88u); return; label_BFC02A8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC02A8C: 02550019 multu $s2, $s5 */ { uint64_t psx_p = (uint64_t)cpu->gpr[18] * (uint64_t)cpu->gpr[21]; cpu->lo = (uint32_t)(psx_p & 0xFFFFFFFFu); cpu->hi = (uint32_t)(psx_p >> 32); } @@ -8018,6 +9671,9 @@ label_BFC02A8C: cpu->gpr[31] = 0xBFC02AA8u; psx_dispatch(cpu, 0xBFC022C0u); label_BFC02AA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC02AA8: 0055082B sltu $at, $v0, $s5 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < cpu->gpr[21] ? 1 : 0); @@ -8028,6 +9684,9 @@ label_BFC02AA8: cpu->gpr[17] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC02AAC) goto label_BFC02A8C; label_BFC02AB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC02AB4: 8FB3002C lw $s3, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02AB4u); return; } cpu->gpr[19] = cpu->read_word(psx_addr); } @@ -8036,6 +9695,9 @@ label_BFC02AB4: /* 0xBFC02ABC: 00000000 nop */ /* nop */ label_BFC02AC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC02AC0: 02560019 multu $s2, $s6 */ { uint64_t psx_p = (uint64_t)cpu->gpr[18] * (uint64_t)cpu->gpr[22]; cpu->lo = (uint32_t)(psx_p & 0xFFFFFFFFu); cpu->hi = (uint32_t)(psx_p >> 32); } @@ -8048,6 +9710,9 @@ label_BFC02AC0: /* 0xBFC02AD0: 00000000 nop */ /* nop */ label_BFC02AD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC02AD4: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02AD4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -8076,6 +9741,9 @@ void func_1FC02AF0(CPUState* cpu) { } } label_BFC02AF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC02AF0: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -8087,6 +9755,9 @@ label_BFC02AF0: cpu->gpr[31] = 0xBFC02B00u; psx_dispatch(cpu, 0xBFC02950u); label_BFC02B00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC02B00: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02B00u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -8109,6 +9780,9 @@ void func_1FC02B10(CPUState* cpu) { } } label_BFC02B10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC02B10: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -8124,6 +9798,9 @@ label_BFC02B10: cpu->gpr[31] = 0xBFC02B28u; psx_dispatch(cpu, 0xBFC02738u); label_BFC02B28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC02B28: 8FAE002C lw $t6, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02B28u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -8144,6 +9821,9 @@ label_BFC02B28: void func_1FC02B50(CPUState* cpu) { debug_server_log_call_entry(0x1FC02B50u); label_BFC02B50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02B50: 14800003 bne $a0, $zero, 0xBFC02B60 */ uint32_t psx_brA_BFC02B50 = cpu->gpr[4]; uint32_t psx_brB_BFC02B50 = cpu->gpr[0]; @@ -8152,12 +9832,18 @@ label_BFC02B50: /* nop */ if (psx_taken_BFC02B50) goto label_BFC02B60; label_BFC02B58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02B58: 03E00008 jr $ra */ /* 0xBFC02B5C: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; return; label_BFC02B60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02B60: 18C00007 blez $a2, 0xBFC02B80 */ uint32_t psx_brA_BFC02B60 = cpu->gpr[6]; @@ -8166,6 +9852,9 @@ label_BFC02B60: cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC02B60) goto label_BFC02B80; label_BFC02B68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC02B68: 90AE0000 lbu $t6, 0($a1) */ cpu->gpr[14] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (0))); @@ -8182,6 +9871,9 @@ label_BFC02B68: g_debug_last_store_pc = 0xBFC02B7Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (-1)), (uint8_t)(cpu->gpr[14] & 0xFFu)); if (psx_taken_BFC02B78) goto label_BFC02B68; label_BFC02B80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC02B80: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; @@ -8194,6 +9886,9 @@ label_BFC02B80: void func_1FC02CC0(CPUState* cpu) { debug_server_log_call_entry(0x1FC02CC0u); label_BFC02CC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02CC0: 10800003 beq $a0, $zero, 0xBFC02CD0 */ uint32_t psx_brA_BFC02CC0 = cpu->gpr[4]; uint32_t psx_brB_BFC02CC0 = cpu->gpr[0]; @@ -8202,6 +9897,9 @@ label_BFC02CC0: cpu->gpr[5] = cpu->gpr[5] & 0xFFu; if (psx_taken_BFC02CC0) goto label_BFC02CD0; label_BFC02CC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02CC8: 1CC00004 bgtz $a2, 0xBFC02CDC */ uint32_t psx_brA_BFC02CC8 = cpu->gpr[6]; @@ -8210,12 +9908,18 @@ label_BFC02CC8: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (-1)); if (psx_taken_BFC02CC8) goto label_BFC02CDC; label_BFC02CD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02CD0: 03E00008 jr $ra */ /* 0xBFC02CD4: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; return; label_BFC02CDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02CDC: 04C0000B bltz $a2, 0xBFC02D0C */ uint32_t psx_brA_BFC02CDC = cpu->gpr[6]; @@ -8224,6 +9928,9 @@ label_BFC02CDC: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC02CDC) goto label_BFC02D0C; label_BFC02CE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC02CE4: 90820000 lbu $v0, 0($a0) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (0))); @@ -8236,12 +9943,18 @@ label_BFC02CE4: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (-1)); if (psx_taken_BFC02CEC) goto label_BFC02D00; label_BFC02CF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02CF4: 03E00008 jr $ra */ /* 0xBFC02CF8: 2482FFFF addiu $v0, $a0, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[4] + (-1)); return; label_BFC02D00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02D00: 04C1FFF8 bgez $a2, 0xBFC02CE4 */ uint32_t psx_brA_BFC02D00 = cpu->gpr[6]; @@ -8250,10 +9963,16 @@ label_BFC02D00: /* nop */ if (psx_taken_BFC02D00) goto label_BFC02CE4; label_BFC02D08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC02D08: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC02D0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02D0C: 03E00008 jr $ra */ /* 0xBFC02D10: 00000000 nop */ @@ -8272,6 +9991,9 @@ void func_1FC02D20(CPUState* cpu) { } } label_BFC02D20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC02D20: 27BDFFD0 addiu $sp, $sp, -48 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-48)); @@ -8298,6 +10020,9 @@ label_BFC02D20: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02D48u); return; } g_debug_last_store_pc = 0xBFC02D48u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC02D44) goto label_BFC02D8C; label_BFC02D4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC02D4C: AFB20028 sw $s2, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02D4Cu); return; } g_debug_last_store_pc = 0xBFC02D4Cu; cpu->write_word(psx_addr, cpu->gpr[18]); } @@ -8306,6 +10031,9 @@ label_BFC02D4C: /* 0xBFC02D54: 00000000 nop */ /* nop */ label_BFC02D58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC02D58: 02602021 addu $a0, $s3, $zero */ cpu->gpr[4] = cpu->gpr[19] + cpu->gpr[0]; @@ -8315,6 +10043,9 @@ label_BFC02D58: cpu->gpr[31] = 0xBFC02D64u; psx_dispatch(cpu, cpu->gpr[18]); label_BFC02D64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02D64: 14400005 bne $v0, $zero, 0xBFC02D7C */ uint32_t psx_brA_BFC02D64 = cpu->gpr[2]; uint32_t psx_brB_BFC02D64 = cpu->gpr[0]; @@ -8323,6 +10054,9 @@ label_BFC02D64: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); if (psx_taken_BFC02D64) goto label_BFC02D7C; label_BFC02D6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC02D6C: 8FB20028 lw $s2, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02D6Cu); return; } cpu->gpr[18] = cpu->read_word(psx_addr); } @@ -8333,10 +10067,16 @@ label_BFC02D6C: cpu->gpr[2] = cpu->gpr[17] + cpu->gpr[0]; if (psx_taken_BFC02D70) goto label_BFC02D90; label_BFC02D78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC02D78: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); label_BFC02D7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02D7C: 0601FFF6 bgez $s0, 0xBFC02D58 */ uint32_t psx_brA_BFC02D7C = cpu->gpr[16]; @@ -8345,16 +10085,25 @@ label_BFC02D7C: cpu->gpr[17] = cpu->gpr[17] + cpu->gpr[20]; if (psx_taken_BFC02D7C) goto label_BFC02D58; label_BFC02D84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02D84: 8FB20028 lw $s2, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02D84u); return; } cpu->gpr[18] = cpu->read_word(psx_addr); } /* 0xBFC02D88: 00000000 nop */ /* nop */ label_BFC02D8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC02D8C: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC02D90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC02D90: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02D90u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -8384,6 +10133,9 @@ void func_1FC02DAC(CPUState* cpu) { } } label_BFC02DAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC02DAC: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -8418,6 +10170,9 @@ label_BFC02DAC: cpu->gpr[18] = cpu->gpr[6] + cpu->gpr[0]; if (psx_taken_BFC02DE0) goto label_BFC02DF4; label_BFC02DE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC02DE8: 8FB30048 lw $s3, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02DE8u); return; } cpu->gpr[19] = cpu->read_word(psx_addr); } @@ -8428,12 +10183,18 @@ label_BFC02DE8: /* nop */ if (psx_taken_BFC02DEC) goto label_BFC02E48; label_BFC02DF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02DF4: 8FB30048 lw $s3, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02DF4u); return; } cpu->gpr[19] = cpu->read_word(psx_addr); } /* 0xBFC02DF8: 00000000 nop */ /* nop */ label_BFC02DFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC02DFC: 02B10019 multu $s5, $s1 */ { uint64_t psx_p = (uint64_t)cpu->gpr[21] * (uint64_t)cpu->gpr[17]; cpu->lo = (uint32_t)(psx_p & 0xFFFFFFFFu); cpu->hi = (uint32_t)(psx_p >> 32); } @@ -8446,10 +10207,16 @@ label_BFC02DFC: cpu->gpr[1] = cpu->gpr[16] + cpu->gpr[0]; if (psx_taken_BFC02E04) goto label_BFC02E10; label_BFC02E0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC02E0C: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC02E10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC02E10: 00018043 sra $s0, $at, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -8465,6 +10232,9 @@ label_BFC02E10: cpu->gpr[31] = 0xBFC02E28u; psx_dispatch(cpu, cpu->gpr[19]); label_BFC02E28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02E28: 04410003 bgez $v0, 0xBFC02E38 */ uint32_t psx_brA_BFC02E28 = cpu->gpr[2]; @@ -8473,6 +10243,9 @@ label_BFC02E28: /* nop */ if (psx_taken_BFC02E28) goto label_BFC02E38; label_BFC02E30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02E30: 10000002 beq $zero, $zero, 0xBFC02E3C */ uint32_t psx_brA_BFC02E30 = cpu->gpr[0]; uint32_t psx_brB_BFC02E30 = cpu->gpr[0]; @@ -8481,10 +10254,16 @@ label_BFC02E30: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); if (psx_taken_BFC02E30) goto label_BFC02E3C; label_BFC02E38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC02E38: 02009021 addu $s2, $s0, $zero */ cpu->gpr[18] = cpu->gpr[16] + cpu->gpr[0]; label_BFC02E3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC02E3C: 0232082A slt $at, $s1, $s2 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[17] < (int32_t)cpu->gpr[18] ? 1 : 0); @@ -8495,6 +10274,9 @@ label_BFC02E3C: /* nop */ if (psx_taken_BFC02E40) goto label_BFC02DFC; label_BFC02E48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC02E48: 02B10019 multu $s5, $s1 */ { uint64_t psx_p = (uint64_t)cpu->gpr[21] * (uint64_t)cpu->gpr[17]; cpu->lo = (uint32_t)(psx_p & 0xFFFFFFFFu); cpu->hi = (uint32_t)(psx_p >> 32); } @@ -8510,6 +10292,9 @@ label_BFC02E48: cpu->gpr[31] = 0xBFC02E60u; psx_dispatch(cpu, cpu->gpr[19]); label_BFC02E60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02E60: 14400004 bne $v0, $zero, 0xBFC02E74 */ uint32_t psx_brA_BFC02E60 = cpu->gpr[2]; uint32_t psx_brB_BFC02E60 = cpu->gpr[0]; @@ -8518,6 +10303,9 @@ label_BFC02E60: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC02E60) goto label_BFC02E74; label_BFC02E68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02E68: 10000002 beq $zero, $zero, 0xBFC02E74 */ uint32_t psx_brA_BFC02E68 = cpu->gpr[0]; uint32_t psx_brB_BFC02E68 = cpu->gpr[0]; @@ -8526,10 +10314,16 @@ label_BFC02E68: cpu->gpr[2] = cpu->gpr[16] + cpu->gpr[0]; if (psx_taken_BFC02E68) goto label_BFC02E74; label_BFC02E70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC02E70: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC02E74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC02E74: 8FBF0034 lw $ra, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02E74u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -8556,6 +10350,9 @@ label_BFC02E74: void func_1FC02EA0(CPUState* cpu) { debug_server_log_call_entry(0x1FC02EA0u); label_BFC02EA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC02EA0: 00042600 sll $a0, $a0, 24 */ cpu->gpr[4] = cpu->gpr[4] << 24u; @@ -8580,6 +10377,9 @@ label_BFC02EA0: /* nop */ if (psx_taken_BFC02EC0) goto label_BFC02ED4; label_BFC02EC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC02EC8: 2444FFE0 addiu $a0, $v0, -32 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[2] + (-32)); @@ -8588,6 +10388,9 @@ label_BFC02EC8: /* 0xBFC02ED0: 00042603 sra $a0, $a0, 24 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] >> 24u); label_BFC02ED4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02ED4: 03E00008 jr $ra */ /* 0xBFC02ED8: 00801021 addu $v0, $a0, $zero */ @@ -8598,6 +10401,9 @@ label_BFC02ED4: void func_1FC02EDC(CPUState* cpu) { debug_server_log_call_entry(0x1FC02EDCu); label_BFC02EDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC02EDC: 00042600 sll $a0, $a0, 24 */ cpu->gpr[4] = cpu->gpr[4] << 24u; @@ -8622,6 +10428,9 @@ label_BFC02EDC: /* nop */ if (psx_taken_BFC02EFC) goto label_BFC02F10; label_BFC02F04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC02F04: 24440020 addiu $a0, $v0, 32 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[2] + (32)); @@ -8630,6 +10439,9 @@ label_BFC02F04: /* 0xBFC02F0C: 00042603 sra $a0, $a0, 24 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] >> 24u); label_BFC02F10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02F10: 03E00008 jr $ra */ /* 0xBFC02F14: 00801021 addu $v0, $a0, $zero */ @@ -8653,6 +10465,9 @@ void func_1FC02F20(CPUState* cpu) { } } label_BFC02F20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC02F20: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -8683,6 +10498,9 @@ label_BFC02F20: /* 0xBFC02F54: AFB00014 sw $s0, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02F54u); return; } g_debug_last_store_pc = 0xBFC02F54u; cpu->write_word(psx_addr, cpu->gpr[16]); } label_BFC02F58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC02F58: 02F5082A slt $at, $s7, $s5 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[23] < (int32_t)cpu->gpr[21] ? 1 : 0); @@ -8693,6 +10511,9 @@ label_BFC02F58: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC02F60u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC02F5C) goto label_BFC03070; label_BFC02F64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC02F64: 02F52021 addu $a0, $s7, $s5 */ cpu->gpr[4] = cpu->gpr[23] + cpu->gpr[21]; @@ -8703,10 +10524,16 @@ label_BFC02F64: cpu->gpr[1] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC02F68) goto label_BFC02F74; label_BFC02F70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC02F70: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC02F74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC02F74: 00012043 sra $a0, $at, 1 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -8718,6 +10545,9 @@ label_BFC02F74: cpu->gpr[31] = 0xBFC02F84u; psx_dispatch(cpu, 0xBFC03104u); label_BFC02F84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC02F84: 02B7082A slt $at, $s5, $s7 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[21] < (int32_t)cpu->gpr[23] ? 1 : 0); @@ -8730,6 +10560,9 @@ label_BFC02F84: cpu->gpr[16] = cpu->gpr[21] + cpu->gpr[0]; if (psx_taken_BFC02F8C) goto label_BFC03040; label_BFC02F94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC02F94: 02910019 multu $s4, $s1 */ { uint64_t psx_p = (uint64_t)cpu->gpr[20] * (uint64_t)cpu->gpr[17]; cpu->lo = (uint32_t)(psx_p & 0xFFFFFFFFu); cpu->hi = (uint32_t)(psx_p >> 32); } @@ -8748,6 +10581,9 @@ label_BFC02F94: /* 0xBFC02FB0: 00000000 nop */ /* nop */ label_BFC02FB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC02FB4: 3C02A001 lui $v0, 0xA001 */ cpu->gpr[2] = 0xA0010000u; @@ -8765,6 +10601,9 @@ label_BFC02FB4: cpu->gpr[31] = 0xBFC02FD0u; psx_dispatch(cpu, cpu->gpr[22]); label_BFC02FD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02FD0: 04410003 bgez $v0, 0xBFC02FE0 */ uint32_t psx_brA_BFC02FD0 = cpu->gpr[2]; @@ -8773,6 +10612,9 @@ label_BFC02FD0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[17] < (int32_t)cpu->gpr[16] ? 1 : 0); if (psx_taken_BFC02FD0) goto label_BFC02FE0; label_BFC02FD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC02FD8: 1420FFF6 bne $at, $zero, 0xBFC02FB4 */ uint32_t psx_brA_BFC02FD8 = cpu->gpr[1]; uint32_t psx_brB_BFC02FD8 = cpu->gpr[0]; @@ -8781,6 +10623,9 @@ label_BFC02FD8: /* nop */ if (psx_taken_BFC02FD8) goto label_BFC02FB4; label_BFC02FE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC02FE0: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); @@ -8793,6 +10638,9 @@ label_BFC02FE0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[17] < (int32_t)cpu->gpr[16] ? 1 : 0); if (psx_taken_BFC02FE8) goto label_BFC0301C; label_BFC02FF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC02FF0: 02900019 multu $s4, $s0 */ { uint64_t psx_p = (uint64_t)cpu->gpr[20] * (uint64_t)cpu->gpr[16]; cpu->lo = (uint32_t)(psx_p & 0xFFFFFFFFu); cpu->hi = (uint32_t)(psx_p >> 32); } @@ -8814,6 +10662,9 @@ label_BFC02FF0: cpu->gpr[31] = 0xBFC03014u; psx_dispatch(cpu, cpu->gpr[22]); label_BFC03014: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03014: 1C40FFF2 bgtz $v0, 0xBFC02FE0 */ uint32_t psx_brA_BFC03014 = cpu->gpr[2]; @@ -8822,6 +10673,9 @@ label_BFC03014: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[17] < (int32_t)cpu->gpr[16] ? 1 : 0); if (psx_taken_BFC03014) goto label_BFC02FE0; label_BFC0301C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0301C: 10200006 beq $at, $zero, 0xBFC03038 */ uint32_t psx_brA_BFC0301C = cpu->gpr[1]; uint32_t psx_brB_BFC0301C = cpu->gpr[0]; @@ -8830,6 +10684,9 @@ label_BFC0301C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[17] < (int32_t)cpu->gpr[16] ? 1 : 0); if (psx_taken_BFC0301C) goto label_BFC03038; label_BFC03024: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03024: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -8841,10 +10698,16 @@ label_BFC03024: cpu->gpr[31] = 0xBFC03034u; psx_dispatch(cpu, 0xBFC03104u); label_BFC03034: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC03034: 0230082A slt $at, $s1, $s0 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[17] < (int32_t)cpu->gpr[16] ? 1 : 0); label_BFC03038: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03038: 1420FFDE bne $at, $zero, 0xBFC02FB4 */ uint32_t psx_brA_BFC03038 = cpu->gpr[1]; uint32_t psx_brB_BFC03038 = cpu->gpr[0]; @@ -8853,6 +10716,9 @@ label_BFC03038: /* nop */ if (psx_taken_BFC03038) goto label_BFC02FB4; label_BFC03040: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03040: 02A02021 addu $a0, $s5, $zero */ cpu->gpr[4] = cpu->gpr[21] + cpu->gpr[0]; @@ -8864,6 +10730,9 @@ label_BFC03040: cpu->gpr[31] = 0xBFC03050u; psx_dispatch(cpu, 0xBFC03104u); label_BFC03050: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC03050: 02E02021 addu $a0, $s7, $zero */ cpu->gpr[4] = cpu->gpr[23] + cpu->gpr[0]; @@ -8877,6 +10746,9 @@ label_BFC03050: cpu->gpr[31] = 0xBFC03064u; psx_dispatch(cpu, 0xBFC02F20u); label_BFC03064: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03064: 1000FFBC beq $zero, $zero, 0xBFC02F58 */ uint32_t psx_brA_BFC03064 = cpu->gpr[0]; uint32_t psx_brB_BFC03064 = cpu->gpr[0]; @@ -8885,10 +10757,16 @@ label_BFC03064: cpu->gpr[23] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); if (psx_taken_BFC03064) goto label_BFC02F58; label_BFC0306C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0306C: 8FBF0034 lw $ra, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0306Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC03070: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC03070: 8FB00014 lw $s0, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03070u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -8925,6 +10803,9 @@ void func_1FC03098(CPUState* cpu) { } } label_BFC03098: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC03098: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -8948,6 +10829,9 @@ label_BFC03098: cpu->gpr[31] = 0xBFC030C0u; psx_dispatch(cpu, 0xBFC01E5Cu); label_BFC030C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC030C0: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -8958,6 +10842,9 @@ label_BFC030C0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28636)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC030C8u); return; } g_debug_last_store_pc = 0xBFC030C8u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC030C4) goto label_BFC030F4; label_BFC030CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC030CC: 8FA5002C lw $a1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC030CCu); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -8973,6 +10860,9 @@ label_BFC030CC: cpu->gpr[31] = 0xBFC030E4u; psx_dispatch(cpu, 0xBFC02F20u); label_BFC030E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC030E4: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -8984,6 +10874,9 @@ label_BFC030E4: cpu->gpr[31] = 0xBFC030F4u; psx_dispatch(cpu, 0xBFC020F0u); label_BFC030F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC030F4: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC030F4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -9008,6 +10901,9 @@ void func_1FC03104(CPUState* cpu) { } } label_BFC03104: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC03104: 00801821 addu $v1, $a0, $zero */ cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[0]; @@ -9047,6 +10943,9 @@ label_BFC03104: cpu->gpr[31] = 0xBFC0314Cu; psx_dispatch(cpu, 0xBFC02B50u); label_BFC0314C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0314C: 8FA60030 lw $a2, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0314Cu); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -9060,6 +10959,9 @@ label_BFC0314C: cpu->gpr[31] = 0xBFC03160u; psx_dispatch(cpu, 0xBFC02B50u); label_BFC03160: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC03160: 3C05A001 lui $a1, 0xA001 */ cpu->gpr[5] = 0xA0010000u; @@ -9075,6 +10977,9 @@ label_BFC03160: cpu->gpr[31] = 0xBFC03178u; psx_dispatch(cpu, 0xBFC02B50u); label_BFC03178: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03178: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03178u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -9089,6 +10994,9 @@ label_BFC03178: void func_1FC03190(CPUState* cpu) { debug_server_log_call_entry(0x1FC03190u); label_BFC03190: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03190: 10800003 beq $a0, $zero, 0xBFC031A0 */ uint32_t psx_brA_BFC03190 = cpu->gpr[4]; uint32_t psx_brB_BFC03190 = cpu->gpr[0]; @@ -9097,6 +11005,9 @@ label_BFC03190: /* nop */ if (psx_taken_BFC03190) goto label_BFC031A0; label_BFC03198: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03198: 14A00003 bne $a1, $zero, 0xBFC031A8 */ uint32_t psx_brA_BFC03198 = cpu->gpr[5]; uint32_t psx_brB_BFC03198 = cpu->gpr[0]; @@ -9105,12 +11016,18 @@ label_BFC03198: /* nop */ if (psx_taken_BFC03198) goto label_BFC031A8; label_BFC031A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC031A0: 03E00008 jr $ra */ /* 0xBFC031A4: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; return; label_BFC031A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC031A8: 80820000 lb $v0, 0($a0) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (0))); @@ -9123,6 +11040,9 @@ label_BFC031A8: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (1)); if (psx_taken_BFC031B0) goto label_BFC031C8; label_BFC031B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC031B8: 80820000 lb $v0, 0($a0) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (0))); @@ -9135,6 +11055,9 @@ label_BFC031B8: /* nop */ if (psx_taken_BFC031C0) goto label_BFC031B8; label_BFC031C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC031C8: 80A20000 lb $v0, 0($a1) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (0))); @@ -9151,6 +11074,9 @@ label_BFC031C8: g_debug_last_store_pc = 0xBFC031DCu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (-1)), (uint8_t)(cpu->gpr[2] & 0xFFu)); if (psx_taken_BFC031D8) goto label_BFC031F4; label_BFC031E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC031E0: 80A20000 lb $v0, 0($a1) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (0))); @@ -9165,6 +11091,9 @@ label_BFC031E0: g_debug_last_store_pc = 0xBFC031F0u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (-1)), (uint8_t)(cpu->gpr[2] & 0xFFu)); if (psx_taken_BFC031EC) goto label_BFC031E0; label_BFC031F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC031F4: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; @@ -9177,6 +11106,9 @@ label_BFC031F4: void func_1FC03288(CPUState* cpu) { debug_server_log_call_entry(0x1FC03288u); label_BFC03288: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03288: 10800003 beq $a0, $zero, 0xBFC03298 */ uint32_t psx_brA_BFC03288 = cpu->gpr[4]; uint32_t psx_brB_BFC03288 = cpu->gpr[0]; @@ -9185,6 +11117,9 @@ label_BFC03288: /* nop */ if (psx_taken_BFC03288) goto label_BFC03298; label_BFC03290: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03290: 14A0000B bne $a1, $zero, 0xBFC032C0 */ uint32_t psx_brA_BFC03290 = cpu->gpr[5]; uint32_t psx_brB_BFC03290 = cpu->gpr[0]; @@ -9193,6 +11128,9 @@ label_BFC03290: /* nop */ if (psx_taken_BFC03290) goto label_BFC032C0; label_BFC03298: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03298: 14850003 bne $a0, $a1, 0xBFC032A8 */ uint32_t psx_brA_BFC03298 = cpu->gpr[4]; uint32_t psx_brB_BFC03298 = cpu->gpr[5]; @@ -9201,12 +11139,18 @@ label_BFC03298: /* nop */ if (psx_taken_BFC03298) goto label_BFC032A8; label_BFC032A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC032A0: 03E00008 jr $ra */ /* 0xBFC032A4: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; return; label_BFC032A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC032A8: 14800003 bne $a0, $zero, 0xBFC032B8 */ uint32_t psx_brA_BFC032A8 = cpu->gpr[4]; uint32_t psx_brB_BFC032A8 = cpu->gpr[0]; @@ -9215,18 +11159,27 @@ label_BFC032A8: /* nop */ if (psx_taken_BFC032A8) goto label_BFC032B8; label_BFC032B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC032B0: 03E00008 jr $ra */ /* 0xBFC032B4: 2402FFFF addiu $v0, $zero, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); return; label_BFC032B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC032B8: 03E00008 jr $ra */ /* 0xBFC032BC: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); return; label_BFC032C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC032C0: 80A20000 lb $v0, 0($a1) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (0))); @@ -9241,10 +11194,16 @@ label_BFC032C0: /* nop */ if (psx_taken_BFC032CC) goto label_BFC032FC; label_BFC032D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC032D4: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; label_BFC032D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC032D8: 14400003 bne $v0, $zero, 0xBFC032E8 */ uint32_t psx_brA_BFC032D8 = cpu->gpr[2]; uint32_t psx_brB_BFC032D8 = cpu->gpr[0]; @@ -9253,12 +11212,18 @@ label_BFC032D8: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (1)); if (psx_taken_BFC032D8) goto label_BFC032E8; label_BFC032E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC032E0: 03E00008 jr $ra */ /* 0xBFC032E4: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; return; label_BFC032E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC032E8: 80A20000 lb $v0, 0($a1) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (0))); @@ -9273,6 +11238,9 @@ label_BFC032E8: cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC032F4) goto label_BFC032D8; label_BFC032FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC032FC: 80AEFFFF lb $t6, -1($a1) */ cpu->gpr[14] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (-1))); @@ -9289,6 +11257,9 @@ label_BFC032FC: void func_1FC03310(CPUState* cpu) { debug_server_log_call_entry(0x1FC03310u); label_BFC03310: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03310: 10800003 beq $a0, $zero, 0xBFC03320 */ uint32_t psx_brA_BFC03310 = cpu->gpr[4]; uint32_t psx_brB_BFC03310 = cpu->gpr[0]; @@ -9297,6 +11268,9 @@ label_BFC03310: /* nop */ if (psx_taken_BFC03310) goto label_BFC03320; label_BFC03318: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03318: 14A0000C bne $a1, $zero, 0xBFC0334C */ uint32_t psx_brA_BFC03318 = cpu->gpr[5]; uint32_t psx_brB_BFC03318 = cpu->gpr[0]; @@ -9305,6 +11279,9 @@ label_BFC03318: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (-1)); if (psx_taken_BFC03318) goto label_BFC0334C; label_BFC03320: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03320: 14850003 bne $a0, $a1, 0xBFC03330 */ uint32_t psx_brA_BFC03320 = cpu->gpr[4]; uint32_t psx_brB_BFC03320 = cpu->gpr[5]; @@ -9313,12 +11290,18 @@ label_BFC03320: /* nop */ if (psx_taken_BFC03320) goto label_BFC03330; label_BFC03328: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03328: 03E00008 jr $ra */ /* 0xBFC0332C: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; return; label_BFC03330: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03330: 14800003 bne $a0, $zero, 0xBFC03340 */ uint32_t psx_brA_BFC03330 = cpu->gpr[4]; uint32_t psx_brB_BFC03330 = cpu->gpr[0]; @@ -9327,18 +11310,27 @@ label_BFC03330: /* nop */ if (psx_taken_BFC03330) goto label_BFC03340; label_BFC03338: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03338: 03E00008 jr $ra */ /* 0xBFC0333C: 2402FFFF addiu $v0, $zero, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); return; label_BFC03340: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03340: 03E00008 jr $ra */ /* 0xBFC03344: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); return; label_BFC0334C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0334C: 04C00013 bltz $a2, 0xBFC0339C */ uint32_t psx_brA_BFC0334C = cpu->gpr[6]; @@ -9347,6 +11339,9 @@ label_BFC0334C: /* nop */ if (psx_taken_BFC0334C) goto label_BFC0339C; label_BFC03354: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC03354: 80A30000 lb $v1, 0($a1) */ cpu->gpr[3] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (0))); @@ -9361,10 +11356,16 @@ label_BFC03354: /* nop */ if (psx_taken_BFC03360) goto label_BFC0339C; label_BFC03368: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC03368: 00401821 addu $v1, $v0, $zero */ cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; label_BFC0336C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0336C: 14600003 bne $v1, $zero, 0xBFC0337C */ uint32_t psx_brA_BFC0336C = cpu->gpr[3]; uint32_t psx_brB_BFC0336C = cpu->gpr[0]; @@ -9373,12 +11374,18 @@ label_BFC0336C: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (1)); if (psx_taken_BFC0336C) goto label_BFC0337C; label_BFC03374: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03374: 03E00008 jr $ra */ /* 0xBFC03378: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; return; label_BFC0337C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0337C: 24C6FFFF addiu $a2, $a2, -1 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (-1)); @@ -9389,6 +11396,9 @@ label_BFC0337C: /* nop */ if (psx_taken_BFC03380) goto label_BFC0339C; label_BFC03388: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC03388: 80A30000 lb $v1, 0($a1) */ cpu->gpr[3] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (0))); @@ -9403,6 +11413,9 @@ label_BFC03388: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC03394) goto label_BFC0336C; label_BFC0339C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0339C: 04C10003 bgez $a2, 0xBFC033AC */ uint32_t psx_brA_BFC0339C = cpu->gpr[6]; @@ -9411,6 +11424,9 @@ label_BFC0339C: /* nop */ if (psx_taken_BFC0339C) goto label_BFC033AC; label_BFC033A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC033A4: 10000005 beq $zero, $zero, 0xBFC033BC */ uint32_t psx_brA_BFC033A4 = cpu->gpr[0]; uint32_t psx_brB_BFC033A4 = cpu->gpr[0]; @@ -9419,6 +11435,9 @@ label_BFC033A4: cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC033A4) goto label_BFC033BC; label_BFC033AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC033AC: 808E0000 lb $t6, 0($a0) */ cpu->gpr[14] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (0))); @@ -9429,6 +11448,9 @@ label_BFC033AC: /* 0xBFC033B8: 01CF1823 subu $v1, $t6, $t7 */ cpu->gpr[3] = cpu->gpr[14] - cpu->gpr[15]; label_BFC033BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC033BC: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; @@ -9441,6 +11463,9 @@ label_BFC033BC: void func_1FC033C8(CPUState* cpu) { debug_server_log_call_entry(0x1FC033C8u); label_BFC033C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC033C8: 10800003 beq $a0, $zero, 0xBFC033D8 */ uint32_t psx_brA_BFC033C8 = cpu->gpr[4]; uint32_t psx_brB_BFC033C8 = cpu->gpr[0]; @@ -9449,6 +11474,9 @@ label_BFC033C8: /* nop */ if (psx_taken_BFC033C8) goto label_BFC033D8; label_BFC033D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC033D0: 14A00003 bne $a1, $zero, 0xBFC033E0 */ uint32_t psx_brA_BFC033D0 = cpu->gpr[5]; uint32_t psx_brB_BFC033D0 = cpu->gpr[0]; @@ -9457,12 +11485,18 @@ label_BFC033D0: /* nop */ if (psx_taken_BFC033D0) goto label_BFC033E0; label_BFC033D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC033D8: 03E00008 jr $ra */ /* 0xBFC033DC: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; return; label_BFC033E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC033E0: 80A20000 lb $v0, 0($a1) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (0))); @@ -9479,6 +11513,9 @@ label_BFC033E0: g_debug_last_store_pc = 0xBFC033F4u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (-1)), (uint8_t)(cpu->gpr[2] & 0xFFu)); if (psx_taken_BFC033F0) goto label_BFC0340C; label_BFC033F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC033F8: 80A20000 lb $v0, 0($a1) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (0))); @@ -9493,6 +11530,9 @@ label_BFC033F8: g_debug_last_store_pc = 0xBFC03408u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (-1)), (uint8_t)(cpu->gpr[2] & 0xFFu)); if (psx_taken_BFC03404) goto label_BFC033F8; label_BFC0340C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0340C: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; @@ -9505,6 +11545,9 @@ label_BFC0340C: void func_1FC03418(CPUState* cpu) { debug_server_log_call_entry(0x1FC03418u); label_BFC03418: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03418: 10800003 beq $a0, $zero, 0xBFC03428 */ uint32_t psx_brA_BFC03418 = cpu->gpr[4]; uint32_t psx_brB_BFC03418 = cpu->gpr[0]; @@ -9513,6 +11556,9 @@ label_BFC03418: /* nop */ if (psx_taken_BFC03418) goto label_BFC03428; label_BFC03420: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03420: 14A00003 bne $a1, $zero, 0xBFC03430 */ uint32_t psx_brA_BFC03420 = cpu->gpr[5]; uint32_t psx_brB_BFC03420 = cpu->gpr[0]; @@ -9521,12 +11567,18 @@ label_BFC03420: /* nop */ if (psx_taken_BFC03420) goto label_BFC03430; label_BFC03428: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03428: 03E00008 jr $ra */ /* 0xBFC0342C: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; return; label_BFC03430: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC03430: 00801821 addu $v1, $a0, $zero */ cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[0]; @@ -9537,6 +11589,9 @@ label_BFC03430: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC03434) goto label_BFC03488; label_BFC0343C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0343C: 80A70000 lb $a3, 0($a1) */ cpu->gpr[7] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (0))); @@ -9551,6 +11606,9 @@ label_BFC0343C: g_debug_last_store_pc = 0xBFC0344Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (-1)), (uint8_t)(cpu->gpr[7] & 0xFFu)); if (psx_taken_BFC03448) goto label_BFC0347C; label_BFC03450: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03450: 24420001 addiu $v0, $v0, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (1)); @@ -9563,6 +11621,9 @@ label_BFC03450: /* nop */ if (psx_taken_BFC03458) goto label_BFC03474; label_BFC03460: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC03460: 24420001 addiu $v0, $v0, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (1)); @@ -9577,12 +11638,18 @@ label_BFC03460: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (1)); if (psx_taken_BFC0346C) goto label_BFC03460; label_BFC03474: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03474: 03E00008 jr $ra */ /* 0xBFC03478: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; return; label_BFC0347C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0347C: 24420001 addiu $v0, $v0, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (1)); @@ -9593,6 +11660,9 @@ label_BFC0347C: /* nop */ if (psx_taken_BFC03480) goto label_BFC0343C; label_BFC03488: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC03488: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; @@ -9605,6 +11675,9 @@ label_BFC03488: void func_1FC03494(CPUState* cpu) { debug_server_log_call_entry(0x1FC03494u); label_BFC03494: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03494: 14800003 bne $a0, $zero, 0xBFC034A4 */ uint32_t psx_brA_BFC03494 = cpu->gpr[4]; uint32_t psx_brB_BFC03494 = cpu->gpr[0]; @@ -9613,12 +11686,18 @@ label_BFC03494: cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC03494) goto label_BFC034A4; label_BFC0349C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0349C: 03E00008 jr $ra */ /* 0xBFC034A0: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; return; label_BFC034A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC034A4: 80820000 lb $v0, 0($a0) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (0))); @@ -9631,6 +11710,9 @@ label_BFC034A4: cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC034AC) goto label_BFC034C8; label_BFC034B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC034B4: 80820000 lb $v0, 0($a0) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (0))); @@ -9643,10 +11725,16 @@ label_BFC034B4: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (1)); if (psx_taken_BFC034BC) goto label_BFC034B4; label_BFC034C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC034C4: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; label_BFC034C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC034C8: 03E00008 jr $ra */ /* 0xBFC034CC: 00000000 nop */ @@ -9665,6 +11753,9 @@ void func_1FC03764(CPUState* cpu) { } } label_BFC03764: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC03764: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -9679,6 +11770,9 @@ label_BFC03764: cpu->gpr[7] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC03770) goto label_BFC03788; label_BFC03778: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03778: 3C05A001 lui $a1, 0xA001 */ cpu->gpr[5] = 0xA0010000u; @@ -9691,6 +11785,9 @@ label_BFC03778: cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (0))); if (psx_taken_BFC03780) goto label_BFC037AC; label_BFC03788: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC03788: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -9704,6 +11801,9 @@ label_BFC03788: cpu->gpr[31] = 0xBFC0379Cu; psx_dispatch(cpu, 0xBFC033C8u); label_BFC0379C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0379C: 3C05A001 lui $a1, 0xA001 */ cpu->gpr[5] = 0xA0010000u; @@ -9714,6 +11814,9 @@ label_BFC0379C: /* 0xBFC037A8: 80A40000 lb $a0, 0($a1) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (0))); label_BFC037AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC037AC: 00A04021 addu $t0, $a1, $zero */ cpu->gpr[8] = cpu->gpr[5] + cpu->gpr[0]; @@ -9724,12 +11827,18 @@ label_BFC037AC: /* nop */ if (psx_taken_BFC037B0) goto label_BFC037F8; label_BFC037B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC037B8: 80E60000 lb $a2, 0($a3) */ cpu->gpr[6] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[7] + (0))); /* 0xBFC037BC: 00000000 nop */ /* nop */ label_BFC037C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC037C0: 10C00009 beq $a2, $zero, 0xBFC037E8 */ uint32_t psx_brA_BFC037C0 = cpu->gpr[6]; uint32_t psx_brB_BFC037C0 = cpu->gpr[0]; @@ -9738,12 +11847,18 @@ label_BFC037C0: cpu->gpr[3] = cpu->gpr[7] + cpu->gpr[0]; if (psx_taken_BFC037C0) goto label_BFC037E8; label_BFC037C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC037C8: 80620000 lb $v0, 0($v1) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[3] + (0))); /* 0xBFC037CC: 00000000 nop */ /* nop */ label_BFC037D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC037D0: 1082000E beq $a0, $v0, 0xBFC0380C */ uint32_t psx_brA_BFC037D0 = cpu->gpr[4]; uint32_t psx_brB_BFC037D0 = cpu->gpr[2]; @@ -9752,6 +11867,9 @@ label_BFC037D0: /* nop */ if (psx_taken_BFC037D0) goto label_BFC0380C; label_BFC037D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC037D8: 80620001 lb $v0, 1($v1) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[3] + (1))); @@ -9764,6 +11882,9 @@ label_BFC037D8: /* nop */ if (psx_taken_BFC037E0) goto label_BFC037D0; label_BFC037E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC037E8: 80A40001 lb $a0, 1($a1) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (1))); @@ -9776,6 +11897,9 @@ label_BFC037E8: /* nop */ if (psx_taken_BFC037F0) goto label_BFC037C0; label_BFC037F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC037F8: 15050004 bne $t0, $a1, 0xBFC0380C */ uint32_t psx_brA_BFC037F8 = cpu->gpr[8]; uint32_t psx_brB_BFC037F8 = cpu->gpr[5]; @@ -9784,6 +11908,9 @@ label_BFC037F8: cpu->gpr[1] = 0xA0010000u; if (psx_taken_BFC037F8) goto label_BFC0380C; label_BFC03800: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC03800: AC259130 sw $a1, -28368($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28368)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03800u); return; } g_debug_last_store_pc = 0xBFC03800u; cpu->write_word(psx_addr, cpu->gpr[5]); } @@ -9794,6 +11921,9 @@ label_BFC03800: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC03804) goto label_BFC03884; label_BFC0380C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0380C: 10800011 beq $a0, $zero, 0xBFC03854 */ uint32_t psx_brA_BFC0380C = cpu->gpr[4]; uint32_t psx_brB_BFC0380C = cpu->gpr[0]; @@ -9802,6 +11932,9 @@ label_BFC0380C: /* nop */ if (psx_taken_BFC0380C) goto label_BFC03854; label_BFC03814: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03814: 80EE0000 lb $t6, 0($a3) */ cpu->gpr[14] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[7] + (0))); @@ -9814,12 +11947,18 @@ label_BFC03814: /* nop */ if (psx_taken_BFC0381C) goto label_BFC03844; label_BFC03824: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03824: 80620000 lb $v0, 0($v1) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[3] + (0))); /* 0xBFC03828: 00000000 nop */ /* nop */ label_BFC0382C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0382C: 14820010 bne $a0, $v0, 0xBFC03870 */ uint32_t psx_brA_BFC0382C = cpu->gpr[4]; uint32_t psx_brB_BFC0382C = cpu->gpr[2]; @@ -9828,6 +11967,9 @@ label_BFC0382C: /* nop */ if (psx_taken_BFC0382C) goto label_BFC03870; label_BFC03834: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03834: 80620001 lb $v0, 1($v1) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[3] + (1))); @@ -9840,6 +11982,9 @@ label_BFC03834: /* nop */ if (psx_taken_BFC0383C) goto label_BFC0382C; label_BFC03844: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03844: 80A40001 lb $a0, 1($a1) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (1))); @@ -9852,6 +11997,9 @@ label_BFC03844: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (1)); if (psx_taken_BFC0384C) goto label_BFC03814; label_BFC03854: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03854: 14800006 bne $a0, $zero, 0xBFC03870 */ uint32_t psx_brA_BFC03854 = cpu->gpr[4]; uint32_t psx_brB_BFC03854 = cpu->gpr[0]; @@ -9860,6 +12008,9 @@ label_BFC03854: /* nop */ if (psx_taken_BFC03854) goto label_BFC03870; label_BFC0385C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0385C: 15050004 bne $t0, $a1, 0xBFC03870 */ uint32_t psx_brA_BFC0385C = cpu->gpr[8]; uint32_t psx_brB_BFC0385C = cpu->gpr[5]; @@ -9868,6 +12019,9 @@ label_BFC0385C: cpu->gpr[1] = 0xA0010000u; if (psx_taken_BFC0385C) goto label_BFC03870; label_BFC03864: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC03864: AC259130 sw $a1, -28368($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28368)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03864u); return; } g_debug_last_store_pc = 0xBFC03864u; cpu->write_word(psx_addr, cpu->gpr[5]); } @@ -9878,6 +12032,9 @@ label_BFC03864: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC03868) goto label_BFC03884; label_BFC03870: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC03870: A0A00000 sb $zero, 0($a1) */ g_debug_last_store_pc = 0xBFC03870u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[5] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -9890,6 +12047,9 @@ label_BFC03870: /* 0xBFC03880: 01001021 addu $v0, $t0, $zero */ cpu->gpr[2] = cpu->gpr[8] + cpu->gpr[0]; label_BFC03884: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03884: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03884u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -9904,6 +12064,9 @@ label_BFC03884: void func_1FC03910(CPUState* cpu) { debug_server_log_call_entry(0x1FC03910u); label_BFC03910: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC03910: 3C02BFC1 lui $v0, 0xBFC1 */ cpu->gpr[2] = 0xBFC10000u; @@ -9924,6 +12087,9 @@ label_BFC03910: cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (-2)); if (psx_taken_BFC03928) goto label_BFC03948; label_BFC03930: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC03930: 8C580000 lw $t8, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03930u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -9938,10 +12104,16 @@ label_BFC03930: /* nop */ if (psx_taken_BFC0393C) goto label_BFC03930; label_BFC03944: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC03944: 2408FFFE addiu $t0, $zero, -2 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (-2)); label_BFC03948: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03948: 03E00008 jr $ra */ /* 0xBFC0394C: AC480000 sw $t0, 0($v0) */ @@ -9952,6 +12124,9 @@ label_BFC03948: void func_1FC03968(CPUState* cpu) { debug_server_log_call_entry(0x1FC03968u); label_BFC03968: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03968: 40026000 mfc0 $v0, cop0[12] */ cpu->gpr[2] = cpu->cop0[12]; @@ -9966,6 +12141,9 @@ label_BFC03968: void func_1FC03978(CPUState* cpu) { debug_server_log_call_entry(0x1FC03978u); label_BFC03978: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03978: 40846000 mtc0 $a0, cop0[12] */ cpu->cop0[12] = cpu->gpr[4]; @@ -9980,6 +12158,9 @@ label_BFC03978: void func_1FC03990(CPUState* cpu) { debug_server_log_call_entry(0x1FC03990u); label_BFC03990: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC03990: 3C02A001 lui $v0, 0xA001 */ cpu->gpr[2] = 0xA0010000u; @@ -10011,6 +12192,9 @@ void func_1FC039B0(CPUState* cpu) { } } label_BFC039B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC039B0: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -10024,6 +12208,9 @@ label_BFC039B0: cpu->gpr[31] = 0xBFC039C4u; psx_dispatch(cpu, 0xBFC0D890u); label_BFC039C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC039C4: 04410003 bgez $v0, 0xBFC039D4 */ uint32_t psx_brA_BFC039C4 = cpu->gpr[2]; @@ -10032,6 +12219,9 @@ label_BFC039C4: cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC039C4) goto label_BFC039D4; label_BFC039CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC039CC: 1000000E beq $zero, $zero, 0xBFC03A08 */ uint32_t psx_brA_BFC039CC = cpu->gpr[0]; uint32_t psx_brB_BFC039CC = cpu->gpr[0]; @@ -10040,6 +12230,9 @@ label_BFC039CC: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC039CC) goto label_BFC03A08; label_BFC039D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC039D4: 8FA5002C lw $a1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC039D4u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -10049,6 +12242,9 @@ label_BFC039D4: cpu->gpr[31] = 0xBFC039E0u; psx_dispatch(cpu, 0xBFC03C90u); label_BFC039E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC039E0: 8FA40024 lw $a0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC039E0u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -10059,6 +12255,9 @@ label_BFC039E0: /* nop */ if (psx_taken_BFC039E4) goto label_BFC039FC; label_BFC039EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC039EC: 0FF03628 jal 0xBFC0D8A0 */ /* 0xBFC039F0: 00000000 nop */ @@ -10066,6 +12265,9 @@ label_BFC039EC: cpu->gpr[31] = 0xBFC039F4u; psx_dispatch(cpu, 0xBFC0D8A0u); label_BFC039F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC039F4: 10000004 beq $zero, $zero, 0xBFC03A08 */ uint32_t psx_brA_BFC039F4 = cpu->gpr[0]; uint32_t psx_brB_BFC039F4 = cpu->gpr[0]; @@ -10074,6 +12276,9 @@ label_BFC039F4: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC039F4) goto label_BFC03A08; label_BFC039FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC039FC: 0FF03628 jal 0xBFC0D8A0 */ /* 0xBFC03A00: 00000000 nop */ @@ -10081,10 +12286,16 @@ label_BFC039FC: cpu->gpr[31] = 0xBFC03A04u; psx_dispatch(cpu, 0xBFC0D8A0u); label_BFC03A04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC03A04: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC03A08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03A08: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03A08u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -10112,6 +12323,9 @@ void func_1FC03A18(CPUState* cpu) { } } label_BFC03A18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC03A18: 27BDFFD0 addiu $sp, $sp, -48 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-48)); @@ -10125,6 +12339,9 @@ label_BFC03A18: cpu->gpr[31] = 0xBFC03A2Cu; psx_dispatch(cpu, 0xBFC0D890u); label_BFC03A2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03A2C: 04410003 bgez $v0, 0xBFC03A3C */ uint32_t psx_brA_BFC03A2C = cpu->gpr[2]; @@ -10133,6 +12350,9 @@ label_BFC03A2C: cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC03A2C) goto label_BFC03A3C; label_BFC03A34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03A34: 10000017 beq $zero, $zero, 0xBFC03A94 */ uint32_t psx_brA_BFC03A34 = cpu->gpr[0]; uint32_t psx_brB_BFC03A34 = cpu->gpr[0]; @@ -10141,6 +12361,9 @@ label_BFC03A34: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC03A34) goto label_BFC03A94; label_BFC03A3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC03A3C: 8FA50034 lw $a1, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03A3Cu); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -10150,6 +12373,9 @@ label_BFC03A3C: cpu->gpr[31] = 0xBFC03A48u; psx_dispatch(cpu, 0xBFC03C90u); label_BFC03A48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC03A48: 8FA40024 lw $a0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03A48u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -10160,6 +12386,9 @@ label_BFC03A48: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03A50u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } if (psx_taken_BFC03A4C) goto label_BFC03A68; label_BFC03A54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03A54: 0FF03628 jal 0xBFC0D8A0 */ /* 0xBFC03A58: 00000000 nop */ @@ -10167,6 +12396,9 @@ label_BFC03A54: cpu->gpr[31] = 0xBFC03A5Cu; psx_dispatch(cpu, 0xBFC0D8A0u); label_BFC03A5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03A5C: 1000000D beq $zero, $zero, 0xBFC03A94 */ uint32_t psx_brA_BFC03A5C = cpu->gpr[0]; uint32_t psx_brB_BFC03A5C = cpu->gpr[0]; @@ -10175,10 +12407,16 @@ label_BFC03A5C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC03A5C) goto label_BFC03A94; label_BFC03A64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC03A64: 8FAE0034 lw $t6, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03A64u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } label_BFC03A68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC03A68: 00000000 nop */ /* nop */ @@ -10192,6 +12430,9 @@ label_BFC03A68: cpu->gpr[31] = 0xBFC03A7Cu; psx_dispatch(cpu, 0xBFC0D8B0u); label_BFC03A7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC03A7C: 8FA40024 lw $a0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03A7Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -10201,6 +12442,9 @@ label_BFC03A7C: cpu->gpr[31] = 0xBFC03A88u; psx_dispatch(cpu, 0xBFC0D8A0u); label_BFC03A88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03A88: 0FF00648 jal 0xBFC01920 */ /* 0xBFC03A8C: 00000000 nop */ @@ -10208,10 +12452,16 @@ label_BFC03A88: cpu->gpr[31] = 0xBFC03A90u; psx_dispatch(cpu, 0xBFC01920u); label_BFC03A90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC03A90: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC03A94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03A94: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03A94u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -10245,6 +12495,9 @@ void func_1FC03AA4(CPUState* cpu) { } } label_BFC03AA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC03AA4: 27BDFFB0 addiu $sp, $sp, -80 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-80)); @@ -10269,6 +12522,9 @@ label_BFC03AA4: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_taken_BFC03AC4) goto label_BFC03AFC; label_BFC03ACC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC03ACC: 2403003A addiu $v1, $zero, 58 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (58)); @@ -10279,12 +12535,18 @@ label_BFC03ACC: /* nop */ if (psx_taken_BFC03AD0) goto label_BFC03AFC; label_BFC03AD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03AD8: 82220000 lb $v0, 0($s1) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (0))); /* 0xBFC03ADC: 00000000 nop */ /* nop */ label_BFC03AE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC03AE0: A2020000 sb $v0, 0($s0) */ g_debug_last_store_pc = 0xBFC03AE0u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[16] + (0)), (uint8_t)(cpu->gpr[2] & 0xFFu)); @@ -10299,6 +12561,9 @@ label_BFC03AE0: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); if (psx_taken_BFC03AEC) goto label_BFC03AFC; label_BFC03AF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03AF4: 1462FFFA bne $v1, $v0, 0xBFC03AE0 */ uint32_t psx_brA_BFC03AF4 = cpu->gpr[3]; uint32_t psx_brB_BFC03AF4 = cpu->gpr[2]; @@ -10307,6 +12572,9 @@ label_BFC03AF4: /* nop */ if (psx_taken_BFC03AF4) goto label_BFC03AE0; label_BFC03AFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC03AFC: 82240000 lb $a0, 0($s1) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (0))); @@ -10316,6 +12584,9 @@ label_BFC03AFC: cpu->gpr[31] = 0xBFC03B08u; psx_dispatch(cpu, 0xBFC02EA0u); label_BFC03B08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03B08: 10400007 beq $v0, $zero, 0xBFC03B28 */ uint32_t psx_brA_BFC03B08 = cpu->gpr[2]; uint32_t psx_brB_BFC03B08 = cpu->gpr[0]; @@ -10324,6 +12595,9 @@ label_BFC03B08: g_debug_last_store_pc = 0xBFC03B0Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[16] + (0)), (uint8_t)(cpu->gpr[2] & 0xFFu)); if (psx_taken_BFC03B08) goto label_BFC03B28; label_BFC03B10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03B10: 82240001 lb $a0, 1($s1) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (1))); @@ -10335,6 +12609,9 @@ label_BFC03B10: cpu->gpr[31] = 0xBFC03B20u; psx_dispatch(cpu, 0xBFC02EA0u); label_BFC03B20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03B20: 1440FFFB bne $v0, $zero, 0xBFC03B10 */ uint32_t psx_brA_BFC03B20 = cpu->gpr[2]; uint32_t psx_brB_BFC03B20 = cpu->gpr[0]; @@ -10343,6 +12620,9 @@ label_BFC03B20: g_debug_last_store_pc = 0xBFC03B24u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[16] + (0)), (uint8_t)(cpu->gpr[2] & 0xFFu)); if (psx_taken_BFC03B20) goto label_BFC03B10; label_BFC03B28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03B28: 83AF0034 lb $t7, 52($sp) */ cpu->gpr[15] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (52))); @@ -10355,12 +12635,18 @@ label_BFC03B28: cpu->gpr[17] = cpu->gpr[14] + cpu->gpr[0]; if (psx_taken_BFC03B30) goto label_BFC03B58; label_BFC03B38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03B38: 81C20000 lb $v0, 0($t6) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[14] + (0))); /* 0xBFC03B3C: 2403003B addiu $v1, $zero, 59 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (59)); label_BFC03B40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03B40: 10620005 beq $v1, $v0, 0xBFC03B58 */ uint32_t psx_brA_BFC03B40 = cpu->gpr[3]; uint32_t psx_brB_BFC03B40 = cpu->gpr[2]; @@ -10369,6 +12655,9 @@ label_BFC03B40: /* nop */ if (psx_taken_BFC03B40) goto label_BFC03B58; label_BFC03B48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03B48: 82220001 lb $v0, 1($s1) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (1))); @@ -10381,6 +12670,9 @@ label_BFC03B48: /* nop */ if (psx_taken_BFC03B50) goto label_BFC03B40; label_BFC03B58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03B58: 82380000 lb $t8, 0($s1) */ cpu->gpr[24] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (0))); @@ -10393,6 +12685,9 @@ label_BFC03B58: /* nop */ if (psx_taken_BFC03B60) goto label_BFC03B78; label_BFC03B68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03B68: 3C05BFC1 lui $a1, 0xBFC1 */ cpu->gpr[5] = 0xBFC10000u; @@ -10404,6 +12699,9 @@ label_BFC03B68: cpu->gpr[31] = 0xBFC03B78u; psx_dispatch(cpu, 0xBFC03190u); label_BFC03B78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC03B78: 3C19A001 lui $t9, 0xA001 */ cpu->gpr[25] = 0xA0010000u; @@ -10425,6 +12723,9 @@ label_BFC03B78: cpu->gpr[31] = 0xBFC03B9Cu; psx_dispatch(cpu, 0xBFC0D8C0u); label_BFC03B9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC03B9C: 3C10A001 lui $s0, 0xA001 */ cpu->gpr[16] = 0xA0010000u; @@ -10438,6 +12739,9 @@ label_BFC03B9C: cpu->gpr[31] = 0xBFC03BB0u; psx_dispatch(cpu, 0xBFC03A18u); label_BFC03BB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC03BB0: 24110001 addiu $s1, $zero, 1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -10448,6 +12752,9 @@ label_BFC03BB0: /* nop */ if (psx_taken_BFC03BB4) goto label_BFC03BEC; label_BFC03BBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC03BBC: 8FA90054 lw $t1, 84($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (84)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03BBCu); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -10471,6 +12778,9 @@ label_BFC03BBC: cpu->gpr[31] = 0xBFC03BE4u; psx_dispatch(cpu, 0xBFC03CF0u); label_BFC03BE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03BE4: 10000004 beq $zero, $zero, 0xBFC03BF8 */ uint32_t psx_brA_BFC03BE4 = cpu->gpr[0]; uint32_t psx_brB_BFC03BE4 = cpu->gpr[0]; @@ -10479,6 +12789,9 @@ label_BFC03BE4: /* nop */ if (psx_taken_BFC03BE4) goto label_BFC03BF8; label_BFC03BEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC03BEC: 3C04BFC1 lui $a0, 0xBFC1 */ cpu->gpr[4] = 0xBFC10000u; @@ -10488,6 +12801,9 @@ label_BFC03BEC: cpu->gpr[31] = 0xBFC03BF8u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC03BF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC03BF8: 3C05A001 lui $a1, 0xA001 */ cpu->gpr[5] = 0xA0010000u; @@ -10501,6 +12817,9 @@ label_BFC03BF8: cpu->gpr[31] = 0xBFC03C0Cu; psx_dispatch(cpu, 0xBFC018E0u); label_BFC03C0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03C0C: 0FF03630 jal 0xBFC0D8C0 */ /* 0xBFC03C10: 00000000 nop */ @@ -10508,6 +12827,9 @@ label_BFC03C0C: cpu->gpr[31] = 0xBFC03C14u; psx_dispatch(cpu, 0xBFC0D8C0u); label_BFC03C14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03C14: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -10519,6 +12841,9 @@ label_BFC03C14: cpu->gpr[31] = 0xBFC03C24u; psx_dispatch(cpu, 0xBFC03A18u); label_BFC03C24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03C24: 1451000D bne $v0, $s1, 0xBFC03C5C */ uint32_t psx_brA_BFC03C24 = cpu->gpr[2]; uint32_t psx_brB_BFC03C24 = cpu->gpr[17]; @@ -10527,6 +12852,9 @@ label_BFC03C24: /* nop */ if (psx_taken_BFC03C24) goto label_BFC03C5C; label_BFC03C2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC03C2C: 3C0BA001 lui $t3, 0xA001 */ cpu->gpr[11] = 0xA0010000u; @@ -10554,6 +12882,9 @@ label_BFC03C2C: cpu->gpr[31] = 0xBFC03C5Cu; psx_dispatch(cpu, 0xBFC03CF0u); label_BFC03C5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC03C5C: 3C04BFC1 lui $a0, 0xBFC1 */ cpu->gpr[4] = 0xBFC10000u; @@ -10569,6 +12900,9 @@ label_BFC03C5C: cpu->gpr[31] = 0xBFC03C74u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC03C74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03C74: 1000FFFF beq $zero, $zero, 0xBFC03C74 */ uint32_t psx_brA_BFC03C74 = cpu->gpr[0]; uint32_t psx_brB_BFC03C74 = cpu->gpr[0]; @@ -10577,6 +12911,9 @@ label_BFC03C74: /* nop */ if (psx_taken_BFC03C74) goto label_BFC03C74; label_BFC03C7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC03C7C: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03C7Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -10602,6 +12939,9 @@ void func_1FC03C90(CPUState* cpu) { } } label_BFC03C90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC03C90: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -10619,6 +12959,9 @@ label_BFC03C90: cpu->gpr[31] = 0xBFC03CACu; psx_dispatch(cpu, 0xBFC0D8B0u); label_BFC03CAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC03CAC: 28410800 slti $at, $v0, 2048 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (2048) ? 1 : 0); @@ -10629,6 +12972,9 @@ label_BFC03CAC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03CB4u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } if (psx_taken_BFC03CB0) goto label_BFC03CC4; label_BFC03CB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03CB8: 10000007 beq $zero, $zero, 0xBFC03CD8 */ uint32_t psx_brA_BFC03CB8 = cpu->gpr[0]; uint32_t psx_brB_BFC03CB8 = cpu->gpr[0]; @@ -10637,10 +12983,16 @@ label_BFC03CB8: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC03CB8) goto label_BFC03CD8; label_BFC03CC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC03CC0: 8FA40024 lw $a0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03CC0u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } label_BFC03CC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03CC4: 3C05A001 lui $a1, 0xA001 */ cpu->gpr[5] = 0xA0010000u; @@ -10652,10 +13004,16 @@ label_BFC03CC4: cpu->gpr[31] = 0xBFC03CD4u; psx_dispatch(cpu, 0xBFC02B50u); label_BFC03CD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC03CD4: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC03CD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03CD8: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03CD8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -10678,6 +13036,9 @@ void func_1FC03CF0(CPUState* cpu) { } } label_BFC03CF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC03CF0: AC900038 sw $s0, 56($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03CF0u); return; } g_debug_last_store_pc = 0xBFC03CF0u; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -10698,12 +13059,18 @@ label_BFC03CF0: cpu->gpr[16] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC03D08) goto label_BFC03D28; label_BFC03D10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03D10: 8C890018 lw $t1, 24($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03D10u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } /* 0xBFC03D14: 00000000 nop */ /* nop */ label_BFC03D18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03D18: 2108FFFC addi $t0, $t0, -4 */ { int32_t psx_a = (int32_t)cpu->gpr[8]; int32_t psx_b = (-4); int64_t psx_r = (int64_t)psx_a + (int64_t)psx_b; if (psx_r < (int64_t)INT32_MIN || psx_r > (int64_t)INT32_MAX) { psx_arith_overflow(cpu); return; } cpu->gpr[8] = (uint32_t)(int32_t)psx_r; } @@ -10716,6 +13083,9 @@ label_BFC03D18: { int32_t psx_a = (int32_t)cpu->gpr[9]; int32_t psx_b = (4); int64_t psx_r = (int64_t)psx_a + (int64_t)psx_b; if (psx_r < (int64_t)INT32_MIN || psx_r > (int64_t)INT32_MAX) { psx_arith_overflow(cpu); return; } cpu->gpr[9] = (uint32_t)(int32_t)psx_r; } if (psx_taken_BFC03D20) goto label_BFC03D18; label_BFC03D28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03D28: 8C880020 lw $t0, 32($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03D28u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -10728,6 +13098,9 @@ label_BFC03D28: /* nop */ if (psx_taken_BFC03D30) goto label_BFC03D4C; label_BFC03D38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC03D38: 8C890024 lw $t1, 36($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03D38u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -10740,6 +13113,9 @@ label_BFC03D38: /* 0xBFC03D48: 03A0F021 addu $fp, $sp, $zero */ cpu->gpr[30] = cpu->gpr[29] + cpu->gpr[0]; label_BFC03D4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC03D4C: 8C8B0000 lw $t3, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03D4Cu); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -10753,6 +13129,9 @@ label_BFC03D4C: cpu->gpr[31] = 0xBFC03D60u; psx_dispatch(cpu, cpu->gpr[11]); label_BFC03D60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC03D60: 8E1F0034 lw $ra, 52($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03D60u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -10781,6 +13160,9 @@ void func_1FC03D80(CPUState* cpu) { } } label_BFC03D80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC03D80: 27BDFFC0 addiu $sp, $sp, -64 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-64)); @@ -10815,6 +13197,9 @@ label_BFC03D80: cpu->gpr[16] = 0x00100000u; if (psx_taken_BFC03DB4) goto label_BFC03E04; label_BFC03DBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03DBC: AFB10030 sw $s1, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03DBCu); return; } g_debug_last_store_pc = 0xBFC03DBCu; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -10825,6 +13210,9 @@ label_BFC03DBC: /* 0xBFC03DC8: 02001821 addu $v1, $s0, $zero */ cpu->gpr[3] = cpu->gpr[16] + cpu->gpr[0]; label_BFC03DCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03DCC: 14600003 bne $v1, $zero, 0xBFC03DDC */ uint32_t psx_brA_BFC03DCC = cpu->gpr[3]; uint32_t psx_brB_BFC03DCC = cpu->gpr[0]; @@ -10833,6 +13221,9 @@ label_BFC03DCC: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); if (psx_taken_BFC03DCC) goto label_BFC03DDC; label_BFC03DD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03DD4: 0FF01098 jal 0xBFC04260 */ /* 0xBFC03DD8: 02202021 addu $a0, $s1, $zero */ @@ -10840,6 +13231,9 @@ label_BFC03DD4: cpu->gpr[31] = 0xBFC03DDCu; psx_dispatch(cpu, 0xBFC04260u); label_BFC03DDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC03DDC: 3C19BFC1 lui $t9, 0xBFC1 */ cpu->gpr[25] = 0xBFC10000u; @@ -10860,12 +13254,18 @@ label_BFC03DDC: cpu->gpr[3] = cpu->gpr[16] + cpu->gpr[0]; if (psx_taken_BFC03DF4) goto label_BFC03DCC; label_BFC03DFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03DFC: 8FB10030 lw $s1, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03DFCu); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } /* 0xBFC03E00: 00000000 nop */ /* nop */ label_BFC03E04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(25u); +#endif psx_check_interrupts(cpu); /* 0xBFC03E04: 3C05BFC1 lui $a1, 0xBFC1 */ cpu->gpr[5] = 0xBFC10000u; @@ -10920,12 +13320,18 @@ label_BFC03E04: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[2] + (-1)); if (psx_taken_BFC03E60) goto label_BFC03E8C; label_BFC03E68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC03E68: 8FA20050 lw $v0, 80($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (80)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03E68u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } /* 0xBFC03E6C: 00000000 nop */ /* nop */ label_BFC03E70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC03E70: 8C4C0000 lw $t4, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03E70u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -10942,10 +13348,16 @@ label_BFC03E70: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03E84u); return; } g_debug_last_store_pc = 0xBFC03E84u; cpu->write_word(psx_addr, cpu->gpr[12]); } if (psx_taken_BFC03E80) goto label_BFC03E70; label_BFC03E88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC03E88: AFA20050 sw $v0, 80($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (80)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03E88u); return; } g_debug_last_store_pc = 0xBFC03E88u; cpu->write_word(psx_addr, cpu->gpr[2]); } label_BFC03E8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC03E8C: 8FBF002C lw $ra, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03E8Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -10970,6 +13382,9 @@ void func_1FC03EA0(CPUState* cpu) { } } label_BFC03EA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC03EA0: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -10987,6 +13402,9 @@ label_BFC03EA0: cpu->gpr[31] = 0xBFC03EBCu; psx_dispatch(cpu, 0xBFC04138u); label_BFC03EBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(40u); +#endif psx_check_interrupts(cpu); /* 0xBFC03EBC: 3C02BFC1 lui $v0, 0xBFC1 */ cpu->gpr[2] = 0xBFC10000u; @@ -11071,10 +13489,16 @@ label_BFC03EBC: cpu->gpr[1] = cpu->gpr[10] + cpu->gpr[0]; if (psx_taken_BFC03F54) goto label_BFC03F60; label_BFC03F5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC03F5C: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC03F60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC03F60: 00015903 sra $t3, $at, 4 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -11103,6 +13527,9 @@ label_BFC03F60: void func_1FC03F8C(CPUState* cpu) { debug_server_log_call_entry(0x1FC03F8Cu); label_BFC03F8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03F8C: 3C0EBFC1 lui $t6, 0xBFC1 */ cpu->gpr[14] = 0xBFC10000u; @@ -11125,6 +13552,9 @@ void func_1FC03FAC(CPUState* cpu) { } } label_BFC03FAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC03FAC: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -11136,6 +13566,9 @@ label_BFC03FAC: cpu->gpr[31] = 0xBFC03FBCu; psx_dispatch(cpu, 0xBFC04138u); label_BFC03FBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC03FBC: 3C0FBFC1 lui $t7, 0xBFC1 */ cpu->gpr[15] = 0xBFC10000u; @@ -11145,6 +13578,9 @@ label_BFC03FBC: void func_1FC03FC0(CPUState* cpu) { debug_server_log_call_entry(0x1FC03FC0u); label_BFC03FC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC03FC0: 8DEFDE90 lw $t7, -8560($t7) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[15] + (-8560)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03FC0u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -11175,6 +13611,9 @@ void func_1FC03FE0(CPUState* cpu) { } } label_BFC03FE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC03FE0: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -11188,6 +13627,9 @@ label_BFC03FE0: cpu->gpr[31] = 0xBFC03FF4u; psx_dispatch(cpu, 0xBFC04138u); label_BFC03FF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC03FF4: 8FA5001C lw $a1, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC03FF4u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -11202,6 +13644,9 @@ label_BFC03FF4: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (-1)); if (psx_taken_BFC04000) goto label_BFC0402C; label_BFC04008: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC04008: 3C03BFC1 lui $v1, 0xBFC1 */ cpu->gpr[3] = 0xBFC10000u; @@ -11210,6 +13655,9 @@ label_BFC04008: /* 0xBFC04010: 00000000 nop */ /* nop */ label_BFC04014: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC04014: 8C8E0000 lw $t6, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04014u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -11226,6 +13674,9 @@ label_BFC04014: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04028u); return; } g_debug_last_store_pc = 0xBFC04028u; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC04024) goto label_BFC04014; label_BFC0402C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0402C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0402Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -11251,6 +13702,9 @@ void func_1FC0403C(CPUState* cpu) { } } label_BFC0403C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0403C: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -11268,6 +13722,9 @@ label_BFC0403C: cpu->gpr[31] = 0xBFC04058u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC04058: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04058: 0FF0104E jal 0xBFC04138 */ /* 0xBFC0405C: 00000000 nop */ @@ -11275,6 +13732,9 @@ label_BFC04058: cpu->gpr[31] = 0xBFC04060u; psx_dispatch(cpu, 0xBFC04138u); label_BFC04060: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(23u); +#endif psx_check_interrupts(cpu); /* 0xBFC04060: 3C0FBFC1 lui $t7, 0xBFC1 */ cpu->gpr[15] = 0xBFC10000u; @@ -11324,6 +13784,9 @@ label_BFC04060: cpu->gpr[31] = 0xBFC040BCu; psx_dispatch(cpu, 0xBFC018E0u); label_BFC040BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC040BC: 3C0DBFC1 lui $t5, 0xBFC1 */ cpu->gpr[13] = 0xBFC10000u; @@ -11343,6 +13806,9 @@ label_BFC040BC: cpu->gpr[31] = 0xBFC040DCu; psx_dispatch(cpu, 0xBFC018E0u); label_BFC040DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC040DC: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC040DCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -11357,6 +13823,9 @@ label_BFC040DC: void func_1FC040EC(CPUState* cpu) { debug_server_log_call_entry(0x1FC040ECu); label_BFC040EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC040EC: 3C02BFC1 lui $v0, 0xBFC1 */ cpu->gpr[2] = 0xBFC10000u; @@ -11399,6 +13868,9 @@ void func_1FC04138(CPUState* cpu) { } } label_BFC04138: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC04138: 3C06BFC1 lui $a2, 0xBFC1 */ cpu->gpr[6] = 0xBFC10000u; @@ -11421,6 +13893,9 @@ label_BFC04138: cpu->gpr[3] = 0x10000000u; if (psx_taken_BFC04154) goto label_BFC041AC; label_BFC0415C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0415C: 8CD80000 lw $t8, 0($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0415Cu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -11435,10 +13910,16 @@ label_BFC0415C: /* nop */ if (psx_taken_BFC04168) goto label_BFC041A4; label_BFC04170: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC04170: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; label_BFC04174: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04174: 14400006 bne $v0, $zero, 0xBFC04190 */ uint32_t psx_brA_BFC04174 = cpu->gpr[2]; uint32_t psx_brB_BFC04174 = cpu->gpr[0]; @@ -11447,6 +13928,9 @@ label_BFC04174: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (-1)); if (psx_taken_BFC04174) goto label_BFC04190; label_BFC0417C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0417C: 3C04BFC1 lui $a0, 0xBFC1 */ cpu->gpr[4] = 0xBFC10000u; @@ -11456,6 +13940,9 @@ label_BFC0417C: cpu->gpr[31] = 0xBFC04188u; psx_dispatch(cpu, 0xBFC04260u); label_BFC04188: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04188: 10000031 beq $zero, $zero, 0xBFC04250 */ uint32_t psx_brA_BFC04188 = cpu->gpr[0]; uint32_t psx_brB_BFC04188 = cpu->gpr[0]; @@ -11464,6 +13951,9 @@ label_BFC04188: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC04188) goto label_BFC04250; label_BFC04190: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC04190: 8CC80000 lw $t0, 0($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04190u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -11478,6 +13968,9 @@ label_BFC04190: cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC0419C) goto label_BFC04174; label_BFC041A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC041A4: 1000002A beq $zero, $zero, 0xBFC04250 */ uint32_t psx_brA_BFC041A4 = cpu->gpr[0]; uint32_t psx_brB_BFC041A4 = cpu->gpr[0]; @@ -11486,6 +13979,9 @@ label_BFC041A4: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC041A4) goto label_BFC04250; label_BFC041AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC041AC: 3C04BFC1 lui $a0, 0xBFC1 */ cpu->gpr[4] = 0xBFC10000u; @@ -11506,10 +14002,16 @@ label_BFC041AC: /* nop */ if (psx_taken_BFC041C4) goto label_BFC04200; label_BFC041CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC041CC: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; label_BFC041D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC041D0: 14400006 bne $v0, $zero, 0xBFC041EC */ uint32_t psx_brA_BFC041D0 = cpu->gpr[2]; uint32_t psx_brB_BFC041D0 = cpu->gpr[0]; @@ -11518,6 +14020,9 @@ label_BFC041D0: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (-1)); if (psx_taken_BFC041D0) goto label_BFC041EC; label_BFC041D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC041D8: 3C04BFC1 lui $a0, 0xBFC1 */ cpu->gpr[4] = 0xBFC10000u; @@ -11527,6 +14032,9 @@ label_BFC041D8: cpu->gpr[31] = 0xBFC041E4u; psx_dispatch(cpu, 0xBFC04260u); label_BFC041E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC041E4: 1000001A beq $zero, $zero, 0xBFC04250 */ uint32_t psx_brA_BFC041E4 = cpu->gpr[0]; uint32_t psx_brB_BFC041E4 = cpu->gpr[0]; @@ -11535,6 +14043,9 @@ label_BFC041E4: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC041E4) goto label_BFC04250; label_BFC041EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC041EC: 8C8C0000 lw $t4, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC041ECu); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -11549,6 +14060,9 @@ label_BFC041EC: cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC041F8) goto label_BFC041D0; label_BFC04200: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC04200: 8CCE0000 lw $t6, 0($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04200u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -11563,6 +14077,9 @@ label_BFC04200: cpu->gpr[2] = 0x00100000u; if (psx_taken_BFC0420C) goto label_BFC0422C; label_BFC04214: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC04214: 8CD80000 lw $t8, 0($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04214u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -11577,10 +14094,16 @@ label_BFC04214: /* nop */ if (psx_taken_BFC04220) goto label_BFC04214; label_BFC04228: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC04228: 3C020010 lui $v0, 0x10 */ cpu->gpr[2] = 0x00100000u; label_BFC0422C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0422C: 14400006 bne $v0, $zero, 0xBFC04248 */ uint32_t psx_brA_BFC0422C = cpu->gpr[2]; uint32_t psx_brB_BFC0422C = cpu->gpr[0]; @@ -11589,6 +14112,9 @@ label_BFC0422C: /* nop */ if (psx_taken_BFC0422C) goto label_BFC04248; label_BFC04234: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC04234: 3C04BFC1 lui $a0, 0xBFC1 */ cpu->gpr[4] = 0xBFC10000u; @@ -11598,6 +14124,9 @@ label_BFC04234: cpu->gpr[31] = 0xBFC04240u; psx_dispatch(cpu, 0xBFC04260u); label_BFC04240: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04240: 10000003 beq $zero, $zero, 0xBFC04250 */ uint32_t psx_brA_BFC04240 = cpu->gpr[0]; uint32_t psx_brB_BFC04240 = cpu->gpr[0]; @@ -11606,12 +14135,18 @@ label_BFC04240: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC04240) goto label_BFC04250; label_BFC04248: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04248: ACC30000 sw $v1, 0($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04248u); return; } g_debug_last_store_pc = 0xBFC04248u; cpu->write_word(psx_addr, cpu->gpr[3]); } /* 0xBFC0424C: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC04250: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC04250: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04250u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -11635,6 +14170,9 @@ void func_1FC04260(CPUState* cpu) { } } label_BFC04260: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC04260: 3C0EBFC1 lui $t6, 0xBFC1 */ cpu->gpr[14] = 0xBFC10000u; @@ -11656,6 +14194,9 @@ label_BFC04260: cpu->gpr[31] = 0xBFC04284u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC04284: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04284: 0FF0103B jal 0xBFC040EC */ /* 0xBFC04288: 00000000 nop */ @@ -11663,6 +14204,9 @@ label_BFC04284: cpu->gpr[31] = 0xBFC0428Cu; psx_dispatch(cpu, 0xBFC040ECu); label_BFC0428C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0428C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0428Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -11677,6 +14221,9 @@ label_BFC0428C: void func_1FC042A0(CPUState* cpu) { debug_server_log_call_entry(0x1FC042A0u); label_BFC042A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC042A0: 3C04A000 lui $a0, 0xA000 */ cpu->gpr[4] = 0xA0000000u; @@ -11689,6 +14236,9 @@ label_BFC042A0: /* 0xBFC042B0: 240600A0 addiu $a2, $zero, 160 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); label_BFC042B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC042B4: 8C870000 lw $a3, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC042B4u); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } @@ -11703,6 +14253,9 @@ label_BFC042B4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC042C4u); return; } g_debug_last_store_pc = 0xBFC042C4u; cpu->write_word(psx_addr, cpu->gpr[7]); } if (psx_taken_BFC042C0) goto label_BFC042B4; label_BFC042C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC042C8: 03E00008 jr $ra */ /* 0xBFC042CC: 00000000 nop */ @@ -11713,6 +14266,9 @@ label_BFC042C8: void func_1FC042D0(CPUState* cpu) { debug_server_log_call_entry(0x1FC042D0u); label_BFC042D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC042D0: 3C04BFC0 lui $a0, 0xBFC0 */ cpu->gpr[4] = 0xBFC00000u; @@ -11725,6 +14281,9 @@ label_BFC042D0: /* 0xBFC042E0: 24060200 addiu $a2, $zero, 512 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[0] + (512)); label_BFC042E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC042E4: 8C870000 lw $a3, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC042E4u); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } @@ -11739,6 +14298,9 @@ label_BFC042E4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC042F4u); return; } g_debug_last_store_pc = 0xBFC042F4u; cpu->write_word(psx_addr, cpu->gpr[7]); } if (psx_taken_BFC042F0) goto label_BFC042E4; label_BFC042F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC042F8: 03E00008 jr $ra */ /* 0xBFC042FC: 00000000 nop */ @@ -11758,6 +14320,9 @@ void func_1FC04610(CPUState* cpu) { } } label_BFC04610: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC04610: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -11775,6 +14340,9 @@ label_BFC04610: cpu->gpr[31] = 0xBFC0462Cu; psx_dispatch(cpu, 0xBFC0DAE0u); label_BFC0462C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0462C: 8FA50020 lw $a1, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0462Cu); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -11785,6 +14353,9 @@ label_BFC0462C: cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC04630) goto label_BFC04640; label_BFC04638: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04638: 1000000B beq $zero, $zero, 0xBFC04668 */ uint32_t psx_brA_BFC04638 = cpu->gpr[0]; uint32_t psx_brB_BFC04638 = cpu->gpr[0]; @@ -11793,6 +14364,9 @@ label_BFC04638: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC04638) goto label_BFC04668; label_BFC04640: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC04640: AFA4001C sw $a0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04640u); return; } g_debug_last_store_pc = 0xBFC04640u; cpu->write_word(psx_addr, cpu->gpr[4]); } @@ -11802,6 +14376,9 @@ label_BFC04640: cpu->gpr[31] = 0xBFC0464Cu; psx_dispatch(cpu, 0xBFC01ACCu); label_BFC0464C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0464C: 8FA4001C lw $a0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0464Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -11818,6 +14395,9 @@ label_BFC0464C: /* 0xBFC04664: 00A01021 addu $v0, $a1, $zero */ cpu->gpr[2] = cpu->gpr[5] + cpu->gpr[0]; label_BFC04668: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC04668: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04668u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -11841,6 +14421,9 @@ void func_1FC04678(CPUState* cpu) { } } label_BFC04678: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC04678: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -11860,6 +14443,9 @@ label_BFC04678: cpu->gpr[31] = 0xBFC04698u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC04698: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC04698: 8FA60028 lw $a2, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04698u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -11883,6 +14469,9 @@ label_BFC04698: cpu->gpr[31] = 0xBFC046C0u; psx_dispatch(cpu, 0xBFC0DAE0u); label_BFC046C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC046C0: 8FA60028 lw $a2, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC046C0u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -11893,6 +14482,9 @@ label_BFC046C0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC046C8u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } if (psx_taken_BFC046C4) goto label_BFC046D8; label_BFC046CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC046CC: 10000013 beq $zero, $zero, 0xBFC0471C */ uint32_t psx_brA_BFC046CC = cpu->gpr[0]; uint32_t psx_brB_BFC046CC = cpu->gpr[0]; @@ -11901,10 +14493,16 @@ label_BFC046CC: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC046CC) goto label_BFC0471C; label_BFC046D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC046D4: 8FAE0024 lw $t6, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC046D4u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } label_BFC046D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC046D8: 3C01A000 lui $at, 0xA000 */ cpu->gpr[1] = 0xA0000000u; @@ -11933,6 +14531,9 @@ label_BFC046D8: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC04700) goto label_BFC04718; label_BFC04708: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC04708: 2463001C addiu $v1, $v1, 28 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (28)); @@ -11945,10 +14546,16 @@ label_BFC04708: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (-24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04714u); return; } g_debug_last_store_pc = 0xBFC04714u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC04710) goto label_BFC04708; label_BFC04718: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC04718: 00C01021 addu $v0, $a2, $zero */ cpu->gpr[2] = cpu->gpr[6] + cpu->gpr[0]; label_BFC0471C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0471C: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0471Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -11973,6 +14580,9 @@ void func_1FC0472C(CPUState* cpu) { } } label_BFC0472C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC0472C: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -11996,6 +14606,9 @@ label_BFC0472C: cpu->gpr[31] = 0xBFC04754u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC04754: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC04754: AFB10034 sw $s1, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04754u); return; } g_debug_last_store_pc = 0xBFC04754u; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -12025,6 +14638,9 @@ label_BFC04754: cpu->gpr[31] = 0xBFC04788u; psx_dispatch(cpu, 0xBFC0DAE0u); label_BFC04788: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04788: 14400003 bne $v0, $zero, 0xBFC04798 */ uint32_t psx_brA_BFC04788 = cpu->gpr[2]; uint32_t psx_brB_BFC04788 = cpu->gpr[0]; @@ -12033,6 +14649,9 @@ label_BFC04788: cpu->gpr[6] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC04788) goto label_BFC04798; label_BFC04790: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04790: 1000002A beq $zero, $zero, 0xBFC0483C */ uint32_t psx_brA_BFC04790 = cpu->gpr[0]; uint32_t psx_brB_BFC04790 = cpu->gpr[0]; @@ -12041,6 +14660,9 @@ label_BFC04790: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC04790) goto label_BFC0483C; label_BFC04798: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC04798: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -12050,6 +14672,9 @@ label_BFC04798: cpu->gpr[31] = 0xBFC047A4u; psx_dispatch(cpu, 0xBFC0DAE0u); label_BFC047A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC047A4: 8FA6002C lw $a2, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC047A4u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -12060,6 +14685,9 @@ label_BFC047A4: cpu->gpr[7] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC047A8) goto label_BFC047B8; label_BFC047B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC047B0: 10000022 beq $zero, $zero, 0xBFC0483C */ uint32_t psx_brA_BFC047B0 = cpu->gpr[0]; uint32_t psx_brB_BFC047B0 = cpu->gpr[0]; @@ -12068,6 +14696,9 @@ label_BFC047B0: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC047B0) goto label_BFC0483C; label_BFC047B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC047B8: 8FAE0034 lw $t6, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC047B8u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -12086,6 +14717,9 @@ label_BFC047B8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC047D0u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } if (psx_taken_BFC047CC) goto label_BFC047E8; label_BFC047D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC047D4: 24630004 addiu $v1, $v1, 4 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (4)); @@ -12098,10 +14732,16 @@ label_BFC047D4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC047E0u); return; } g_debug_last_store_pc = 0xBFC047E0u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC047DC) goto label_BFC047D4; label_BFC047E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC047E4: 8FB80030 lw $t8, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC047E4u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } label_BFC047E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC047E8: 00401821 addu $v1, $v0, $zero */ cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; @@ -12122,10 +14762,16 @@ label_BFC047E8: cpu->gpr[4] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC04800) goto label_BFC0481C; label_BFC04808: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC04808: 24021000 addiu $v0, $zero, 4096 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (4096)); label_BFC0480C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0480C: 246300C0 addiu $v1, $v1, 192 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (192)); @@ -12138,6 +14784,9 @@ label_BFC0480C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (-192)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04818u); return; } g_debug_last_store_pc = 0xBFC04818u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC04814) goto label_BFC0480C; label_BFC0481C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0481C: 24084000 addiu $t0, $zero, 16384 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (16384)); @@ -12156,6 +14805,9 @@ label_BFC0481C: /* 0xBFC04838: 02301021 addu $v0, $s1, $s0 */ cpu->gpr[2] = cpu->gpr[17] + cpu->gpr[16]; label_BFC0483C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0483C: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0483Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -12181,6 +14833,9 @@ void func_1FC048D0(CPUState* cpu) { } } label_BFC048D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC048D0: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -12198,6 +14853,9 @@ label_BFC048D0: cpu->gpr[31] = 0xBFC048ECu; psx_dispatch(cpu, 0xBFC0DB00u); label_BFC048EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC048EC: 3C02A001 lui $v0, 0xA001 */ cpu->gpr[2] = 0xA0010000u; @@ -12211,6 +14869,9 @@ label_BFC048EC: cpu->gpr[31] = 0xBFC04900u; psx_dispatch(cpu, 0xBFC0DB00u); label_BFC04900: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC04900: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04900u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -12233,6 +14894,9 @@ void func_1FC04ABC(CPUState* cpu) { } } label_BFC04ABC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC04ABC: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -12245,6 +14909,9 @@ label_BFC04ABC: cpu->gpr[5] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC04AC4) goto label_BFC04AF0; label_BFC04ACC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC04ACC: 3C0EA001 lui $t6, 0xA001 */ cpu->gpr[14] = 0xA0010000u; @@ -12259,6 +14926,9 @@ label_BFC04ACC: /* nop */ if (psx_taken_BFC04AD8) goto label_BFC04B14; label_BFC04AE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04AE0: 10000034 beq $zero, $zero, 0xBFC04BB4 */ uint32_t psx_brA_BFC04AE0 = cpu->gpr[0]; uint32_t psx_brB_BFC04AE0 = cpu->gpr[0]; @@ -12267,6 +14937,9 @@ label_BFC04AE0: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC04AE0) goto label_BFC04BB4; label_BFC04AE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04AE8: 10000032 beq $zero, $zero, 0xBFC04BB4 */ uint32_t psx_brA_BFC04AE8 = cpu->gpr[0]; uint32_t psx_brB_BFC04AE8 = cpu->gpr[0]; @@ -12275,6 +14948,9 @@ label_BFC04AE8: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC04AE8) goto label_BFC04BB4; label_BFC04AF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC04AF0: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -12289,6 +14965,9 @@ label_BFC04AF0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); if (psx_taken_BFC04AFC) goto label_BFC04ACC; label_BFC04B04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04B04: 1081FFF1 beq $a0, $at, 0xBFC04ACC */ uint32_t psx_brA_BFC04B04 = cpu->gpr[4]; uint32_t psx_brB_BFC04B04 = cpu->gpr[1]; @@ -12297,6 +14976,9 @@ label_BFC04B04: cpu->gpr[1] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC04B04) goto label_BFC04ACC; label_BFC04B0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04B0C: 1481FFF6 bne $a0, $at, 0xBFC04AE8 */ uint32_t psx_brA_BFC04B0C = cpu->gpr[4]; uint32_t psx_brB_BFC04B0C = cpu->gpr[1]; @@ -12305,6 +14987,9 @@ label_BFC04B0C: /* nop */ if (psx_taken_BFC04B0C) goto label_BFC04AE8; label_BFC04B14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC04B14: 3C0FBFC1 lui $t7, 0xBFC1 */ cpu->gpr[15] = 0xBFC10000u; @@ -12325,6 +15010,9 @@ label_BFC04B14: /* nop */ if (psx_taken_BFC04B2C) goto label_BFC04B3C; label_BFC04B34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04B34: 1000001F beq $zero, $zero, 0xBFC04BB4 */ uint32_t psx_brA_BFC04B34 = cpu->gpr[0]; uint32_t psx_brB_BFC04B34 = cpu->gpr[0]; @@ -12333,6 +15021,9 @@ label_BFC04B34: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC04B34) goto label_BFC04BB4; label_BFC04B3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04B3C: 0FF01936 jal 0xBFC064D8 */ /* 0xBFC04B40: AFA50018 sw $a1, 24($sp) */ @@ -12340,6 +15031,9 @@ label_BFC04B3C: cpu->gpr[31] = 0xBFC04B44u; psx_dispatch(cpu, 0xBFC064D8u); label_BFC04B44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC04B44: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -12356,20 +15050,32 @@ label_BFC04B44: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); if (psx_taken_BFC04B54) goto label_BFC04B60; label_BFC04B5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC04B5C: 14810002 bne $a0, $at, 0xBFC04B68 */ uint32_t psx_brA_BFC04B5C = cpu->gpr[4]; uint32_t psx_brB_BFC04B5C = cpu->gpr[1]; int psx_taken_BFC04B5C = (psx_brA_BFC04B5C != psx_brB_BFC04B5C); label_BFC04B60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC04B60: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; if (psx_taken_BFC04B5C) goto label_BFC04B68; label_BFC04B64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC04B64: AC249158 sw $a0, -28328($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28328)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04B64u); return; } g_debug_last_store_pc = 0xBFC04B64u; cpu->write_word(psx_addr, cpu->gpr[4]); } label_BFC04B68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC04B68: 3C19BFC1 lui $t9, 0xBFC1 */ cpu->gpr[25] = 0xBFC10000u; @@ -12410,6 +15116,9 @@ label_BFC04B68: /* 0xBFC04BB0: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC04BB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC04BB4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04BB4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -12432,6 +15141,9 @@ void func_1FC04BC4(CPUState* cpu) { } } label_BFC04BC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC04BC4: 3C0EA001 lui $t6, 0xA001 */ cpu->gpr[14] = 0xA0010000u; @@ -12450,6 +15162,9 @@ label_BFC04BC4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04BDCu); return; } g_debug_last_store_pc = 0xBFC04BDCu; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC04BD8) goto label_BFC04BE8; label_BFC04BE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04BE0: 10000011 beq $zero, $zero, 0xBFC04C28 */ uint32_t psx_brA_BFC04BE0 = cpu->gpr[0]; uint32_t psx_brB_BFC04BE0 = cpu->gpr[0]; @@ -12458,6 +15173,9 @@ label_BFC04BE0: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC04BE0) goto label_BFC04C28; label_BFC04BE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04BE8: 0FF01952 jal 0xBFC06548 */ /* 0xBFC04BEC: 00000000 nop */ @@ -12465,6 +15183,9 @@ label_BFC04BE8: cpu->gpr[31] = 0xBFC04BF0u; psx_dispatch(cpu, 0xBFC06548u); label_BFC04BF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC04BF0: 8FAF0020 lw $t7, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04BF0u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -12495,6 +15216,9 @@ label_BFC04BF0: /* 0xBFC04C24: A1280000 sb $t0, 0($t1) */ g_debug_last_store_pc = 0xBFC04C24u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[9] + (0)), (uint8_t)(cpu->gpr[8] & 0xFFu)); label_BFC04C28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC04C28: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04C28u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -12517,6 +15241,9 @@ void func_1FC04C38(CPUState* cpu) { } } label_BFC04C38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC04C38: 3C0EA001 lui $t6, 0xA001 */ cpu->gpr[14] = 0xA0010000u; @@ -12535,6 +15262,9 @@ label_BFC04C38: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04C50u); return; } g_debug_last_store_pc = 0xBFC04C50u; cpu->write_word(psx_addr, cpu->gpr[5]); } if (psx_taken_BFC04C4C) goto label_BFC04C5C; label_BFC04C54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04C54: 1C800003 bgtz $a0, 0xBFC04C64 */ uint32_t psx_brA_BFC04C54 = cpu->gpr[4]; @@ -12543,6 +15273,9 @@ label_BFC04C54: /* nop */ if (psx_taken_BFC04C54) goto label_BFC04C64; label_BFC04C5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04C5C: 10000038 beq $zero, $zero, 0xBFC04D40 */ uint32_t psx_brA_BFC04C5C = cpu->gpr[0]; uint32_t psx_brB_BFC04C5C = cpu->gpr[0]; @@ -12551,6 +15284,9 @@ label_BFC04C5C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC04C5C) goto label_BFC04D40; label_BFC04C64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC04C64: AFA40020 sw $a0, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04C64u); return; } g_debug_last_store_pc = 0xBFC04C64u; cpu->write_word(psx_addr, cpu->gpr[4]); } @@ -12560,6 +15296,9 @@ label_BFC04C64: cpu->gpr[31] = 0xBFC04C70u; psx_dispatch(cpu, 0xBFC06548u); label_BFC04C70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC04C70: 8FA40020 lw $a0, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04C70u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -12594,6 +15333,9 @@ label_BFC04C70: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28324)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04CA8u); return; } g_debug_last_store_pc = 0xBFC04CA8u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC04CA4) goto label_BFC04CBC; label_BFC04CAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC04CAC: 24190246 addiu $t9, $zero, 582 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (582)); @@ -12606,6 +15348,9 @@ label_BFC04CAC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28264)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04CB8u); return; } g_debug_last_store_pc = 0xBFC04CB8u; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC04CB4) goto label_BFC04CE4; label_BFC04CBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC04CBC: 30C80020 andi $t0, $a2, 0x20 */ cpu->gpr[8] = cpu->gpr[6] & 0x20u; @@ -12616,6 +15361,9 @@ label_BFC04CBC: cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (512)); if (psx_taken_BFC04CC0) goto label_BFC04CDC; label_BFC04CC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC04CC8: 24090249 addiu $t1, $zero, 585 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (585)); @@ -12628,16 +15376,25 @@ label_BFC04CC8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28264)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04CD4u); return; } g_debug_last_store_pc = 0xBFC04CD4u; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC04CD0) goto label_BFC04CE4; label_BFC04CD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC04CD8: 240A0200 addiu $t2, $zero, 512 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (512)); label_BFC04CDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04CDC: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; /* 0xBFC04CE0: AC2A9198 sw $t2, -28264($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28264)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04CE0u); return; } g_debug_last_store_pc = 0xBFC04CE0u; cpu->write_word(psx_addr, cpu->gpr[10]); } label_BFC04CE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC04CE4: 3C03BFC1 lui $v1, 0xBFC1 */ cpu->gpr[3] = 0xBFC10000u; @@ -12658,6 +15415,9 @@ label_BFC04CE4: /* nop */ if (psx_taken_BFC04CFC) goto label_BFC04D0C; label_BFC04D04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04D04: 1000000E beq $zero, $zero, 0xBFC04D40 */ uint32_t psx_brA_BFC04D04 = cpu->gpr[0]; uint32_t psx_brB_BFC04D04 = cpu->gpr[0]; @@ -12666,6 +15426,9 @@ label_BFC04D04: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC04D04) goto label_BFC04D40; label_BFC04D0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC04D0C: A0600000 sb $zero, 0($v1) */ g_debug_last_store_pc = 0xBFC04D0Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[3] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -12694,6 +15457,9 @@ label_BFC04D0C: /* 0xBFC04D3C: A30F0000 sb $t7, 0($t8) */ g_debug_last_store_pc = 0xBFC04D3Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[24] + (0)), (uint8_t)(cpu->gpr[15] & 0xFFu)); label_BFC04D40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC04D40: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04D40u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -12716,6 +15482,9 @@ void func_1FC04D50(CPUState* cpu) { } } label_BFC04D50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC04D50: 3C0EA001 lui $t6, 0xA001 */ cpu->gpr[14] = 0xA0010000u; @@ -12732,6 +15501,9 @@ label_BFC04D50: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04D64u); return; } g_debug_last_store_pc = 0xBFC04D64u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC04D60) goto label_BFC04D70; label_BFC04D68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04D68: 1000001C beq $zero, $zero, 0xBFC04DDC */ uint32_t psx_brA_BFC04D68 = cpu->gpr[0]; uint32_t psx_brB_BFC04D68 = cpu->gpr[0]; @@ -12740,6 +15512,9 @@ label_BFC04D68: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC04D68) goto label_BFC04DDC; label_BFC04D70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04D70: 0FF01952 jal 0xBFC06548 */ /* 0xBFC04D74: AFA40018 sw $a0, 24($sp) */ @@ -12747,6 +15522,9 @@ label_BFC04D70: cpu->gpr[31] = 0xBFC04D78u; psx_dispatch(cpu, 0xBFC06548u); label_BFC04D78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC04D78: 8FA40018 lw $a0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04D78u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -12771,6 +15549,9 @@ label_BFC04D78: /* nop */ if (psx_taken_BFC04D98) goto label_BFC04DA8; label_BFC04DA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04DA0: 1000000E beq $zero, $zero, 0xBFC04DDC */ uint32_t psx_brA_BFC04DA0 = cpu->gpr[0]; uint32_t psx_brB_BFC04DA0 = cpu->gpr[0]; @@ -12779,6 +15560,9 @@ label_BFC04DA0: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC04DA0) goto label_BFC04DDC; label_BFC04DA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC04DA8: A0600000 sb $zero, 0($v1) */ g_debug_last_store_pc = 0xBFC04DA8u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[3] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -12807,6 +15591,9 @@ label_BFC04DA8: /* 0xBFC04DD8: A1490000 sb $t1, 0($t2) */ g_debug_last_store_pc = 0xBFC04DD8u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[10] + (0)), (uint8_t)(cpu->gpr[9] & 0xFFu)); label_BFC04DDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC04DDC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04DDCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -12833,6 +15620,9 @@ void func_1FC04DEC(CPUState* cpu) { } } label_BFC04DEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC04DEC: 3C03BFC1 lui $v1, 0xBFC1 */ cpu->gpr[3] = 0xBFC10000u; @@ -12855,6 +15645,9 @@ label_BFC04DEC: /* nop */ if (psx_taken_BFC04E08) goto label_BFC04E18; label_BFC04E10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04E10: 10000066 beq $zero, $zero, 0xBFC04FAC */ uint32_t psx_brA_BFC04E10 = cpu->gpr[0]; uint32_t psx_brB_BFC04E10 = cpu->gpr[0]; @@ -12863,6 +15656,9 @@ label_BFC04E10: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC04E10) goto label_BFC04FAC; label_BFC04E18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC04E18: 8C620000 lw $v0, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04E18u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -12877,6 +15673,9 @@ label_BFC04E18: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28336)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04E28u); return; } g_debug_last_store_pc = 0xBFC04E28u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC04E24) goto label_BFC04E34; label_BFC04E2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04E2C: 1000005F beq $zero, $zero, 0xBFC04FAC */ uint32_t psx_brA_BFC04E2C = cpu->gpr[0]; uint32_t psx_brB_BFC04E2C = cpu->gpr[0]; @@ -12885,6 +15684,9 @@ label_BFC04E2C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC04E2C) goto label_BFC04FAC; label_BFC04E34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC04E34: 3C04BFC1 lui $a0, 0xBFC1 */ cpu->gpr[4] = 0xBFC10000u; @@ -12913,6 +15715,9 @@ label_BFC04E34: cpu->gpr[3] = cpu->gpr[2] & 0x18u; if (psx_taken_BFC04E5C) goto label_BFC04EBC; label_BFC04E64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC04E64: A0860000 sb $a2, 0($a0) */ g_debug_last_store_pc = 0xBFC04E64u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (0)), (uint8_t)(cpu->gpr[6] & 0xFFu)); @@ -12935,6 +15740,9 @@ label_BFC04E64: cpu->gpr[3] = cpu->gpr[2] & 0x18u; if (psx_taken_BFC04E80) goto label_BFC04EBC; label_BFC04E88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC04E88: 8FA90018 lw $t1, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04E88u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -12963,10 +15771,16 @@ label_BFC04E88: /* nop */ if (psx_taken_BFC04EB0) goto label_BFC04E88; label_BFC04EB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC04EB8: 30430018 andi $v1, $v0, 0x18 */ cpu->gpr[3] = cpu->gpr[2] & 0x18u; label_BFC04EBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC04EBC: 306300FF andi $v1, $v1, 0xFF */ cpu->gpr[3] = cpu->gpr[3] & 0xFFu; @@ -12977,6 +15791,9 @@ label_BFC04EBC: cpu->gpr[2] = cpu->gpr[7] + cpu->gpr[0]; if (psx_taken_BFC04EC0) goto label_BFC04F1C; label_BFC04EC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC04EC8: A0860000 sb $a2, 0($a0) */ g_debug_last_store_pc = 0xBFC04EC8u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (0)), (uint8_t)(cpu->gpr[6] & 0xFFu)); @@ -12997,6 +15814,9 @@ label_BFC04EC8: cpu->gpr[2] = cpu->gpr[7] + cpu->gpr[0]; if (psx_taken_BFC04EE0) goto label_BFC04F1C; label_BFC04EE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC04EE8: 8FAE0018 lw $t6, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04EE8u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -13025,10 +15845,16 @@ label_BFC04EE8: /* nop */ if (psx_taken_BFC04F10) goto label_BFC04EE8; label_BFC04F18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC04F18: 00E01021 addu $v0, $a3, $zero */ cpu->gpr[2] = cpu->gpr[7] + cpu->gpr[0]; label_BFC04F1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC04F1C: 2448FFFF addiu $t0, $v0, -1 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[2] + (-1)); @@ -13041,6 +15867,9 @@ label_BFC04F1C: /* nop */ if (psx_taken_BFC04F24) goto label_BFC04F98; label_BFC04F2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC04F2C: 00084080 sll $t0, $t0, 2 */ cpu->gpr[8] = cpu->gpr[8] << 2u; @@ -13065,6 +15894,9 @@ label_BFC04F2C: default: cpu->pc = cpu->gpr[8]; return; } label_BFC04F48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04F48: 0FF0164F jal 0xBFC0593C */ /* 0xBFC04F4C: 00000000 nop */ @@ -13072,6 +15904,9 @@ label_BFC04F48: cpu->gpr[31] = 0xBFC04F50u; psx_dispatch(cpu, 0xBFC0593Cu); label_BFC04F50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04F50: 10000016 beq $zero, $zero, 0xBFC04FAC */ uint32_t psx_brA_BFC04F50 = cpu->gpr[0]; uint32_t psx_brB_BFC04F50 = cpu->gpr[0]; @@ -13080,6 +15915,9 @@ label_BFC04F50: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC04F50) goto label_BFC04FAC; label_BFC04F58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04F58: 0FF01556 jal 0xBFC05558 */ /* 0xBFC04F5C: 00000000 nop */ @@ -13087,6 +15925,9 @@ label_BFC04F58: cpu->gpr[31] = 0xBFC04F60u; psx_dispatch(cpu, 0xBFC05558u); label_BFC04F60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04F60: 10000012 beq $zero, $zero, 0xBFC04FAC */ uint32_t psx_brA_BFC04F60 = cpu->gpr[0]; uint32_t psx_brB_BFC04F60 = cpu->gpr[0]; @@ -13095,6 +15936,9 @@ label_BFC04F60: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC04F60) goto label_BFC04FAC; label_BFC04F68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04F68: 0FF01465 jal 0xBFC05194 */ /* 0xBFC04F6C: 00000000 nop */ @@ -13102,6 +15946,9 @@ label_BFC04F68: cpu->gpr[31] = 0xBFC04F70u; psx_dispatch(cpu, 0xBFC05194u); label_BFC04F70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04F70: 1000000E beq $zero, $zero, 0xBFC04FAC */ uint32_t psx_brA_BFC04F70 = cpu->gpr[0]; uint32_t psx_brB_BFC04F70 = cpu->gpr[0]; @@ -13110,6 +15957,9 @@ label_BFC04F70: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC04F70) goto label_BFC04FAC; label_BFC04F78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04F78: 0FF01691 jal 0xBFC05A44 */ /* 0xBFC04F7C: 00000000 nop */ @@ -13117,6 +15967,9 @@ label_BFC04F78: cpu->gpr[31] = 0xBFC04F80u; psx_dispatch(cpu, 0xBFC05A44u); label_BFC04F80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04F80: 1000000A beq $zero, $zero, 0xBFC04FAC */ uint32_t psx_brA_BFC04F80 = cpu->gpr[0]; uint32_t psx_brB_BFC04F80 = cpu->gpr[0]; @@ -13125,6 +15978,9 @@ label_BFC04F80: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC04F80) goto label_BFC04FAC; label_BFC04F88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04F88: 0FF015EC jal 0xBFC057B0 */ /* 0xBFC04F8C: 00000000 nop */ @@ -13132,6 +15988,9 @@ label_BFC04F88: cpu->gpr[31] = 0xBFC04F90u; psx_dispatch(cpu, 0xBFC057B0u); label_BFC04F90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04F90: 10000006 beq $zero, $zero, 0xBFC04FAC */ uint32_t psx_brA_BFC04F90 = cpu->gpr[0]; uint32_t psx_brB_BFC04F90 = cpu->gpr[0]; @@ -13140,6 +15999,9 @@ label_BFC04F90: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC04F90) goto label_BFC04FAC; label_BFC04F98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04F98: 14600004 bne $v1, $zero, 0xBFC04FAC */ uint32_t psx_brA_BFC04F98 = cpu->gpr[3]; uint32_t psx_brB_BFC04F98 = cpu->gpr[0]; @@ -13148,6 +16010,9 @@ label_BFC04F98: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC04F98) goto label_BFC04FAC; label_BFC04FA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04FA0: 10000002 beq $zero, $zero, 0xBFC04FAC */ uint32_t psx_brA_BFC04FA0 = cpu->gpr[0]; uint32_t psx_brB_BFC04FA0 = cpu->gpr[0]; @@ -13156,10 +16021,16 @@ label_BFC04FA0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC04FA0) goto label_BFC04FAC; label_BFC04FA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC04FA8: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC04FAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC04FAC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04FACu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -13182,6 +16053,9 @@ void func_1FC04FBC(CPUState* cpu) { } } label_BFC04FBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC04FBC: 3C03BFC1 lui $v1, 0xBFC1 */ cpu->gpr[3] = 0xBFC10000u; @@ -13204,6 +16078,9 @@ label_BFC04FBC: /* nop */ if (psx_taken_BFC04FD8) goto label_BFC04FE8; label_BFC04FE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04FE0: 1000001E beq $zero, $zero, 0xBFC0505C */ uint32_t psx_brA_BFC04FE0 = cpu->gpr[0]; uint32_t psx_brB_BFC04FE0 = cpu->gpr[0]; @@ -13212,6 +16089,9 @@ label_BFC04FE0: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC04FE0) goto label_BFC0505C; label_BFC04FE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC04FE8: 8C620000 lw $v0, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04FE8u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -13226,6 +16106,9 @@ label_BFC04FE8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28336)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC04FF8u); return; } g_debug_last_store_pc = 0xBFC04FF8u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC04FF4) goto label_BFC05004; label_BFC04FFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC04FFC: 10000017 beq $zero, $zero, 0xBFC0505C */ uint32_t psx_brA_BFC04FFC = cpu->gpr[0]; uint32_t psx_brB_BFC04FFC = cpu->gpr[0]; @@ -13234,6 +16117,9 @@ label_BFC04FFC: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC04FFC) goto label_BFC0505C; label_BFC05004: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC05004: 3C03BFC1 lui $v1, 0xBFC1 */ cpu->gpr[3] = 0xBFC10000u; @@ -13268,6 +16154,9 @@ label_BFC05004: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28288)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0503Cu); return; } g_debug_last_store_pc = 0xBFC0503Cu; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC05038) goto label_BFC05050; label_BFC05040: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC05040: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -13279,6 +16168,9 @@ label_BFC05040: cpu->gpr[31] = 0xBFC05050u; psx_dispatch(cpu, 0xBFC0D970u); label_BFC05050: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05050: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -13287,6 +16179,9 @@ label_BFC05050: /* 0xBFC05058: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC0505C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0505C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0505Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -13309,6 +16204,9 @@ void func_1FC0506C(CPUState* cpu) { } } label_BFC0506C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0506C: 3C0EA001 lui $t6, 0xA001 */ cpu->gpr[14] = 0xA0010000u; @@ -13323,6 +16221,9 @@ label_BFC0506C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0507Cu); return; } g_debug_last_store_pc = 0xBFC0507Cu; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC05078) goto label_BFC05094; label_BFC05080: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC05080: 3C18BFC1 lui $t8, 0xBFC1 */ cpu->gpr[24] = 0xBFC10000u; @@ -13336,6 +16237,9 @@ label_BFC05080: cpu->gpr[31] = 0xBFC05094u; psx_dispatch(cpu, 0xBFC0D980u); label_BFC05094: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC05094: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05094u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -13358,6 +16262,9 @@ void func_1FC050A4(CPUState* cpu) { } } label_BFC050A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC050A4: 3C0EA001 lui $t6, 0xA001 */ cpu->gpr[14] = 0xA0010000u; @@ -13372,6 +16279,9 @@ label_BFC050A4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC050B4u); return; } g_debug_last_store_pc = 0xBFC050B4u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC050B0) goto label_BFC050CC; label_BFC050B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC050B8: 3C18BFC1 lui $t8, 0xBFC1 */ cpu->gpr[24] = 0xBFC10000u; @@ -13385,6 +16295,9 @@ label_BFC050B8: cpu->gpr[31] = 0xBFC050CCu; psx_dispatch(cpu, 0xBFC0D980u); label_BFC050CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC050CC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC050CCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -13399,6 +16312,9 @@ label_BFC050CC: void func_1FC050FC(CPUState* cpu) { debug_server_log_call_entry(0x1FC050FCu); label_BFC050FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC050FC: 3C0FBFC1 lui $t7, 0xBFC1 */ cpu->gpr[15] = 0xBFC10000u; @@ -13423,6 +16339,9 @@ label_BFC050FC: void func_1FC05120(CPUState* cpu) { debug_server_log_call_entry(0x1FC05120u); label_BFC05120: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC05120: 3C0FBFC1 lui $t7, 0xBFC1 */ cpu->gpr[15] = 0xBFC10000u; @@ -13457,10 +16376,16 @@ label_BFC05120: /* nop */ if (psx_taken_BFC05154) goto label_BFC0518C; label_BFC0515C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0515C: 8FA90000 lw $t1, 0($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0515Cu); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } label_BFC05160: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC05160: 00000000 nop */ /* nop */ @@ -13487,6 +16412,9 @@ label_BFC05160: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05188u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } if (psx_taken_BFC05184) goto label_BFC05160; label_BFC0518C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0518C: 03E00008 jr $ra */ /* 0xBFC05190: 27BD0008 addiu $sp, $sp, 8 */ @@ -13520,6 +16448,9 @@ void func_1FC05194(CPUState* cpu) { } } label_BFC05194: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC05194: 3C02A001 lui $v0, 0xA001 */ cpu->gpr[2] = 0xA0010000u; @@ -13536,6 +16467,9 @@ label_BFC05194: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC051A8u); return; } g_debug_last_store_pc = 0xBFC051A8u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC051A4) goto label_BFC051BC; label_BFC051AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC051AC: 0FF01714 jal 0xBFC05C50 */ /* 0xBFC051B0: 00000000 nop */ @@ -13543,6 +16477,9 @@ label_BFC051AC: cpu->gpr[31] = 0xBFC051B4u; psx_dispatch(cpu, 0xBFC05C50u); label_BFC051B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC051B4: 100000E5 beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC051B4 = cpu->gpr[0]; uint32_t psx_brB_BFC051B4 = cpu->gpr[0]; @@ -13551,6 +16488,9 @@ label_BFC051B4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC051B8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC051B4) goto label_BFC0554C; label_BFC051BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC051BC: 24010011 addiu $at, $zero, 17 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (17)); @@ -13561,6 +16501,9 @@ label_BFC051BC: /* nop */ if (psx_taken_BFC051C0) goto label_BFC051D8; label_BFC051C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC051C8: 0FF01741 jal 0xBFC05D04 */ /* 0xBFC051CC: 00000000 nop */ @@ -13568,6 +16511,9 @@ label_BFC051C8: cpu->gpr[31] = 0xBFC051D0u; psx_dispatch(cpu, 0xBFC05D04u); label_BFC051D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC051D0: 100000DE beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC051D0 = cpu->gpr[0]; uint32_t psx_brB_BFC051D0 = cpu->gpr[0]; @@ -13576,6 +16522,9 @@ label_BFC051D0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC051D4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC051D0) goto label_BFC0554C; label_BFC051D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC051D8: 3C0EBFC1 lui $t6, 0xBFC1 */ cpu->gpr[14] = 0xBFC10000u; @@ -13592,6 +16541,9 @@ label_BFC051D8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (25)); if (psx_taken_BFC051E8) goto label_BFC05300; label_BFC051F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC051F0: 0FF01706 jal 0xBFC05C18 */ /* 0xBFC051F4: 00002021 addu $a0, $zero, $zero */ @@ -13599,6 +16551,9 @@ label_BFC051F0: cpu->gpr[31] = 0xBFC051F8u; psx_dispatch(cpu, 0xBFC05C18u); label_BFC051F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC051F8: 100000D4 beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC051F8 = cpu->gpr[0]; uint32_t psx_brB_BFC051F8 = cpu->gpr[0]; @@ -13607,6 +16562,9 @@ label_BFC051F8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC051FCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC051F8) goto label_BFC0554C; label_BFC05200: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05200: 0FF01706 jal 0xBFC05C18 */ /* 0xBFC05204: 24040001 addiu $a0, $zero, 1 */ @@ -13614,6 +16572,9 @@ label_BFC05200: cpu->gpr[31] = 0xBFC05208u; psx_dispatch(cpu, 0xBFC05C18u); label_BFC05208: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05208: 100000D0 beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC05208 = cpu->gpr[0]; uint32_t psx_brB_BFC05208 = cpu->gpr[0]; @@ -13622,10 +16583,16 @@ label_BFC05208: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0520Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC05208) goto label_BFC0554C; label_BFC05210: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC05210: 240F0001 addiu $t7, $zero, 1 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC05214: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05214: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -13636,10 +16603,16 @@ label_BFC05214: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28324)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0521Cu); return; } g_debug_last_store_pc = 0xBFC0521Cu; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC05218) goto label_BFC05548; label_BFC05220: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC05220: 24180001 addiu $t8, $zero, 1 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC05224: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC05224: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -13655,6 +16628,9 @@ label_BFC05224: cpu->gpr[31] = 0xBFC0523Cu; psx_dispatch(cpu, 0xBFC0D970u); label_BFC0523C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0523C: 100000C3 beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC0523C = cpu->gpr[0]; uint32_t psx_brB_BFC0523C = cpu->gpr[0]; @@ -13663,6 +16639,9 @@ label_BFC0523C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05240u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0523C) goto label_BFC0554C; label_BFC05244: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05244: 0FF0176C jal 0xBFC05DB0 */ /* 0xBFC05248: 00000000 nop */ @@ -13670,6 +16649,9 @@ label_BFC05244: cpu->gpr[31] = 0xBFC0524Cu; psx_dispatch(cpu, 0xBFC05DB0u); label_BFC0524C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0524C: 100000BF beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC0524C = cpu->gpr[0]; uint32_t psx_brB_BFC0524C = cpu->gpr[0]; @@ -13678,6 +16660,9 @@ label_BFC0524C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05250u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0524C) goto label_BFC0554C; label_BFC05254: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05254: 0FF0177D jal 0xBFC05DF4 */ /* 0xBFC05258: 00000000 nop */ @@ -13685,6 +16670,9 @@ label_BFC05254: cpu->gpr[31] = 0xBFC0525Cu; psx_dispatch(cpu, 0xBFC05DF4u); label_BFC0525C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0525C: 100000BB beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC0525C = cpu->gpr[0]; uint32_t psx_brB_BFC0525C = cpu->gpr[0]; @@ -13693,6 +16681,9 @@ label_BFC0525C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05260u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0525C) goto label_BFC0554C; label_BFC05264: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05264: 0FF01796 jal 0xBFC05E58 */ /* 0xBFC05268: 00000000 nop */ @@ -13700,6 +16691,9 @@ label_BFC05264: cpu->gpr[31] = 0xBFC0526Cu; psx_dispatch(cpu, 0xBFC05E58u); label_BFC0526C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0526C: 100000B7 beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC0526C = cpu->gpr[0]; uint32_t psx_brB_BFC0526C = cpu->gpr[0]; @@ -13708,6 +16702,9 @@ label_BFC0526C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05270u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0526C) goto label_BFC0554C; label_BFC05274: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05274: 0FF01875 jal 0xBFC061D4 */ /* 0xBFC05278: 00000000 nop */ @@ -13715,6 +16712,9 @@ label_BFC05274: cpu->gpr[31] = 0xBFC0527Cu; psx_dispatch(cpu, 0xBFC061D4u); label_BFC0527C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0527C: 100000B3 beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC0527C = cpu->gpr[0]; uint32_t psx_brB_BFC0527C = cpu->gpr[0]; @@ -13723,6 +16723,9 @@ label_BFC0527C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05280u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0527C) goto label_BFC0554C; label_BFC05284: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05284: 0FF01857 jal 0xBFC0615C */ /* 0xBFC05288: 00000000 nop */ @@ -13730,6 +16733,9 @@ label_BFC05284: cpu->gpr[31] = 0xBFC0528Cu; psx_dispatch(cpu, 0xBFC0615Cu); label_BFC0528C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0528C: 100000AF beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC0528C = cpu->gpr[0]; uint32_t psx_brB_BFC0528C = cpu->gpr[0]; @@ -13738,6 +16744,9 @@ label_BFC0528C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05290u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0528C) goto label_BFC0554C; label_BFC05294: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05294: 0FF018A2 jal 0xBFC06288 */ /* 0xBFC05298: 00000000 nop */ @@ -13745,6 +16754,9 @@ label_BFC05294: cpu->gpr[31] = 0xBFC0529Cu; psx_dispatch(cpu, 0xBFC06288u); label_BFC0529C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0529C: 100000AB beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC0529C = cpu->gpr[0]; uint32_t psx_brB_BFC0529C = cpu->gpr[0]; @@ -13753,6 +16765,9 @@ label_BFC0529C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC052A0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0529C) goto label_BFC0554C; label_BFC052A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC052A4: 0FF018F3 jal 0xBFC063CC */ /* 0xBFC052A8: 00000000 nop */ @@ -13760,6 +16775,9 @@ label_BFC052A4: cpu->gpr[31] = 0xBFC052ACu; psx_dispatch(cpu, 0xBFC063CCu); label_BFC052AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC052AC: 100000A7 beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC052AC = cpu->gpr[0]; uint32_t psx_brB_BFC052AC = cpu->gpr[0]; @@ -13768,6 +16786,9 @@ label_BFC052AC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC052B0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC052AC) goto label_BFC0554C; label_BFC052B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC052B4: 0FF01868 jal 0xBFC061A0 */ /* 0xBFC052B8: 00000000 nop */ @@ -13775,6 +16796,9 @@ label_BFC052B4: cpu->gpr[31] = 0xBFC052BCu; psx_dispatch(cpu, 0xBFC061A0u); label_BFC052BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC052BC: 100000A3 beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC052BC = cpu->gpr[0]; uint32_t psx_brB_BFC052BC = cpu->gpr[0]; @@ -13783,6 +16807,9 @@ label_BFC052BC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC052C0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC052BC) goto label_BFC0554C; label_BFC052C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC052C4: 0FF018B3 jal 0xBFC062CC */ /* 0xBFC052C8: 00000000 nop */ @@ -13790,6 +16817,9 @@ label_BFC052C4: cpu->gpr[31] = 0xBFC052CCu; psx_dispatch(cpu, 0xBFC062CCu); label_BFC052CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC052CC: 1000009F beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC052CC = cpu->gpr[0]; uint32_t psx_brB_BFC052CC = cpu->gpr[0]; @@ -13798,6 +16828,9 @@ label_BFC052CC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC052D0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC052CC) goto label_BFC0554C; label_BFC052D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC052D4: 0FF01837 jal 0xBFC060DC */ /* 0xBFC052D8: 00000000 nop */ @@ -13805,6 +16838,9 @@ label_BFC052D4: cpu->gpr[31] = 0xBFC052DCu; psx_dispatch(cpu, 0xBFC060DCu); label_BFC052DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC052DC: 1000009B beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC052DC = cpu->gpr[0]; uint32_t psx_brB_BFC052DC = cpu->gpr[0]; @@ -13813,10 +16849,16 @@ label_BFC052DC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC052E0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC052DC) goto label_BFC0554C; label_BFC052E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC052E4: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; label_BFC052E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC052E8: 34840003 ori $a0, $a0, 0x3 */ cpu->gpr[4] = cpu->gpr[4] | 0x3u; @@ -13826,6 +16868,9 @@ label_BFC052E8: cpu->gpr[31] = 0xBFC052F4u; psx_dispatch(cpu, 0xBFC0D970u); label_BFC052F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC052F4: 10000095 beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC052F4 = cpu->gpr[0]; uint32_t psx_brB_BFC052F4 = cpu->gpr[0]; @@ -13834,10 +16879,16 @@ label_BFC052F4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC052F8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC052F4) goto label_BFC0554C; label_BFC052FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC052FC: 24010019 addiu $at, $zero, 25 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (25)); label_BFC05300: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05300: 1041FFF4 beq $v0, $at, 0xBFC052D4 */ uint32_t psx_brA_BFC05300 = cpu->gpr[2]; uint32_t psx_brB_BFC05300 = cpu->gpr[1]; @@ -13846,6 +16897,9 @@ label_BFC05300: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (26) ? 1 : 0); if (psx_taken_BFC05300) goto label_BFC052D4; label_BFC05308: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05308: 1020004D beq $at, $zero, 0xBFC05440 */ uint32_t psx_brA_BFC05308 = cpu->gpr[1]; uint32_t psx_brB_BFC05308 = cpu->gpr[0]; @@ -13854,6 +16908,9 @@ label_BFC05308: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (14)); if (psx_taken_BFC05308) goto label_BFC05440; label_BFC05310: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05310: 1041FFE8 beq $v0, $at, 0xBFC052B4 */ uint32_t psx_brA_BFC05310 = cpu->gpr[2]; uint32_t psx_brB_BFC05310 = cpu->gpr[1]; @@ -13862,6 +16919,9 @@ label_BFC05310: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (15) ? 1 : 0); if (psx_taken_BFC05310) goto label_BFC052B4; label_BFC05318: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05318: 10200029 beq $at, $zero, 0xBFC053C0 */ uint32_t psx_brA_BFC05318 = cpu->gpr[1]; uint32_t psx_brB_BFC05318 = cpu->gpr[0]; @@ -13870,6 +16930,9 @@ label_BFC05318: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (8)); if (psx_taken_BFC05318) goto label_BFC053C0; label_BFC05320: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05320: 10410089 beq $v0, $at, 0xBFC05548 */ uint32_t psx_brA_BFC05320 = cpu->gpr[2]; uint32_t psx_brB_BFC05320 = cpu->gpr[1]; @@ -13878,6 +16941,9 @@ label_BFC05320: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (9) ? 1 : 0); if (psx_taken_BFC05320) goto label_BFC05548; label_BFC05328: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05328: 10200017 beq $at, $zero, 0xBFC05388 */ uint32_t psx_brA_BFC05328 = cpu->gpr[1]; uint32_t psx_brB_BFC05328 = cpu->gpr[0]; @@ -13886,6 +16952,9 @@ label_BFC05328: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); if (psx_taken_BFC05328) goto label_BFC05388; label_BFC05330: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05330: 1041FFBB beq $v0, $at, 0xBFC05220 */ uint32_t psx_brA_BFC05330 = cpu->gpr[2]; uint32_t psx_brB_BFC05330 = cpu->gpr[1]; @@ -13894,6 +16963,9 @@ label_BFC05330: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (6) ? 1 : 0); if (psx_taken_BFC05330) goto label_BFC05220; label_BFC05338: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05338: 1020000E beq $at, $zero, 0xBFC05374 */ uint32_t psx_brA_BFC05338 = cpu->gpr[1]; uint32_t psx_brB_BFC05338 = cpu->gpr[0]; @@ -13902,6 +16974,9 @@ label_BFC05338: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); if (psx_taken_BFC05338) goto label_BFC05374; label_BFC05340: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05340: 1041FFB7 beq $v0, $at, 0xBFC05220 */ uint32_t psx_brA_BFC05340 = cpu->gpr[2]; uint32_t psx_brB_BFC05340 = cpu->gpr[1]; @@ -13910,6 +16985,9 @@ label_BFC05340: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (4) ? 1 : 0); if (psx_taken_BFC05340) goto label_BFC05220; label_BFC05348: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05348: 10200005 beq $at, $zero, 0xBFC05360 */ uint32_t psx_brA_BFC05348 = cpu->gpr[1]; uint32_t psx_brB_BFC05348 = cpu->gpr[0]; @@ -13918,6 +16996,9 @@ label_BFC05348: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC05348) goto label_BFC05360; label_BFC05350: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05350: 1041FFBC beq $v0, $at, 0xBFC05244 */ uint32_t psx_brA_BFC05350 = cpu->gpr[2]; uint32_t psx_brB_BFC05350 = cpu->gpr[1]; @@ -13926,6 +17007,9 @@ label_BFC05350: /* nop */ if (psx_taken_BFC05350) goto label_BFC05244; label_BFC05358: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05358: 1000007C beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC05358 = cpu->gpr[0]; uint32_t psx_brB_BFC05358 = cpu->gpr[0]; @@ -13934,6 +17018,9 @@ label_BFC05358: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0535Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC05358) goto label_BFC0554C; label_BFC05360: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05360: 24010004 addiu $at, $zero, 4 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); @@ -13944,6 +17031,9 @@ label_BFC05360: cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC05364) goto label_BFC05224; label_BFC0536C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0536C: 10000077 beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC0536C = cpu->gpr[0]; uint32_t psx_brB_BFC0536C = cpu->gpr[0]; @@ -13952,6 +17042,9 @@ label_BFC0536C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05370u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0536C) goto label_BFC0554C; label_BFC05374: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05374: 24010007 addiu $at, $zero, 7 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (7)); @@ -13962,6 +17055,9 @@ label_BFC05374: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0537Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC05378) goto label_BFC0554C; label_BFC05380: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05380: 10000072 beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC05380 = cpu->gpr[0]; uint32_t psx_brB_BFC05380 = cpu->gpr[0]; @@ -13970,6 +17066,9 @@ label_BFC05380: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05384u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC05380) goto label_BFC0554C; label_BFC05388: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05388: 2401000B addiu $at, $zero, 11 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (11)); @@ -13980,6 +17079,9 @@ label_BFC05388: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (12) ? 1 : 0); if (psx_taken_BFC0538C) goto label_BFC05284; label_BFC05394: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05394: 10200005 beq $at, $zero, 0xBFC053AC */ uint32_t psx_brA_BFC05394 = cpu->gpr[1]; uint32_t psx_brB_BFC05394 = cpu->gpr[0]; @@ -13988,6 +17090,9 @@ label_BFC05394: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); if (psx_taken_BFC05394) goto label_BFC053AC; label_BFC0539C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0539C: 1041006B beq $v0, $at, 0xBFC0554C */ uint32_t psx_brA_BFC0539C = cpu->gpr[2]; uint32_t psx_brB_BFC0539C = cpu->gpr[1]; @@ -13996,6 +17101,9 @@ label_BFC0539C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC053A0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0539C) goto label_BFC0554C; label_BFC053A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC053A4: 10000069 beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC053A4 = cpu->gpr[0]; uint32_t psx_brB_BFC053A4 = cpu->gpr[0]; @@ -14004,6 +17112,9 @@ label_BFC053A4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC053A8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC053A4) goto label_BFC0554C; label_BFC053AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC053AC: 2401000C addiu $at, $zero, 12 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (12)); @@ -14014,6 +17125,9 @@ label_BFC053AC: /* nop */ if (psx_taken_BFC053B0) goto label_BFC05284; label_BFC053B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC053B8: 10000064 beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC053B8 = cpu->gpr[0]; uint32_t psx_brB_BFC053B8 = cpu->gpr[0]; @@ -14022,6 +17136,9 @@ label_BFC053B8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC053BCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC053B8) goto label_BFC0554C; label_BFC053C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC053C0: 24010014 addiu $at, $zero, 20 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (20)); @@ -14032,6 +17149,9 @@ label_BFC053C0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (21) ? 1 : 0); if (psx_taken_BFC053C4) goto label_BFC052A4; label_BFC053CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC053CC: 1020000E beq $at, $zero, 0xBFC05408 */ uint32_t psx_brA_BFC053CC = cpu->gpr[1]; uint32_t psx_brB_BFC053CC = cpu->gpr[0]; @@ -14040,6 +17160,9 @@ label_BFC053CC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (18)); if (psx_taken_BFC053CC) goto label_BFC05408; label_BFC053D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC053D4: 1041005C beq $v0, $at, 0xBFC05548 */ uint32_t psx_brA_BFC053D4 = cpu->gpr[2]; uint32_t psx_brB_BFC053D4 = cpu->gpr[1]; @@ -14048,6 +17171,9 @@ label_BFC053D4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (19) ? 1 : 0); if (psx_taken_BFC053D4) goto label_BFC05548; label_BFC053DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC053DC: 10200005 beq $at, $zero, 0xBFC053F4 */ uint32_t psx_brA_BFC053DC = cpu->gpr[1]; uint32_t psx_brB_BFC053DC = cpu->gpr[0]; @@ -14056,6 +17182,9 @@ label_BFC053DC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (15)); if (psx_taken_BFC053DC) goto label_BFC053F4; label_BFC053E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC053E4: 1041FF9B beq $v0, $at, 0xBFC05254 */ uint32_t psx_brA_BFC053E4 = cpu->gpr[2]; uint32_t psx_brB_BFC053E4 = cpu->gpr[1]; @@ -14064,6 +17193,9 @@ label_BFC053E4: /* nop */ if (psx_taken_BFC053E4) goto label_BFC05254; label_BFC053EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC053EC: 10000057 beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC053EC = cpu->gpr[0]; uint32_t psx_brB_BFC053EC = cpu->gpr[0]; @@ -14072,6 +17204,9 @@ label_BFC053EC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC053F0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC053EC) goto label_BFC0554C; label_BFC053F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC053F4: 24010013 addiu $at, $zero, 19 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (19)); @@ -14082,6 +17217,9 @@ label_BFC053F4: /* nop */ if (psx_taken_BFC053F8) goto label_BFC052C4; label_BFC05400: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05400: 10000052 beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC05400 = cpu->gpr[0]; uint32_t psx_brB_BFC05400 = cpu->gpr[0]; @@ -14090,6 +17228,9 @@ label_BFC05400: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05404u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC05400) goto label_BFC0554C; label_BFC05408: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05408: 24010016 addiu $at, $zero, 22 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (22)); @@ -14100,6 +17241,9 @@ label_BFC05408: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (23) ? 1 : 0); if (psx_taken_BFC0540C) goto label_BFC05548; label_BFC05414: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05414: 10200005 beq $at, $zero, 0xBFC0542C */ uint32_t psx_brA_BFC05414 = cpu->gpr[1]; uint32_t psx_brB_BFC05414 = cpu->gpr[0]; @@ -14108,6 +17252,9 @@ label_BFC05414: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (21)); if (psx_taken_BFC05414) goto label_BFC0542C; label_BFC0541C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0541C: 1041004B beq $v0, $at, 0xBFC0554C */ uint32_t psx_brA_BFC0541C = cpu->gpr[2]; uint32_t psx_brB_BFC0541C = cpu->gpr[1]; @@ -14116,6 +17263,9 @@ label_BFC0541C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05420u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0541C) goto label_BFC0554C; label_BFC05424: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05424: 10000049 beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC05424 = cpu->gpr[0]; uint32_t psx_brB_BFC05424 = cpu->gpr[0]; @@ -14124,6 +17274,9 @@ label_BFC05424: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05428u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC05424) goto label_BFC0554C; label_BFC0542C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0542C: 24010017 addiu $at, $zero, 23 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (23)); @@ -14134,6 +17287,9 @@ label_BFC0542C: /* nop */ if (psx_taken_BFC05430) goto label_BFC052B4; label_BFC05438: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05438: 10000044 beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC05438 = cpu->gpr[0]; uint32_t psx_brB_BFC05438 = cpu->gpr[0]; @@ -14142,6 +17298,9 @@ label_BFC05438: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0543Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC05438) goto label_BFC0554C; label_BFC05440: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05440: 240100F6 addiu $at, $zero, 246 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (246)); @@ -14152,6 +17311,9 @@ label_BFC05440: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (247) ? 1 : 0); if (psx_taken_BFC05444) goto label_BFC05210; label_BFC0544C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0544C: 10200020 beq $at, $zero, 0xBFC054D0 */ uint32_t psx_brA_BFC0544C = cpu->gpr[1]; uint32_t psx_brB_BFC0544C = cpu->gpr[0]; @@ -14160,6 +17322,9 @@ label_BFC0544C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); if (psx_taken_BFC0544C) goto label_BFC054D0; label_BFC05454: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05454: 1041FF6E beq $v0, $at, 0xBFC05210 */ uint32_t psx_brA_BFC05454 = cpu->gpr[2]; uint32_t psx_brB_BFC05454 = cpu->gpr[1]; @@ -14168,6 +17333,9 @@ label_BFC05454: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (231) ? 1 : 0); if (psx_taken_BFC05454) goto label_BFC05210; label_BFC0545C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0545C: 1020000E beq $at, $zero, 0xBFC05498 */ uint32_t psx_brA_BFC0545C = cpu->gpr[1]; uint32_t psx_brB_BFC0545C = cpu->gpr[0]; @@ -14176,6 +17344,9 @@ label_BFC0545C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (80)); if (psx_taken_BFC0545C) goto label_BFC05498; label_BFC05464: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05464: 1041FF83 beq $v0, $at, 0xBFC05274 */ uint32_t psx_brA_BFC05464 = cpu->gpr[2]; uint32_t psx_brB_BFC05464 = cpu->gpr[1]; @@ -14184,6 +17355,9 @@ label_BFC05464: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (81) ? 1 : 0); if (psx_taken_BFC05464) goto label_BFC05274; label_BFC0546C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0546C: 10200005 beq $at, $zero, 0xBFC05484 */ uint32_t psx_brA_BFC0546C = cpu->gpr[1]; uint32_t psx_brB_BFC0546C = cpu->gpr[0]; @@ -14192,6 +17366,9 @@ label_BFC0546C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (26)); if (psx_taken_BFC0546C) goto label_BFC05484; label_BFC05474: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05474: 10410035 beq $v0, $at, 0xBFC0554C */ uint32_t psx_brA_BFC05474 = cpu->gpr[2]; uint32_t psx_brB_BFC05474 = cpu->gpr[1]; @@ -14200,6 +17377,9 @@ label_BFC05474: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05478u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC05474) goto label_BFC0554C; label_BFC0547C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0547C: 10000033 beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC0547C = cpu->gpr[0]; uint32_t psx_brB_BFC0547C = cpu->gpr[0]; @@ -14208,6 +17388,9 @@ label_BFC0547C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05480u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0547C) goto label_BFC0554C; label_BFC05484: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05484: 240100E2 addiu $at, $zero, 226 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (226)); @@ -14218,6 +17401,9 @@ label_BFC05484: /* nop */ if (psx_taken_BFC05488) goto label_BFC05200; label_BFC05490: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05490: 1000002E beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC05490 = cpu->gpr[0]; uint32_t psx_brB_BFC05490 = cpu->gpr[0]; @@ -14226,6 +17412,9 @@ label_BFC05490: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05494u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC05490) goto label_BFC0554C; label_BFC05498: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05498: 240100EE addiu $at, $zero, 238 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (238)); @@ -14236,6 +17425,9 @@ label_BFC05498: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (239) ? 1 : 0); if (psx_taken_BFC0549C) goto label_BFC05264; label_BFC054A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC054A4: 10200005 beq $at, $zero, 0xBFC054BC */ uint32_t psx_brA_BFC054A4 = cpu->gpr[1]; uint32_t psx_brB_BFC054A4 = cpu->gpr[0]; @@ -14244,6 +17436,9 @@ label_BFC054A4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); if (psx_taken_BFC054A4) goto label_BFC054BC; label_BFC054AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC054AC: 1041FF59 beq $v0, $at, 0xBFC05214 */ uint32_t psx_brA_BFC054AC = cpu->gpr[2]; uint32_t psx_brB_BFC054AC = cpu->gpr[1]; @@ -14252,6 +17447,9 @@ label_BFC054AC: cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC054AC) goto label_BFC05214; label_BFC054B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC054B4: 10000025 beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC054B4 = cpu->gpr[0]; uint32_t psx_brB_BFC054B4 = cpu->gpr[0]; @@ -14260,6 +17458,9 @@ label_BFC054B4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC054B8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC054B4) goto label_BFC0554C; label_BFC054BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC054BC: 240100F2 addiu $at, $zero, 242 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (242)); @@ -14270,6 +17471,9 @@ label_BFC054BC: /* nop */ if (psx_taken_BFC054C0) goto label_BFC051F0; label_BFC054C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC054C8: 10000020 beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC054C8 = cpu->gpr[0]; uint32_t psx_brB_BFC054C8 = cpu->gpr[0]; @@ -14278,6 +17482,9 @@ label_BFC054C8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC054CCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC054C8) goto label_BFC0554C; label_BFC054D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC054D0: 24010DDD addiu $at, $zero, 3549 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3549)); @@ -14288,6 +17495,9 @@ label_BFC054D0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (3550) ? 1 : 0); if (psx_taken_BFC054D4) goto label_BFC05548; label_BFC054DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC054DC: 1020000E beq $at, $zero, 0xBFC05518 */ uint32_t psx_brA_BFC054DC = cpu->gpr[1]; uint32_t psx_brB_BFC054DC = cpu->gpr[0]; @@ -14296,6 +17506,9 @@ label_BFC054DC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (254)); if (psx_taken_BFC054DC) goto label_BFC05518; label_BFC054E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC054E4: 1041FF5F beq $v0, $at, 0xBFC05264 */ uint32_t psx_brA_BFC054E4 = cpu->gpr[2]; uint32_t psx_brB_BFC054E4 = cpu->gpr[1]; @@ -14304,6 +17517,9 @@ label_BFC054E4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (255) ? 1 : 0); if (psx_taken_BFC054E4) goto label_BFC05264; label_BFC054EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC054EC: 10200005 beq $at, $zero, 0xBFC05504 */ uint32_t psx_brA_BFC054EC = cpu->gpr[1]; uint32_t psx_brB_BFC054EC = cpu->gpr[0]; @@ -14312,6 +17528,9 @@ label_BFC054EC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (251)); if (psx_taken_BFC054EC) goto label_BFC05504; label_BFC054F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC054F4: 1041FF47 beq $v0, $at, 0xBFC05214 */ uint32_t psx_brA_BFC054F4 = cpu->gpr[2]; uint32_t psx_brB_BFC054F4 = cpu->gpr[1]; @@ -14320,6 +17539,9 @@ label_BFC054F4: cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC054F4) goto label_BFC05214; label_BFC054FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC054FC: 10000013 beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC054FC = cpu->gpr[0]; uint32_t psx_brB_BFC054FC = cpu->gpr[0]; @@ -14328,6 +17550,9 @@ label_BFC054FC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05500u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC054FC) goto label_BFC0554C; label_BFC05504: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05504: 24010CCC addiu $at, $zero, 3276 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3276)); @@ -14338,6 +17563,9 @@ label_BFC05504: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0550Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC05508) goto label_BFC0554C; label_BFC05510: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05510: 1000000E beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC05510 = cpu->gpr[0]; uint32_t psx_brB_BFC05510 = cpu->gpr[0]; @@ -14346,6 +17574,9 @@ label_BFC05510: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05514u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC05510) goto label_BFC0554C; label_BFC05518: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05518: 24010FFF addiu $at, $zero, 4095 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4095)); @@ -14356,6 +17587,9 @@ label_BFC05518: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (4096) ? 1 : 0); if (psx_taken_BFC0551C) goto label_BFC05548; label_BFC05524: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05524: 10200005 beq $at, $zero, 0xBFC0553C */ uint32_t psx_brA_BFC05524 = cpu->gpr[1]; uint32_t psx_brB_BFC05524 = cpu->gpr[0]; @@ -14364,6 +17598,9 @@ label_BFC05524: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3860)); if (psx_taken_BFC05524) goto label_BFC0553C; label_BFC0552C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0552C: 1041FF59 beq $v0, $at, 0xBFC05294 */ uint32_t psx_brA_BFC0552C = cpu->gpr[2]; uint32_t psx_brB_BFC0552C = cpu->gpr[1]; @@ -14372,6 +17609,9 @@ label_BFC0552C: /* nop */ if (psx_taken_BFC0552C) goto label_BFC05294; label_BFC05534: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05534: 10000005 beq $zero, $zero, 0xBFC0554C */ uint32_t psx_brA_BFC05534 = cpu->gpr[0]; uint32_t psx_brB_BFC05534 = cpu->gpr[0]; @@ -14380,6 +17620,9 @@ label_BFC05534: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05538u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC05534) goto label_BFC0554C; label_BFC0553C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0553C: 3401FFFF ori $at, $zero, 0xFFFF */ cpu->gpr[1] = cpu->gpr[0] | 0xFFFFu; @@ -14390,10 +17633,16 @@ label_BFC0553C: cpu->gpr[4] = 0xF0000000u; if (psx_taken_BFC05540) goto label_BFC052E8; label_BFC05548: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC05548: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05548u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC0554C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0554C: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -14420,6 +17669,9 @@ void func_1FC05558(CPUState* cpu) { } } label_BFC05558: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC05558: 3C05BFC1 lui $a1, 0xBFC1 */ cpu->gpr[5] = 0xBFC10000u; @@ -14444,6 +17696,9 @@ label_BFC05558: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3276)); if (psx_taken_BFC05578) goto label_BFC056E4; label_BFC05580: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05580: 0FF01886 jal 0xBFC06218 */ /* 0xBFC05584: 00000000 nop */ @@ -14451,6 +17706,9 @@ label_BFC05580: cpu->gpr[31] = 0xBFC05588u; psx_dispatch(cpu, 0xBFC06218u); label_BFC05588: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05588: 10000086 beq $zero, $zero, 0xBFC057A4 */ uint32_t psx_brA_BFC05588 = cpu->gpr[0]; uint32_t psx_brB_BFC05588 = cpu->gpr[0]; @@ -14459,6 +17717,9 @@ label_BFC05588: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0558Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC05588) goto label_BFC057A4; label_BFC05590: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC05590: 3C02A001 lui $v0, 0xA001 */ cpu->gpr[2] = 0xA0010000u; @@ -14473,6 +17734,9 @@ label_BFC05590: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); if (psx_taken_BFC0559C) goto label_BFC055C8; label_BFC055A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC055A4: 10410008 beq $v0, $at, 0xBFC055C8 */ uint32_t psx_brA_BFC055A4 = cpu->gpr[2]; uint32_t psx_brB_BFC055A4 = cpu->gpr[1]; @@ -14481,6 +17745,9 @@ label_BFC055A4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); if (psx_taken_BFC055A4) goto label_BFC055C8; label_BFC055AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC055AC: 10410006 beq $v0, $at, 0xBFC055C8 */ uint32_t psx_brA_BFC055AC = cpu->gpr[2]; uint32_t psx_brB_BFC055AC = cpu->gpr[1]; @@ -14489,6 +17756,9 @@ label_BFC055AC: /* nop */ if (psx_taken_BFC055AC) goto label_BFC055C8; label_BFC055B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC055B4: 24040004 addiu $a0, $zero, 4 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); @@ -14499,6 +17769,9 @@ label_BFC055B4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); if (psx_taken_BFC055B8) goto label_BFC055C8; label_BFC055C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC055C0: 14410005 bne $v0, $at, 0xBFC055D8 */ uint32_t psx_brA_BFC055C0 = cpu->gpr[2]; uint32_t psx_brB_BFC055C0 = cpu->gpr[1]; @@ -14507,6 +17780,9 @@ label_BFC055C0: cpu->gpr[2] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC055C0) goto label_BFC055D8; label_BFC055C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC055C8: 3402FFFF ori $v0, $zero, 0xFFFF */ cpu->gpr[2] = cpu->gpr[0] | 0xFFFFu; @@ -14517,6 +17793,9 @@ label_BFC055C8: /* 0xBFC055D4: 3402FFFF ori $v0, $zero, 0xFFFF */ cpu->gpr[2] = cpu->gpr[0] | 0xFFFFu; label_BFC055D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC055D8: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -14532,6 +17811,9 @@ label_BFC055D8: cpu->gpr[31] = 0xBFC055F0u; psx_dispatch(cpu, 0xBFC0D970u); label_BFC055F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC055F0: 1000006C beq $zero, $zero, 0xBFC057A4 */ uint32_t psx_brA_BFC055F0 = cpu->gpr[0]; uint32_t psx_brB_BFC055F0 = cpu->gpr[0]; @@ -14540,6 +17822,9 @@ label_BFC055F0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC055F4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC055F0) goto label_BFC057A4; label_BFC055F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC055F8: 3402FFFF ori $v0, $zero, 0xFFFF */ cpu->gpr[2] = cpu->gpr[0] | 0xFFFFu; @@ -14557,6 +17842,9 @@ label_BFC055F8: cpu->gpr[31] = 0xBFC05614u; psx_dispatch(cpu, 0xBFC0D970u); label_BFC05614: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05614: 10000063 beq $zero, $zero, 0xBFC057A4 */ uint32_t psx_brA_BFC05614 = cpu->gpr[0]; uint32_t psx_brB_BFC05614 = cpu->gpr[0]; @@ -14565,6 +17853,9 @@ label_BFC05614: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05618u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC05614) goto label_BFC057A4; label_BFC0561C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC0561C: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -14586,6 +17877,9 @@ label_BFC0561C: cpu->gpr[31] = 0xBFC05640u; psx_dispatch(cpu, 0xBFC0D970u); label_BFC05640: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05640: 10000058 beq $zero, $zero, 0xBFC057A4 */ uint32_t psx_brA_BFC05640 = cpu->gpr[0]; uint32_t psx_brB_BFC05640 = cpu->gpr[0]; @@ -14594,6 +17888,9 @@ label_BFC05640: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05644u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC05640) goto label_BFC057A4; label_BFC05648: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC05648: 240E0001 addiu $t6, $zero, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -14612,6 +17909,9 @@ label_BFC05648: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28332)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05660u); return; } g_debug_last_store_pc = 0xBFC05660u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC0565C) goto label_BFC057A0; label_BFC05664: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC05664: 3C02A001 lui $v0, 0xA001 */ cpu->gpr[2] = 0xA0010000u; @@ -14622,6 +17922,9 @@ label_BFC05664: /* 0xBFC05670: 24040004 addiu $a0, $zero, 4 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); label_BFC05674: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC05674: 90AF0000 lbu $t7, 0($a1) */ cpu->gpr[15] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (0))); @@ -14650,6 +17953,9 @@ label_BFC05674: g_debug_last_store_pc = 0xBFC056A0u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[2] + (-1)), (uint8_t)(cpu->gpr[8] & 0xFFu)); if (psx_taken_BFC0569C) goto label_BFC05674; label_BFC056A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC056A4: 3402FFFF ori $v0, $zero, 0xFFFF */ cpu->gpr[2] = cpu->gpr[0] | 0xFFFFu; @@ -14667,6 +17973,9 @@ label_BFC056A4: cpu->gpr[31] = 0xBFC056C0u; psx_dispatch(cpu, 0xBFC0D970u); label_BFC056C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC056C0: 10000038 beq $zero, $zero, 0xBFC057A4 */ uint32_t psx_brA_BFC056C0 = cpu->gpr[0]; uint32_t psx_brB_BFC056C0 = cpu->gpr[0]; @@ -14675,10 +17984,16 @@ label_BFC056C0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC056C4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC056C0) goto label_BFC057A4; label_BFC056C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC056C8: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; label_BFC056CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC056CC: 34840003 ori $a0, $a0, 0x3 */ cpu->gpr[4] = cpu->gpr[4] | 0x3u; @@ -14688,6 +18003,9 @@ label_BFC056CC: cpu->gpr[31] = 0xBFC056D8u; psx_dispatch(cpu, 0xBFC0D970u); label_BFC056D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC056D8: 10000032 beq $zero, $zero, 0xBFC057A4 */ uint32_t psx_brA_BFC056D8 = cpu->gpr[0]; uint32_t psx_brB_BFC056D8 = cpu->gpr[0]; @@ -14696,10 +18014,16 @@ label_BFC056D8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC056DCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC056D8) goto label_BFC057A4; label_BFC056E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC056E0: 24010CCC addiu $at, $zero, 3276 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3276)); label_BFC056E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC056E4: 1041FFD8 beq $v0, $at, 0xBFC05648 */ uint32_t psx_brA_BFC056E4 = cpu->gpr[2]; uint32_t psx_brB_BFC056E4 = cpu->gpr[1]; @@ -14708,6 +18032,9 @@ label_BFC056E4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (3277) ? 1 : 0); if (psx_taken_BFC056E4) goto label_BFC05648; label_BFC056EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC056EC: 1020001E beq $at, $zero, 0xBFC05768 */ uint32_t psx_brA_BFC056EC = cpu->gpr[1]; uint32_t psx_brB_BFC056EC = cpu->gpr[0]; @@ -14716,6 +18043,9 @@ label_BFC056EC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (22)); if (psx_taken_BFC056EC) goto label_BFC05768; label_BFC056F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC056F4: 1041FFA6 beq $v0, $at, 0xBFC05590 */ uint32_t psx_brA_BFC056F4 = cpu->gpr[2]; uint32_t psx_brB_BFC056F4 = cpu->gpr[1]; @@ -14724,6 +18054,9 @@ label_BFC056F4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (23) ? 1 : 0); if (psx_taken_BFC056F4) goto label_BFC05590; label_BFC056FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC056FC: 10200015 beq $at, $zero, 0xBFC05754 */ uint32_t psx_brA_BFC056FC = cpu->gpr[1]; uint32_t psx_brB_BFC056FC = cpu->gpr[0]; @@ -14732,6 +18065,9 @@ label_BFC056FC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); if (psx_taken_BFC056FC) goto label_BFC05754; label_BFC05704: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05704: 1041FFA2 beq $v0, $at, 0xBFC05590 */ uint32_t psx_brA_BFC05704 = cpu->gpr[2]; uint32_t psx_brB_BFC05704 = cpu->gpr[1]; @@ -14740,6 +18076,9 @@ label_BFC05704: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (10) ? 1 : 0); if (psx_taken_BFC05704) goto label_BFC05590; label_BFC0570C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0570C: 10200005 beq $at, $zero, 0xBFC05724 */ uint32_t psx_brA_BFC0570C = cpu->gpr[1]; uint32_t psx_brB_BFC0570C = cpu->gpr[0]; @@ -14748,6 +18087,9 @@ label_BFC0570C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (8)); if (psx_taken_BFC0570C) goto label_BFC05724; label_BFC05714: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05714: 1041FF9E beq $v0, $at, 0xBFC05590 */ uint32_t psx_brA_BFC05714 = cpu->gpr[2]; uint32_t psx_brB_BFC05714 = cpu->gpr[1]; @@ -14756,6 +18098,9 @@ label_BFC05714: /* nop */ if (psx_taken_BFC05714) goto label_BFC05590; label_BFC0571C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0571C: 10000005 beq $zero, $zero, 0xBFC05734 */ uint32_t psx_brA_BFC0571C = cpu->gpr[0]; uint32_t psx_brB_BFC0571C = cpu->gpr[0]; @@ -14764,6 +18109,9 @@ label_BFC0571C: cpu->gpr[2] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC0571C) goto label_BFC05734; label_BFC05724: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05724: 24010015 addiu $at, $zero, 21 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (21)); @@ -14774,10 +18122,16 @@ label_BFC05724: /* nop */ if (psx_taken_BFC05728) goto label_BFC05590; label_BFC05730: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC05730: 3402FFFF ori $v0, $zero, 0xFFFF */ cpu->gpr[2] = cpu->gpr[0] | 0xFFFFu; label_BFC05734: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC05734: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -14793,6 +18147,9 @@ label_BFC05734: cpu->gpr[31] = 0xBFC0574Cu; psx_dispatch(cpu, 0xBFC0D970u); label_BFC0574C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0574C: 10000015 beq $zero, $zero, 0xBFC057A4 */ uint32_t psx_brA_BFC0574C = cpu->gpr[0]; uint32_t psx_brB_BFC0574C = cpu->gpr[0]; @@ -14801,6 +18158,9 @@ label_BFC0574C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05750u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0574C) goto label_BFC057A4; label_BFC05754: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05754: 2401001A addiu $at, $zero, 26 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (26)); @@ -14811,6 +18171,9 @@ label_BFC05754: /* nop */ if (psx_taken_BFC05758) goto label_BFC05664; label_BFC05760: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05760: 1000FFF4 beq $zero, $zero, 0xBFC05734 */ uint32_t psx_brA_BFC05760 = cpu->gpr[0]; uint32_t psx_brB_BFC05760 = cpu->gpr[0]; @@ -14819,6 +18182,9 @@ label_BFC05760: cpu->gpr[2] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC05760) goto label_BFC05734; label_BFC05768: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05768: 24010FFF addiu $at, $zero, 4095 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4095)); @@ -14829,6 +18195,9 @@ label_BFC05768: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (4096) ? 1 : 0); if (psx_taken_BFC0576C) goto label_BFC055F8; label_BFC05774: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05774: 10200005 beq $at, $zero, 0xBFC0578C */ uint32_t psx_brA_BFC05774 = cpu->gpr[1]; uint32_t psx_brB_BFC05774 = cpu->gpr[0]; @@ -14837,6 +18206,9 @@ label_BFC05774: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3549)); if (psx_taken_BFC05774) goto label_BFC0578C; label_BFC0577C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0577C: 1041FFA7 beq $v0, $at, 0xBFC0561C */ uint32_t psx_brA_BFC0577C = cpu->gpr[2]; uint32_t psx_brB_BFC0577C = cpu->gpr[1]; @@ -14845,6 +18217,9 @@ label_BFC0577C: /* nop */ if (psx_taken_BFC0577C) goto label_BFC0561C; label_BFC05784: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05784: 1000FFEB beq $zero, $zero, 0xBFC05734 */ uint32_t psx_brA_BFC05784 = cpu->gpr[0]; uint32_t psx_brB_BFC05784 = cpu->gpr[0]; @@ -14853,6 +18228,9 @@ label_BFC05784: cpu->gpr[2] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC05784) goto label_BFC05734; label_BFC0578C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0578C: 3401FFFF ori $at, $zero, 0xFFFF */ cpu->gpr[1] = cpu->gpr[0] | 0xFFFFu; @@ -14863,6 +18241,9 @@ label_BFC0578C: cpu->gpr[4] = 0xF0000000u; if (psx_taken_BFC05790) goto label_BFC056CC; label_BFC05798: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05798: 1000FFE6 beq $zero, $zero, 0xBFC05734 */ uint32_t psx_brA_BFC05798 = cpu->gpr[0]; uint32_t psx_brB_BFC05798 = cpu->gpr[0]; @@ -14871,10 +18252,16 @@ label_BFC05798: cpu->gpr[2] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC05798) goto label_BFC05734; label_BFC057A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC057A0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC057A0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC057A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC057A4: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -14896,6 +18283,9 @@ void func_1FC057B0(CPUState* cpu) { } } label_BFC057B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC057B0: 3C03BFC1 lui $v1, 0xBFC1 */ cpu->gpr[3] = 0xBFC10000u; @@ -14930,6 +18320,9 @@ label_BFC057B0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3276)); if (psx_taken_BFC057E4) goto label_BFC05894; label_BFC057EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC057EC: 3C02A001 lui $v0, 0xA001 */ cpu->gpr[2] = 0xA0010000u; @@ -14964,6 +18357,9 @@ label_BFC057EC: cpu->gpr[24] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC05820) goto label_BFC05864; label_BFC05828: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC05828: 906A0000 lbu $t2, 0($v1) */ cpu->gpr[10] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[3] + (0))); @@ -14996,10 +18392,16 @@ label_BFC05828: /* nop */ if (psx_taken_BFC05858) goto label_BFC05828; label_BFC05860: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC05860: 3418FFFF ori $t8, $zero, 0xFFFF */ cpu->gpr[24] = cpu->gpr[0] | 0xFFFFu; label_BFC05864: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC05864: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -15021,6 +18423,9 @@ label_BFC05864: cpu->gpr[31] = 0xBFC05888u; psx_dispatch(cpu, 0xBFC0D970u); label_BFC05888: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05888: 10000029 beq $zero, $zero, 0xBFC05930 */ uint32_t psx_brA_BFC05888 = cpu->gpr[0]; uint32_t psx_brB_BFC05888 = cpu->gpr[0]; @@ -15029,10 +18434,16 @@ label_BFC05888: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0588Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC05888) goto label_BFC05930; label_BFC05890: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC05890: 24010CCC addiu $at, $zero, 3276 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3276)); label_BFC05894: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05894: 14410005 bne $v0, $at, 0xBFC058AC */ uint32_t psx_brA_BFC05894 = cpu->gpr[2]; uint32_t psx_brB_BFC05894 = cpu->gpr[1]; @@ -15041,6 +18452,9 @@ label_BFC05894: /* nop */ if (psx_taken_BFC05894) goto label_BFC058AC; label_BFC0589C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0589C: 24190002 addiu $t9, $zero, 2 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); @@ -15053,6 +18467,9 @@ label_BFC0589C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28220)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC058A8u); return; } g_debug_last_store_pc = 0xBFC058A8u; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC058A4) goto label_BFC0592C; label_BFC058AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC058AC: 3C08A001 lui $t0, 0xA001 */ cpu->gpr[8] = 0xA0010000u; @@ -15067,6 +18484,9 @@ label_BFC058AC: cpu->gpr[1] = 0xA0010000u; if (psx_taken_BFC058B8) goto label_BFC058F4; label_BFC058C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC058C0: AC2091C8 sw $zero, -28216($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28216)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC058C0u); return; } g_debug_last_store_pc = 0xBFC058C0u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -15092,6 +18512,9 @@ label_BFC058C0: cpu->gpr[31] = 0xBFC058ECu; psx_dispatch(cpu, 0xBFC0D970u); label_BFC058EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC058EC: 10000010 beq $zero, $zero, 0xBFC05930 */ uint32_t psx_brA_BFC058EC = cpu->gpr[0]; uint32_t psx_brB_BFC058EC = cpu->gpr[0]; @@ -15100,6 +18523,9 @@ label_BFC058EC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC058F0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC058EC) goto label_BFC05930; label_BFC058F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC058F4: 240B0001 addiu $t3, $zero, 1 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -15130,10 +18556,16 @@ label_BFC058F4: /* 0xBFC05928: AC229154 sw $v0, -28332($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28332)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05928u); return; } g_debug_last_store_pc = 0xBFC05928u; cpu->write_word(psx_addr, cpu->gpr[2]); } label_BFC0592C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0592C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0592Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC05930: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05930: 27BD0028 addiu $sp, $sp, 40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (40)); @@ -15158,6 +18590,9 @@ void func_1FC0593C(CPUState* cpu) { } } label_BFC0593C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC0593C: 3C0EBFC1 lui $t6, 0xBFC1 */ cpu->gpr[14] = 0xBFC10000u; @@ -15182,6 +18617,9 @@ label_BFC0593C: /* nop */ if (psx_taken_BFC0595C) goto label_BFC0598C; label_BFC05964: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05964: 240500FB addiu $a1, $zero, 251 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[0] + (251)); @@ -15192,6 +18630,9 @@ label_BFC05964: /* nop */ if (psx_taken_BFC05968) goto label_BFC0598C; label_BFC05970: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC05970: 3C03A001 lui $v1, 0xA001 */ cpu->gpr[3] = 0xA0010000u; @@ -15206,6 +18647,9 @@ label_BFC05970: /* nop */ if (psx_taken_BFC0597C) goto label_BFC0598C; label_BFC05984: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05984: 14650005 bne $v1, $a1, 0xBFC0599C */ uint32_t psx_brA_BFC05984 = cpu->gpr[3]; uint32_t psx_brB_BFC05984 = cpu->gpr[5]; @@ -15214,6 +18658,9 @@ label_BFC05984: /* nop */ if (psx_taken_BFC05984) goto label_BFC0599C; label_BFC0598C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0598C: 0FF017C2 jal 0xBFC05F08 */ /* 0xBFC05990: 00000000 nop */ @@ -15221,6 +18668,9 @@ label_BFC0598C: cpu->gpr[31] = 0xBFC05994u; psx_dispatch(cpu, 0xBFC05F08u); label_BFC05994: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05994: 10000028 beq $zero, $zero, 0xBFC05A38 */ uint32_t psx_brA_BFC05994 = cpu->gpr[0]; uint32_t psx_brB_BFC05994 = cpu->gpr[0]; @@ -15229,6 +18679,9 @@ label_BFC05994: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05998u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC05994) goto label_BFC05A38; label_BFC0599C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0599C: 240400E6 addiu $a0, $zero, 230 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); @@ -15239,6 +18692,9 @@ label_BFC0599C: /* nop */ if (psx_taken_BFC059A0) goto label_BFC059C4; label_BFC059A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC059A8: 240500EB addiu $a1, $zero, 235 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); @@ -15249,6 +18705,9 @@ label_BFC059A8: /* nop */ if (psx_taken_BFC059AC) goto label_BFC059C4; label_BFC059B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC059B4: 10640003 beq $v1, $a0, 0xBFC059C4 */ uint32_t psx_brA_BFC059B4 = cpu->gpr[3]; uint32_t psx_brB_BFC059B4 = cpu->gpr[4]; @@ -15257,6 +18716,9 @@ label_BFC059B4: /* nop */ if (psx_taken_BFC059B4) goto label_BFC059C4; label_BFC059BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC059BC: 14650006 bne $v1, $a1, 0xBFC059D8 */ uint32_t psx_brA_BFC059BC = cpu->gpr[3]; uint32_t psx_brB_BFC059BC = cpu->gpr[5]; @@ -15265,6 +18727,9 @@ label_BFC059BC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); if (psx_taken_BFC059BC) goto label_BFC059D8; label_BFC059C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC059C4: 0FF01804 jal 0xBFC06010 */ /* 0xBFC059C8: 00000000 nop */ @@ -15272,6 +18737,9 @@ label_BFC059C4: cpu->gpr[31] = 0xBFC059CCu; psx_dispatch(cpu, 0xBFC06010u); label_BFC059CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC059CC: 1000001A beq $zero, $zero, 0xBFC05A38 */ uint32_t psx_brA_BFC059CC = cpu->gpr[0]; uint32_t psx_brB_BFC059CC = cpu->gpr[0]; @@ -15280,10 +18748,16 @@ label_BFC059CC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC059D0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC059CC) goto label_BFC05A38; label_BFC059D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC059D4: 24010003 addiu $at, $zero, 3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); label_BFC059D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC059D8: 10410005 beq $v0, $at, 0xBFC059F0 */ uint32_t psx_brA_BFC059D8 = cpu->gpr[2]; uint32_t psx_brB_BFC059D8 = cpu->gpr[1]; @@ -15292,6 +18766,9 @@ label_BFC059D8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); if (psx_taken_BFC059D8) goto label_BFC059F0; label_BFC059E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC059E0: 10410003 beq $v0, $at, 0xBFC059F0 */ uint32_t psx_brA_BFC059E0 = cpu->gpr[2]; uint32_t psx_brB_BFC059E0 = cpu->gpr[1]; @@ -15300,6 +18777,9 @@ label_BFC059E0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); if (psx_taken_BFC059E0) goto label_BFC059F0; label_BFC059E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC059E8: 14410006 bne $v0, $at, 0xBFC05A04 */ uint32_t psx_brA_BFC059E8 = cpu->gpr[2]; uint32_t psx_brB_BFC059E8 = cpu->gpr[1]; @@ -15308,6 +18788,9 @@ label_BFC059E8: cpu->gpr[1] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC059E8) goto label_BFC05A04; label_BFC059F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC059F0: 0FF0180E jal 0xBFC06038 */ /* 0xBFC059F4: 00C02021 addu $a0, $a2, $zero */ @@ -15315,6 +18798,9 @@ label_BFC059F0: cpu->gpr[31] = 0xBFC059F8u; psx_dispatch(cpu, 0xBFC06038u); label_BFC059F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC059F8: 1000000F beq $zero, $zero, 0xBFC05A38 */ uint32_t psx_brA_BFC059F8 = cpu->gpr[0]; uint32_t psx_brB_BFC059F8 = cpu->gpr[0]; @@ -15323,10 +18809,16 @@ label_BFC059F8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC059FCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC059F8) goto label_BFC05A38; label_BFC05A00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC05A00: 3401FFFF ori $at, $zero, 0xFFFF */ cpu->gpr[1] = cpu->gpr[0] | 0xFFFFu; label_BFC05A04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05A04: 14410008 bne $v0, $at, 0xBFC05A28 */ uint32_t psx_brA_BFC05A04 = cpu->gpr[2]; uint32_t psx_brB_BFC05A04 = cpu->gpr[1]; @@ -15335,6 +18827,9 @@ label_BFC05A04: cpu->gpr[4] = 0xF0000000u; if (psx_taken_BFC05A04) goto label_BFC05A28; label_BFC05A0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC05A0C: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -15346,6 +18841,9 @@ label_BFC05A0C: cpu->gpr[31] = 0xBFC05A1Cu; psx_dispatch(cpu, 0xBFC0D970u); label_BFC05A1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05A1C: 10000006 beq $zero, $zero, 0xBFC05A38 */ uint32_t psx_brA_BFC05A1C = cpu->gpr[0]; uint32_t psx_brB_BFC05A1C = cpu->gpr[0]; @@ -15354,10 +18852,16 @@ label_BFC05A1C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05A20u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC05A1C) goto label_BFC05A38; label_BFC05A24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC05A24: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; label_BFC05A28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05A28: 34840003 ori $a0, $a0, 0x3 */ cpu->gpr[4] = cpu->gpr[4] | 0x3u; @@ -15367,10 +18871,16 @@ label_BFC05A28: cpu->gpr[31] = 0xBFC05A34u; psx_dispatch(cpu, 0xBFC0D970u); label_BFC05A34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC05A34: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05A34u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC05A38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05A38: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -15395,6 +18905,9 @@ void func_1FC05A44(CPUState* cpu) { } } label_BFC05A44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC05A44: 3C03A001 lui $v1, 0xA001 */ cpu->gpr[3] = 0xA0010000u; @@ -15411,6 +18924,9 @@ label_BFC05A44: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05A58u); return; } g_debug_last_store_pc = 0xBFC05A58u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC05A54) goto label_BFC05A84; label_BFC05A5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05A5C: 240100FB addiu $at, $zero, 251 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (251)); @@ -15421,6 +18937,9 @@ label_BFC05A5C: /* nop */ if (psx_taken_BFC05A60) goto label_BFC05A84; label_BFC05A68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC05A68: 3C0EA001 lui $t6, 0xA001 */ cpu->gpr[14] = 0xA0010000u; @@ -15435,6 +18954,9 @@ label_BFC05A68: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (251)); if (psx_taken_BFC05A74) goto label_BFC05A84; label_BFC05A7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05A7C: 15C10016 bne $t6, $at, 0xBFC05AD8 */ uint32_t psx_brA_BFC05A7C = cpu->gpr[14]; uint32_t psx_brB_BFC05A7C = cpu->gpr[1]; @@ -15443,6 +18965,9 @@ label_BFC05A7C: /* nop */ if (psx_taken_BFC05A7C) goto label_BFC05AD8; label_BFC05A84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC05A84: 3C0FA001 lui $t7, 0xA001 */ cpu->gpr[15] = 0xA0010000u; @@ -15457,6 +18982,9 @@ label_BFC05A84: /* nop */ if (psx_taken_BFC05A90) goto label_BFC05AB4; label_BFC05A98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC05A98: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -15468,6 +18996,9 @@ label_BFC05A98: cpu->gpr[31] = 0xBFC05AA8u; psx_dispatch(cpu, 0xBFC0D970u); label_BFC05AA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05AA8: 3C03A001 lui $v1, 0xA001 */ cpu->gpr[3] = 0xA0010000u; @@ -15476,6 +19007,9 @@ label_BFC05AA8: /* 0xBFC05AB0: 240200F6 addiu $v0, $zero, 246 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (246)); label_BFC05AB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05AB4: 10620003 beq $v1, $v0, 0xBFC05AC4 */ uint32_t psx_brA_BFC05AB4 = cpu->gpr[3]; uint32_t psx_brB_BFC05AB4 = cpu->gpr[2]; @@ -15484,6 +19018,9 @@ label_BFC05AB4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (251)); if (psx_taken_BFC05AB4) goto label_BFC05AC4; label_BFC05ABC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05ABC: 14610004 bne $v1, $at, 0xBFC05AD0 */ uint32_t psx_brA_BFC05ABC = cpu->gpr[3]; uint32_t psx_brB_BFC05ABC = cpu->gpr[1]; @@ -15492,6 +19029,9 @@ label_BFC05ABC: cpu->gpr[24] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC05ABC) goto label_BFC05AD0; label_BFC05AC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05AC4: 10000004 beq $zero, $zero, 0xBFC05AD8 */ uint32_t psx_brA_BFC05AC4 = cpu->gpr[0]; uint32_t psx_brB_BFC05AC4 = cpu->gpr[0]; @@ -15500,16 +19040,25 @@ label_BFC05AC4: cpu->gpr[3] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC05AC4) goto label_BFC05AD8; label_BFC05ACC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC05ACC: 3418FFFF ori $t8, $zero, 0xFFFF */ cpu->gpr[24] = cpu->gpr[0] | 0xFFFFu; label_BFC05AD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05AD0: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; /* 0xBFC05AD4: AC389158 sw $t8, -28328($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28328)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05AD4u); return; } g_debug_last_store_pc = 0xBFC05AD4u; cpu->write_word(psx_addr, cpu->gpr[24]); } label_BFC05AD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05AD8: 240200E6 addiu $v0, $zero, 230 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); @@ -15520,6 +19069,9 @@ label_BFC05AD8: cpu->gpr[1] = 0xA0010000u; if (psx_taken_BFC05ADC) goto label_BFC05AEC; label_BFC05AE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05AE4: 10000013 beq $zero, $zero, 0xBFC05B34 */ uint32_t psx_brA_BFC05AE4 = cpu->gpr[0]; uint32_t psx_brB_BFC05AE4 = cpu->gpr[0]; @@ -15528,6 +19080,9 @@ label_BFC05AE4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28332)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05AE8u); return; } g_debug_last_store_pc = 0xBFC05AE8u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC05AE4) goto label_BFC05B34; label_BFC05AEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05AEC: 240100EB addiu $at, $zero, 235 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); @@ -15538,6 +19093,9 @@ label_BFC05AEC: cpu->gpr[1] = 0xA0010000u; if (psx_taken_BFC05AF0) goto label_BFC05B00; label_BFC05AF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05AF8: 1000000E beq $zero, $zero, 0xBFC05B34 */ uint32_t psx_brA_BFC05AF8 = cpu->gpr[0]; uint32_t psx_brB_BFC05AF8 = cpu->gpr[0]; @@ -15546,6 +19104,9 @@ label_BFC05AF8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28332)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05AFCu); return; } g_debug_last_store_pc = 0xBFC05AFCu; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC05AF8) goto label_BFC05B34; label_BFC05B00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC05B00: 3C19A001 lui $t9, 0xA001 */ cpu->gpr[25] = 0xA0010000u; @@ -15560,6 +19121,9 @@ label_BFC05B00: cpu->gpr[1] = 0xA0010000u; if (psx_taken_BFC05B0C) goto label_BFC05B1C; label_BFC05B14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05B14: 10000007 beq $zero, $zero, 0xBFC05B34 */ uint32_t psx_brA_BFC05B14 = cpu->gpr[0]; uint32_t psx_brB_BFC05B14 = cpu->gpr[0]; @@ -15568,6 +19132,9 @@ label_BFC05B14: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28332)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05B18u); return; } g_debug_last_store_pc = 0xBFC05B18u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC05B14) goto label_BFC05B34; label_BFC05B1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC05B1C: 3C08A001 lui $t0, 0xA001 */ cpu->gpr[8] = 0xA0010000u; @@ -15582,10 +19149,16 @@ label_BFC05B1C: cpu->gpr[1] = 0xA0010000u; if (psx_taken_BFC05B28) goto label_BFC05B74; label_BFC05B30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC05B30: AC239154 sw $v1, -28332($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28332)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05B30u); return; } g_debug_last_store_pc = 0xBFC05B30u; cpu->write_word(psx_addr, cpu->gpr[3]); } label_BFC05B34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC05B34: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -15597,6 +19170,9 @@ label_BFC05B34: cpu->gpr[31] = 0xBFC05B44u; psx_dispatch(cpu, 0xBFC0D970u); label_BFC05B44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC05B44: 3C03A001 lui $v1, 0xA001 */ cpu->gpr[3] = 0xA0010000u; @@ -15611,6 +19187,9 @@ label_BFC05B44: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); if (psx_taken_BFC05B50) goto label_BFC05B60; label_BFC05B58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05B58: 14610004 bne $v1, $at, 0xBFC05B6C */ uint32_t psx_brA_BFC05B58 = cpu->gpr[3]; uint32_t psx_brB_BFC05B58 = cpu->gpr[1]; @@ -15619,6 +19198,9 @@ label_BFC05B58: cpu->gpr[9] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC05B58) goto label_BFC05B6C; label_BFC05B60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05B60: 10000004 beq $zero, $zero, 0xBFC05B74 */ uint32_t psx_brA_BFC05B60 = cpu->gpr[0]; uint32_t psx_brB_BFC05B60 = cpu->gpr[0]; @@ -15627,16 +19209,25 @@ label_BFC05B60: cpu->gpr[3] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC05B60) goto label_BFC05B74; label_BFC05B68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC05B68: 3409FFFF ori $t1, $zero, 0xFFFF */ cpu->gpr[9] = cpu->gpr[0] | 0xFFFFu; label_BFC05B6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05B6C: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; /* 0xBFC05B70: AC299158 sw $t1, -28328($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28328)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05B70u); return; } g_debug_last_store_pc = 0xBFC05B70u; cpu->write_word(psx_addr, cpu->gpr[9]); } label_BFC05B74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05B74: 24010003 addiu $at, $zero, 3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); @@ -15647,6 +19238,9 @@ label_BFC05B74: cpu->gpr[1] = 0xA0010000u; if (psx_taken_BFC05B78) goto label_BFC05B88; label_BFC05B80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05B80: 1000000A beq $zero, $zero, 0xBFC05BAC */ uint32_t psx_brA_BFC05B80 = cpu->gpr[0]; uint32_t psx_brB_BFC05B80 = cpu->gpr[0]; @@ -15655,6 +19249,9 @@ label_BFC05B80: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28332)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05B84u); return; } g_debug_last_store_pc = 0xBFC05B84u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC05B80) goto label_BFC05BAC; label_BFC05B88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05B88: 24010004 addiu $at, $zero, 4 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); @@ -15665,6 +19262,9 @@ label_BFC05B88: cpu->gpr[1] = 0xA0010000u; if (psx_taken_BFC05B8C) goto label_BFC05B9C; label_BFC05B94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05B94: 10000005 beq $zero, $zero, 0xBFC05BAC */ uint32_t psx_brA_BFC05B94 = cpu->gpr[0]; uint32_t psx_brB_BFC05B94 = cpu->gpr[0]; @@ -15673,6 +19273,9 @@ label_BFC05B94: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28332)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05B98u); return; } g_debug_last_store_pc = 0xBFC05B98u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC05B94) goto label_BFC05BAC; label_BFC05B9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05B9C: 24010005 addiu $at, $zero, 5 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); @@ -15683,10 +19286,16 @@ label_BFC05B9C: cpu->gpr[1] = 0xA0010000u; if (psx_taken_BFC05BA0) goto label_BFC05BCC; label_BFC05BA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC05BA8: AC239154 sw $v1, -28332($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28332)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05BA8u); return; } g_debug_last_store_pc = 0xBFC05BA8u; cpu->write_word(psx_addr, cpu->gpr[3]); } label_BFC05BAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC05BAC: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -15698,6 +19307,9 @@ label_BFC05BAC: cpu->gpr[31] = 0xBFC05BBCu; psx_dispatch(cpu, 0xBFC0D970u); label_BFC05BBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC05BBC: 3403FFFF ori $v1, $zero, 0xFFFF */ cpu->gpr[3] = cpu->gpr[0] | 0xFFFFu; @@ -15710,6 +19322,9 @@ label_BFC05BBC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28332)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05BC8u); return; } g_debug_last_store_pc = 0xBFC05BC8u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC05BC4) goto label_BFC05C08; label_BFC05BCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC05BCC: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -15724,6 +19339,9 @@ label_BFC05BCC: cpu->gpr[4] = 0xF0000000u; if (psx_taken_BFC05BD8) goto label_BFC05BFC; label_BFC05BE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC05BE0: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -15735,6 +19353,9 @@ label_BFC05BE0: cpu->gpr[31] = 0xBFC05BF0u; psx_dispatch(cpu, 0xBFC0D970u); label_BFC05BF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05BF0: 10000006 beq $zero, $zero, 0xBFC05C0C */ uint32_t psx_brA_BFC05BF0 = cpu->gpr[0]; uint32_t psx_brB_BFC05BF0 = cpu->gpr[0]; @@ -15743,10 +19364,16 @@ label_BFC05BF0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05BF4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC05BF0) goto label_BFC05C0C; label_BFC05BF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC05BF8: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; label_BFC05BFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05BFC: 34840003 ori $a0, $a0, 0x3 */ cpu->gpr[4] = cpu->gpr[4] | 0x3u; @@ -15756,10 +19383,16 @@ label_BFC05BFC: cpu->gpr[31] = 0xBFC05C08u; psx_dispatch(cpu, 0xBFC0D970u); label_BFC05C08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC05C08: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05C08u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC05C0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05C0C: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -15772,6 +19405,9 @@ label_BFC05C0C: void func_1FC05C18(CPUState* cpu) { debug_server_log_call_entry(0x1FC05C18u); label_BFC05C18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05C18: 14800004 bne $a0, $zero, 0xBFC05C2C */ uint32_t psx_brA_BFC05C18 = cpu->gpr[4]; uint32_t psx_brB_BFC05C18 = cpu->gpr[0]; @@ -15780,6 +19416,9 @@ label_BFC05C18: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (22)); if (psx_taken_BFC05C18) goto label_BFC05C2C; label_BFC05C20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05C20: 10000002 beq $zero, $zero, 0xBFC05C2C */ uint32_t psx_brA_BFC05C20 = cpu->gpr[0]; uint32_t psx_brB_BFC05C20 = cpu->gpr[0]; @@ -15788,10 +19427,16 @@ label_BFC05C20: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (21)); if (psx_taken_BFC05C20) goto label_BFC05C2C; label_BFC05C28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC05C28: 24020016 addiu $v0, $zero, 22 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (22)); label_BFC05C2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC05C2C: 3C0EBFC1 lui $t6, 0xBFC1 */ cpu->gpr[14] = 0xBFC10000u; @@ -15824,6 +19469,9 @@ void func_1FC05C50(CPUState* cpu) { } } label_BFC05C50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC05C50: 3C03BFC1 lui $v1, 0xBFC1 */ cpu->gpr[3] = 0xBFC10000u; @@ -15860,6 +19508,9 @@ label_BFC05C50: /* 0xBFC05C90: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC05C94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC05C94: 90600000 lbu $zero, 0($v1) */ (void)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[3] + (0))); @@ -15878,6 +19529,9 @@ label_BFC05C94: /* nop */ if (psx_taken_BFC05CA8) goto label_BFC05C94; label_BFC05CB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC05CB0: 3C02A001 lui $v0, 0xA001 */ cpu->gpr[2] = 0xA0010000u; @@ -15892,6 +19546,9 @@ label_BFC05CB0: cpu->gpr[1] = 0xA0010000u; if (psx_taken_BFC05CBC) goto label_BFC05CD8; label_BFC05CC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC05CC4: AC229154 sw $v0, -28332($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28332)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05CC4u); return; } g_debug_last_store_pc = 0xBFC05CC4u; cpu->write_word(psx_addr, cpu->gpr[2]); } @@ -15906,6 +19563,9 @@ label_BFC05CC4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28328)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05CD4u); return; } g_debug_last_store_pc = 0xBFC05CD4u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC05CD0) goto label_BFC05CE4; label_BFC05CD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05CD8: 3419FFFF ori $t9, $zero, 0xFFFF */ cpu->gpr[25] = cpu->gpr[0] | 0xFFFFu; @@ -15914,6 +19574,9 @@ label_BFC05CD8: /* 0xBFC05CE0: AC399154 sw $t9, -28332($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28332)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05CE0u); return; } g_debug_last_store_pc = 0xBFC05CE0u; cpu->write_word(psx_addr, cpu->gpr[25]); } label_BFC05CE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC05CE4: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -15925,6 +19588,9 @@ label_BFC05CE4: cpu->gpr[31] = 0xBFC05CF4u; psx_dispatch(cpu, 0xBFC0D970u); label_BFC05CF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC05CF4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05CF4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -15947,6 +19613,9 @@ void func_1FC05D04(CPUState* cpu) { } } label_BFC05D04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC05D04: 3C03BFC1 lui $v1, 0xBFC1 */ cpu->gpr[3] = 0xBFC10000u; @@ -15963,6 +19632,9 @@ label_BFC05D04: /* 0xBFC05D1C: 24040005 addiu $a0, $zero, 5 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); label_BFC05D20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC05D20: 90600000 lbu $zero, 0($v1) */ (void)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[3] + (0))); @@ -15981,6 +19653,9 @@ label_BFC05D20: /* nop */ if (psx_taken_BFC05D34) goto label_BFC05D20; label_BFC05D3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC05D3C: 3C02A001 lui $v0, 0xA001 */ cpu->gpr[2] = 0xA0010000u; @@ -16009,6 +19684,9 @@ label_BFC05D3C: g_debug_last_store_pc = 0xBFC05D68u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[2] + (2)), (uint8_t)(cpu->gpr[24] & 0xFFu)); if (psx_taken_BFC05D64) goto label_BFC05D84; label_BFC05D6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC05D6C: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -16025,6 +19703,9 @@ label_BFC05D6C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28328)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05D80u); return; } g_debug_last_store_pc = 0xBFC05D80u; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC05D7C) goto label_BFC05D90; label_BFC05D84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05D84: 3419FFFF ori $t9, $zero, 0xFFFF */ cpu->gpr[25] = cpu->gpr[0] | 0xFFFFu; @@ -16033,6 +19714,9 @@ label_BFC05D84: /* 0xBFC05D8C: AC399154 sw $t9, -28332($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28332)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05D8Cu); return; } g_debug_last_store_pc = 0xBFC05D8Cu; cpu->write_word(psx_addr, cpu->gpr[25]); } label_BFC05D90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC05D90: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -16044,6 +19728,9 @@ label_BFC05D90: cpu->gpr[31] = 0xBFC05DA0u; psx_dispatch(cpu, 0xBFC0D970u); label_BFC05DA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC05DA0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05DA0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -16066,6 +19753,9 @@ void func_1FC05DB0(CPUState* cpu) { } } label_BFC05DB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC05DB0: 3C0EA001 lui $t6, 0xA001 */ cpu->gpr[14] = 0xA0010000u; @@ -16095,6 +19785,9 @@ label_BFC05DB0: cpu->gpr[31] = 0xBFC05DE4u; psx_dispatch(cpu, 0xBFC0D970u); label_BFC05DE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC05DE4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05DE4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -16117,6 +19810,9 @@ void func_1FC05DF4(CPUState* cpu) { } } label_BFC05DF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC05DF4: 3C04BFC1 lui $a0, 0xBFC1 */ cpu->gpr[4] = 0xBFC10000u; @@ -16139,6 +19835,9 @@ label_BFC05DF4: /* 0xBFC05E18: A1EE0000 sb $t6, 0($t7) */ g_debug_last_store_pc = 0xBFC05E18u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[15] + (0)), (uint8_t)(cpu->gpr[14] & 0xFFu)); label_BFC05E1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC05E1C: 90800000 lbu $zero, 0($a0) */ (void)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (0))); @@ -16151,6 +19850,9 @@ label_BFC05E1C: /* nop */ if (psx_taken_BFC05E24) goto label_BFC05E1C; label_BFC05E2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC05E2C: 3418FFFF ori $t8, $zero, 0xFFFF */ cpu->gpr[24] = cpu->gpr[0] | 0xFFFFu; @@ -16168,6 +19870,9 @@ label_BFC05E2C: cpu->gpr[31] = 0xBFC05E48u; psx_dispatch(cpu, 0xBFC0D970u); label_BFC05E48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC05E48: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05E48u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -16182,6 +19887,9 @@ label_BFC05E48: void func_1FC05E58(CPUState* cpu) { debug_server_log_call_entry(0x1FC05E58u); label_BFC05E58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC05E58: 3C0EBFC1 lui $t6, 0xBFC1 */ cpu->gpr[14] = 0xBFC10000u; @@ -16204,6 +19912,9 @@ label_BFC05E58: /* nop */ if (psx_taken_BFC05E74) goto label_BFC05EC0; label_BFC05E7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC05E7C: 3C19A001 lui $t9, 0xA001 */ cpu->gpr[25] = 0xA0010000u; @@ -16218,6 +19929,9 @@ label_BFC05E7C: cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); if (psx_taken_BFC05E88) goto label_BFC05EA4; label_BFC05E90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC05E90: 240800F6 addiu $t0, $zero, 246 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (246)); @@ -16230,16 +19944,25 @@ label_BFC05E90: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28332)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05E9Cu); return; } g_debug_last_store_pc = 0xBFC05E9Cu; cpu->write_word(psx_addr, cpu->gpr[8]); } if (psx_taken_BFC05E98) goto label_BFC05EAC; label_BFC05EA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC05EA0: 240900E6 addiu $t1, $zero, 230 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); label_BFC05EA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05EA4: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; /* 0xBFC05EA8: AC299154 sw $t1, -28332($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28332)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05EA8u); return; } g_debug_last_store_pc = 0xBFC05EA8u; cpu->write_word(psx_addr, cpu->gpr[9]); } label_BFC05EAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC05EAC: 3C0BBFC1 lui $t3, 0xBFC1 */ cpu->gpr[11] = 0xBFC10000u; @@ -16252,6 +19975,9 @@ label_BFC05EAC: g_debug_last_store_pc = 0xBFC05EBCu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[11] + (0)), (uint8_t)(cpu->gpr[10] & 0xFFu)); return; label_BFC05EC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC05EC0: 3C0CA001 lui $t4, 0xA001 */ cpu->gpr[12] = 0xA0010000u; @@ -16266,6 +19992,9 @@ label_BFC05EC0: cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); if (psx_taken_BFC05ECC) goto label_BFC05EE8; label_BFC05ED4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC05ED4: 240D00FB addiu $t5, $zero, 251 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (251)); @@ -16278,16 +20007,25 @@ label_BFC05ED4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28332)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05EE0u); return; } g_debug_last_store_pc = 0xBFC05EE0u; cpu->write_word(psx_addr, cpu->gpr[13]); } if (psx_taken_BFC05EDC) goto label_BFC05EF0; label_BFC05EE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC05EE4: 240E00EB addiu $t6, $zero, 235 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); label_BFC05EE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05EE8: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; /* 0xBFC05EEC: AC2E9154 sw $t6, -28332($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28332)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05EECu); return; } g_debug_last_store_pc = 0xBFC05EECu; cpu->write_word(psx_addr, cpu->gpr[14]); } label_BFC05EF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC05EF0: 3C18BFC1 lui $t8, 0xBFC1 */ cpu->gpr[24] = 0xBFC10000u; @@ -16314,6 +20052,9 @@ void func_1FC05F08(CPUState* cpu) { } } label_BFC05F08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC05F08: 3C06A001 lui $a2, 0xA001 */ cpu->gpr[6] = 0xA0010000u; @@ -16328,6 +20069,9 @@ label_BFC05F08: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05F18u); return; } g_debug_last_store_pc = 0xBFC05F18u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC05F14) goto label_BFC05FEC; label_BFC05F1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(30u); +#endif psx_check_interrupts(cpu); /* 0xBFC05F1C: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -16391,6 +20135,9 @@ label_BFC05F1C: cpu->gpr[31] = 0xBFC05F94u; psx_dispatch(cpu, 0xBFC065C0u); label_BFC05F94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC05F94: 3C0AA001 lui $t2, 0xA001 */ cpu->gpr[10] = 0xA0010000u; @@ -16421,6 +20168,9 @@ label_BFC05F94: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28280)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05FC4u); return; } g_debug_last_store_pc = 0xBFC05FC4u; cpu->write_word(psx_addr, cpu->gpr[12]); } if (psx_taken_BFC05FC0) goto label_BFC06000; label_BFC05FC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC05FC8: A0600000 sb $zero, 0($v1) */ g_debug_last_store_pc = 0xBFC05FC8u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[3] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -16443,6 +20193,9 @@ label_BFC05FC8: g_debug_last_store_pc = 0xBFC05FE8u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[15] + (0)), (uint8_t)(cpu->gpr[14] & 0xFFu)); if (psx_taken_BFC05FE4) goto label_BFC06000; label_BFC05FEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC05FEC: 14C00005 bne $a2, $zero, 0xBFC06004 */ uint32_t psx_brA_BFC05FEC = cpu->gpr[6]; uint32_t psx_brB_BFC05FEC = cpu->gpr[0]; @@ -16451,6 +20204,9 @@ label_BFC05FEC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05FF0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC05FEC) goto label_BFC06004; label_BFC05FF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC05FF4: 24C6FFFF addiu $a2, $a2, -1 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (-1)); @@ -16459,10 +20215,16 @@ label_BFC05FF4: /* 0xBFC05FFC: AC26917C sw $a2, -28292($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28292)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC05FFCu); return; } g_debug_last_store_pc = 0xBFC05FFCu; cpu->write_word(psx_addr, cpu->gpr[6]); } label_BFC06000: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC06000: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC06000u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC06004: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC06004: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -16483,6 +20245,9 @@ void func_1FC06010(CPUState* cpu) { } } label_BFC06010: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC06010: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -16498,6 +20263,9 @@ label_BFC06010: cpu->gpr[31] = 0xBFC06028u; psx_dispatch(cpu, 0xBFC0D970u); label_BFC06028: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC06028: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC06028u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -16520,6 +20288,9 @@ void func_1FC06038(CPUState* cpu) { } } label_BFC06038: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(21u); +#endif psx_check_interrupts(cpu); /* 0xBFC06038: 3C03BFC1 lui $v1, 0xBFC1 */ cpu->gpr[3] = 0xBFC10000u; @@ -16564,6 +20335,9 @@ label_BFC06038: /* 0xBFC06088: A038B933 sb $t8, -18125($at) */ g_debug_last_store_pc = 0xBFC06088u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[1] + (-18125)), (uint8_t)(cpu->gpr[24] & 0xFFu)); label_BFC0608C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC0608C: 90790000 lbu $t9, 0($v1) */ cpu->gpr[25] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[3] + (0))); @@ -16592,6 +20366,9 @@ label_BFC0608C: g_debug_last_store_pc = 0xBFC060B8u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[2] + (-1)), (uint8_t)(cpu->gpr[10] & 0xFFu)); if (psx_taken_BFC060B4) goto label_BFC0608C; label_BFC060BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC060BC: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -16603,6 +20380,9 @@ label_BFC060BC: cpu->gpr[31] = 0xBFC060CCu; psx_dispatch(cpu, 0xBFC0D970u); label_BFC060CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC060CC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC060CCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -16625,6 +20405,9 @@ void func_1FC060DC(CPUState* cpu) { } } label_BFC060DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC060DC: 3C05A001 lui $a1, 0xA001 */ cpu->gpr[5] = 0xA0010000u; @@ -16651,6 +20434,9 @@ label_BFC060DC: /* 0xBFC06108: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; label_BFC0610C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0610C: 10400009 beq $v0, $zero, 0xBFC06134 */ uint32_t psx_brA_BFC0610C = cpu->gpr[2]; uint32_t psx_brB_BFC0610C = cpu->gpr[0]; @@ -16659,6 +20445,9 @@ label_BFC0610C: cpu->gpr[24] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC0610C) goto label_BFC06134; label_BFC06114: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC06114: 908E0000 lbu $t6, 0($a0) */ cpu->gpr[14] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (0))); @@ -16677,10 +20466,16 @@ label_BFC06114: g_debug_last_store_pc = 0xBFC0612Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[15] + (2)), (uint8_t)(cpu->gpr[14] & 0xFFu)); if (psx_taken_BFC06128) goto label_BFC0610C; label_BFC06130: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC06130: 3418FFFF ori $t8, $zero, 0xFFFF */ cpu->gpr[24] = cpu->gpr[0] | 0xFFFFu; label_BFC06134: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC06134: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -16696,6 +20491,9 @@ label_BFC06134: cpu->gpr[31] = 0xBFC0614Cu; psx_dispatch(cpu, 0xBFC0D970u); label_BFC0614C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0614C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0614Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -16718,6 +20516,9 @@ void func_1FC0615C(CPUState* cpu) { } } label_BFC0615C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC0615C: 3C0EA001 lui $t6, 0xA001 */ cpu->gpr[14] = 0xA0010000u; @@ -16747,6 +20548,9 @@ label_BFC0615C: cpu->gpr[31] = 0xBFC06190u; psx_dispatch(cpu, 0xBFC0D970u); label_BFC06190: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC06190: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC06190u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -16769,6 +20573,9 @@ void func_1FC061A0(CPUState* cpu) { } } label_BFC061A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC061A0: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -16790,6 +20597,9 @@ label_BFC061A0: cpu->gpr[31] = 0xBFC061C4u; psx_dispatch(cpu, 0xBFC0D970u); label_BFC061C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC061C4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC061C4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -16812,6 +20622,9 @@ void func_1FC061D4(CPUState* cpu) { } } label_BFC061D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC061D4: 3C0EA001 lui $t6, 0xA001 */ cpu->gpr[14] = 0xA0010000u; @@ -16841,6 +20654,9 @@ label_BFC061D4: cpu->gpr[31] = 0xBFC06208u; psx_dispatch(cpu, 0xBFC0D970u); label_BFC06208: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC06208: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC06208u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -16863,6 +20679,9 @@ void func_1FC06218(CPUState* cpu) { } } label_BFC06218: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC06218: 3C03BFC1 lui $v1, 0xBFC1 */ cpu->gpr[3] = 0xBFC10000u; @@ -16885,6 +20704,9 @@ label_BFC06218: cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (3860)); if (psx_taken_BFC06234) goto label_BFC06250; label_BFC0623C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0623C: 0FF01987 jal 0xBFC0661C */ /* 0xBFC06240: 00000000 nop */ @@ -16892,6 +20714,9 @@ label_BFC0623C: cpu->gpr[31] = 0xBFC06244u; psx_dispatch(cpu, 0xBFC0661Cu); label_BFC06244: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06244: 1000000D beq $zero, $zero, 0xBFC0627C */ uint32_t psx_brA_BFC06244 = cpu->gpr[0]; uint32_t psx_brB_BFC06244 = cpu->gpr[0]; @@ -16900,10 +20725,16 @@ label_BFC06244: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC06248u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC06244) goto label_BFC0627C; label_BFC0624C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0624C: 240F0F14 addiu $t7, $zero, 3860 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (3860)); label_BFC06250: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC06250: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -16928,6 +20759,9 @@ label_BFC06250: /* 0xBFC06278: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC06278u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC0627C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0627C: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -16940,6 +20774,9 @@ label_BFC0627C: void func_1FC06288(CPUState* cpu) { debug_server_log_call_entry(0x1FC06288u); label_BFC06288: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC06288: 3C03BFC1 lui $v1, 0xBFC1 */ cpu->gpr[3] = 0xBFC10000u; @@ -16988,6 +20825,9 @@ void func_1FC062CC(CPUState* cpu) { } } label_BFC062CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(35u); +#endif psx_check_interrupts(cpu); /* 0xBFC062CC: 3C08BFC1 lui $t0, 0xBFC1 */ cpu->gpr[8] = 0xBFC10000u; @@ -17062,6 +20902,9 @@ label_BFC062CC: cpu->gpr[7] = cpu->gpr[4] & 0xFFu; if (psx_taken_BFC06350) goto label_BFC0636C; label_BFC06358: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC06358: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -17071,6 +20914,9 @@ label_BFC06358: cpu->gpr[31] = 0xBFC06364u; psx_dispatch(cpu, 0xBFC0661Cu); label_BFC06364: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06364: 10000016 beq $zero, $zero, 0xBFC063C0 */ uint32_t psx_brA_BFC06364 = cpu->gpr[0]; uint32_t psx_brB_BFC06364 = cpu->gpr[0]; @@ -17079,6 +20925,9 @@ label_BFC06364: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC06368u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC06364) goto label_BFC063C0; label_BFC0636C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(21u); +#endif psx_check_interrupts(cpu); /* 0xBFC0636C: 2401000A addiu $at, $zero, 10 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); @@ -17123,6 +20972,9 @@ label_BFC0636C: /* 0xBFC063BC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC063BCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC063C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC063C0: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -17144,6 +20996,9 @@ void func_1FC063CC(CPUState* cpu) { } } label_BFC063CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(21u); +#endif psx_check_interrupts(cpu); /* 0xBFC063CC: 3C03A001 lui $v1, 0xA001 */ cpu->gpr[3] = 0xA0010000u; @@ -17190,6 +21045,9 @@ label_BFC063CC: /* nop */ if (psx_taken_BFC06418) goto label_BFC06444; label_BFC06420: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC06420: 3409FFFF ori $t1, $zero, 0xFFFF */ cpu->gpr[9] = cpu->gpr[0] | 0xFFFFu; @@ -17207,6 +21065,9 @@ label_BFC06420: cpu->gpr[31] = 0xBFC0643Cu; psx_dispatch(cpu, 0xBFC0D970u); label_BFC0643C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0643C: 10000023 beq $zero, $zero, 0xBFC064CC */ uint32_t psx_brA_BFC0643C = cpu->gpr[0]; uint32_t psx_brB_BFC0643C = cpu->gpr[0]; @@ -17215,6 +21076,9 @@ label_BFC0643C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC06440u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0643C) goto label_BFC064CC; label_BFC06444: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC06444: 3C05BFC1 lui $a1, 0xBFC1 */ cpu->gpr[5] = 0xBFC10000u; @@ -17235,6 +21099,9 @@ label_BFC06444: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); if (psx_taken_BFC0645C) goto label_BFC06478; label_BFC06464: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06464: 0FF01987 jal 0xBFC0661C */ /* 0xBFC06468: 00000000 nop */ @@ -17242,6 +21109,9 @@ label_BFC06464: cpu->gpr[31] = 0xBFC0646Cu; psx_dispatch(cpu, 0xBFC0661Cu); label_BFC0646C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0646C: 10000017 beq $zero, $zero, 0xBFC064CC */ uint32_t psx_brA_BFC0646C = cpu->gpr[0]; uint32_t psx_brB_BFC0646C = cpu->gpr[0]; @@ -17250,10 +21120,16 @@ label_BFC0646C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC06470u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0646C) goto label_BFC064CC; label_BFC06474: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC06474: 2401000A addiu $at, $zero, 10 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); label_BFC06478: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(21u); +#endif psx_check_interrupts(cpu); /* 0xBFC06478: 0061001B divu $v1, $at */ { uint32_t psx_n = cpu->gpr[3]; uint32_t psx_d = cpu->gpr[1]; if (psx_d == 0) { cpu->lo = 0xFFFFFFFFu; cpu->hi = psx_n; } else { uint32_t psx_q = psx_n / psx_d; uint32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = psx_q; cpu->hi = psx_r; } } @@ -17298,6 +21174,9 @@ label_BFC06478: /* 0xBFC064C8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC064C8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC064CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC064CC: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -17322,6 +21201,9 @@ void func_1FC064D8(CPUState* cpu) { } } label_BFC064D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC064D8: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -17337,6 +21219,9 @@ label_BFC064D8: cpu->gpr[31] = 0xBFC064F0u; psx_dispatch(cpu, 0xBFC0D990u); label_BFC064F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC064F0: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -17348,6 +21233,9 @@ label_BFC064F0: cpu->gpr[31] = 0xBFC06500u; psx_dispatch(cpu, 0xBFC0D990u); label_BFC06500: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC06500: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -17359,6 +21247,9 @@ label_BFC06500: cpu->gpr[31] = 0xBFC06510u; psx_dispatch(cpu, 0xBFC0D990u); label_BFC06510: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC06510: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -17370,6 +21261,9 @@ label_BFC06510: cpu->gpr[31] = 0xBFC06520u; psx_dispatch(cpu, 0xBFC0D990u); label_BFC06520: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC06520: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -17381,6 +21275,9 @@ label_BFC06520: cpu->gpr[31] = 0xBFC06530u; psx_dispatch(cpu, 0xBFC0D990u); label_BFC06530: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC06530: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC06530u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -17409,6 +21306,9 @@ void func_1FC06548(CPUState* cpu) { } } label_BFC06548: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC06548: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -17428,6 +21328,9 @@ label_BFC06548: cpu->gpr[31] = 0xBFC06568u; psx_dispatch(cpu, 0xBFC0D990u); label_BFC06568: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC06568: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -17437,6 +21340,9 @@ label_BFC06568: cpu->gpr[31] = 0xBFC06574u; psx_dispatch(cpu, 0xBFC0D990u); label_BFC06574: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC06574: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -17446,6 +21352,9 @@ label_BFC06574: cpu->gpr[31] = 0xBFC06580u; psx_dispatch(cpu, 0xBFC0D990u); label_BFC06580: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC06580: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -17455,6 +21364,9 @@ label_BFC06580: cpu->gpr[31] = 0xBFC0658Cu; psx_dispatch(cpu, 0xBFC0D990u); label_BFC0658C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0658C: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -17464,6 +21376,9 @@ label_BFC0658C: cpu->gpr[31] = 0xBFC06598u; psx_dispatch(cpu, 0xBFC0D990u); label_BFC06598: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC06598: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -17473,6 +21388,9 @@ label_BFC06598: cpu->gpr[31] = 0xBFC065A4u; psx_dispatch(cpu, 0xBFC0D990u); label_BFC065A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC065A4: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -17482,6 +21400,9 @@ label_BFC065A4: cpu->gpr[31] = 0xBFC065B0u; psx_dispatch(cpu, 0xBFC0D990u); label_BFC065B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC065B0: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC065B0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -17496,6 +21417,9 @@ label_BFC065B0: void func_1FC065C0(CPUState* cpu) { debug_server_log_call_entry(0x1FC065C0u); label_BFC065C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(23u); +#endif psx_check_interrupts(cpu); /* 0xBFC065C0: 3C03BFC1 lui $v1, 0xBFC1 */ cpu->gpr[3] = 0xBFC10000u; @@ -17548,6 +21472,9 @@ label_BFC065C0: void func_1FC0661C(CPUState* cpu) { debug_server_log_call_entry(0x1FC0661Cu); label_BFC0661C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(23u); +#endif psx_check_interrupts(cpu); /* 0xBFC0661C: 240E0001 addiu $t6, $zero, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -17609,6 +21536,9 @@ void func_1FC06680(CPUState* cpu) { } } label_BFC06680: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC06680: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -17635,6 +21565,9 @@ label_BFC06680: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (8)); if (psx_taken_BFC066A4) goto label_BFC066BC; label_BFC066AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC066AC: 10A10006 beq $a1, $at, 0xBFC066C8 */ uint32_t psx_brA_BFC066AC = cpu->gpr[5]; uint32_t psx_brB_BFC066AC = cpu->gpr[1]; @@ -17643,6 +21576,9 @@ label_BFC066AC: cpu->gpr[14] = cpu->gpr[2] | 0x300u; if (psx_taken_BFC066AC) goto label_BFC066C8; label_BFC066B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC066B4: 1000000B beq $zero, $zero, 0xBFC066E4 */ uint32_t psx_brA_BFC066B4 = cpu->gpr[0]; uint32_t psx_brB_BFC066B4 = cpu->gpr[0]; @@ -17651,6 +21587,9 @@ label_BFC066B4: /* nop */ if (psx_taken_BFC066B4) goto label_BFC066E4; label_BFC066BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC066BC: 10000003 beq $zero, $zero, 0xBFC066CC */ uint32_t psx_brA_BFC066BC = cpu->gpr[0]; uint32_t psx_brB_BFC066BC = cpu->gpr[0]; @@ -17659,14 +21598,23 @@ label_BFC066BC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC066C0u); return; } g_debug_last_store_pc = 0xBFC066C0u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC066BC) goto label_BFC066CC; label_BFC066C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC066C4: 344E0300 ori $t6, $v0, 0x300 */ cpu->gpr[14] = cpu->gpr[2] | 0x300u; label_BFC066C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC066C8: AC6E0000 sw $t6, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC066C8u); return; } g_debug_last_store_pc = 0xBFC066C8u; cpu->write_word(psx_addr, cpu->gpr[14]); } label_BFC066CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC066CC: 3C04BFC1 lui $a0, 0xBFC1 */ cpu->gpr[4] = 0xBFC10000u; @@ -17678,6 +21626,9 @@ label_BFC066CC: cpu->gpr[31] = 0xBFC066DCu; psx_dispatch(cpu, 0xBFC018E0u); label_BFC066DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC066DC: 10000005 beq $zero, $zero, 0xBFC066F4 */ uint32_t psx_brA_BFC066DC = cpu->gpr[0]; uint32_t psx_brB_BFC066DC = cpu->gpr[0]; @@ -17686,6 +21637,9 @@ label_BFC066DC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC066E0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC066DC) goto label_BFC066F4; label_BFC066E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC066E4: 3C04BFC1 lui $a0, 0xBFC1 */ cpu->gpr[4] = 0xBFC10000u; @@ -17695,10 +21649,16 @@ label_BFC066E4: cpu->gpr[31] = 0xBFC066F0u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC066F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC066F0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC066F0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC066F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC066F4: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -17719,6 +21679,9 @@ void func_1FC06700(CPUState* cpu) { } } label_BFC06700: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC06700: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -17734,6 +21697,9 @@ label_BFC06700: cpu->gpr[31] = 0xBFC06718u; psx_dispatch(cpu, 0xBFC0227Cu); label_BFC06718: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC06718: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC06718u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -17760,6 +21726,9 @@ void func_1FC06784(CPUState* cpu) { } } label_BFC06784: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC06784: 27BDFF48 addiu $sp, $sp, -184 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-184)); @@ -17775,6 +21744,9 @@ label_BFC06784: cpu->gpr[31] = 0xBFC0679Cu; psx_dispatch(cpu, 0xBFC033C8u); label_BFC0679C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0679C: 3C05BFC1 lui $a1, 0xBFC1 */ cpu->gpr[5] = 0xBFC10000u; @@ -17786,6 +21758,9 @@ label_BFC0679C: cpu->gpr[31] = 0xBFC067ACu; psx_dispatch(cpu, 0xBFC03190u); label_BFC067AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC067AC: 3C05BFC1 lui $a1, 0xBFC1 */ cpu->gpr[5] = 0xBFC10000u; @@ -17797,6 +21772,9 @@ label_BFC067AC: cpu->gpr[31] = 0xBFC067BCu; psx_dispatch(cpu, 0xBFC033C8u); label_BFC067BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC067BC: 3C05BFC1 lui $a1, 0xBFC1 */ cpu->gpr[5] = 0xBFC10000u; @@ -17808,6 +21786,9 @@ label_BFC067BC: cpu->gpr[31] = 0xBFC067CCu; psx_dispatch(cpu, 0xBFC03190u); label_BFC067CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC067CC: 27A40068 addiu $a0, $sp, 104 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (104)); @@ -17817,6 +21798,9 @@ label_BFC067CC: cpu->gpr[31] = 0xBFC067D8u; psx_dispatch(cpu, 0xBFC067E8u); label_BFC067D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC067D8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC067D8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -17912,6 +21896,9 @@ void func_1FC067E8(CPUState* cpu) { } } label_BFC067E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC067E8: 27BDFFD0 addiu $sp, $sp, -48 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-48)); @@ -17927,6 +21914,9 @@ label_BFC067E8: cpu->gpr[31] = 0xBFC06800u; psx_dispatch(cpu, 0xBFC01A60u); label_BFC06800: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06800: 0FF00E5A jal 0xBFC03968 */ /* 0xBFC06804: 00000000 nop */ @@ -17934,6 +21924,9 @@ label_BFC06800: cpu->gpr[31] = 0xBFC06808u; psx_dispatch(cpu, 0xBFC03968u); label_BFC06808: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC06808: 2401FBFE addiu $at, $zero, -1026 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1026)); @@ -17943,6 +21936,9 @@ label_BFC06808: cpu->gpr[31] = 0xBFC06814u; psx_dispatch(cpu, 0xBFC03978u); label_BFC06814: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC06814: 3C021F80 lui $v0, 0x1F80 */ cpu->gpr[2] = 0x1F800000u; @@ -17962,6 +21958,9 @@ label_BFC06814: cpu->gpr[31] = 0xBFC06834u; psx_dispatch(cpu, 0xBFC01A60u); label_BFC06834: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06834: 0FF00108 jal 0xBFC00420 */ /* 0xBFC06838: 00000000 nop */ @@ -17969,6 +21968,9 @@ label_BFC06834: cpu->gpr[31] = 0xBFC0683Cu; psx_dispatch(cpu, 0xBFC00420u); label_BFC0683C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0683C: 0FF00698 jal 0xBFC01A60 */ /* 0xBFC06840: 24040003 addiu $a0, $zero, 3 */ @@ -17976,6 +21978,9 @@ label_BFC0683C: cpu->gpr[31] = 0xBFC06844u; psx_dispatch(cpu, 0xBFC01A60u); label_BFC06844: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06844: 0FF010B4 jal 0xBFC042D0 */ /* 0xBFC06848: 00000000 nop */ @@ -17983,6 +21988,9 @@ label_BFC06844: cpu->gpr[31] = 0xBFC0684Cu; psx_dispatch(cpu, 0xBFC042D0u); label_BFC0684C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0684C: 0FF010A8 jal 0xBFC042A0 */ /* 0xBFC06850: 00000000 nop */ @@ -17990,6 +21998,9 @@ label_BFC0684C: cpu->gpr[31] = 0xBFC06854u; psx_dispatch(cpu, 0xBFC042A0u); label_BFC06854: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06854: 0FF036C4 jal 0xBFC0DB10 */ /* 0xBFC06858: 00000000 nop */ @@ -17997,6 +22008,9 @@ label_BFC06854: cpu->gpr[31] = 0xBFC0685Cu; psx_dispatch(cpu, 0xBFC0DB10u); label_BFC0685C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0685C: 0FF036C8 jal 0xBFC0DB20 */ /* 0xBFC06860: 00000000 nop */ @@ -18004,6 +22018,9 @@ label_BFC0685C: cpu->gpr[31] = 0xBFC06864u; psx_dispatch(cpu, 0xBFC0DB20u); label_BFC06864: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06864: 0FF03668 jal 0xBFC0D9A0 */ /* 0xBFC06868: 00000000 nop */ @@ -18011,6 +22028,9 @@ label_BFC06864: cpu->gpr[31] = 0xBFC0686Cu; psx_dispatch(cpu, 0xBFC0D9A0u); label_BFC0686C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0686C: 0FF00698 jal 0xBFC01A60 */ /* 0xBFC06870: 24040004 addiu $a0, $zero, 4 */ @@ -18018,6 +22038,9 @@ label_BFC0686C: cpu->gpr[31] = 0xBFC06874u; psx_dispatch(cpu, 0xBFC01A60u); label_BFC06874: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC06874: 3C021F80 lui $v0, 0x1F80 */ cpu->gpr[2] = 0x1F800000u; @@ -18049,6 +22072,9 @@ label_BFC06874: cpu->gpr[31] = 0xBFC068ACu; psx_dispatch(cpu, 0xBFC0DB30u); label_BFC068AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC068AC: 0FF00698 jal 0xBFC01A60 */ /* 0xBFC068B0: 24040005 addiu $a0, $zero, 5 */ @@ -18056,6 +22082,9 @@ label_BFC068AC: cpu->gpr[31] = 0xBFC068B4u; psx_dispatch(cpu, 0xBFC01A60u); label_BFC068B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC068B4: 3C04BFC1 lui $a0, 0xBFC1 */ cpu->gpr[4] = 0xBFC10000u; @@ -18065,6 +22094,9 @@ label_BFC068B4: cpu->gpr[31] = 0xBFC068C0u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC068C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC068C0: 0FF00698 jal 0xBFC01A60 */ /* 0xBFC068C4: 24040006 addiu $a0, $zero, 6 */ @@ -18072,6 +22104,9 @@ label_BFC068C0: cpu->gpr[31] = 0xBFC068C8u; psx_dispatch(cpu, 0xBFC01A60u); label_BFC068C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC068C8: 3C021F80 lui $v0, 0x1F80 */ cpu->gpr[2] = 0x1F800000u; @@ -18099,6 +22134,9 @@ label_BFC068C8: cpu->gpr[31] = 0xBFC068F8u; psx_dispatch(cpu, 0xBFC02B50u); label_BFC068F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC068F8: 3C04BFC1 lui $a0, 0xBFC1 */ cpu->gpr[4] = 0xBFC10000u; @@ -18108,6 +22146,9 @@ label_BFC068F8: cpu->gpr[31] = 0xBFC06904u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC06904: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC06904: 3C04A000 lui $a0, 0xA000 */ cpu->gpr[4] = 0xA0000000u; @@ -18119,6 +22160,9 @@ label_BFC06904: cpu->gpr[31] = 0xBFC06914u; psx_dispatch(cpu, 0xBFC0DB40u); label_BFC06914: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06914: 0FF01184 jal 0xBFC04610 */ /* 0xBFC06918: 24040004 addiu $a0, $zero, 4 */ @@ -18126,6 +22170,9 @@ label_BFC06914: cpu->gpr[31] = 0xBFC0691Cu; psx_dispatch(cpu, 0xBFC04610u); label_BFC0691C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0691C: 0FF036D4 jal 0xBFC0DB50 */ /* 0xBFC06920: 00002021 addu $a0, $zero, $zero */ @@ -18133,6 +22180,9 @@ label_BFC0691C: cpu->gpr[31] = 0xBFC06924u; psx_dispatch(cpu, 0xBFC0DB50u); label_BFC06924: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06924: 0FF036D8 jal 0xBFC0DB60 */ /* 0xBFC06928: 24040003 addiu $a0, $zero, 3 */ @@ -18140,6 +22190,9 @@ label_BFC06924: cpu->gpr[31] = 0xBFC0692Cu; psx_dispatch(cpu, 0xBFC0DB60u); label_BFC0692C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0692C: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -18151,6 +22204,9 @@ label_BFC0692C: cpu->gpr[31] = 0xBFC0693Cu; psx_dispatch(cpu, 0xBFC04678u); label_BFC0693C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0693C: 3C05A001 lui $a1, 0xA001 */ cpu->gpr[5] = 0xA0010000u; @@ -18162,6 +22218,9 @@ label_BFC0693C: cpu->gpr[31] = 0xBFC0694Cu; psx_dispatch(cpu, 0xBFC0472Cu); label_BFC0694C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0694C: 0FF036DC jal 0xBFC0DB70 */ /* 0xBFC06950: 24040001 addiu $a0, $zero, 1 */ @@ -18169,6 +22228,9 @@ label_BFC0694C: cpu->gpr[31] = 0xBFC06954u; psx_dispatch(cpu, 0xBFC0DB70u); label_BFC06954: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC06954: 3C021F80 lui $v0, 0x1F80 */ cpu->gpr[2] = 0x1F800000u; @@ -18190,6 +22252,9 @@ label_BFC06954: cpu->gpr[31] = 0xBFC06978u; psx_dispatch(cpu, 0xBFC02240u); label_BFC06978: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06978: 10400003 beq $v0, $zero, 0xBFC06988 */ uint32_t psx_brA_BFC06978 = cpu->gpr[2]; uint32_t psx_brB_BFC06978 = cpu->gpr[0]; @@ -18198,6 +22263,9 @@ label_BFC06978: /* nop */ if (psx_taken_BFC06978) goto label_BFC06988; label_BFC06980: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06980: 0FF01BE9 jal 0xBFC06FA4 */ /* 0xBFC06984: 24040385 addiu $a0, $zero, 901 */ @@ -18205,6 +22273,9 @@ label_BFC06980: cpu->gpr[31] = 0xBFC06988u; psx_dispatch(cpu, 0xBFC06FA4u); label_BFC06988: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06988: 0FF00698 jal 0xBFC01A60 */ /* 0xBFC0698C: 24040007 addiu $a0, $zero, 7 */ @@ -18212,6 +22283,9 @@ label_BFC06988: cpu->gpr[31] = 0xBFC06990u; psx_dispatch(cpu, 0xBFC01A60u); label_BFC06990: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06990: 0FF01BFC jal 0xBFC06FF0 */ /* 0xBFC06994: 00000000 nop */ @@ -18219,6 +22293,9 @@ label_BFC06990: cpu->gpr[31] = 0xBFC06998u; psx_dispatch(cpu, 0xBFC06FF0u); label_BFC06998: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06998: 0FF00698 jal 0xBFC01A60 */ /* 0xBFC0699C: 24040008 addiu $a0, $zero, 8 */ @@ -18226,6 +22303,9 @@ label_BFC06998: cpu->gpr[31] = 0xBFC069A0u; psx_dispatch(cpu, 0xBFC01A60u); label_BFC069A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC069A0: 3C021F80 lui $v0, 0x1F80 */ cpu->gpr[2] = 0x1F800000u; @@ -18239,6 +22319,9 @@ label_BFC069A0: cpu->gpr[31] = 0xBFC069B4u; psx_dispatch(cpu, 0xBFC073A0u); label_BFC069B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC069B4: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -18248,6 +22331,9 @@ label_BFC069B4: cpu->gpr[31] = 0xBFC069C0u; psx_dispatch(cpu, 0xBFC02240u); label_BFC069C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC069C0: 10400003 beq $v0, $zero, 0xBFC069D0 */ uint32_t psx_brA_BFC069C0 = cpu->gpr[2]; uint32_t psx_brB_BFC069C0 = cpu->gpr[0]; @@ -18256,6 +22342,9 @@ label_BFC069C0: /* nop */ if (psx_taken_BFC069C0) goto label_BFC069D0; label_BFC069C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC069C8: 0FF01BE9 jal 0xBFC06FA4 */ /* 0xBFC069CC: 24040399 addiu $a0, $zero, 921 */ @@ -18263,6 +22352,9 @@ label_BFC069C8: cpu->gpr[31] = 0xBFC069D0u; psx_dispatch(cpu, 0xBFC06FA4u); label_BFC069D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC069D0: 0FF01C2B jal 0xBFC070AC */ /* 0xBFC069D4: 00000000 nop */ @@ -18270,6 +22362,9 @@ label_BFC069D0: cpu->gpr[31] = 0xBFC069D8u; psx_dispatch(cpu, 0xBFC070ACu); label_BFC069D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC069D8: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -18280,6 +22375,9 @@ label_BFC069D8: /* nop */ if (psx_taken_BFC069DC) goto label_BFC069EC; label_BFC069E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC069E4: 0FF01C52 jal 0xBFC07148 */ /* 0xBFC069E8: 00000000 nop */ @@ -18287,6 +22385,9 @@ label_BFC069E4: cpu->gpr[31] = 0xBFC069ECu; psx_dispatch(cpu, 0xBFC07148u); label_BFC069EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC069EC: 3C04BFC1 lui $a0, 0xBFC1 */ cpu->gpr[4] = 0xBFC10000u; @@ -18296,6 +22397,9 @@ label_BFC069EC: cpu->gpr[31] = 0xBFC069F8u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC069F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC069F8: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -18305,6 +22409,9 @@ label_BFC069F8: cpu->gpr[31] = 0xBFC06A04u; psx_dispatch(cpu, 0xBFC02240u); label_BFC06A04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06A04: 10400003 beq $v0, $zero, 0xBFC06A14 */ uint32_t psx_brA_BFC06A04 = cpu->gpr[2]; uint32_t psx_brB_BFC06A04 = cpu->gpr[0]; @@ -18313,6 +22420,9 @@ label_BFC06A04: /* nop */ if (psx_taken_BFC06A04) goto label_BFC06A14; label_BFC06A0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06A0C: 0FF01BE9 jal 0xBFC06FA4 */ /* 0xBFC06A10: 24040386 addiu $a0, $zero, 902 */ @@ -18320,6 +22430,9 @@ label_BFC06A0C: cpu->gpr[31] = 0xBFC06A14u; psx_dispatch(cpu, 0xBFC06FA4u); label_BFC06A14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06A14: 0FF00698 jal 0xBFC01A60 */ /* 0xBFC06A18: 24040009 addiu $a0, $zero, 9 */ @@ -18327,6 +22440,9 @@ label_BFC06A14: cpu->gpr[31] = 0xBFC06A1Cu; psx_dispatch(cpu, 0xBFC01A60u); label_BFC06A1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC06A1C: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -18336,6 +22452,9 @@ label_BFC06A1C: cpu->gpr[31] = 0xBFC06A28u; psx_dispatch(cpu, 0xBFC02240u); label_BFC06A28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06A28: 10400004 beq $v0, $zero, 0xBFC06A3C */ uint32_t psx_brA_BFC06A28 = cpu->gpr[2]; uint32_t psx_brB_BFC06A28 = cpu->gpr[0]; @@ -18344,6 +22463,9 @@ label_BFC06A28: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC06A2Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } if (psx_taken_BFC06A28) goto label_BFC06A3C; label_BFC06A30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06A30: 0FF01BE9 jal 0xBFC06FA4 */ /* 0xBFC06A34: 24040387 addiu $a0, $zero, 903 */ @@ -18351,10 +22473,16 @@ label_BFC06A30: cpu->gpr[31] = 0xBFC06A38u; psx_dispatch(cpu, 0xBFC06FA4u); label_BFC06A38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC06A38: 8FA40030 lw $a0, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC06A38u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } label_BFC06A3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06A3C: 0FF03624 jal 0xBFC0D890 */ /* 0xBFC06A40: 24050001 addiu $a1, $zero, 1 */ @@ -18362,6 +22490,9 @@ label_BFC06A3C: cpu->gpr[31] = 0xBFC06A44u; psx_dispatch(cpu, 0xBFC0D890u); label_BFC06A44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06A44: 04400034 bltz $v0, 0xBFC06B18 */ uint32_t psx_brA_BFC06A44 = cpu->gpr[2]; @@ -18370,6 +22501,9 @@ label_BFC06A44: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC06A48u); return; } g_debug_last_store_pc = 0xBFC06A48u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC06A44) goto label_BFC06B18; label_BFC06A4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC06A4C: 3C04BFC1 lui $a0, 0xBFC1 */ cpu->gpr[4] = 0xBFC10000u; @@ -18381,6 +22515,9 @@ label_BFC06A4C: cpu->gpr[31] = 0xBFC06A5Cu; psx_dispatch(cpu, 0xBFC018E0u); label_BFC06A5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC06A5C: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -18390,6 +22527,9 @@ label_BFC06A5C: cpu->gpr[31] = 0xBFC06A68u; psx_dispatch(cpu, 0xBFC02240u); label_BFC06A68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06A68: 10400004 beq $v0, $zero, 0xBFC06A7C */ uint32_t psx_brA_BFC06A68 = cpu->gpr[2]; uint32_t psx_brB_BFC06A68 = cpu->gpr[0]; @@ -18398,6 +22538,9 @@ label_BFC06A68: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC06A6Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } if (psx_taken_BFC06A68) goto label_BFC06A7C; label_BFC06A70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06A70: 0FF01BE9 jal 0xBFC06FA4 */ /* 0xBFC06A74: 2404038F addiu $a0, $zero, 911 */ @@ -18405,10 +22548,16 @@ label_BFC06A70: cpu->gpr[31] = 0xBFC06A78u; psx_dispatch(cpu, 0xBFC06FA4u); label_BFC06A78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC06A78: 8FA4002C lw $a0, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC06A78u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } label_BFC06A7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC06A7C: 3C05A001 lui $a1, 0xA001 */ cpu->gpr[5] = 0xA0010000u; @@ -18420,6 +22569,9 @@ label_BFC06A7C: cpu->gpr[31] = 0xBFC06A8Cu; psx_dispatch(cpu, 0xBFC0D8B0u); label_BFC06A8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06A8C: 1440000D bne $v0, $zero, 0xBFC06AC4 */ uint32_t psx_brA_BFC06A8C = cpu->gpr[2]; uint32_t psx_brB_BFC06A8C = cpu->gpr[0]; @@ -18428,6 +22580,9 @@ label_BFC06A8C: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC06A8C) goto label_BFC06AC4; label_BFC06A94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC06A94: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -18443,6 +22598,9 @@ label_BFC06A94: cpu->gpr[31] = 0xBFC06AACu; psx_dispatch(cpu, 0xBFC02B50u); label_BFC06AAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC06AAC: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -18454,6 +22612,9 @@ label_BFC06AAC: cpu->gpr[31] = 0xBFC06ABCu; psx_dispatch(cpu, 0xBFC033C8u); label_BFC06ABC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06ABC: 10000028 beq $zero, $zero, 0xBFC06B60 */ uint32_t psx_brA_BFC06ABC = cpu->gpr[0]; uint32_t psx_brB_BFC06ABC = cpu->gpr[0]; @@ -18462,6 +22623,9 @@ label_BFC06ABC: /* nop */ if (psx_taken_BFC06ABC) goto label_BFC06B60; label_BFC06AC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC06AC4: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -18475,6 +22639,9 @@ label_BFC06AC4: cpu->gpr[31] = 0xBFC06AD8u; psx_dispatch(cpu, 0xBFC0D8A0u); label_BFC06AD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC06AD8: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -18484,6 +22651,9 @@ label_BFC06AD8: cpu->gpr[31] = 0xBFC06AE4u; psx_dispatch(cpu, 0xBFC02240u); label_BFC06AE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06AE4: 10400003 beq $v0, $zero, 0xBFC06AF4 */ uint32_t psx_brA_BFC06AE4 = cpu->gpr[2]; uint32_t psx_brB_BFC06AE4 = cpu->gpr[0]; @@ -18492,6 +22662,9 @@ label_BFC06AE4: /* nop */ if (psx_taken_BFC06AE4) goto label_BFC06AF4; label_BFC06AEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06AEC: 0FF01BE9 jal 0xBFC06FA4 */ /* 0xBFC06AF0: 24040390 addiu $a0, $zero, 912 */ @@ -18499,6 +22672,9 @@ label_BFC06AEC: cpu->gpr[31] = 0xBFC06AF4u; psx_dispatch(cpu, 0xBFC06FA4u); label_BFC06AF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC06AF4: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -18516,6 +22692,9 @@ label_BFC06AF4: cpu->gpr[31] = 0xBFC06B10u; psx_dispatch(cpu, 0xBFC008A0u); label_BFC06B10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06B10: 10000013 beq $zero, $zero, 0xBFC06B60 */ uint32_t psx_brA_BFC06B10 = cpu->gpr[0]; uint32_t psx_brB_BFC06B10 = cpu->gpr[0]; @@ -18524,6 +22703,9 @@ label_BFC06B10: /* nop */ if (psx_taken_BFC06B10) goto label_BFC06B60; label_BFC06B18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC06B18: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -18533,6 +22715,9 @@ label_BFC06B18: cpu->gpr[31] = 0xBFC06B24u; psx_dispatch(cpu, 0xBFC02240u); label_BFC06B24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06B24: 10400003 beq $v0, $zero, 0xBFC06B34 */ uint32_t psx_brA_BFC06B24 = cpu->gpr[2]; uint32_t psx_brB_BFC06B24 = cpu->gpr[0]; @@ -18541,6 +22726,9 @@ label_BFC06B24: /* nop */ if (psx_taken_BFC06B24) goto label_BFC06B34; label_BFC06B2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06B2C: 0FF01BE9 jal 0xBFC06FA4 */ /* 0xBFC06B30: 24040391 addiu $a0, $zero, 913 */ @@ -18548,6 +22736,9 @@ label_BFC06B2C: cpu->gpr[31] = 0xBFC06B34u; psx_dispatch(cpu, 0xBFC06FA4u); label_BFC06B34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC06B34: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -18565,6 +22756,9 @@ label_BFC06B34: cpu->gpr[31] = 0xBFC06B50u; psx_dispatch(cpu, 0xBFC02B50u); label_BFC06B50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC06B50: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -18576,6 +22770,9 @@ label_BFC06B50: cpu->gpr[31] = 0xBFC06B60u; psx_dispatch(cpu, 0xBFC033C8u); label_BFC06B60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC06B60: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -18585,6 +22782,9 @@ label_BFC06B60: cpu->gpr[31] = 0xBFC06B6Cu; psx_dispatch(cpu, 0xBFC02240u); label_BFC06B6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06B6C: 10400003 beq $v0, $zero, 0xBFC06B7C */ uint32_t psx_brA_BFC06B6C = cpu->gpr[2]; uint32_t psx_brB_BFC06B6C = cpu->gpr[0]; @@ -18593,6 +22793,9 @@ label_BFC06B6C: /* nop */ if (psx_taken_BFC06B6C) goto label_BFC06B7C; label_BFC06B74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06B74: 0FF01BE9 jal 0xBFC06FA4 */ /* 0xBFC06B78: 24040388 addiu $a0, $zero, 904 */ @@ -18600,6 +22803,9 @@ label_BFC06B74: cpu->gpr[31] = 0xBFC06B7Cu; psx_dispatch(cpu, 0xBFC06FA4u); label_BFC06B7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06B7C: 0FF01BCA jal 0xBFC06F28 */ /* 0xBFC06B80: 00000000 nop */ @@ -18607,6 +22813,9 @@ label_BFC06B7C: cpu->gpr[31] = 0xBFC06B84u; psx_dispatch(cpu, 0xBFC06F28u); label_BFC06B84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC06B84: 3C04BFC1 lui $a0, 0xBFC1 */ cpu->gpr[4] = 0xBFC10000u; @@ -18620,6 +22829,9 @@ label_BFC06B84: cpu->gpr[31] = 0xBFC06B98u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC06B98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC06B98: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -18629,6 +22841,9 @@ label_BFC06B98: cpu->gpr[31] = 0xBFC06BA4u; psx_dispatch(cpu, 0xBFC02240u); label_BFC06BA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06BA4: 10400003 beq $v0, $zero, 0xBFC06BB4 */ uint32_t psx_brA_BFC06BA4 = cpu->gpr[2]; uint32_t psx_brB_BFC06BA4 = cpu->gpr[0]; @@ -18637,6 +22852,9 @@ label_BFC06BA4: /* nop */ if (psx_taken_BFC06BA4) goto label_BFC06BB4; label_BFC06BAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06BAC: 0FF01BE9 jal 0xBFC06FA4 */ /* 0xBFC06BB0: 24040389 addiu $a0, $zero, 905 */ @@ -18644,6 +22862,9 @@ label_BFC06BAC: cpu->gpr[31] = 0xBFC06BB4u; psx_dispatch(cpu, 0xBFC06FA4u); label_BFC06BB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06BB4: 0FF03614 jal 0xBFC0D850 */ /* 0xBFC06BB8: 00000000 nop */ @@ -18651,6 +22872,9 @@ label_BFC06BB4: cpu->gpr[31] = 0xBFC06BBCu; psx_dispatch(cpu, 0xBFC0D850u); label_BFC06BBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC06BBC: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -18664,6 +22888,9 @@ label_BFC06BBC: cpu->gpr[31] = 0xBFC06BD0u; psx_dispatch(cpu, 0xBFC03A18u); label_BFC06BD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06BD0: 14400003 bne $v0, $zero, 0xBFC06BE0 */ uint32_t psx_brA_BFC06BD0 = cpu->gpr[2]; uint32_t psx_brB_BFC06BD0 = cpu->gpr[0]; @@ -18672,6 +22899,9 @@ label_BFC06BD0: /* nop */ if (psx_taken_BFC06BD0) goto label_BFC06BE0; label_BFC06BD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06BD8: 0FF01BE9 jal 0xBFC06FA4 */ /* 0xBFC06BDC: 2404038A addiu $a0, $zero, 906 */ @@ -18679,6 +22909,9 @@ label_BFC06BD8: cpu->gpr[31] = 0xBFC06BE0u; psx_dispatch(cpu, 0xBFC06FA4u); label_BFC06BE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC06BE0: 3C05A001 lui $a1, 0xA001 */ cpu->gpr[5] = 0xA0010000u; @@ -18700,6 +22933,9 @@ label_BFC06BE0: cpu->gpr[31] = 0xBFC06C04u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC06C04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC06C04: 3C05A001 lui $a1, 0xA001 */ cpu->gpr[5] = 0xA0010000u; @@ -18717,6 +22953,9 @@ label_BFC06C04: cpu->gpr[31] = 0xBFC06C20u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC06C20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC06C20: 3C05A001 lui $a1, 0xA001 */ cpu->gpr[5] = 0xA0010000u; @@ -18740,6 +22979,9 @@ label_BFC06C20: cpu->gpr[31] = 0xBFC06C48u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC06C48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06C48: 0FF03658 jal 0xBFC0D960 */ /* 0xBFC06C4C: 00000000 nop */ @@ -18747,6 +22989,9 @@ label_BFC06C48: cpu->gpr[31] = 0xBFC06C50u; psx_dispatch(cpu, 0xBFC0D960u); label_BFC06C50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC06C50: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -18756,6 +23001,9 @@ label_BFC06C50: cpu->gpr[31] = 0xBFC06C5Cu; psx_dispatch(cpu, 0xBFC02240u); label_BFC06C5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06C5C: 10400003 beq $v0, $zero, 0xBFC06C6C */ uint32_t psx_brA_BFC06C5C = cpu->gpr[2]; uint32_t psx_brB_BFC06C5C = cpu->gpr[0]; @@ -18764,6 +23012,9 @@ label_BFC06C5C: /* nop */ if (psx_taken_BFC06C5C) goto label_BFC06C6C; label_BFC06C64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06C64: 0FF01BE9 jal 0xBFC06FA4 */ /* 0xBFC06C68: 2404038B addiu $a0, $zero, 907 */ @@ -18771,6 +23022,9 @@ label_BFC06C64: cpu->gpr[31] = 0xBFC06C6Cu; psx_dispatch(cpu, 0xBFC06FA4u); label_BFC06C6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC06C6C: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -18784,6 +23038,9 @@ label_BFC06C6C: cpu->gpr[31] = 0xBFC06C80u; psx_dispatch(cpu, 0xBFC0D570u); label_BFC06C80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC06C80: 3C04BFC1 lui $a0, 0xBFC1 */ cpu->gpr[4] = 0xBFC10000u; @@ -18793,6 +23050,9 @@ label_BFC06C80: cpu->gpr[31] = 0xBFC06C8Cu; psx_dispatch(cpu, 0xBFC018E0u); label_BFC06C8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06C8C: 0FF01BE9 jal 0xBFC06FA4 */ /* 0xBFC06C90: 2404038C addiu $a0, $zero, 908 */ @@ -18800,6 +23060,9 @@ label_BFC06C8C: cpu->gpr[31] = 0xBFC06C94u; psx_dispatch(cpu, 0xBFC06FA4u); label_BFC06C94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC06C94: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC06C94u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -18856,6 +23119,9 @@ void func_1FC06CA4(CPUState* cpu) { } } label_BFC06CA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC06CA4: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -18877,6 +23143,9 @@ label_BFC06CA4: cpu->gpr[31] = 0xBFC06CC8u; psx_dispatch(cpu, 0xBFC03968u); label_BFC06CC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC06CC8: 2401FBFE addiu $at, $zero, -1026 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1026)); @@ -18886,6 +23155,9 @@ label_BFC06CC8: cpu->gpr[31] = 0xBFC06CD4u; psx_dispatch(cpu, 0xBFC03978u); label_BFC06CD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06CD4: 0FF00108 jal 0xBFC00420 */ /* 0xBFC06CD8: 00000000 nop */ @@ -18893,6 +23165,9 @@ label_BFC06CD4: cpu->gpr[31] = 0xBFC06CDCu; psx_dispatch(cpu, 0xBFC00420u); label_BFC06CDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06CDC: 0FF010B4 jal 0xBFC042D0 */ /* 0xBFC06CE0: 00000000 nop */ @@ -18900,6 +23175,9 @@ label_BFC06CDC: cpu->gpr[31] = 0xBFC06CE4u; psx_dispatch(cpu, 0xBFC042D0u); label_BFC06CE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06CE4: 0FF010A8 jal 0xBFC042A0 */ /* 0xBFC06CE8: 00000000 nop */ @@ -18907,6 +23185,9 @@ label_BFC06CE4: cpu->gpr[31] = 0xBFC06CECu; psx_dispatch(cpu, 0xBFC042A0u); label_BFC06CEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06CEC: 0FF036C4 jal 0xBFC0DB10 */ /* 0xBFC06CF0: 00000000 nop */ @@ -18914,6 +23195,9 @@ label_BFC06CEC: cpu->gpr[31] = 0xBFC06CF4u; psx_dispatch(cpu, 0xBFC0DB10u); label_BFC06CF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06CF4: 0FF036C8 jal 0xBFC0DB20 */ /* 0xBFC06CF8: 00000000 nop */ @@ -18921,6 +23205,9 @@ label_BFC06CF4: cpu->gpr[31] = 0xBFC06CFCu; psx_dispatch(cpu, 0xBFC0DB20u); label_BFC06CFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC06CFC: 3C021F80 lui $v0, 0x1F80 */ cpu->gpr[2] = 0x1F800000u; @@ -18940,6 +23227,9 @@ label_BFC06CFC: cpu->gpr[31] = 0xBFC06D1Cu; psx_dispatch(cpu, 0xBFC0DB30u); label_BFC06D1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC06D1C: 3C04BFC1 lui $a0, 0xBFC1 */ cpu->gpr[4] = 0xBFC10000u; @@ -18949,6 +23239,9 @@ label_BFC06D1C: cpu->gpr[31] = 0xBFC06D28u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC06D28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06D28: 0FF00698 jal 0xBFC01A60 */ /* 0xBFC06D2C: 24040006 addiu $a0, $zero, 6 */ @@ -18956,6 +23249,9 @@ label_BFC06D28: cpu->gpr[31] = 0xBFC06D30u; psx_dispatch(cpu, 0xBFC01A60u); label_BFC06D30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC06D30: 3C04A000 lui $a0, 0xA000 */ cpu->gpr[4] = 0xA0000000u; @@ -18967,6 +23263,9 @@ label_BFC06D30: cpu->gpr[31] = 0xBFC06D40u; psx_dispatch(cpu, 0xBFC0DB40u); label_BFC06D40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06D40: 0FF01184 jal 0xBFC04610 */ /* 0xBFC06D44: 24040004 addiu $a0, $zero, 4 */ @@ -18974,6 +23273,9 @@ label_BFC06D40: cpu->gpr[31] = 0xBFC06D48u; psx_dispatch(cpu, 0xBFC04610u); label_BFC06D48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06D48: 0FF036D4 jal 0xBFC0DB50 */ /* 0xBFC06D4C: 00002021 addu $a0, $zero, $zero */ @@ -18981,6 +23283,9 @@ label_BFC06D48: cpu->gpr[31] = 0xBFC06D50u; psx_dispatch(cpu, 0xBFC0DB50u); label_BFC06D50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06D50: 0FF036D8 jal 0xBFC0DB60 */ /* 0xBFC06D54: 24040003 addiu $a0, $zero, 3 */ @@ -18988,6 +23293,9 @@ label_BFC06D50: cpu->gpr[31] = 0xBFC06D58u; psx_dispatch(cpu, 0xBFC0DB60u); label_BFC06D58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC06D58: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -18999,6 +23307,9 @@ label_BFC06D58: cpu->gpr[31] = 0xBFC06D68u; psx_dispatch(cpu, 0xBFC04678u); label_BFC06D68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC06D68: 3C05A001 lui $a1, 0xA001 */ cpu->gpr[5] = 0xA0010000u; @@ -19010,6 +23321,9 @@ label_BFC06D68: cpu->gpr[31] = 0xBFC06D78u; psx_dispatch(cpu, 0xBFC0472Cu); label_BFC06D78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06D78: 0FF036DC jal 0xBFC0DB70 */ /* 0xBFC06D7C: 24040001 addiu $a0, $zero, 1 */ @@ -19017,6 +23331,9 @@ label_BFC06D78: cpu->gpr[31] = 0xBFC06D80u; psx_dispatch(cpu, 0xBFC0DB70u); label_BFC06D80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC06D80: 3C04BFC1 lui $a0, 0xBFC1 */ cpu->gpr[4] = 0xBFC10000u; @@ -19030,6 +23347,9 @@ label_BFC06D80: cpu->gpr[31] = 0xBFC06D94u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC06D94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC06D94: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -19039,6 +23359,9 @@ label_BFC06D94: cpu->gpr[31] = 0xBFC06DA0u; psx_dispatch(cpu, 0xBFC02240u); label_BFC06DA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06DA0: 10400003 beq $v0, $zero, 0xBFC06DB0 */ uint32_t psx_brA_BFC06DA0 = cpu->gpr[2]; uint32_t psx_brB_BFC06DA0 = cpu->gpr[0]; @@ -19047,6 +23370,9 @@ label_BFC06DA0: /* nop */ if (psx_taken_BFC06DA0) goto label_BFC06DB0; label_BFC06DA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06DA8: 0FF01BE9 jal 0xBFC06FA4 */ /* 0xBFC06DAC: 24040386 addiu $a0, $zero, 902 */ @@ -19054,6 +23380,9 @@ label_BFC06DA8: cpu->gpr[31] = 0xBFC06DB0u; psx_dispatch(cpu, 0xBFC06FA4u); label_BFC06DB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06DB0: 0FF01CE8 jal 0xBFC073A0 */ /* 0xBFC06DB4: 00000000 nop */ @@ -19061,6 +23390,9 @@ label_BFC06DB0: cpu->gpr[31] = 0xBFC06DB8u; psx_dispatch(cpu, 0xBFC073A0u); label_BFC06DB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC06DB8: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -19070,6 +23402,9 @@ label_BFC06DB8: cpu->gpr[31] = 0xBFC06DC4u; psx_dispatch(cpu, 0xBFC02240u); label_BFC06DC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06DC4: 10400003 beq $v0, $zero, 0xBFC06DD4 */ uint32_t psx_brA_BFC06DC4 = cpu->gpr[2]; uint32_t psx_brB_BFC06DC4 = cpu->gpr[0]; @@ -19078,6 +23413,9 @@ label_BFC06DC4: /* nop */ if (psx_taken_BFC06DC4) goto label_BFC06DD4; label_BFC06DCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06DCC: 0FF01BE9 jal 0xBFC06FA4 */ /* 0xBFC06DD0: 24040389 addiu $a0, $zero, 905 */ @@ -19085,6 +23423,9 @@ label_BFC06DCC: cpu->gpr[31] = 0xBFC06DD4u; psx_dispatch(cpu, 0xBFC06FA4u); label_BFC06DD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06DD4: 0FF03614 jal 0xBFC0D850 */ /* 0xBFC06DD8: 00000000 nop */ @@ -19092,6 +23433,9 @@ label_BFC06DD4: cpu->gpr[31] = 0xBFC06DDCu; psx_dispatch(cpu, 0xBFC0D850u); label_BFC06DDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC06DDC: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -19105,6 +23449,9 @@ label_BFC06DDC: cpu->gpr[31] = 0xBFC06DF0u; psx_dispatch(cpu, 0xBFC03A18u); label_BFC06DF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06DF0: 14400003 bne $v0, $zero, 0xBFC06E00 */ uint32_t psx_brA_BFC06DF0 = cpu->gpr[2]; uint32_t psx_brB_BFC06DF0 = cpu->gpr[0]; @@ -19113,6 +23460,9 @@ label_BFC06DF0: /* nop */ if (psx_taken_BFC06DF0) goto label_BFC06E00; label_BFC06DF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06DF8: 0FF01BE9 jal 0xBFC06FA4 */ /* 0xBFC06DFC: 2404038A addiu $a0, $zero, 906 */ @@ -19120,6 +23470,9 @@ label_BFC06DF8: cpu->gpr[31] = 0xBFC06E00u; psx_dispatch(cpu, 0xBFC06FA4u); label_BFC06E00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC06E00: 3C05A001 lui $a1, 0xA001 */ cpu->gpr[5] = 0xA0010000u; @@ -19141,6 +23494,9 @@ label_BFC06E00: cpu->gpr[31] = 0xBFC06E24u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC06E24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC06E24: 3C05A001 lui $a1, 0xA001 */ cpu->gpr[5] = 0xA0010000u; @@ -19158,6 +23514,9 @@ label_BFC06E24: cpu->gpr[31] = 0xBFC06E40u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC06E40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC06E40: 3C05A001 lui $a1, 0xA001 */ cpu->gpr[5] = 0xA0010000u; @@ -19181,6 +23540,9 @@ label_BFC06E40: cpu->gpr[31] = 0xBFC06E68u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC06E68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06E68: 0FF03658 jal 0xBFC0D960 */ /* 0xBFC06E6C: 00000000 nop */ @@ -19188,6 +23550,9 @@ label_BFC06E68: cpu->gpr[31] = 0xBFC06E70u; psx_dispatch(cpu, 0xBFC0D960u); label_BFC06E70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC06E70: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -19197,6 +23562,9 @@ label_BFC06E70: cpu->gpr[31] = 0xBFC06E7Cu; psx_dispatch(cpu, 0xBFC02240u); label_BFC06E7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06E7C: 10400003 beq $v0, $zero, 0xBFC06E8C */ uint32_t psx_brA_BFC06E7C = cpu->gpr[2]; uint32_t psx_brB_BFC06E7C = cpu->gpr[0]; @@ -19205,6 +23573,9 @@ label_BFC06E7C: /* nop */ if (psx_taken_BFC06E7C) goto label_BFC06E8C; label_BFC06E84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06E84: 0FF01BE9 jal 0xBFC06FA4 */ /* 0xBFC06E88: 2404038B addiu $a0, $zero, 907 */ @@ -19212,6 +23583,9 @@ label_BFC06E84: cpu->gpr[31] = 0xBFC06E8Cu; psx_dispatch(cpu, 0xBFC06FA4u); label_BFC06E8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC06E8C: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -19225,6 +23599,9 @@ label_BFC06E8C: cpu->gpr[31] = 0xBFC06EA0u; psx_dispatch(cpu, 0xBFC0D570u); label_BFC06EA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC06EA0: 3C04BFC1 lui $a0, 0xBFC1 */ cpu->gpr[4] = 0xBFC10000u; @@ -19234,6 +23611,9 @@ label_BFC06EA0: cpu->gpr[31] = 0xBFC06EACu; psx_dispatch(cpu, 0xBFC018E0u); label_BFC06EAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06EAC: 0FF01BE9 jal 0xBFC06FA4 */ /* 0xBFC06EB0: 2404038C addiu $a0, $zero, 908 */ @@ -19241,6 +23621,9 @@ label_BFC06EAC: cpu->gpr[31] = 0xBFC06EB4u; psx_dispatch(cpu, 0xBFC06FA4u); label_BFC06EB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC06EB4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC06EB4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -19267,6 +23650,9 @@ void func_1FC06EC4(CPUState* cpu) { } } label_BFC06EC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC06EC4: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -19278,6 +23664,9 @@ label_BFC06EC4: cpu->gpr[31] = 0xBFC06ED4u; psx_dispatch(cpu, 0xBFC01A60u); label_BFC06ED4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC06ED4: 3C021F80 lui $v0, 0x1F80 */ cpu->gpr[2] = 0x1F800000u; @@ -19295,6 +23684,9 @@ label_BFC06ED4: cpu->gpr[31] = 0xBFC06EF0u; psx_dispatch(cpu, 0xBFC0703Cu); label_BFC06EF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC06EF0: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -19305,6 +23697,9 @@ label_BFC06EF0: /* nop */ if (psx_taken_BFC06EF4) goto label_BFC06F04; label_BFC06EFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06EFC: 0FF01C47 jal 0xBFC0711C */ /* 0xBFC06F00: 00000000 nop */ @@ -19312,6 +23707,9 @@ label_BFC06EFC: cpu->gpr[31] = 0xBFC06F04u; psx_dispatch(cpu, 0xBFC0711Cu); label_BFC06F04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06F04: 0FF00698 jal 0xBFC01A60 */ /* 0xBFC06F08: 2404000E addiu $a0, $zero, 14 */ @@ -19319,6 +23717,9 @@ label_BFC06F04: cpu->gpr[31] = 0xBFC06F0Cu; psx_dispatch(cpu, 0xBFC01A60u); label_BFC06F0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC06F0C: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -19328,6 +23729,9 @@ label_BFC06F0C: cpu->gpr[31] = 0xBFC06F18u; psx_dispatch(cpu, 0xBFC06784u); label_BFC06F18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC06F18: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC06F18u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -19358,6 +23762,9 @@ void func_1FC06F28(CPUState* cpu) { } } label_BFC06F28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC06F28: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -19371,6 +23778,9 @@ label_BFC06F28: cpu->gpr[31] = 0xBFC06F3Cu; psx_dispatch(cpu, 0xBFC018E0u); label_BFC06F3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC06F3C: 3C04A000 lui $a0, 0xA000 */ cpu->gpr[4] = 0xA0000000u; @@ -19382,6 +23792,9 @@ label_BFC06F3C: cpu->gpr[31] = 0xBFC06F4Cu; psx_dispatch(cpu, 0xBFC0DB40u); label_BFC06F4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06F4C: 0FF01184 jal 0xBFC04610 */ /* 0xBFC06F50: 24040004 addiu $a0, $zero, 4 */ @@ -19389,6 +23802,9 @@ label_BFC06F4C: cpu->gpr[31] = 0xBFC06F54u; psx_dispatch(cpu, 0xBFC04610u); label_BFC06F54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06F54: 0FF036D4 jal 0xBFC0DB50 */ /* 0xBFC06F58: 00002021 addu $a0, $zero, $zero */ @@ -19396,6 +23812,9 @@ label_BFC06F54: cpu->gpr[31] = 0xBFC06F5Cu; psx_dispatch(cpu, 0xBFC0DB50u); label_BFC06F5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06F5C: 0FF036D8 jal 0xBFC0DB60 */ /* 0xBFC06F60: 24040003 addiu $a0, $zero, 3 */ @@ -19403,6 +23822,9 @@ label_BFC06F5C: cpu->gpr[31] = 0xBFC06F64u; psx_dispatch(cpu, 0xBFC0DB60u); label_BFC06F64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC06F64: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -19414,6 +23836,9 @@ label_BFC06F64: cpu->gpr[31] = 0xBFC06F74u; psx_dispatch(cpu, 0xBFC04678u); label_BFC06F74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC06F74: 3C05A001 lui $a1, 0xA001 */ cpu->gpr[5] = 0xA0010000u; @@ -19425,6 +23850,9 @@ label_BFC06F74: cpu->gpr[31] = 0xBFC06F84u; psx_dispatch(cpu, 0xBFC0472Cu); label_BFC06F84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06F84: 0FF036DC jal 0xBFC0DB70 */ /* 0xBFC06F88: 24040001 addiu $a0, $zero, 1 */ @@ -19432,6 +23860,9 @@ label_BFC06F84: cpu->gpr[31] = 0xBFC06F8Cu; psx_dispatch(cpu, 0xBFC0DB70u); label_BFC06F8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06F8C: 0FF01C68 jal 0xBFC071A0 */ /* 0xBFC06F90: 00000000 nop */ @@ -19439,6 +23870,9 @@ label_BFC06F8C: cpu->gpr[31] = 0xBFC06F94u; psx_dispatch(cpu, 0xBFC071A0u); label_BFC06F94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC06F94: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC06F94u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -19462,6 +23896,9 @@ void func_1FC06FA4(CPUState* cpu) { } } label_BFC06FA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC06FA4: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -19475,6 +23912,9 @@ label_BFC06FA4: cpu->gpr[31] = 0xBFC06FB8u; psx_dispatch(cpu, 0xBFC01A60u); label_BFC06FB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC06FB8: 8FA50020 lw $a1, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC06FB8u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -19484,6 +23924,9 @@ label_BFC06FB8: cpu->gpr[31] = 0xBFC06FC4u; psx_dispatch(cpu, 0xBFC0D950u); label_BFC06FC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC06FC4: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC06FC4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -19498,6 +23941,9 @@ label_BFC06FC4: void func_1FC06FDC(CPUState* cpu) { debug_server_log_call_entry(0x1FC06FDCu); label_BFC06FDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC06FDC: 03E00008 jr $ra */ /* 0xBFC06FE0: 00001021 addu $v0, $zero, $zero */ @@ -19518,6 +23964,9 @@ void func_1FC06FF0(CPUState* cpu) { } } label_BFC06FF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC06FF0: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -19539,6 +23988,9 @@ label_BFC06FF0: cpu->gpr[31] = 0xBFC07014u; psx_dispatch(cpu, 0xBFC02B50u); label_BFC07014: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07014: 0FF00648 jal 0xBFC01920 */ /* 0xBFC07018: 00000000 nop */ @@ -19546,6 +23998,9 @@ label_BFC07014: cpu->gpr[31] = 0xBFC0701Cu; psx_dispatch(cpu, 0xBFC01920u); label_BFC0701C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0701C: 8FA40020 lw $a0, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0701Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -19557,6 +24012,9 @@ label_BFC0701C: cpu->gpr[31] = 0xBFC0702Cu; psx_dispatch(cpu, cpu->gpr[14]); label_BFC0702C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0702C: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0702Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -19571,6 +24029,9 @@ label_BFC0702C: void func_1FC0703C(CPUState* cpu) { debug_server_log_call_entry(0x1FC0703Cu); label_BFC0703C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0703C: 3C0FBFC1 lui $t7, 0xBFC1 */ cpu->gpr[15] = 0xBFC10000u; @@ -19591,12 +24052,18 @@ label_BFC0703C: cpu->gpr[3] = cpu->gpr[14] + cpu->gpr[0]; if (psx_taken_BFC07054) goto label_BFC07088; label_BFC0705C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0705C: 81C60000 lb $a2, 0($t6) */ cpu->gpr[6] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[14] + (0))); /* 0xBFC07060: 00000000 nop */ /* nop */ label_BFC07064: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC07064: 80440000 lb $a0, 0($v0) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[2] + (0))); @@ -19611,6 +24078,9 @@ label_BFC07064: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1)); if (psx_taken_BFC07070) goto label_BFC07088; label_BFC07078: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07078: 80660000 lb $a2, 0($v1) */ cpu->gpr[6] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[3] + (0))); @@ -19623,6 +24093,9 @@ label_BFC07078: /* nop */ if (psx_taken_BFC07080) goto label_BFC07064; label_BFC07088: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07088: 80780000 lb $t8, 0($v1) */ cpu->gpr[24] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[3] + (0))); @@ -19635,12 +24108,18 @@ label_BFC07088: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC07090) goto label_BFC070A4; label_BFC07098: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07098: 03E00008 jr $ra */ /* 0xBFC0709C: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); return; label_BFC070A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC070A4: 03E00008 jr $ra */ /* 0xBFC070A8: 00000000 nop */ @@ -19651,6 +24130,9 @@ label_BFC070A4: void func_1FC070AC(CPUState* cpu) { debug_server_log_call_entry(0x1FC070ACu); label_BFC070AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC070AC: 3C0FBFC1 lui $t7, 0xBFC1 */ cpu->gpr[15] = 0xBFC10000u; @@ -19671,12 +24153,18 @@ label_BFC070AC: cpu->gpr[3] = cpu->gpr[14] + cpu->gpr[0]; if (psx_taken_BFC070C4) goto label_BFC070F8; label_BFC070CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC070CC: 81C60000 lb $a2, 0($t6) */ cpu->gpr[6] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[14] + (0))); /* 0xBFC070D0: 00000000 nop */ /* nop */ label_BFC070D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC070D4: 80440000 lb $a0, 0($v0) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[2] + (0))); @@ -19691,6 +24179,9 @@ label_BFC070D4: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1)); if (psx_taken_BFC070E0) goto label_BFC070F8; label_BFC070E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC070E8: 80660000 lb $a2, 0($v1) */ cpu->gpr[6] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[3] + (0))); @@ -19703,6 +24194,9 @@ label_BFC070E8: /* nop */ if (psx_taken_BFC070F0) goto label_BFC070D4; label_BFC070F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC070F8: 80780000 lb $t8, 0($v1) */ cpu->gpr[24] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[3] + (0))); @@ -19715,12 +24209,18 @@ label_BFC070F8: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC07100) goto label_BFC07114; label_BFC07108: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07108: 03E00008 jr $ra */ /* 0xBFC0710C: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); return; label_BFC07114: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07114: 03E00008 jr $ra */ /* 0xBFC07118: 00000000 nop */ @@ -19739,6 +24239,9 @@ void func_1FC0711C(CPUState* cpu) { } } label_BFC0711C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0711C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -19756,6 +24259,9 @@ label_BFC0711C: cpu->gpr[31] = 0xBFC07138u; psx_dispatch(cpu, cpu->gpr[2]); label_BFC07138: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07138: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07138u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -19780,6 +24286,9 @@ void func_1FC07148(CPUState* cpu) { } } label_BFC07148: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC07148: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -19793,6 +24302,9 @@ label_BFC07148: cpu->gpr[31] = 0xBFC0715Cu; psx_dispatch(cpu, 0xBFC018E0u); label_BFC0715C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0715C: 3C04BFC1 lui $a0, 0xBFC1 */ cpu->gpr[4] = 0xBFC10000u; @@ -19806,6 +24318,9 @@ label_BFC0715C: cpu->gpr[31] = 0xBFC07170u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC07170: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC07170: 3C0E1F00 lui $t6, 0x1F00 */ cpu->gpr[14] = 0x1F000000u; @@ -19819,6 +24334,9 @@ label_BFC07170: cpu->gpr[31] = 0xBFC07184u; psx_dispatch(cpu, cpu->gpr[2]); label_BFC07184: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07184: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07184u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -19852,6 +24370,9 @@ void func_1FC071A0(CPUState* cpu) { } } label_BFC071A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC071A0: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -19863,6 +24384,9 @@ label_BFC071A0: cpu->gpr[31] = 0xBFC071B0u; psx_dispatch(cpu, 0xBFC0DBF0u); label_BFC071B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC071B0: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -19878,6 +24402,9 @@ label_BFC071B0: cpu->gpr[31] = 0xBFC071C8u; psx_dispatch(cpu, 0xBFC0D9B0u); label_BFC071C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC071C8: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -19897,6 +24424,9 @@ label_BFC071C8: cpu->gpr[31] = 0xBFC071E8u; psx_dispatch(cpu, 0xBFC0D9B0u); label_BFC071E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC071E8: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -19916,6 +24446,9 @@ label_BFC071E8: cpu->gpr[31] = 0xBFC07208u; psx_dispatch(cpu, 0xBFC0D9B0u); label_BFC07208: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC07208: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -19935,6 +24468,9 @@ label_BFC07208: cpu->gpr[31] = 0xBFC07228u; psx_dispatch(cpu, 0xBFC0D9B0u); label_BFC07228: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC07228: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -19954,6 +24490,9 @@ label_BFC07228: cpu->gpr[31] = 0xBFC07248u; psx_dispatch(cpu, 0xBFC0D9B0u); label_BFC07248: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC07248: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -19967,6 +24506,9 @@ label_BFC07248: cpu->gpr[31] = 0xBFC0725Cu; psx_dispatch(cpu, 0xBFC0D9C0u); label_BFC0725C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0725C: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -19978,6 +24520,9 @@ label_BFC0725C: cpu->gpr[31] = 0xBFC0726Cu; psx_dispatch(cpu, 0xBFC0D9C0u); label_BFC0726C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0726C: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -19989,6 +24534,9 @@ label_BFC0726C: cpu->gpr[31] = 0xBFC0727Cu; psx_dispatch(cpu, 0xBFC0D9C0u); label_BFC0727C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0727C: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -20000,6 +24548,9 @@ label_BFC0727C: cpu->gpr[31] = 0xBFC0728Cu; psx_dispatch(cpu, 0xBFC0D9C0u); label_BFC0728C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0728C: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -20011,6 +24562,9 @@ label_BFC0728C: cpu->gpr[31] = 0xBFC0729Cu; psx_dispatch(cpu, 0xBFC0D9C0u); label_BFC0729C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0729C: 0FF03630 jal 0xBFC0D8C0 */ /* 0xBFC072A0: 00000000 nop */ @@ -20018,6 +24572,9 @@ label_BFC0729C: cpu->gpr[31] = 0xBFC072A4u; psx_dispatch(cpu, 0xBFC0D8C0u); label_BFC072A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC072A4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC072A4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -20048,6 +24605,9 @@ void func_1FC072B8(CPUState* cpu) { } } label_BFC072B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC072B8: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -20059,6 +24619,9 @@ label_BFC072B8: cpu->gpr[31] = 0xBFC072C8u; psx_dispatch(cpu, 0xBFC0D960u); label_BFC072C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC072C8: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -20070,6 +24633,9 @@ label_BFC072C8: cpu->gpr[31] = 0xBFC072D8u; psx_dispatch(cpu, 0xBFC0D9D0u); label_BFC072D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC072D8: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -20081,6 +24647,9 @@ label_BFC072D8: cpu->gpr[31] = 0xBFC072E8u; psx_dispatch(cpu, 0xBFC0D9D0u); label_BFC072E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC072E8: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -20092,6 +24661,9 @@ label_BFC072E8: cpu->gpr[31] = 0xBFC072F8u; psx_dispatch(cpu, 0xBFC0D9D0u); label_BFC072F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC072F8: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -20103,6 +24675,9 @@ label_BFC072F8: cpu->gpr[31] = 0xBFC07308u; psx_dispatch(cpu, 0xBFC0D9D0u); label_BFC07308: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07308: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -20114,6 +24689,9 @@ label_BFC07308: cpu->gpr[31] = 0xBFC07318u; psx_dispatch(cpu, 0xBFC0D9D0u); label_BFC07318: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07318: 0FF03700 jal 0xBFC0DC00 */ /* 0xBFC0731C: 00000000 nop */ @@ -20121,6 +24699,9 @@ label_BFC07318: cpu->gpr[31] = 0xBFC07320u; psx_dispatch(cpu, 0xBFC0DC00u); label_BFC07320: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07320: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07320u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -20145,6 +24726,9 @@ void func_1FC07330(CPUState* cpu) { } } label_BFC07330: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07330: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -20156,6 +24740,9 @@ label_BFC07330: cpu->gpr[31] = 0xBFC07340u; psx_dispatch(cpu, 0xBFC071A0u); label_BFC07340: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07340: 0FF03704 jal 0xBFC0DC10 */ /* 0xBFC07344: 00000000 nop */ @@ -20163,6 +24750,9 @@ label_BFC07340: cpu->gpr[31] = 0xBFC07348u; psx_dispatch(cpu, 0xBFC0DC10u); label_BFC07348: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07348: 14400006 bne $v0, $zero, 0xBFC07364 */ uint32_t psx_brA_BFC07348 = cpu->gpr[2]; uint32_t psx_brB_BFC07348 = cpu->gpr[0]; @@ -20171,6 +24761,9 @@ label_BFC07348: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0734Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC07348) goto label_BFC07364; label_BFC07350: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07350: 0FF03704 jal 0xBFC0DC10 */ /* 0xBFC07354: 00000000 nop */ @@ -20178,6 +24771,9 @@ label_BFC07350: cpu->gpr[31] = 0xBFC07358u; psx_dispatch(cpu, 0xBFC0DC10u); label_BFC07358: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07358: 1040FFFD beq $v0, $zero, 0xBFC07350 */ uint32_t psx_brA_BFC07358 = cpu->gpr[2]; uint32_t psx_brB_BFC07358 = cpu->gpr[0]; @@ -20186,10 +24782,16 @@ label_BFC07358: /* nop */ if (psx_taken_BFC07358) goto label_BFC07350; label_BFC07360: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC07360: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07360u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC07364: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07364: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -20211,6 +24813,9 @@ void func_1FC07370(CPUState* cpu) { } } label_BFC07370: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07370: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -20222,6 +24827,9 @@ label_BFC07370: cpu->gpr[31] = 0xBFC07380u; psx_dispatch(cpu, 0xBFC07330u); label_BFC07380: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07380: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -20233,6 +24841,9 @@ label_BFC07380: cpu->gpr[31] = 0xBFC07390u; psx_dispatch(cpu, 0xBFC01ACCu); label_BFC07390: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07390: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07390u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -20256,6 +24867,9 @@ void func_1FC073A0(CPUState* cpu) { } } label_BFC073A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC073A0: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -20267,6 +24881,9 @@ label_BFC073A0: cpu->gpr[31] = 0xBFC073B0u; psx_dispatch(cpu, 0xBFC07330u); label_BFC073B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC073B0: AFA0001C sw $zero, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC073B0u); return; } g_debug_last_store_pc = 0xBFC073B0u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -20283,10 +24900,16 @@ label_BFC073B0: /* nop */ if (psx_taken_BFC073C0) goto label_BFC073F8; label_BFC073C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC073C8: 8FAF001C lw $t7, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC073C8u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } label_BFC073CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC073CC: 00000000 nop */ /* nop */ @@ -20313,6 +24936,9 @@ label_BFC073CC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC073F4u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } if (psx_taken_BFC073F0) goto label_BFC073CC; label_BFC073F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC073F8: 0FF01D04 jal 0xBFC07410 */ /* 0xBFC073FC: 00000000 nop */ @@ -20320,6 +24946,9 @@ label_BFC073F8: cpu->gpr[31] = 0xBFC07400u; psx_dispatch(cpu, 0xBFC07410u); label_BFC07400: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07400: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07400u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -20345,6 +24974,9 @@ void func_1FC07410(CPUState* cpu) { } } label_BFC07410: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC07410: 27BDFFA0 addiu $sp, $sp, -96 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-96)); @@ -20368,6 +25000,9 @@ label_BFC07410: cpu->gpr[31] = 0xBFC07438u; psx_dispatch(cpu, 0xBFC07C1Cu); label_BFC07438: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07438: 24100001 addiu $s0, $zero, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -20378,6 +25013,9 @@ label_BFC07438: /* nop */ if (psx_taken_BFC0743C) goto label_BFC0744C; label_BFC07444: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07444: 10000082 beq $zero, $zero, 0xBFC07650 */ uint32_t psx_brA_BFC07444 = cpu->gpr[0]; uint32_t psx_brB_BFC07444 = cpu->gpr[0]; @@ -20386,6 +25024,9 @@ label_BFC07444: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC07444) goto label_BFC07650; label_BFC0744C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0744C: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -20401,6 +25042,9 @@ label_BFC0744C: cpu->gpr[31] = 0xBFC07464u; psx_dispatch(cpu, 0xBFC03310u); label_BFC07464: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07464: 10400003 beq $v0, $zero, 0xBFC07474 */ uint32_t psx_brA_BFC07464 = cpu->gpr[2]; uint32_t psx_brB_BFC07464 = cpu->gpr[0]; @@ -20409,6 +25053,9 @@ label_BFC07464: /* nop */ if (psx_taken_BFC07464) goto label_BFC07474; label_BFC0746C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0746C: 10000078 beq $zero, $zero, 0xBFC07650 */ uint32_t psx_brA_BFC0746C = cpu->gpr[0]; uint32_t psx_brB_BFC0746C = cpu->gpr[0]; @@ -20417,6 +25064,9 @@ label_BFC0746C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC0746C) goto label_BFC07650; label_BFC07474: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(31u); +#endif psx_check_interrupts(cpu); /* 0xBFC07474: 3C02A001 lui $v0, 0xA001 */ cpu->gpr[2] = 0xA0010000u; @@ -20482,6 +25132,9 @@ label_BFC07474: cpu->gpr[31] = 0xBFC074F0u; psx_dispatch(cpu, 0xBFC07C1Cu); label_BFC074F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC074F0: 10500003 beq $v0, $s0, 0xBFC07500 */ uint32_t psx_brA_BFC074F0 = cpu->gpr[2]; uint32_t psx_brB_BFC074F0 = cpu->gpr[16]; @@ -20490,6 +25143,9 @@ label_BFC074F0: /* nop */ if (psx_taken_BFC074F0) goto label_BFC07500; label_BFC074F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC074F8: 10000055 beq $zero, $zero, 0xBFC07650 */ uint32_t psx_brA_BFC074F8 = cpu->gpr[0]; uint32_t psx_brB_BFC074F8 = cpu->gpr[0]; @@ -20498,6 +25154,9 @@ label_BFC074F8: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC074F8) goto label_BFC07650; label_BFC07500: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC07500: AFB40028 sw $s4, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07500u); return; } g_debug_last_store_pc = 0xBFC07500u; cpu->write_word(psx_addr, cpu->gpr[20]); } @@ -20512,6 +25171,9 @@ label_BFC07500: /* 0xBFC07514: 02201021 addu $v0, $s1, $zero */ cpu->gpr[2] = cpu->gpr[17] + cpu->gpr[0]; label_BFC07518: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC07518: 3C09A001 lui $t1, 0xA001 */ cpu->gpr[9] = 0xA0010000u; @@ -20536,6 +25198,9 @@ label_BFC07518: /* nop */ if (psx_taken_BFC07538) goto label_BFC07518; label_BFC07540: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC07540: 3C12A001 lui $s2, 0xA001 */ cpu->gpr[18] = 0xA0010000u; @@ -20554,6 +25219,9 @@ label_BFC07540: /* 0xBFC0755C: 24150001 addiu $s5, $zero, 1 */ cpu->gpr[21] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC07560: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07560: 920C0000 lbu $t4, 0($s0) */ cpu->gpr[12] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (0))); @@ -20566,6 +25234,9 @@ label_BFC07560: /* nop */ if (psx_taken_BFC07568) goto label_BFC07580; label_BFC07570: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07570: 8FB50024 lw $s5, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07570u); return; } cpu->gpr[21] = cpu->read_word(psx_addr); } @@ -20578,6 +25249,9 @@ label_BFC07570: cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[19] + (-1)); if (psx_taken_BFC07578) goto label_BFC07630; label_BFC07580: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(23u); +#endif psx_check_interrupts(cpu); /* 0xBFC07580: 92020005 lbu $v0, 5($s0) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (5))); @@ -20627,6 +25301,9 @@ label_BFC07580: cpu->gpr[31] = 0xBFC075DCu; psx_dispatch(cpu, 0xBFC02B50u); label_BFC075DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC075DC: 0251C821 addu $t9, $s2, $s1 */ cpu->gpr[25] = cpu->gpr[18] + cpu->gpr[17]; @@ -20645,6 +25322,9 @@ label_BFC075DC: /* nop */ if (psx_taken_BFC075F0) goto label_BFC07604; label_BFC075F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC075F8: 02028021 addu $s0, $s0, $v0 */ cpu->gpr[16] = cpu->gpr[16] + cpu->gpr[2]; @@ -20655,12 +25335,18 @@ label_BFC075F8: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (9)); if (psx_taken_BFC075FC) goto label_BFC0760C; label_BFC07604: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07604: 02028021 addu $s0, $s0, $v0 */ cpu->gpr[16] = cpu->gpr[16] + cpu->gpr[2]; /* 0xBFC07608: 26100008 addiu $s0, $s0, 8 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (8)); label_BFC0760C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0760C: 0214082B sltu $at, $s0, $s4 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[16] < cpu->gpr[20] ? 1 : 0); @@ -20671,6 +25357,9 @@ label_BFC0760C: cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (44)); if (psx_taken_BFC07610) goto label_BFC07620; label_BFC07618: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07618: 1676FFD1 bne $s3, $s6, 0xBFC07560 */ uint32_t psx_brA_BFC07618 = cpu->gpr[19]; uint32_t psx_brB_BFC07618 = cpu->gpr[22]; @@ -20679,6 +25368,9 @@ label_BFC07618: /* nop */ if (psx_taken_BFC07618) goto label_BFC07560; label_BFC07620: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07620: 8FB50024 lw $s5, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07620u); return; } cpu->gpr[21] = cpu->read_word(psx_addr); } @@ -20689,6 +25381,9 @@ label_BFC07620: /* 0xBFC0762C: 2669FFFF addiu $t1, $s3, -1 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[19] + (-1)); label_BFC07630: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC07630: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -20707,6 +25402,9 @@ label_BFC07630: /* 0xBFC0764C: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC07650: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC07650: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07650u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -20731,6 +25429,9 @@ void func_1FC07664(CPUState* cpu) { } } label_BFC07664: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC07664: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -20763,6 +25464,9 @@ label_BFC07664: cpu->gpr[17] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC07694) goto label_BFC076E0; label_BFC0769C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0769C: 8E0F0004 lw $t7, 4($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0769Cu); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -20775,6 +25479,9 @@ label_BFC0769C: /* nop */ if (psx_taken_BFC076A4) goto label_BFC076C8; label_BFC076AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC076AC: 02602021 addu $a0, $s3, $zero */ cpu->gpr[4] = cpu->gpr[19] + cpu->gpr[0]; @@ -20784,6 +25491,9 @@ label_BFC076AC: cpu->gpr[31] = 0xBFC076B8u; psx_dispatch(cpu, 0xBFC03288u); label_BFC076B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC076B8: 14400003 bne $v0, $zero, 0xBFC076C8 */ uint32_t psx_brA_BFC076B8 = cpu->gpr[2]; uint32_t psx_brB_BFC076B8 = cpu->gpr[0]; @@ -20792,6 +25502,9 @@ label_BFC076B8: /* nop */ if (psx_taken_BFC076B8) goto label_BFC076C8; label_BFC076C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC076C0: 10000008 beq $zero, $zero, 0xBFC076E4 */ uint32_t psx_brA_BFC076C0 = cpu->gpr[0]; uint32_t psx_brB_BFC076C0 = cpu->gpr[0]; @@ -20800,6 +25513,9 @@ label_BFC076C0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); if (psx_taken_BFC076C0) goto label_BFC076E4; label_BFC076C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC076C8: 3C18A001 lui $t8, 0xA001 */ cpu->gpr[24] = 0xA0010000u; @@ -20816,10 +25532,16 @@ label_BFC076C8: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (44)); if (psx_taken_BFC076D8) goto label_BFC0769C; label_BFC076E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC076E0: 2402FFFF addiu $v0, $zero, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); label_BFC076E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC076E4: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC076E4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -20849,6 +25571,9 @@ void func_1FC07700(CPUState* cpu) { } } label_BFC07700: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC07700: 3C0EA001 lui $t6, 0xA001 */ cpu->gpr[14] = 0xA0010000u; @@ -20865,6 +25590,9 @@ label_BFC07700: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07714u); return; } g_debug_last_store_pc = 0xBFC07714u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC07710) goto label_BFC07720; label_BFC07718: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07718: 1000005E beq $zero, $zero, 0xBFC07894 */ uint32_t psx_brA_BFC07718 = cpu->gpr[0]; uint32_t psx_brB_BFC07718 = cpu->gpr[0]; @@ -20873,6 +25601,9 @@ label_BFC07718: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC07718) goto label_BFC07894; label_BFC07720: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC07720: 00037880 sll $t7, $v1, 2 */ cpu->gpr[15] = cpu->gpr[3] << 2u; @@ -20906,6 +25637,9 @@ label_BFC07720: cpu->gpr[31] = 0xBFC0775Cu; psx_dispatch(cpu, 0xBFC07C1Cu); label_BFC0775C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0775C: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -20916,6 +25650,9 @@ label_BFC0775C: /* nop */ if (psx_taken_BFC07760) goto label_BFC07774; label_BFC07768: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07768: 8FB00038 lw $s0, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07768u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -20926,6 +25663,9 @@ label_BFC07768: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC0776C) goto label_BFC07894; label_BFC07774: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC07774: AFB20030 sw $s2, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07774u); return; } g_debug_last_store_pc = 0xBFC07774u; cpu->write_word(psx_addr, cpu->gpr[18]); } @@ -20954,6 +25694,9 @@ label_BFC07774: /* 0xBFC077A4: 269495B0 addiu $s4, $s4, -27216 */ cpu->gpr[20] = (uint32_t)((int32_t)cpu->gpr[20] + (-27216)); label_BFC077A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC077A8: 92380000 lbu $t8, 0($s1) */ cpu->gpr[24] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (0))); @@ -20966,6 +25709,9 @@ label_BFC077A8: /* nop */ if (psx_taken_BFC077B0) goto label_BFC077C8; label_BFC077B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC077B8: 8FB30024 lw $s3, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC077B8u); return; } cpu->gpr[19] = cpu->read_word(psx_addr); } @@ -20978,6 +25724,9 @@ label_BFC077B8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (88)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC077C4u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } if (psx_taken_BFC077C0) goto label_BFC07870; label_BFC077C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(27u); +#endif psx_check_interrupts(cpu); /* 0xBFC077C8: 92220005 lbu $v0, 5($s1) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (5))); @@ -21035,6 +25784,9 @@ label_BFC077C8: cpu->gpr[31] = 0xBFC07834u; psx_dispatch(cpu, 0xBFC02B50u); label_BFC07834: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC07834: 02506821 addu $t5, $s2, $s0 */ cpu->gpr[13] = cpu->gpr[18] + cpu->gpr[16]; @@ -21055,6 +25807,9 @@ label_BFC07834: cpu->gpr[21] = (uint32_t)((int32_t)cpu->gpr[21] + (1)); if (psx_taken_BFC0784C) goto label_BFC07860; label_BFC07854: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07854: 0254082B sltu $at, $s2, $s4 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[18] < cpu->gpr[20] ? 1 : 0); @@ -21065,6 +25820,9 @@ label_BFC07854: /* nop */ if (psx_taken_BFC07858) goto label_BFC077A8; label_BFC07860: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07860: 8FB30024 lw $s3, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07860u); return; } cpu->gpr[19] = cpu->read_word(psx_addr); } @@ -21075,6 +25833,9 @@ label_BFC07860: /* 0xBFC0786C: 8FAF0058 lw $t7, 88($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (88)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0786Cu); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } label_BFC07870: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC07870: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -21095,6 +25856,9 @@ label_BFC07870: /* 0xBFC07890: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC07894: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07894: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07894u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -21122,6 +25886,9 @@ void func_1FC078A4(CPUState* cpu) { } } label_BFC078A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC078A4: 27BDFFA8 addiu $sp, $sp, -88 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-88)); @@ -21143,6 +25910,9 @@ label_BFC078A4: cpu->gpr[31] = 0xBFC078C8u; psx_dispatch(cpu, 0xBFC07F28u); label_BFC078C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC078C8: 304E0010 andi $t6, $v0, 0x10 */ cpu->gpr[14] = cpu->gpr[2] & 0x10u; @@ -21153,6 +25923,9 @@ label_BFC078C8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (92)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC078D0u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } if (psx_taken_BFC078CC) goto label_BFC078F8; label_BFC078D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC078D4: 0FF01D04 jal 0xBFC07410 */ /* 0xBFC078D8: 00000000 nop */ @@ -21160,6 +25933,9 @@ label_BFC078D4: cpu->gpr[31] = 0xBFC078DCu; psx_dispatch(cpu, 0xBFC07410u); label_BFC078DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC078DC: 14400006 bne $v0, $zero, 0xBFC078F8 */ uint32_t psx_brA_BFC078DC = cpu->gpr[2]; uint32_t psx_brB_BFC078DC = cpu->gpr[0]; @@ -21168,6 +25944,9 @@ label_BFC078DC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (92)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC078E0u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } if (psx_taken_BFC078DC) goto label_BFC078F8; label_BFC078E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC078E4: 240F0010 addiu $t7, $zero, 16 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); @@ -21180,10 +25959,16 @@ label_BFC078E4: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC078EC) goto label_BFC079E0; label_BFC078F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC078F4: 8FA2005C lw $v0, 92($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (92)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC078F4u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } label_BFC078F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC078F8: 27B00038 addiu $s0, $sp, 56 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[29] + (56)); @@ -21195,6 +25980,9 @@ label_BFC078F8: cpu->gpr[31] = 0xBFC07908u; psx_dispatch(cpu, 0xBFC02EA0u); label_BFC07908: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07908: 10400007 beq $v0, $zero, 0xBFC07928 */ uint32_t psx_brA_BFC07908 = cpu->gpr[2]; uint32_t psx_brB_BFC07908 = cpu->gpr[0]; @@ -21203,6 +25991,9 @@ label_BFC07908: g_debug_last_store_pc = 0xBFC0790Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[29] + (56)), (uint8_t)(cpu->gpr[2] & 0xFFu)); if (psx_taken_BFC07908) goto label_BFC07928; label_BFC07910: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07910: 82240001 lb $a0, 1($s1) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (1))); @@ -21214,6 +26005,9 @@ label_BFC07910: cpu->gpr[31] = 0xBFC07920u; psx_dispatch(cpu, 0xBFC02EA0u); label_BFC07920: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07920: 1440FFFB bne $v0, $zero, 0xBFC07910 */ uint32_t psx_brA_BFC07920 = cpu->gpr[2]; uint32_t psx_brB_BFC07920 = cpu->gpr[0]; @@ -21222,6 +26016,9 @@ label_BFC07920: g_debug_last_store_pc = 0xBFC07924u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[16] + (0)), (uint8_t)(cpu->gpr[2] & 0xFFu)); if (psx_taken_BFC07920) goto label_BFC07910; label_BFC07928: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07928: 83B90038 lb $t9, 56($sp) */ cpu->gpr[25] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (56))); @@ -21234,12 +26031,18 @@ label_BFC07928: cpu->gpr[17] = cpu->gpr[24] + cpu->gpr[0]; if (psx_taken_BFC07930) goto label_BFC07958; label_BFC07938: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07938: 83020000 lb $v0, 0($t8) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[24] + (0))); /* 0xBFC0793C: 2403003B addiu $v1, $zero, 59 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (59)); label_BFC07940: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07940: 10620005 beq $v1, $v0, 0xBFC07958 */ uint32_t psx_brA_BFC07940 = cpu->gpr[3]; uint32_t psx_brB_BFC07940 = cpu->gpr[2]; @@ -21248,6 +26051,9 @@ label_BFC07940: /* nop */ if (psx_taken_BFC07940) goto label_BFC07958; label_BFC07948: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07948: 82220001 lb $v0, 1($s1) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (1))); @@ -21260,6 +26066,9 @@ label_BFC07948: /* nop */ if (psx_taken_BFC07950) goto label_BFC07940; label_BFC07958: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07958: 82280000 lb $t0, 0($s1) */ cpu->gpr[8] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (0))); @@ -21272,6 +26081,9 @@ label_BFC07958: cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC07960) goto label_BFC0797C; label_BFC07968: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07968: 3C05BFC1 lui $a1, 0xBFC1 */ cpu->gpr[5] = 0xBFC10000u; @@ -21283,10 +26095,16 @@ label_BFC07968: cpu->gpr[31] = 0xBFC07978u; psx_dispatch(cpu, 0xBFC03190u); label_BFC07978: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC07978: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; label_BFC0797C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0797C: 0FF020F3 jal 0xBFC083CC */ /* 0xBFC07980: 27A50038 addiu $a1, $sp, 56 */ @@ -21294,6 +26112,9 @@ label_BFC0797C: cpu->gpr[31] = 0xBFC07984u; psx_dispatch(cpu, 0xBFC083CCu); label_BFC07984: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07984: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -21304,6 +26125,9 @@ label_BFC07984: cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC07988) goto label_BFC079A0; label_BFC07990: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07990: 24090002 addiu $t1, $zero, 2 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); @@ -21316,6 +26140,9 @@ label_BFC07990: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC07998) goto label_BFC079E0; label_BFC079A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC079A0: 00045080 sll $t2, $a0, 2 */ cpu->gpr[10] = cpu->gpr[4] << 2u; @@ -21350,6 +26177,9 @@ label_BFC079A0: /* 0xBFC079DC: AE4E0004 sw $t6, 4($s2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[18] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC079DCu); return; } g_debug_last_store_pc = 0xBFC079DCu; cpu->write_word(psx_addr, cpu->gpr[14]); } label_BFC079E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC079E0: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC079E0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -21378,6 +26208,9 @@ void func_1FC07A04(CPUState* cpu) { } } label_BFC07A04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC07A04: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -21400,6 +26233,9 @@ label_BFC07A04: cpu->gpr[15] = cpu->gpr[14] & 0x7FFu; if (psx_taken_BFC07A20) goto label_BFC07A34; label_BFC07A28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07A28: 11E00002 beq $t7, $zero, 0xBFC07A34 */ uint32_t psx_brA_BFC07A28 = cpu->gpr[15]; uint32_t psx_brB_BFC07A28 = cpu->gpr[0]; @@ -21408,10 +26244,16 @@ label_BFC07A28: /* nop */ if (psx_taken_BFC07A28) goto label_BFC07A34; label_BFC07A30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC07A30: 25EFF800 addiu $t7, $t7, -2048 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[15] + (-2048)); label_BFC07A34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07A34: 15E00007 bne $t7, $zero, 0xBFC07A54 */ uint32_t psx_brA_BFC07A34 = cpu->gpr[15]; uint32_t psx_brB_BFC07A34 = cpu->gpr[0]; @@ -21420,6 +26262,9 @@ label_BFC07A34: cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (22)); if (psx_taken_BFC07A34) goto label_BFC07A54; label_BFC07A3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC07A3C: 8CE40010 lw $a0, 16($a3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[7] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07A3Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -21434,10 +26279,16 @@ label_BFC07A3C: /* nop */ if (psx_taken_BFC07A48) goto label_BFC07A60; label_BFC07A50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC07A50: 24190016 addiu $t9, $zero, 22 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (22)); label_BFC07A54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07A54: ACF90018 sw $t9, 24($a3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[7] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07A54u); return; } g_debug_last_store_pc = 0xBFC07A54u; cpu->write_word(psx_addr, cpu->gpr[25]); } @@ -21448,6 +26299,9 @@ label_BFC07A54: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC07A58) goto label_BFC07B78; label_BFC07A60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC07A60: 8CE80020 lw $t0, 32($a3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[7] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07A60u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -21462,6 +26316,9 @@ label_BFC07A60: /* nop */ if (psx_taken_BFC07A6C) goto label_BFC07A84; label_BFC07A74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07A74: 24090016 addiu $t1, $zero, 22 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (22)); @@ -21474,6 +26331,9 @@ label_BFC07A74: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC07A7C) goto label_BFC07B78; label_BFC07A84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07A84: 0FF01FCA jal 0xBFC07F28 */ /* 0xBFC07A88: AFA70038 sw $a3, 56($sp) */ @@ -21481,6 +26341,9 @@ label_BFC07A84: cpu->gpr[31] = 0xBFC07A8Cu; psx_dispatch(cpu, 0xBFC07F28u); label_BFC07A8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07A8C: 8FA70038 lw $a3, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07A8Cu); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } @@ -21493,6 +26356,9 @@ label_BFC07A8C: /* nop */ if (psx_taken_BFC07A94) goto label_BFC07AC0; label_BFC07A9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07A9C: 0FF01D04 jal 0xBFC07410 */ /* 0xBFC07AA0: AFA70038 sw $a3, 56($sp) */ @@ -21500,6 +26366,9 @@ label_BFC07A9C: cpu->gpr[31] = 0xBFC07AA4u; psx_dispatch(cpu, 0xBFC07410u); label_BFC07AA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07AA4: 8FA70038 lw $a3, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07AA4u); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } @@ -21510,6 +26379,9 @@ label_BFC07AA4: /* nop */ if (psx_taken_BFC07AA8) goto label_BFC07AC0; label_BFC07AB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07AB0: 240B0010 addiu $t3, $zero, 16 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); @@ -21522,6 +26394,9 @@ label_BFC07AB0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC07AB8) goto label_BFC07B78; label_BFC07AC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC07AC0: 3C0CA001 lui $t4, 0xA001 */ cpu->gpr[12] = 0xA0010000u; @@ -21538,6 +26413,9 @@ label_BFC07AC0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07AD4u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } if (psx_taken_BFC07AD0) goto label_BFC07AEC; label_BFC07AD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07AD8: 240E0010 addiu $t6, $zero, 16 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); @@ -21550,10 +26428,16 @@ label_BFC07AD8: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC07AE0) goto label_BFC07B78; label_BFC07AE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC07AE8: 8FA40040 lw $a0, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07AE8u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } label_BFC07AEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC07AEC: 8CEF0024 lw $t7, 36($a3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[7] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07AECu); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -21570,10 +26454,16 @@ label_BFC07AEC: cpu->gpr[1] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC07AFC) goto label_BFC07B08; label_BFC07B04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC07B04: 242107FF addiu $at, $at, 2047 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (2047)); label_BFC07B08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC07B08: 000122C3 sra $a0, $at, 11 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[1] >> 11u); @@ -21589,6 +26479,9 @@ label_BFC07B08: cpu->gpr[31] = 0xBFC07B20u; psx_dispatch(cpu, 0xBFC07C1Cu); label_BFC07B20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07B20: 8FA40024 lw $a0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07B20u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -21601,6 +26494,9 @@ label_BFC07B20: /* nop */ if (psx_taken_BFC07B28) goto label_BFC07B40; label_BFC07B30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07B30: 24080010 addiu $t0, $zero, 16 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); @@ -21613,6 +26509,9 @@ label_BFC07B30: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC07B38) goto label_BFC07B78; label_BFC07B40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC07B40: 8CE40010 lw $a0, 16($a3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[7] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07B40u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -21631,6 +26530,9 @@ label_BFC07B40: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07B58u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } if (psx_taken_BFC07B54) goto label_BFC07B68; label_BFC07B5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07B5C: 10000003 beq $zero, $zero, 0xBFC07B6C */ uint32_t psx_brA_BFC07B5C = cpu->gpr[0]; uint32_t psx_brB_BFC07B5C = cpu->gpr[0]; @@ -21639,14 +26541,23 @@ label_BFC07B5C: cpu->gpr[3] = cpu->gpr[2] - cpu->gpr[4]; if (psx_taken_BFC07B5C) goto label_BFC07B6C; label_BFC07B64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC07B64: 8FA30040 lw $v1, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07B64u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } label_BFC07B68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC07B68: 00000000 nop */ /* nop */ label_BFC07B6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07B6C: 00835821 addu $t3, $a0, $v1 */ cpu->gpr[11] = cpu->gpr[4] + cpu->gpr[3]; @@ -21655,6 +26566,9 @@ label_BFC07B6C: /* 0xBFC07B74: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; label_BFC07B78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07B78: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07B78u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -21679,6 +26593,9 @@ void func_1FC07B88(CPUState* cpu) { } } label_BFC07B88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07B88: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -21690,6 +26607,9 @@ label_BFC07B88: cpu->gpr[31] = 0xBFC07B98u; psx_dispatch(cpu, 0xBFC07F28u); label_BFC07B98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07B98: 304E0010 andi $t6, $v0, 0x10 */ cpu->gpr[14] = cpu->gpr[2] & 0x10u; @@ -21700,6 +26620,9 @@ label_BFC07B98: /* nop */ if (psx_taken_BFC07B9C) goto label_BFC07BC8; label_BFC07BA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07BA4: 0FF01D04 jal 0xBFC07410 */ /* 0xBFC07BA8: 00000000 nop */ @@ -21707,6 +26630,9 @@ label_BFC07BA4: cpu->gpr[31] = 0xBFC07BACu; psx_dispatch(cpu, 0xBFC07410u); label_BFC07BAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07BAC: 14400007 bne $v0, $zero, 0xBFC07BCC */ uint32_t psx_brA_BFC07BAC = cpu->gpr[2]; uint32_t psx_brB_BFC07BAC = cpu->gpr[0]; @@ -21715,6 +26641,9 @@ label_BFC07BAC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07BB0u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } if (psx_taken_BFC07BAC) goto label_BFC07BCC; label_BFC07BB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC07BB4: 240F0010 addiu $t7, $zero, 16 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); @@ -21729,10 +26658,16 @@ label_BFC07BB4: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC07BC0) goto label_BFC07C0C; label_BFC07BC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC07BC8: 8FA50020 lw $a1, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07BC8u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } label_BFC07BCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07BCC: 0FF020F3 jal 0xBFC083CC */ /* 0xBFC07BD0: 00002021 addu $a0, $zero, $zero */ @@ -21740,6 +26675,9 @@ label_BFC07BCC: cpu->gpr[31] = 0xBFC07BD4u; psx_dispatch(cpu, 0xBFC083CCu); label_BFC07BD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07BD4: 14400006 bne $v0, $zero, 0xBFC07BF0 */ uint32_t psx_brA_BFC07BD4 = cpu->gpr[2]; uint32_t psx_brB_BFC07BD4 = cpu->gpr[0]; @@ -21748,6 +26686,9 @@ label_BFC07BD4: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC07BD4) goto label_BFC07BF0; label_BFC07BDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC07BDC: 24180002 addiu $t8, $zero, 2 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); @@ -21762,6 +26703,9 @@ label_BFC07BDC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC07BE8) goto label_BFC07C0C; label_BFC07BF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC07BF0: 0003C880 sll $t9, $v1, 2 */ cpu->gpr[25] = cpu->gpr[3] << 2u; @@ -21778,6 +26722,9 @@ label_BFC07BF0: /* 0xBFC07C08: 00000000 nop */ /* nop */ label_BFC07C0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07C0C: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07C0Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -21814,6 +26761,9 @@ void func_1FC07C1C(CPUState* cpu) { } } label_BFC07C1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC07C1C: 27BDFFA8 addiu $sp, $sp, -88 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-88)); @@ -21848,6 +26798,9 @@ label_BFC07C1C: /* 0xBFC07C58: 2AC2000A slti $v0, $s6, 10 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[22] < (10) ? 1 : 0); label_BFC07C5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07C5C: 14400006 bne $v0, $zero, 0xBFC07C78 */ uint32_t psx_brA_BFC07C5C = cpu->gpr[2]; uint32_t psx_brB_BFC07C5C = cpu->gpr[0]; @@ -21856,6 +26809,9 @@ label_BFC07C5C: cpu->gpr[22] = (uint32_t)((int32_t)cpu->gpr[22] + (1)); if (psx_taken_BFC07C5C) goto label_BFC07C78; label_BFC07C64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07C64: 24040044 addiu $a0, $zero, 68 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (68)); @@ -21865,6 +26821,9 @@ label_BFC07C64: cpu->gpr[31] = 0xBFC07C70u; psx_dispatch(cpu, 0xBFC0D950u); label_BFC07C70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07C70: 100000A3 beq $zero, $zero, 0xBFC07F00 */ uint32_t psx_brA_BFC07C70 = cpu->gpr[0]; uint32_t psx_brB_BFC07C70 = cpu->gpr[0]; @@ -21873,6 +26832,9 @@ label_BFC07C70: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC07C70) goto label_BFC07F00; label_BFC07C78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(69u); +#endif psx_check_interrupts(cpu); /* 0xBFC07C78: 24011194 addiu $at, $zero, 4500 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4500)); @@ -22014,6 +26976,9 @@ label_BFC07C78: cpu->gpr[31] = 0xBFC07D8Cu; psx_dispatch(cpu, 0xBFC0DC20u); label_BFC07D8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07D8C: 14400008 bne $v0, $zero, 0xBFC07DB0 */ uint32_t psx_brA_BFC07D8C = cpu->gpr[2]; uint32_t psx_brB_BFC07D8C = cpu->gpr[0]; @@ -22022,6 +26987,9 @@ label_BFC07D8C: /* nop */ if (psx_taken_BFC07D8C) goto label_BFC07DB0; label_BFC07D94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07D94: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); @@ -22032,6 +27000,9 @@ label_BFC07D94: /* nop */ if (psx_taken_BFC07D98) goto label_BFC07DB0; label_BFC07DA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07DA0: 0FF03708 jal 0xBFC0DC20 */ /* 0xBFC07DA4: 27A40050 addiu $a0, $sp, 80 */ @@ -22039,6 +27010,9 @@ label_BFC07DA0: cpu->gpr[31] = 0xBFC07DA8u; psx_dispatch(cpu, 0xBFC0DC20u); label_BFC07DA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07DA8: 1040FFFA beq $v0, $zero, 0xBFC07D94 */ uint32_t psx_brA_BFC07DA8 = cpu->gpr[2]; uint32_t psx_brB_BFC07DA8 = cpu->gpr[0]; @@ -22047,6 +27021,9 @@ label_BFC07DA8: /* nop */ if (psx_taken_BFC07DA8) goto label_BFC07D94; label_BFC07DB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07DB0: 1E000006 bgtz $s0, 0xBFC07DCC */ uint32_t psx_brA_BFC07DB0 = cpu->gpr[16]; @@ -22055,6 +27032,9 @@ label_BFC07DB0: /* nop */ if (psx_taken_BFC07DB0) goto label_BFC07DCC; label_BFC07DB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07DB8: 24040044 addiu $a0, $zero, 68 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (68)); @@ -22064,6 +27044,9 @@ label_BFC07DB8: cpu->gpr[31] = 0xBFC07DC4u; psx_dispatch(cpu, 0xBFC0D950u); label_BFC07DC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07DC4: 1000004E beq $zero, $zero, 0xBFC07F00 */ uint32_t psx_brA_BFC07DC4 = cpu->gpr[0]; uint32_t psx_brB_BFC07DC4 = cpu->gpr[0]; @@ -22072,6 +27055,9 @@ label_BFC07DC4: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC07DC4) goto label_BFC07F00; label_BFC07DCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07DCC: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -22083,6 +27069,9 @@ label_BFC07DCC: cpu->gpr[31] = 0xBFC07DDCu; psx_dispatch(cpu, 0xBFC0D9E0u); label_BFC07DDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07DDC: 14510004 bne $v0, $s1, 0xBFC07DF0 */ uint32_t psx_brA_BFC07DDC = cpu->gpr[2]; uint32_t psx_brB_BFC07DDC = cpu->gpr[17]; @@ -22091,6 +27080,9 @@ label_BFC07DDC: /* nop */ if (psx_taken_BFC07DDC) goto label_BFC07DF0; label_BFC07DE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07DE4: 3C100001 lui $s0, 0x1 */ cpu->gpr[16] = 0x00010000u; @@ -22101,6 +27093,9 @@ label_BFC07DE4: cpu->gpr[16] = cpu->gpr[16] | 0x869Fu; if (psx_taken_BFC07DE8) goto label_BFC07E1C; label_BFC07DF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07DF0: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -22112,6 +27107,9 @@ label_BFC07DF0: cpu->gpr[31] = 0xBFC07E00u; psx_dispatch(cpu, 0xBFC0D9E0u); label_BFC07E00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07E00: 1451FFF2 bne $v0, $s1, 0xBFC07DCC */ uint32_t psx_brA_BFC07E00 = cpu->gpr[2]; uint32_t psx_brB_BFC07E00 = cpu->gpr[17]; @@ -22120,6 +27118,9 @@ label_BFC07E00: /* nop */ if (psx_taken_BFC07E00) goto label_BFC07DCC; label_BFC07E08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07E08: 24040044 addiu $a0, $zero, 68 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (68)); @@ -22129,6 +27130,9 @@ label_BFC07E08: cpu->gpr[31] = 0xBFC07E14u; psx_dispatch(cpu, 0xBFC0D950u); label_BFC07E14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07E14: 1000FF91 beq $zero, $zero, 0xBFC07C5C */ uint32_t psx_brA_BFC07E14 = cpu->gpr[0]; uint32_t psx_brB_BFC07E14 = cpu->gpr[0]; @@ -22137,6 +27141,9 @@ label_BFC07E14: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[22] < (10) ? 1 : 0); if (psx_taken_BFC07E14) goto label_BFC07C5C; label_BFC07E1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07E1C: 02602021 addu $a0, $s3, $zero */ cpu->gpr[4] = cpu->gpr[19] + cpu->gpr[0]; @@ -22148,6 +27155,9 @@ label_BFC07E1C: cpu->gpr[31] = 0xBFC07E2Cu; psx_dispatch(cpu, 0xBFC0DC30u); label_BFC07E2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07E2C: 1440000A bne $v0, $zero, 0xBFC07E58 */ uint32_t psx_brA_BFC07E2C = cpu->gpr[2]; uint32_t psx_brB_BFC07E2C = cpu->gpr[0]; @@ -22156,6 +27166,9 @@ label_BFC07E2C: cpu->gpr[18] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC07E2C) goto label_BFC07E58; label_BFC07E34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07E34: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); @@ -22166,6 +27179,9 @@ label_BFC07E34: /* nop */ if (psx_taken_BFC07E38) goto label_BFC07E58; label_BFC07E40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07E40: 02602021 addu $a0, $s3, $zero */ cpu->gpr[4] = cpu->gpr[19] + cpu->gpr[0]; @@ -22177,6 +27193,9 @@ label_BFC07E40: cpu->gpr[31] = 0xBFC07E50u; psx_dispatch(cpu, 0xBFC0DC30u); label_BFC07E50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07E50: 1040FFF8 beq $v0, $zero, 0xBFC07E34 */ uint32_t psx_brA_BFC07E50 = cpu->gpr[2]; uint32_t psx_brB_BFC07E50 = cpu->gpr[0]; @@ -22185,6 +27204,9 @@ label_BFC07E50: cpu->gpr[18] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC07E50) goto label_BFC07E34; label_BFC07E58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07E58: 1E000006 bgtz $s0, 0xBFC07E74 */ uint32_t psx_brA_BFC07E58 = cpu->gpr[16]; @@ -22193,6 +27215,9 @@ label_BFC07E58: /* nop */ if (psx_taken_BFC07E58) goto label_BFC07E74; label_BFC07E60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07E60: 24040044 addiu $a0, $zero, 68 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (68)); @@ -22202,6 +27227,9 @@ label_BFC07E60: cpu->gpr[31] = 0xBFC07E6Cu; psx_dispatch(cpu, 0xBFC0D950u); label_BFC07E6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07E6C: 10000024 beq $zero, $zero, 0xBFC07F00 */ uint32_t psx_brA_BFC07E6C = cpu->gpr[0]; uint32_t psx_brB_BFC07E6C = cpu->gpr[0]; @@ -22210,6 +27238,9 @@ label_BFC07E6C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC07E6C) goto label_BFC07F00; label_BFC07E74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07E74: 1A000022 blez $s0, 0xBFC07F00 */ uint32_t psx_brA_BFC07E74 = cpu->gpr[16]; @@ -22218,6 +27249,9 @@ label_BFC07E74: cpu->gpr[2] = cpu->gpr[18] + cpu->gpr[0]; if (psx_taken_BFC07E74) goto label_BFC07F00; label_BFC07E7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07E7C: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -22229,6 +27263,9 @@ label_BFC07E7C: cpu->gpr[31] = 0xBFC07E8Cu; psx_dispatch(cpu, 0xBFC0D9E0u); label_BFC07E8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07E8C: 14510003 bne $v0, $s1, 0xBFC07E9C */ uint32_t psx_brA_BFC07E8C = cpu->gpr[2]; uint32_t psx_brB_BFC07E8C = cpu->gpr[17]; @@ -22237,6 +27274,9 @@ label_BFC07E8C: /* nop */ if (psx_taken_BFC07E8C) goto label_BFC07E9C; label_BFC07E94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07E94: 10000019 beq $zero, $zero, 0xBFC07EFC */ uint32_t psx_brA_BFC07E94 = cpu->gpr[0]; uint32_t psx_brB_BFC07E94 = cpu->gpr[0]; @@ -22245,6 +27285,9 @@ label_BFC07E94: cpu->gpr[18] = cpu->gpr[19] + cpu->gpr[0]; if (psx_taken_BFC07E94) goto label_BFC07EFC; label_BFC07E9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07E9C: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -22256,6 +27299,9 @@ label_BFC07E9C: cpu->gpr[31] = 0xBFC07EACu; psx_dispatch(cpu, 0xBFC0D9E0u); label_BFC07EAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07EAC: 14510006 bne $v0, $s1, 0xBFC07EC8 */ uint32_t psx_brA_BFC07EAC = cpu->gpr[2]; uint32_t psx_brB_BFC07EAC = cpu->gpr[17]; @@ -22264,6 +27310,9 @@ label_BFC07EAC: /* nop */ if (psx_taken_BFC07EAC) goto label_BFC07EC8; label_BFC07EB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07EB4: 24040044 addiu $a0, $zero, 68 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (68)); @@ -22273,6 +27322,9 @@ label_BFC07EB4: cpu->gpr[31] = 0xBFC07EC0u; psx_dispatch(cpu, 0xBFC0D950u); label_BFC07EC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07EC0: 1000FF66 beq $zero, $zero, 0xBFC07C5C */ uint32_t psx_brA_BFC07EC0 = cpu->gpr[0]; uint32_t psx_brB_BFC07EC0 = cpu->gpr[0]; @@ -22281,6 +27333,9 @@ label_BFC07EC0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[22] < (10) ? 1 : 0); if (psx_taken_BFC07EC0) goto label_BFC07C5C; label_BFC07EC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07EC8: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -22292,6 +27347,9 @@ label_BFC07EC8: cpu->gpr[31] = 0xBFC07ED8u; psx_dispatch(cpu, 0xBFC0D9E0u); label_BFC07ED8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07ED8: 14510006 bne $v0, $s1, 0xBFC07EF4 */ uint32_t psx_brA_BFC07ED8 = cpu->gpr[2]; uint32_t psx_brB_BFC07ED8 = cpu->gpr[17]; @@ -22300,6 +27358,9 @@ label_BFC07ED8: /* nop */ if (psx_taken_BFC07ED8) goto label_BFC07EF4; label_BFC07EE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07EE0: 24040044 addiu $a0, $zero, 68 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (68)); @@ -22309,6 +27370,9 @@ label_BFC07EE0: cpu->gpr[31] = 0xBFC07EECu; psx_dispatch(cpu, 0xBFC0D950u); label_BFC07EEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07EEC: 10000004 beq $zero, $zero, 0xBFC07F00 */ uint32_t psx_brA_BFC07EEC = cpu->gpr[0]; uint32_t psx_brB_BFC07EEC = cpu->gpr[0]; @@ -22317,6 +27381,9 @@ label_BFC07EEC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC07EEC) goto label_BFC07F00; label_BFC07EF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07EF4: 1E00FFE1 bgtz $s0, 0xBFC07E7C */ uint32_t psx_brA_BFC07EF4 = cpu->gpr[16]; @@ -22325,10 +27392,16 @@ label_BFC07EF4: /* nop */ if (psx_taken_BFC07EF4) goto label_BFC07E7C; label_BFC07EFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC07EFC: 02401021 addu $v0, $s2, $zero */ cpu->gpr[2] = cpu->gpr[18] + cpu->gpr[0]; label_BFC07F00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC07F00: 8FBF0034 lw $ra, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07F00u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -22368,6 +27441,9 @@ void func_1FC07F28(CPUState* cpu) { } } label_BFC07F28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC07F28: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -22385,6 +27461,9 @@ label_BFC07F28: cpu->gpr[31] = 0xBFC07F44u; psx_dispatch(cpu, 0xBFC0DC40u); label_BFC07F44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07F44: 304E00FF andi $t6, $v0, 0xFF */ cpu->gpr[14] = cpu->gpr[2] & 0xFFu; @@ -22395,6 +27474,9 @@ label_BFC07F44: /* nop */ if (psx_taken_BFC07F48) goto label_BFC07F70; label_BFC07F50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07F50: 2631FFFF addiu $s1, $s1, -1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (-1)); @@ -22405,6 +27487,9 @@ label_BFC07F50: /* nop */ if (psx_taken_BFC07F54) goto label_BFC07F70; label_BFC07F5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07F5C: 0FF03710 jal 0xBFC0DC40 */ /* 0xBFC07F60: 27A40034 addiu $a0, $sp, 52 */ @@ -22412,6 +27497,9 @@ label_BFC07F5C: cpu->gpr[31] = 0xBFC07F64u; psx_dispatch(cpu, 0xBFC0DC40u); label_BFC07F64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07F64: 304F00FF andi $t7, $v0, 0xFF */ cpu->gpr[15] = cpu->gpr[2] & 0xFFu; @@ -22422,6 +27510,9 @@ label_BFC07F64: /* nop */ if (psx_taken_BFC07F68) goto label_BFC07F50; label_BFC07F70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07F70: 1E200006 bgtz $s1, 0xBFC07F8C */ uint32_t psx_brA_BFC07F70 = cpu->gpr[17]; @@ -22430,6 +27521,9 @@ label_BFC07F70: /* nop */ if (psx_taken_BFC07F70) goto label_BFC07F8C; label_BFC07F78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07F78: 24040044 addiu $a0, $zero, 68 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (68)); @@ -22439,6 +27533,9 @@ label_BFC07F78: cpu->gpr[31] = 0xBFC07F84u; psx_dispatch(cpu, 0xBFC0D950u); label_BFC07F84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07F84: 10000022 beq $zero, $zero, 0xBFC08010 */ uint32_t psx_brA_BFC07F84 = cpu->gpr[0]; uint32_t psx_brB_BFC07F84 = cpu->gpr[0]; @@ -22447,6 +27544,9 @@ label_BFC07F84: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC07F84) goto label_BFC08010; label_BFC07F8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07F8C: 1A20001F blez $s1, 0xBFC0800C */ uint32_t psx_brA_BFC07F8C = cpu->gpr[17]; @@ -22455,12 +27555,18 @@ label_BFC07F8C: cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (52))); if (psx_taken_BFC07F8C) goto label_BFC0800C; label_BFC07F94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07F94: AFB00024 sw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07F94u); return; } g_debug_last_store_pc = 0xBFC07F94u; cpu->write_word(psx_addr, cpu->gpr[16]); } /* 0xBFC07F98: 24100001 addiu $s0, $zero, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC07F9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07F9C: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -22472,6 +27578,9 @@ label_BFC07F9C: cpu->gpr[31] = 0xBFC07FACu; psx_dispatch(cpu, 0xBFC0D9E0u); label_BFC07FAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07FAC: 305800FF andi $t8, $v0, 0xFF */ cpu->gpr[24] = cpu->gpr[2] & 0xFFu; @@ -22482,6 +27591,9 @@ label_BFC07FAC: /* nop */ if (psx_taken_BFC07FB0) goto label_BFC07FC4; label_BFC07FB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07FB8: 8FB00024 lw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07FB8u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -22492,6 +27604,9 @@ label_BFC07FB8: cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (52))); if (psx_taken_BFC07FBC) goto label_BFC0800C; label_BFC07FC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC07FC4: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -22503,6 +27618,9 @@ label_BFC07FC4: cpu->gpr[31] = 0xBFC07FD4u; psx_dispatch(cpu, 0xBFC0D9E0u); label_BFC07FD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07FD4: 305900FF andi $t9, $v0, 0xFF */ cpu->gpr[25] = cpu->gpr[2] & 0xFFu; @@ -22513,6 +27631,9 @@ label_BFC07FD4: /* nop */ if (psx_taken_BFC07FD8) goto label_BFC07FF8; label_BFC07FE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07FE0: 24040044 addiu $a0, $zero, 68 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (68)); @@ -22522,6 +27643,9 @@ label_BFC07FE0: cpu->gpr[31] = 0xBFC07FECu; psx_dispatch(cpu, 0xBFC0D950u); label_BFC07FEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC07FEC: 8FB00024 lw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC07FECu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -22532,6 +27656,9 @@ label_BFC07FEC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC07FF0) goto label_BFC08010; label_BFC07FF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC07FF8: 1E20FFE8 bgtz $s1, 0xBFC07F9C */ uint32_t psx_brA_BFC07FF8 = cpu->gpr[17]; @@ -22540,6 +27667,9 @@ label_BFC07FF8: /* nop */ if (psx_taken_BFC07FF8) goto label_BFC07F9C; label_BFC08000: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08000: 8FB00024 lw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08000u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -22548,10 +27678,16 @@ label_BFC08000: /* 0xBFC08008: 93A20034 lbu $v0, 52($sp) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (52))); label_BFC0800C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0800C: 00000000 nop */ /* nop */ label_BFC08010: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC08010: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08010u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -22566,6 +27702,9 @@ label_BFC08010: void func_1FC08020(CPUState* cpu) { debug_server_log_call_entry(0x1FC08020u); label_BFC08020: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC08020: 80820000 lb $v0, 0($a0) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (0))); @@ -22578,6 +27717,9 @@ label_BFC08020: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[0] + (63)); if (psx_taken_BFC08028) goto label_BFC0803C; label_BFC08030: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08030: 1000000E beq $zero, $zero, 0xBFC0806C */ uint32_t psx_brA_BFC08030 = cpu->gpr[0]; uint32_t psx_brB_BFC08030 = cpu->gpr[0]; @@ -22586,10 +27728,16 @@ label_BFC08030: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[0] + (63)); if (psx_taken_BFC08030) goto label_BFC0806C; label_BFC08038: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC08038: 2406003F addiu $a2, $zero, 63 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[0] + (63)); label_BFC0803C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0803C: 80A30000 lb $v1, 0($a1) */ cpu->gpr[3] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (0))); @@ -22602,6 +27750,9 @@ label_BFC0803C: /* nop */ if (psx_taken_BFC08044) goto label_BFC0805C; label_BFC0804C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0804C: 10620003 beq $v1, $v0, 0xBFC0805C */ uint32_t psx_brA_BFC0804C = cpu->gpr[3]; uint32_t psx_brB_BFC0804C = cpu->gpr[2]; @@ -22610,12 +27761,18 @@ label_BFC0804C: /* nop */ if (psx_taken_BFC0804C) goto label_BFC0805C; label_BFC08054: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08054: 03E00008 jr $ra */ /* 0xBFC08058: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; return; label_BFC0805C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0805C: 80820001 lb $v0, 1($a0) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (1))); @@ -22628,6 +27785,9 @@ label_BFC0805C: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (1)); if (psx_taken_BFC08064) goto label_BFC0803C; label_BFC0806C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0806C: 80A30000 lb $v1, 0($a1) */ cpu->gpr[3] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (0))); @@ -22640,6 +27800,9 @@ label_BFC0806C: /* nop */ if (psx_taken_BFC08074) goto label_BFC08084; label_BFC0807C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0807C: 14C30004 bne $a2, $v1, 0xBFC08090 */ uint32_t psx_brA_BFC0807C = cpu->gpr[6]; uint32_t psx_brB_BFC0807C = cpu->gpr[3]; @@ -22648,12 +27811,18 @@ label_BFC0807C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC0807C) goto label_BFC08090; label_BFC08084: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08084: 03E00008 jr $ra */ /* 0xBFC08088: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); return; label_BFC08090: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08090: 03E00008 jr $ra */ /* 0xBFC08094: 00000000 nop */ @@ -22675,6 +27844,9 @@ void func_1FC08098(CPUState* cpu) { } } label_BFC08098: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC08098: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -22690,6 +27862,9 @@ label_BFC08098: cpu->gpr[31] = 0xBFC080B0u; psx_dispatch(cpu, 0xBFC07F28u); label_BFC080B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC080B0: 304E0010 andi $t6, $v0, 0x10 */ cpu->gpr[14] = cpu->gpr[2] & 0x10u; @@ -22700,6 +27875,9 @@ label_BFC080B0: /* nop */ if (psx_taken_BFC080B4) goto label_BFC0811C; label_BFC080BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC080BC: 3C03A001 lui $v1, 0xA001 */ cpu->gpr[3] = 0xA0010000u; @@ -22711,6 +27889,9 @@ label_BFC080BC: cpu->gpr[31] = 0xBFC080CCu; psx_dispatch(cpu, 0xBFC07410u); label_BFC080CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC080CC: 8FA30020 lw $v1, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC080CCu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -22721,6 +27902,9 @@ label_BFC080CC: /* nop */ if (psx_taken_BFC080D0) goto label_BFC080EC; label_BFC080D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC080D8: 240F0010 addiu $t7, $zero, 16 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); @@ -22735,6 +27919,9 @@ label_BFC080D8: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC080E4) goto label_BFC081EC; label_BFC080EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC080EC: 3C18A001 lui $t8, 0xA001 */ cpu->gpr[24] = 0xA0010000u; @@ -22749,6 +27936,9 @@ label_BFC080EC: /* nop */ if (psx_taken_BFC080F8) goto label_BFC0811C; label_BFC08100: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC08100: 24190010 addiu $t9, $zero, 16 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); @@ -22767,6 +27957,9 @@ label_BFC08100: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC08114) goto label_BFC081EC; label_BFC0811C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0811C: 3C08A001 lui $t0, 0xA001 */ cpu->gpr[8] = 0xA0010000u; @@ -22781,6 +27974,9 @@ label_BFC0811C: /* nop */ if (psx_taken_BFC08128) goto label_BFC08154; label_BFC08130: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC08130: 3C09A001 lui $t1, 0xA001 */ cpu->gpr[9] = 0xA0010000u; @@ -22799,6 +27995,9 @@ label_BFC08130: /* nop */ if (psx_taken_BFC08144) goto label_BFC08154; label_BFC0814C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0814C: 10000027 beq $zero, $zero, 0xBFC081EC */ uint32_t psx_brA_BFC0814C = cpu->gpr[0]; uint32_t psx_brB_BFC0814C = cpu->gpr[0]; @@ -22807,6 +28006,9 @@ label_BFC0814C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC0814C) goto label_BFC081EC; label_BFC08154: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC08154: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -22826,6 +28028,9 @@ label_BFC08154: cpu->gpr[31] = 0xBFC08174u; psx_dispatch(cpu, 0xBFC083CCu); label_BFC08174: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08174: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -22836,6 +28041,9 @@ label_BFC08174: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC08178) goto label_BFC08194; label_BFC08180: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC08180: 240B0002 addiu $t3, $zero, 2 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); @@ -22850,6 +28058,9 @@ label_BFC08180: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC0818C) goto label_BFC081EC; label_BFC08194: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(21u); +#endif psx_check_interrupts(cpu); /* 0xBFC08194: 00036080 sll $t4, $v1, 2 */ cpu->gpr[12] = cpu->gpr[3] << 2u; @@ -22895,10 +28106,16 @@ label_BFC08194: cpu->gpr[31] = 0xBFC081E8u; psx_dispatch(cpu, 0xBFC033C8u); label_BFC081E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC081E8: 02001021 addu $v0, $s0, $zero */ cpu->gpr[2] = cpu->gpr[16] + cpu->gpr[0]; label_BFC081EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC081EC: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC081ECu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -22924,6 +28141,9 @@ void func_1FC081FC(CPUState* cpu) { } } label_BFC081FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC081FC: 27BDFFA8 addiu $sp, $sp, -88 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-88)); @@ -22941,6 +28161,9 @@ label_BFC081FC: cpu->gpr[31] = 0xBFC08218u; psx_dispatch(cpu, 0xBFC07410u); label_BFC08218: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08218: 14400006 bne $v0, $zero, 0xBFC08234 */ uint32_t psx_brA_BFC08218 = cpu->gpr[2]; uint32_t psx_brB_BFC08218 = cpu->gpr[0]; @@ -22949,6 +28172,9 @@ label_BFC08218: /* nop */ if (psx_taken_BFC08218) goto label_BFC08234; label_BFC08220: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC08220: 240E0010 addiu $t6, $zero, 16 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); @@ -22963,6 +28189,9 @@ label_BFC08220: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC0822C) goto label_BFC08344; label_BFC08234: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC08234: AFB10038 sw $s1, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08234u); return; } g_debug_last_store_pc = 0xBFC08234u; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -22980,6 +28209,9 @@ label_BFC08234: cpu->gpr[31] = 0xBFC08250u; psx_dispatch(cpu, 0xBFC03494u); label_BFC08250: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08250: 1440000A bne $v0, $zero, 0xBFC0827C */ uint32_t psx_brA_BFC08250 = cpu->gpr[2]; uint32_t psx_brB_BFC08250 = cpu->gpr[0]; @@ -22988,6 +28220,9 @@ label_BFC08250: /* nop */ if (psx_taken_BFC08250) goto label_BFC0827C; label_BFC08258: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08258: 3C03A001 lui $v1, 0xA001 */ cpu->gpr[3] = 0xA0010000u; @@ -22996,6 +28231,9 @@ label_BFC08258: /* 0xBFC08260: 2402003F addiu $v0, $zero, 63 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (63)); label_BFC08264: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC08264: 26310001 addiu $s1, $s1, 1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); @@ -23008,6 +28246,9 @@ label_BFC08264: g_debug_last_store_pc = 0xBFC08270u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[17] + (-1)), (uint8_t)(cpu->gpr[2] & 0xFFu)); if (psx_taken_BFC0826C) goto label_BFC08264; label_BFC08274: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08274: 10000025 beq $zero, $zero, 0xBFC0830C */ uint32_t psx_brA_BFC08274 = cpu->gpr[0]; uint32_t psx_brB_BFC08274 = cpu->gpr[0]; @@ -23016,6 +28257,9 @@ label_BFC08274: g_debug_last_store_pc = 0xBFC08278u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[17] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); if (psx_taken_BFC08274) goto label_BFC0830C; label_BFC0827C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0827C: AFB3002C sw $s3, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0827Cu); return; } g_debug_last_store_pc = 0xBFC0827Cu; cpu->write_word(psx_addr, cpu->gpr[19]); } @@ -23030,6 +28274,9 @@ label_BFC0827C: /* nop */ if (psx_taken_BFC08288) goto label_BFC08298; label_BFC08290: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08290: 1000000D beq $zero, $zero, 0xBFC082C8 */ uint32_t psx_brA_BFC08290 = cpu->gpr[0]; uint32_t psx_brB_BFC08290 = cpu->gpr[0]; @@ -23038,12 +28285,18 @@ label_BFC08290: cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[0] + (42)); if (psx_taken_BFC08290) goto label_BFC082C8; label_BFC08298: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08298: 82500000 lb $s0, 0($s2) */ cpu->gpr[16] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[18] + (0))); /* 0xBFC0829C: 2413002A addiu $s3, $zero, 42 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[0] + (42)); label_BFC082A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC082A0: 12700009 beq $s3, $s0, 0xBFC082C8 */ uint32_t psx_brA_BFC082A0 = cpu->gpr[19]; uint32_t psx_brB_BFC082A0 = cpu->gpr[16]; @@ -23052,6 +28305,9 @@ label_BFC082A0: /* nop */ if (psx_taken_BFC082A0) goto label_BFC082C8; label_BFC082A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC082A8: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -23061,6 +28317,9 @@ label_BFC082A8: cpu->gpr[31] = 0xBFC082B4u; psx_dispatch(cpu, 0xBFC02EA0u); label_BFC082B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC082B4: A2220000 sb $v0, 0($s1) */ g_debug_last_store_pc = 0xBFC082B4u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[17] + (0)), (uint8_t)(cpu->gpr[2] & 0xFFu)); @@ -23075,6 +28334,9 @@ label_BFC082B4: /* nop */ if (psx_taken_BFC082C0) goto label_BFC082A0; label_BFC082C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC082C8: 82580000 lb $t8, 0($s2) */ cpu->gpr[24] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[18] + (0))); @@ -23087,6 +28349,9 @@ label_BFC082C8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC082D4u); return; } cpu->gpr[19] = cpu->read_word(psx_addr); } if (psx_taken_BFC082D0) goto label_BFC08304; label_BFC082D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC082D8: 3C03A001 lui $v1, 0xA001 */ cpu->gpr[3] = 0xA0010000u; @@ -23101,10 +28366,16 @@ label_BFC082D8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC082E8u); return; } cpu->gpr[19] = cpu->read_word(psx_addr); } if (psx_taken_BFC082E4) goto label_BFC08304; label_BFC082EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC082EC: 2402003F addiu $v0, $zero, 63 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (63)); label_BFC082F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC082F0: 26310001 addiu $s1, $s1, 1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); @@ -23117,16 +28388,25 @@ label_BFC082F0: g_debug_last_store_pc = 0xBFC082FCu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[17] + (-1)), (uint8_t)(cpu->gpr[2] & 0xFFu)); if (psx_taken_BFC082F8) goto label_BFC082F0; label_BFC08300: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC08300: 8FB3002C lw $s3, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08300u); return; } cpu->gpr[19] = cpu->read_word(psx_addr); } label_BFC08304: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08304: 00000000 nop */ /* nop */ /* 0xBFC08308: A2200000 sb $zero, 0($s1) */ g_debug_last_store_pc = 0xBFC08308u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[17] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); label_BFC0830C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0830C: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -23146,6 +28426,9 @@ label_BFC0830C: cpu->gpr[31] = 0xBFC0832Cu; psx_dispatch(cpu, 0xBFC08098u); label_BFC0832C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0832C: 3C08A001 lui $t0, 0xA001 */ cpu->gpr[8] = 0xA0010000u; @@ -23160,6 +28443,9 @@ label_BFC0832C: /* 0xBFC08340: AC289E14 sw $t0, -25068($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25068)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08340u); return; } g_debug_last_store_pc = 0xBFC08340u; cpu->write_word(psx_addr, cpu->gpr[8]); } label_BFC08344: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC08344: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08344u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -23183,6 +28469,9 @@ void func_1FC08354(CPUState* cpu) { } } label_BFC08354: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC08354: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -23207,6 +28496,9 @@ label_BFC08354: cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (-25216)); if (psx_taken_BFC08374) goto label_BFC083B0; label_BFC0837C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0837C: AFB00024 sw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0837Cu); return; } g_debug_last_store_pc = 0xBFC0837Cu; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -23215,6 +28507,9 @@ label_BFC0837C: /* 0xBFC08384: 00000000 nop */ /* nop */ label_BFC08388: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08388: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -23224,6 +28519,9 @@ label_BFC08388: cpu->gpr[31] = 0xBFC08394u; psx_dispatch(cpu, 0xBFC02EA0u); label_BFC08394: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC08394: A2420000 sb $v0, 0($s2) */ g_debug_last_store_pc = 0xBFC08394u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[18] + (0)), (uint8_t)(cpu->gpr[2] & 0xFFu)); @@ -23238,12 +28536,18 @@ label_BFC08394: /* nop */ if (psx_taken_BFC083A0) goto label_BFC08388; label_BFC083A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC083A8: 8FB00024 lw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC083A8u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } /* 0xBFC083AC: 00000000 nop */ /* nop */ label_BFC083B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC083B0: 0FF01D04 jal 0xBFC07410 */ /* 0xBFC083B4: A2400000 sb $zero, 0($s2) */ @@ -23251,6 +28555,9 @@ label_BFC083B0: cpu->gpr[31] = 0xBFC083B8u; psx_dispatch(cpu, 0xBFC07410u); label_BFC083B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC083B8: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC083B8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -23281,6 +28588,9 @@ void func_1FC083CC(CPUState* cpu) { } } label_BFC083CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC083CC: 27BDFF88 addiu $sp, $sp, -120 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-120)); @@ -23313,6 +28623,9 @@ label_BFC083CC: cpu->gpr[22] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC083FC) goto label_BFC08440; label_BFC08404: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC08404: 3C11A001 lui $s1, 0xA001 */ cpu->gpr[17] = 0xA0010000u; @@ -23328,6 +28641,9 @@ label_BFC08404: cpu->gpr[31] = 0xBFC0841Cu; psx_dispatch(cpu, 0xBFC033C8u); label_BFC0841C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0841C: 3C05BFC1 lui $a1, 0xBFC1 */ cpu->gpr[5] = 0xBFC10000u; @@ -23339,6 +28655,9 @@ label_BFC0841C: cpu->gpr[31] = 0xBFC0842Cu; psx_dispatch(cpu, 0xBFC03190u); label_BFC0842C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0842C: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -23348,6 +28667,9 @@ label_BFC0842C: cpu->gpr[31] = 0xBFC08438u; psx_dispatch(cpu, 0xBFC03190u); label_BFC08438: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08438: 10000006 beq $zero, $zero, 0xBFC08454 */ uint32_t psx_brA_BFC08438 = cpu->gpr[0]; uint32_t psx_brB_BFC08438 = cpu->gpr[0]; @@ -23356,6 +28678,9 @@ label_BFC08438: /* nop */ if (psx_taken_BFC08438) goto label_BFC08454; label_BFC08440: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC08440: 3C11A001 lui $s1, 0xA001 */ cpu->gpr[17] = 0xA0010000u; @@ -23369,6 +28694,9 @@ label_BFC08440: cpu->gpr[31] = 0xBFC08454u; psx_dispatch(cpu, 0xBFC033C8u); label_BFC08454: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC08454: 3C10A001 lui $s0, 0xA001 */ cpu->gpr[16] = 0xA0010000u; @@ -23383,6 +28711,9 @@ label_BFC08454: /* 0xBFC08468: 2415FFFF addiu $s5, $zero, -1 */ cpu->gpr[21] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); label_BFC0846C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0846C: 82020000 lb $v0, 0($s0) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (0))); @@ -23395,6 +28726,9 @@ label_BFC0846C: /* nop */ if (psx_taken_BFC08474) goto label_BFC084A0; label_BFC0847C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0847C: 10400008 beq $v0, $zero, 0xBFC084A0 */ uint32_t psx_brA_BFC0847C = cpu->gpr[2]; uint32_t psx_brB_BFC0847C = cpu->gpr[0]; @@ -23403,6 +28737,9 @@ label_BFC0847C: /* nop */ if (psx_taken_BFC0847C) goto label_BFC084A0; label_BFC08484: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC08484: A2220000 sb $v0, 0($s1) */ g_debug_last_store_pc = 0xBFC08484u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[17] + (0)), (uint8_t)(cpu->gpr[2] & 0xFFu)); @@ -23417,6 +28754,9 @@ label_BFC08484: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); if (psx_taken_BFC08490) goto label_BFC084A0; label_BFC08498: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08498: 1440FFFA bne $v0, $zero, 0xBFC08484 */ uint32_t psx_brA_BFC08498 = cpu->gpr[2]; uint32_t psx_brB_BFC08498 = cpu->gpr[0]; @@ -23425,6 +28765,9 @@ label_BFC08498: /* nop */ if (psx_taken_BFC08498) goto label_BFC08484; label_BFC084A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC084A0: 1040000E beq $v0, $zero, 0xBFC084DC */ uint32_t psx_brA_BFC084A0 = cpu->gpr[2]; uint32_t psx_brB_BFC084A0 = cpu->gpr[0]; @@ -23433,6 +28776,9 @@ label_BFC084A0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[19] < (8) ? 1 : 0); if (psx_taken_BFC084A0) goto label_BFC084DC; label_BFC084A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC084A8: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -23446,6 +28792,9 @@ label_BFC084A8: cpu->gpr[31] = 0xBFC084BCu; psx_dispatch(cpu, 0xBFC07664u); label_BFC084BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC084BC: 14550003 bne $v0, $s5, 0xBFC084CC */ uint32_t psx_brA_BFC084BC = cpu->gpr[2]; uint32_t psx_brB_BFC084BC = cpu->gpr[21]; @@ -23454,6 +28803,9 @@ label_BFC084BC: cpu->gpr[20] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC084BC) goto label_BFC084CC; label_BFC084C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC084C4: 10000004 beq $zero, $zero, 0xBFC084D8 */ uint32_t psx_brA_BFC084C4 = cpu->gpr[0]; uint32_t psx_brB_BFC084C4 = cpu->gpr[0]; @@ -23462,6 +28814,9 @@ label_BFC084C4: g_debug_last_store_pc = 0xBFC084C8u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[29] + (76)), (uint8_t)(cpu->gpr[0] & 0xFFu)); if (psx_taken_BFC084C4) goto label_BFC084D8; label_BFC084CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC084CC: 26730001 addiu $s3, $s3, 1 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (1)); @@ -23471,11 +28826,17 @@ label_BFC084CC: uint32_t psx_brA_BFC084D4 = cpu->gpr[1]; uint32_t psx_brB_BFC084D4 = cpu->gpr[0]; int psx_taken_BFC084D4 = (psx_brA_BFC084D4 != psx_brB_BFC084D4); label_BFC084D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC084D8: 2A610008 slti $at, $s3, 8 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[19] < (8) ? 1 : 0); if (psx_taken_BFC084D4) goto label_BFC0846C; label_BFC084DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC084DC: 14200004 bne $at, $zero, 0xBFC084F0 */ uint32_t psx_brA_BFC084DC = cpu->gpr[1]; uint32_t psx_brB_BFC084DC = cpu->gpr[0]; @@ -23484,6 +28845,9 @@ label_BFC084DC: cpu->gpr[15] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (76))); if (psx_taken_BFC084DC) goto label_BFC084F0; label_BFC084E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC084E4: 10000028 beq $zero, $zero, 0xBFC08588 */ uint32_t psx_brA_BFC084E4 = cpu->gpr[0]; uint32_t psx_brB_BFC084E4 = cpu->gpr[0]; @@ -23492,10 +28856,16 @@ label_BFC084E4: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC084E4) goto label_BFC08588; label_BFC084EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC084EC: 83AF004C lb $t7, 76($sp) */ cpu->gpr[15] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (76))); label_BFC084F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC084F0: 00000000 nop */ /* nop */ @@ -23506,6 +28876,9 @@ label_BFC084F0: /* nop */ if (psx_taken_BFC084F4) goto label_BFC08504; label_BFC084FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC084FC: 10000022 beq $zero, $zero, 0xBFC08588 */ uint32_t psx_brA_BFC084FC = cpu->gpr[0]; uint32_t psx_brB_BFC084FC = cpu->gpr[0]; @@ -23514,6 +28887,9 @@ label_BFC084FC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC084FC) goto label_BFC08588; label_BFC08504: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08504: A2200000 sb $zero, 0($s1) */ g_debug_last_store_pc = 0xBFC08504u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[17] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -23523,6 +28899,9 @@ label_BFC08504: cpu->gpr[31] = 0xBFC08510u; psx_dispatch(cpu, 0xBFC07700u); label_BFC08510: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08510: 14400003 bne $v0, $zero, 0xBFC08520 */ uint32_t psx_brA_BFC08510 = cpu->gpr[2]; uint32_t psx_brB_BFC08510 = cpu->gpr[0]; @@ -23531,6 +28910,9 @@ label_BFC08510: /* nop */ if (psx_taken_BFC08510) goto label_BFC08520; label_BFC08518: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08518: 1000001B beq $zero, $zero, 0xBFC08588 */ uint32_t psx_brA_BFC08518 = cpu->gpr[0]; uint32_t psx_brB_BFC08518 = cpu->gpr[0]; @@ -23539,6 +28921,9 @@ label_BFC08518: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC08518) goto label_BFC08588; label_BFC08520: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC08520: 3C11A001 lui $s1, 0xA001 */ cpu->gpr[17] = 0xA0010000u; @@ -23555,6 +28940,9 @@ label_BFC08520: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC08530) goto label_BFC08588; label_BFC08538: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC08538: 0013C080 sll $t8, $s3, 2 */ cpu->gpr[24] = cpu->gpr[19] << 2u; @@ -23571,6 +28959,9 @@ label_BFC08538: /* 0xBFC08550: 03288021 addu $s0, $t9, $t0 */ cpu->gpr[16] = cpu->gpr[25] + cpu->gpr[8]; label_BFC08554: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08554: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -23580,6 +28971,9 @@ label_BFC08554: cpu->gpr[31] = 0xBFC08560u; psx_dispatch(cpu, 0xBFC08020u); label_BFC08560: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08560: 10400004 beq $v0, $zero, 0xBFC08574 */ uint32_t psx_brA_BFC08560 = cpu->gpr[2]; uint32_t psx_brB_BFC08560 = cpu->gpr[0]; @@ -23588,6 +28982,9 @@ label_BFC08560: cpu->gpr[1] = 0xA0010000u; if (psx_taken_BFC08560) goto label_BFC08574; label_BFC08568: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08568: AC339E10 sw $s3, -25072($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25072)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08568u); return; } g_debug_last_store_pc = 0xBFC08568u; cpu->write_word(psx_addr, cpu->gpr[19]); } @@ -23598,6 +28995,9 @@ label_BFC08568: cpu->gpr[2] = cpu->gpr[19] + cpu->gpr[0]; if (psx_taken_BFC0856C) goto label_BFC08588; label_BFC08574: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC08574: 26730001 addiu $s3, $s3, 1 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (1)); @@ -23610,10 +29010,16 @@ label_BFC08574: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (24)); if (psx_taken_BFC0857C) goto label_BFC08554; label_BFC08584: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC08584: 2402FFFF addiu $v0, $zero, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); label_BFC08588: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC08588: 8FBF0034 lw $ra, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08588u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -23648,6 +29054,9 @@ void func_1FC085B0(CPUState* cpu) { } } label_BFC085B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC085B0: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -23661,6 +29070,9 @@ label_BFC085B0: cpu->gpr[31] = 0xBFC085C4u; psx_dispatch(cpu, 0xBFC0D9F0u); label_BFC085C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC085C4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC085C4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -23689,6 +29101,9 @@ void func_1FC085D4(CPUState* cpu) { } } label_BFC085D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC085D4: 27BDFFD0 addiu $sp, $sp, -48 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-48)); @@ -23700,6 +29115,9 @@ label_BFC085D4: cpu->gpr[31] = 0xBFC085E4u; psx_dispatch(cpu, 0xBFC0D8C0u); label_BFC085E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC085E4: 0FF03714 jal 0xBFC0DC50 */ /* 0xBFC085E8: 24110009 addiu $s1, $zero, 9 */ @@ -23707,6 +29125,9 @@ label_BFC085E4: cpu->gpr[31] = 0xBFC085ECu; psx_dispatch(cpu, 0xBFC0DC50u); label_BFC085EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC085EC: 14400008 bne $v0, $zero, 0xBFC08610 */ uint32_t psx_brA_BFC085EC = cpu->gpr[2]; uint32_t psx_brB_BFC085EC = cpu->gpr[0]; @@ -23715,6 +29136,9 @@ label_BFC085EC: /* nop */ if (psx_taken_BFC085EC) goto label_BFC08610; label_BFC085F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC085F4: 2631FFFF addiu $s1, $s1, -1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (-1)); @@ -23725,6 +29149,9 @@ label_BFC085F4: /* nop */ if (psx_taken_BFC085F8) goto label_BFC08610; label_BFC08600: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08600: 0FF03714 jal 0xBFC0DC50 */ /* 0xBFC08604: 00000000 nop */ @@ -23732,6 +29159,9 @@ label_BFC08600: cpu->gpr[31] = 0xBFC08608u; psx_dispatch(cpu, 0xBFC0DC50u); label_BFC08608: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08608: 1040FFFA beq $v0, $zero, 0xBFC085F4 */ uint32_t psx_brA_BFC08608 = cpu->gpr[2]; uint32_t psx_brB_BFC08608 = cpu->gpr[0]; @@ -23740,6 +29170,9 @@ label_BFC08608: /* nop */ if (psx_taken_BFC08608) goto label_BFC085F4; label_BFC08610: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08610: 1E200006 bgtz $s1, 0xBFC0862C */ uint32_t psx_brA_BFC08610 = cpu->gpr[17]; @@ -23748,6 +29181,9 @@ label_BFC08610: /* nop */ if (psx_taken_BFC08610) goto label_BFC0862C; label_BFC08618: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08618: 24040044 addiu $a0, $zero, 68 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (68)); @@ -23757,6 +29193,9 @@ label_BFC08618: cpu->gpr[31] = 0xBFC08624u; psx_dispatch(cpu, 0xBFC0D950u); label_BFC08624: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08624: 1000001E beq $zero, $zero, 0xBFC086A0 */ uint32_t psx_brA_BFC08624 = cpu->gpr[0]; uint32_t psx_brB_BFC08624 = cpu->gpr[0]; @@ -23765,6 +29204,9 @@ label_BFC08624: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC08624) goto label_BFC086A0; label_BFC0862C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0862C: 1A20001D blez $s1, 0xBFC086A4 */ uint32_t psx_brA_BFC0862C = cpu->gpr[17]; @@ -23773,12 +29215,18 @@ label_BFC0862C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08630u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0862C) goto label_BFC086A4; label_BFC08634: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08634: AFB00024 sw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08634u); return; } g_debug_last_store_pc = 0xBFC08634u; cpu->write_word(psx_addr, cpu->gpr[16]); } /* 0xBFC08638: 24100001 addiu $s0, $zero, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC0863C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0863C: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -23790,6 +29238,9 @@ label_BFC0863C: cpu->gpr[31] = 0xBFC0864Cu; psx_dispatch(cpu, 0xBFC0D9E0u); label_BFC0864C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0864C: 14500004 bne $v0, $s0, 0xBFC08660 */ uint32_t psx_brA_BFC0864C = cpu->gpr[2]; uint32_t psx_brB_BFC0864C = cpu->gpr[16]; @@ -23798,6 +29249,9 @@ label_BFC0864C: /* nop */ if (psx_taken_BFC0864C) goto label_BFC08660; label_BFC08654: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08654: 8FB00024 lw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08654u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -23808,6 +29262,9 @@ label_BFC08654: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0865Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC08658) goto label_BFC086A4; label_BFC08660: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC08660: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -23819,6 +29276,9 @@ label_BFC08660: cpu->gpr[31] = 0xBFC08670u; psx_dispatch(cpu, 0xBFC0D9E0u); label_BFC08670: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08670: 14500007 bne $v0, $s0, 0xBFC08690 */ uint32_t psx_brA_BFC08670 = cpu->gpr[2]; uint32_t psx_brB_BFC08670 = cpu->gpr[16]; @@ -23827,6 +29287,9 @@ label_BFC08670: /* nop */ if (psx_taken_BFC08670) goto label_BFC08690; label_BFC08678: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08678: 24040044 addiu $a0, $zero, 68 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (68)); @@ -23836,6 +29299,9 @@ label_BFC08678: cpu->gpr[31] = 0xBFC08684u; psx_dispatch(cpu, 0xBFC0D950u); label_BFC08684: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08684: 8FB00024 lw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08684u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -23846,6 +29312,9 @@ label_BFC08684: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0868Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC08688) goto label_BFC086A4; label_BFC08690: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08690: 1E20FFEA bgtz $s1, 0xBFC0863C */ uint32_t psx_brA_BFC08690 = cpu->gpr[17]; @@ -23854,16 +29323,25 @@ label_BFC08690: /* nop */ if (psx_taken_BFC08690) goto label_BFC0863C; label_BFC08698: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08698: 8FB00024 lw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08698u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } /* 0xBFC0869C: 00000000 nop */ /* nop */ label_BFC086A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC086A0: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC086A0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC086A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC086A4: 8FB10018 lw $s1, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC086A4u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -23884,6 +29362,9 @@ void func_1FC086B0(CPUState* cpu) { } } label_BFC086B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC086B0: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -23897,6 +29378,9 @@ label_BFC086B0: cpu->gpr[31] = 0xBFC086C4u; psx_dispatch(cpu, 0xBFC0D9F0u); label_BFC086C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC086C4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC086C4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -23919,6 +29403,9 @@ void func_1FC086EC(CPUState* cpu) { } } label_BFC086EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC086EC: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -23936,6 +29423,9 @@ label_BFC086EC: cpu->gpr[31] = 0xBFC08708u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC08708: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC08708: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08708u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -23950,6 +29440,9 @@ label_BFC08708: void func_1FC08720(CPUState* cpu) { debug_server_log_call_entry(0x1FC08720u); label_BFC08720: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC08720: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; @@ -23980,6 +29473,9 @@ label_BFC08720: /* 0xBFC08754: 2405007F addiu $a1, $zero, 127 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[0] + (127)); label_BFC08758: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC08758: 90980000 lbu $t8, 0($a0) */ cpu->gpr[24] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (0))); @@ -24020,6 +29516,9 @@ label_BFC08758: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (1)); if (psx_taken_BFC08798) goto label_BFC08758; label_BFC087A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC087A0: 908A0000 lbu $t2, 0($a0) */ cpu->gpr[10] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (0))); @@ -24032,12 +29531,18 @@ label_BFC087A0: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC087A8) goto label_BFC087BC; label_BFC087B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC087B0: 03E00008 jr $ra */ /* 0xBFC087B4: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); return; label_BFC087BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC087BC: 03E00008 jr $ra */ /* 0xBFC087C0: 00000000 nop */ @@ -24048,6 +29553,9 @@ label_BFC087BC: void func_1FC087C4(CPUState* cpu) { debug_server_log_call_entry(0x1FC087C4u); label_BFC087C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC087C4: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; @@ -24078,6 +29586,9 @@ label_BFC087C4: /* 0xBFC087F8: 2405007F addiu $a1, $zero, 127 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[0] + (127)); label_BFC087FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC087FC: 90980000 lbu $t8, 0($a0) */ cpu->gpr[24] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (0))); @@ -24118,6 +29629,9 @@ label_BFC087FC: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (1)); if (psx_taken_BFC0883C) goto label_BFC087FC; label_BFC08844: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08844: 03E00008 jr $ra */ /* 0xBFC08848: A0820000 sb $v0, 0($a0) */ @@ -24136,6 +29650,9 @@ void func_1FC0884C(CPUState* cpu) { } } label_BFC0884C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC0884C: 24030001 addiu $v1, $zero, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -24156,6 +29673,9 @@ label_BFC0884C: /* 0xBFC0886C: 2463B9E4 addiu $v1, $v1, -17948 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (-17948)); label_BFC08870: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC08870: AC400000 sw $zero, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08870u); return; } g_debug_last_store_pc = 0xBFC08870u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -24172,6 +29692,9 @@ label_BFC08870: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08884u); return; } g_debug_last_store_pc = 0xBFC08884u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC08880) goto label_BFC08870; label_BFC08888: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08888: 0FF030D5 jal 0xBFC0C354 */ /* 0xBFC0888C: 00000000 nop */ @@ -24179,6 +29702,9 @@ label_BFC08888: cpu->gpr[31] = 0xBFC08890u; psx_dispatch(cpu, 0xBFC0C354u); label_BFC08890: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC08890: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08890u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -24203,6 +29729,9 @@ void func_1FC088A0(CPUState* cpu) { } } label_BFC088A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC088A0: 27BDFFD0 addiu $sp, $sp, -48 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-48)); @@ -24232,6 +29761,9 @@ label_BFC088A0: cpu->gpr[31] = 0xBFC088D4u; psx_dispatch(cpu, 0xBFC0884Cu); label_BFC088D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC088D4: 3C10A001 lui $s0, 0xA001 */ cpu->gpr[16] = 0xA0010000u; @@ -24252,6 +29784,9 @@ label_BFC088D4: /* 0xBFC088F4: 3413FFFF ori $s3, $zero, 0xFFFF */ cpu->gpr[19] = cpu->gpr[0] | 0xFFFFu; label_BFC088F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC088F8: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -24261,6 +29796,9 @@ label_BFC088F8: cpu->gpr[31] = 0xBFC08904u; psx_dispatch(cpu, 0xBFC01ACCu); label_BFC08904: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08904: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -24270,6 +29808,9 @@ label_BFC08904: cpu->gpr[31] = 0xBFC08910u; psx_dispatch(cpu, 0xBFC01ACCu); label_BFC08910: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC08910: AE120000 sw $s2, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08910u); return; } g_debug_last_store_pc = 0xBFC08910u; cpu->write_word(psx_addr, cpu->gpr[18]); } @@ -24292,6 +29833,9 @@ label_BFC08910: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (32)); if (psx_taken_BFC0892C) goto label_BFC088F8; label_BFC08934: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC08934: 8FBF002C lw $ra, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08934u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -24322,6 +29866,9 @@ void func_1FC0895C(CPUState* cpu) { } } label_BFC0895C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0895C: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -24332,6 +29879,9 @@ label_BFC0895C: /* 0xBFC08968: 24050005 addiu $a1, $zero, 5 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); label_BFC0896C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0896C: 3C02A001 lui $v0, 0xA001 */ cpu->gpr[2] = 0xA0010000u; @@ -24340,6 +29890,9 @@ label_BFC0896C: /* 0xBFC08974: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; label_BFC08978: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC08978: 8C4E0000 lw $t6, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08978u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -24352,6 +29905,9 @@ label_BFC08978: /* nop */ if (psx_taken_BFC08980) goto label_BFC0899C; label_BFC08988: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08988: 0FF02213 jal 0xBFC0884C */ /* 0xBFC0898C: AFA3001C sw $v1, 28($sp) */ @@ -24359,6 +29915,9 @@ label_BFC08988: cpu->gpr[31] = 0xBFC08990u; psx_dispatch(cpu, 0xBFC0884Cu); label_BFC08990: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08990: 8FA3001C lw $v1, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08990u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -24369,6 +29928,9 @@ label_BFC08990: cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC08994) goto label_BFC089B0; label_BFC0899C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0899C: 24630001 addiu $v1, $v1, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1)); @@ -24379,6 +29941,9 @@ label_BFC0899C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (4)); if (psx_taken_BFC089A0) goto label_BFC08978; label_BFC089A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC089A8: 1000FFF0 beq $zero, $zero, 0xBFC0896C */ uint32_t psx_brA_BFC089A8 = cpu->gpr[0]; uint32_t psx_brB_BFC089A8 = cpu->gpr[0]; @@ -24387,6 +29952,9 @@ label_BFC089A8: /* nop */ if (psx_taken_BFC089A8) goto label_BFC0896C; label_BFC089B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC089B0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC089B0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -24413,6 +29981,9 @@ void func_1FC089C0(CPUState* cpu) { } } label_BFC089C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC089C0: 27BDFFC0 addiu $sp, $sp, -64 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-64)); @@ -24441,10 +30012,16 @@ label_BFC089C0: cpu->gpr[1] = cpu->gpr[17] + cpu->gpr[0]; if (psx_taken_BFC089E8) goto label_BFC089F4; label_BFC089F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC089F0: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC089F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC089F4: 00011103 sra $v0, $at, 4 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -24460,6 +30037,9 @@ label_BFC089F4: cpu->gpr[31] = 0xBFC08A0Cu; psx_dispatch(cpu, 0xBFC0DA00u); label_BFC08A0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08A0C: 24120001 addiu $s2, $zero, 1 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -24470,6 +30050,9 @@ label_BFC08A0C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08A14u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } if (psx_taken_BFC08A10) goto label_BFC08A9C; label_BFC08A18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08A18: 0FF02257 jal 0xBFC0895C */ /* 0xBFC08A1C: 00000000 nop */ @@ -24477,6 +30060,9 @@ label_BFC08A18: cpu->gpr[31] = 0xBFC08A20u; psx_dispatch(cpu, 0xBFC0895Cu); label_BFC08A20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08A20: 14400015 bne $v0, $zero, 0xBFC08A78 */ uint32_t psx_brA_BFC08A20 = cpu->gpr[2]; uint32_t psx_brB_BFC08A20 = cpu->gpr[0]; @@ -24485,6 +30071,9 @@ label_BFC08A20: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); if (psx_taken_BFC08A20) goto label_BFC08A78; label_BFC08A28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC08A28: 92180000 lbu $t8, 0($s0) */ cpu->gpr[24] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (0))); @@ -24497,6 +30086,9 @@ label_BFC08A28: /* nop */ if (psx_taken_BFC08A30) goto label_BFC08A48; label_BFC08A38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC08A38: 92190001 lbu $t9, 1($s0) */ cpu->gpr[25] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (1))); @@ -24509,6 +30101,9 @@ label_BFC08A38: /* nop */ if (psx_taken_BFC08A40) goto label_BFC08A6C; label_BFC08A48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC08A48: 3C08A001 lui $t0, 0xA001 */ cpu->gpr[8] = 0xA0010000u; @@ -24523,6 +30118,9 @@ label_BFC08A48: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08A58u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } if (psx_taken_BFC08A54) goto label_BFC08A9C; label_BFC08A5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08A5C: 0FF02C5C jal 0xBFC0B170 */ /* 0xBFC08A60: 02202021 addu $a0, $s1, $zero */ @@ -24530,6 +30128,9 @@ label_BFC08A5C: cpu->gpr[31] = 0xBFC08A64u; psx_dispatch(cpu, 0xBFC0B170u); label_BFC08A64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08A64: 10000030 beq $zero, $zero, 0xBFC08B28 */ uint32_t psx_brA_BFC08A64 = cpu->gpr[0]; uint32_t psx_brB_BFC08A64 = cpu->gpr[0]; @@ -24538,6 +30139,9 @@ label_BFC08A64: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08A68u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC08A64) goto label_BFC08B28; label_BFC08A6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08A6C: 1000002D beq $zero, $zero, 0xBFC08B24 */ uint32_t psx_brA_BFC08A6C = cpu->gpr[0]; uint32_t psx_brB_BFC08A6C = cpu->gpr[0]; @@ -24546,10 +30150,16 @@ label_BFC08A6C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC08A6C) goto label_BFC08B24; label_BFC08A74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC08A74: 24010003 addiu $at, $zero, 3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); label_BFC08A78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08A78: 10410003 beq $v0, $at, 0xBFC08A88 */ uint32_t psx_brA_BFC08A78 = cpu->gpr[2]; uint32_t psx_brB_BFC08A78 = cpu->gpr[1]; @@ -24558,6 +30168,9 @@ label_BFC08A78: /* nop */ if (psx_taken_BFC08A78) goto label_BFC08A88; label_BFC08A80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08A80: 10000028 beq $zero, $zero, 0xBFC08B24 */ uint32_t psx_brA_BFC08A80 = cpu->gpr[0]; uint32_t psx_brB_BFC08A80 = cpu->gpr[0]; @@ -24566,6 +30179,9 @@ label_BFC08A80: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC08A80) goto label_BFC08B24; label_BFC08A88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08A88: 0FF022CF jal 0xBFC08B3C */ /* 0xBFC08A8C: 02202021 addu $a0, $s1, $zero */ @@ -24573,6 +30189,9 @@ label_BFC08A88: cpu->gpr[31] = 0xBFC08A90u; psx_dispatch(cpu, 0xBFC08B3Cu); label_BFC08A90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08A90: 10000025 beq $zero, $zero, 0xBFC08B28 */ uint32_t psx_brA_BFC08A90 = cpu->gpr[0]; uint32_t psx_brB_BFC08A90 = cpu->gpr[0]; @@ -24581,10 +30200,16 @@ label_BFC08A90: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08A94u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC08A90) goto label_BFC08B28; label_BFC08A98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC08A98: 8FA9002C lw $t1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08A98u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } label_BFC08A9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC08A9C: 3C0BA001 lui $t3, 0xA001 */ cpu->gpr[11] = 0xA0010000u; @@ -24605,6 +30230,9 @@ label_BFC08A9C: /* 0xBFC08ABC: 00106140 sll $t4, $s0, 5 */ cpu->gpr[12] = cpu->gpr[16] << 5u; label_BFC08AC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08AC0: 024C2021 addu $a0, $s2, $t4 */ cpu->gpr[4] = cpu->gpr[18] + cpu->gpr[12]; @@ -24614,6 +30242,9 @@ label_BFC08AC0: cpu->gpr[31] = 0xBFC08ACCu; psx_dispatch(cpu, 0xBFC01ACCu); label_BFC08ACC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08ACC: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -24624,6 +30255,9 @@ label_BFC08ACC: cpu->gpr[12] = cpu->gpr[16] << 5u; if (psx_taken_BFC08AD0) goto label_BFC08AC0; label_BFC08AD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC08AD8: 8FAD002C lw $t5, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08AD8u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -24646,6 +30280,9 @@ label_BFC08AD8: /* 0xBFC08AFC: 24040014 addiu $a0, $zero, 20 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (20)); label_BFC08B00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC08B00: 0010C080 sll $t8, $s0, 2 */ cpu->gpr[24] = cpu->gpr[16] << 2u; @@ -24666,14 +30303,23 @@ label_BFC08B00: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (12)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08B1Cu); return; } g_debug_last_store_pc = 0xBFC08B1Cu; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC08B18) goto label_BFC08B00; label_BFC08B20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC08B20: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC08B24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC08B24: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08B24u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC08B28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC08B28: 8FB00018 lw $s0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08B28u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -24715,6 +30361,9 @@ void func_1FC08B3C(CPUState* cpu) { } } label_BFC08B3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC08B3C: 27BDFF58 addiu $sp, $sp, -168 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-168)); @@ -24738,6 +30387,9 @@ label_BFC08B3C: cpu->gpr[31] = 0xBFC08B64u; psx_dispatch(cpu, 0xBFC0DA10u); label_BFC08B64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC08B64: 8FA400A8 lw $a0, 168($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (168)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08B64u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -24754,10 +30406,16 @@ label_BFC08B64: cpu->gpr[1] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC08B74) goto label_BFC08B80; label_BFC08B7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC08B7C: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC08B80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC08B80: 00011103 sra $v0, $at, 4 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -24773,6 +30431,9 @@ label_BFC08B80: cpu->gpr[31] = 0xBFC08B98u; psx_dispatch(cpu, 0xBFC0DA00u); label_BFC08B98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08B98: 24150001 addiu $s5, $zero, 1 */ cpu->gpr[21] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -24783,6 +30444,9 @@ label_BFC08B98: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08BA0u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } if (psx_taken_BFC08B9C) goto label_BFC08BB8; label_BFC08BA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08BA4: 0FF02451 jal 0xBFC09144 */ /* 0xBFC08BA8: 00000000 nop */ @@ -24790,6 +30454,9 @@ label_BFC08BA4: cpu->gpr[31] = 0xBFC08BACu; psx_dispatch(cpu, 0xBFC09144u); label_BFC08BAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08BAC: 14400011 bne $v0, $zero, 0xBFC08BF4 */ uint32_t psx_brA_BFC08BAC = cpu->gpr[2]; uint32_t psx_brB_BFC08BAC = cpu->gpr[0]; @@ -24798,10 +30465,16 @@ label_BFC08BAC: /* nop */ if (psx_taken_BFC08BAC) goto label_BFC08BF4; label_BFC08BB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC08BB4: 8FA2004C lw $v0, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08BB4u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } label_BFC08BB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC08BB8: 3C19A001 lui $t9, 0xA001 */ cpu->gpr[25] = 0xA0010000u; @@ -24836,6 +30509,9 @@ label_BFC08BB8: cpu->gpr[20] = (uint32_t)((int32_t)cpu->gpr[0] + (15)); if (psx_taken_BFC08BEC) goto label_BFC08F8C; label_BFC08BF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC08BF4: 926B0000 lbu $t3, 0($s3) */ cpu->gpr[11] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[19] + (0))); @@ -24848,6 +30524,9 @@ label_BFC08BF4: /* nop */ if (psx_taken_BFC08BFC) goto label_BFC08C14; label_BFC08C04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC08C04: 926C0001 lbu $t4, 1($s3) */ cpu->gpr[12] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[19] + (1))); @@ -24860,6 +30539,9 @@ label_BFC08C04: /* nop */ if (psx_taken_BFC08C0C) goto label_BFC08C7C; label_BFC08C14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC08C14: 3C0DA001 lui $t5, 0xA001 */ cpu->gpr[13] = 0xA0010000u; @@ -24874,6 +30556,9 @@ label_BFC08C14: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08C24u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } if (psx_taken_BFC08C20) goto label_BFC08C40; label_BFC08C28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08C28: 8FA400A8 lw $a0, 168($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (168)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08C28u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -24883,6 +30568,9 @@ label_BFC08C28: cpu->gpr[31] = 0xBFC08C34u; psx_dispatch(cpu, 0xBFC0B170u); label_BFC08C34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08C34: 100000E9 beq $zero, $zero, 0xBFC08FDC */ uint32_t psx_brA_BFC08C34 = cpu->gpr[0]; uint32_t psx_brB_BFC08C34 = cpu->gpr[0]; @@ -24891,10 +30579,16 @@ label_BFC08C34: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08C38u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC08C34) goto label_BFC08FDC; label_BFC08C3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC08C3C: 8FA2004C lw $v0, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08C3Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } label_BFC08C40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC08C40: 3C0FA001 lui $t7, 0xA001 */ cpu->gpr[15] = 0xA0010000u; @@ -24929,6 +30623,9 @@ label_BFC08C40: cpu->gpr[20] = (uint32_t)((int32_t)cpu->gpr[0] + (15)); if (psx_taken_BFC08C74) goto label_BFC08F8C; label_BFC08C7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08C7C: 0FF03684 jal 0xBFC0DA10 */ /* 0xBFC08C80: 00000000 nop */ @@ -24936,6 +30633,9 @@ label_BFC08C7C: cpu->gpr[31] = 0xBFC08C84u; psx_dispatch(cpu, 0xBFC0DA10u); label_BFC08C84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC08C84: 8FA400A8 lw $a0, 168($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (168)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08C84u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -24947,6 +30647,9 @@ label_BFC08C84: cpu->gpr[31] = 0xBFC08C94u; psx_dispatch(cpu, 0xBFC0DA20u); label_BFC08C94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08C94: 0FF02451 jal 0xBFC09144 */ /* 0xBFC08C98: 00000000 nop */ @@ -24954,6 +30657,9 @@ label_BFC08C94: cpu->gpr[31] = 0xBFC08C9Cu; psx_dispatch(cpu, 0xBFC09144u); label_BFC08C9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC08C9C: 8FA9004C lw $t1, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08C9Cu); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -24974,6 +30680,9 @@ label_BFC08C9C: /* 0xBFC08CBC: 2414000F addiu $s4, $zero, 15 */ cpu->gpr[20] = (uint32_t)((int32_t)cpu->gpr[0] + (15)); label_BFC08CC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC08CC0: 00106140 sll $t4, $s0, 5 */ cpu->gpr[12] = cpu->gpr[16] << 5u; @@ -24989,6 +30698,9 @@ label_BFC08CC0: cpu->gpr[31] = 0xBFC08CD8u; psx_dispatch(cpu, 0xBFC01ACCu); label_BFC08CD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC08CD8: 8FA60048 lw $a2, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08CD8u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -25005,12 +30717,18 @@ label_BFC08CD8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08CECu); return; } g_debug_last_store_pc = 0xBFC08CECu; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC08CE8) goto label_BFC08CC0; label_BFC08CF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08CF0: 00008021 addu $s0, $zero, $zero */ cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; /* 0xBFC08CF4: 8FA400A8 lw $a0, 168($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (168)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08CF4u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } label_BFC08CF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC08CF8: 26110001 addiu $s1, $s0, 1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -25022,6 +30740,9 @@ label_BFC08CF8: cpu->gpr[31] = 0xBFC08D08u; psx_dispatch(cpu, 0xBFC0DA00u); label_BFC08D08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08D08: 14550006 bne $v0, $s5, 0xBFC08D24 */ uint32_t psx_brA_BFC08D08 = cpu->gpr[2]; uint32_t psx_brB_BFC08D08 = cpu->gpr[21]; @@ -25030,6 +30751,9 @@ label_BFC08D08: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08D0Cu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } if (psx_taken_BFC08D08) goto label_BFC08D24; label_BFC08D10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08D10: 0FF02451 jal 0xBFC09144 */ /* 0xBFC08D14: 00000000 nop */ @@ -25037,6 +30761,9 @@ label_BFC08D10: cpu->gpr[31] = 0xBFC08D18u; psx_dispatch(cpu, 0xBFC09144u); label_BFC08D18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08D18: 1440000A bne $v0, $zero, 0xBFC08D44 */ uint32_t psx_brA_BFC08D18 = cpu->gpr[2]; uint32_t psx_brB_BFC08D18 = cpu->gpr[0]; @@ -25045,10 +30772,16 @@ label_BFC08D18: /* nop */ if (psx_taken_BFC08D18) goto label_BFC08D44; label_BFC08D20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC08D20: 8FAE004C lw $t6, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08D20u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } label_BFC08D24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC08D24: 3C18A001 lui $t8, 0xA001 */ cpu->gpr[24] = 0xA0010000u; @@ -25069,6 +30802,9 @@ label_BFC08D24: cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC08D3C) goto label_BFC08F8C; label_BFC08D44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08D44: 0FF021C8 jal 0xBFC08720 */ /* 0xBFC08D48: 02602021 addu $a0, $s3, $zero */ @@ -25076,6 +30812,9 @@ label_BFC08D44: cpu->gpr[31] = 0xBFC08D4Cu; psx_dispatch(cpu, 0xBFC08720u); label_BFC08D4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08D4C: 1440000B bne $v0, $zero, 0xBFC08D7C */ uint32_t psx_brA_BFC08D4C = cpu->gpr[2]; uint32_t psx_brB_BFC08D4C = cpu->gpr[0]; @@ -25084,6 +30823,9 @@ label_BFC08D4C: cpu->gpr[11] = cpu->gpr[16] << 5u; if (psx_taken_BFC08D4C) goto label_BFC08D7C; label_BFC08D54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC08D54: 8FB9004C lw $t9, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08D54u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -25106,10 +30848,16 @@ label_BFC08D54: cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC08D70) goto label_BFC08F8C; label_BFC08D78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC08D78: 00105940 sll $t3, $s0, 5 */ cpu->gpr[11] = cpu->gpr[16] << 5u; label_BFC08D7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC08D7C: 024B2021 addu $a0, $s2, $t3 */ cpu->gpr[4] = cpu->gpr[18] + cpu->gpr[11]; @@ -25121,6 +30869,9 @@ label_BFC08D7C: cpu->gpr[31] = 0xBFC08D8Cu; psx_dispatch(cpu, 0xBFC02B50u); label_BFC08D8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08D8C: 02208021 addu $s0, $s1, $zero */ cpu->gpr[16] = cpu->gpr[17] + cpu->gpr[0]; @@ -25131,6 +30882,9 @@ label_BFC08D8C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (168)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08D94u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } if (psx_taken_BFC08D90) goto label_BFC08CF8; label_BFC08D98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08D98: 00008021 addu $s0, $zero, $zero */ cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; @@ -25139,6 +30893,9 @@ label_BFC08D98: /* 0xBFC08DA0: 24110052 addiu $s1, $zero, 82 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[0] + (82)); label_BFC08DA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC08DA4: AC60FFB0 sw $zero, -80($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (-80)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08DA4u); return; } g_debug_last_store_pc = 0xBFC08DA4u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -25152,6 +30909,9 @@ label_BFC08DA4: cpu->gpr[31] = 0xBFC08DB8u; psx_dispatch(cpu, 0xBFC08FFCu); label_BFC08DB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08DB8: 8FA30048 lw $v1, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08DB8u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -25162,10 +30922,16 @@ label_BFC08DB8: /* nop */ if (psx_taken_BFC08DBC) goto label_BFC08DC8; label_BFC08DC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC08DC4: AC71FFB0 sw $s1, -80($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (-80)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08DC4u); return; } g_debug_last_store_pc = 0xBFC08DC4u; cpu->write_word(psx_addr, cpu->gpr[17]); } label_BFC08DC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08DC8: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -25176,6 +30942,9 @@ label_BFC08DC8: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_taken_BFC08DCC) goto label_BFC08DA4; label_BFC08DD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC08DD4: AFA00058 sw $zero, 88($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (88)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08DD4u); return; } g_debug_last_store_pc = 0xBFC08DD4u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -25190,6 +30959,9 @@ label_BFC08DD4: /* 0xBFC08DE8: 27A200E4 addiu $v0, $sp, 228 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[29] + (228)); label_BFC08DEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC08DEC: AC60FFB0 sw $zero, -80($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (-80)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08DECu); return; } g_debug_last_store_pc = 0xBFC08DECu; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -25206,6 +30978,9 @@ label_BFC08DEC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (-84)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08E00u); return; } g_debug_last_store_pc = 0xBFC08E00u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC08DFC) goto label_BFC08DEC; label_BFC08E04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC08E04: 00008021 addu $s0, $zero, $zero */ cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; @@ -25218,6 +30993,9 @@ label_BFC08E04: /* 0xBFC08E14: 00106140 sll $t4, $s0, 5 */ cpu->gpr[12] = cpu->gpr[16] << 5u; label_BFC08E18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC08E18: 024C3021 addu $a2, $s2, $t4 */ cpu->gpr[6] = cpu->gpr[18] + cpu->gpr[12]; @@ -25232,6 +31010,9 @@ label_BFC08E18: cpu->gpr[13] = cpu->gpr[16] << 2u; if (psx_taken_BFC08E24) goto label_BFC08E38; label_BFC08E2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08E2C: 1502001E bne $t0, $v0, 0xBFC08EA8 */ uint32_t psx_brA_BFC08E2C = cpu->gpr[8]; uint32_t psx_brB_BFC08E2C = cpu->gpr[2]; @@ -25240,10 +31021,16 @@ label_BFC08E2C: /* nop */ if (psx_taken_BFC08E2C) goto label_BFC08EA8; label_BFC08E34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC08E34: 00106880 sll $t5, $s0, 2 */ cpu->gpr[13] = cpu->gpr[16] << 2u; label_BFC08E38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC08E38: 03AD7021 addu $t6, $sp, $t5 */ cpu->gpr[14] = cpu->gpr[29] + cpu->gpr[13]; @@ -25262,10 +31049,16 @@ label_BFC08E38: cpu->gpr[1] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC08E4C) goto label_BFC08E58; label_BFC08E54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC08E54: 24211FFF addiu $at, $at, 8191 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (8191)); label_BFC08E58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC08E58: 00012343 sra $a0, $at, 13 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[1] >> 13u); @@ -25278,6 +31071,9 @@ label_BFC08E58: /* nop */ if (psx_taken_BFC08E60) goto label_BFC08EA8; label_BFC08E68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08E68: 1065000F beq $v1, $a1, 0xBFC08EA8 */ uint32_t psx_brA_BFC08E68 = cpu->gpr[3]; uint32_t psx_brB_BFC08E68 = cpu->gpr[5]; @@ -25286,10 +31082,16 @@ label_BFC08E68: /* nop */ if (psx_taken_BFC08E68) goto label_BFC08EA8; label_BFC08E70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC08E70: 00037880 sll $t7, $v1, 2 */ cpu->gpr[15] = cpu->gpr[3] << 2u; label_BFC08E74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC08E74: 27B800A8 addiu $t8, $sp, 168 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[29] + (168)); @@ -25316,6 +31118,9 @@ label_BFC08E74: /* nop */ if (psx_taken_BFC08E98) goto label_BFC08EA8; label_BFC08EA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08EA0: 1465FFF4 bne $v1, $a1, 0xBFC08E74 */ uint32_t psx_brA_BFC08EA0 = cpu->gpr[3]; uint32_t psx_brB_BFC08EA0 = cpu->gpr[5]; @@ -25324,6 +31129,9 @@ label_BFC08EA0: cpu->gpr[15] = cpu->gpr[3] << 2u; if (psx_taken_BFC08EA0) goto label_BFC08E74; label_BFC08EA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC08EA8: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -25336,6 +31144,9 @@ label_BFC08EA8: cpu->gpr[12] = cpu->gpr[16] << 5u; if (psx_taken_BFC08EB0) goto label_BFC08E18; label_BFC08EB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08EB8: 00008021 addu $s0, $zero, $zero */ cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; @@ -25344,6 +31155,9 @@ label_BFC08EB8: /* 0xBFC08EC0: 3402FFFF ori $v0, $zero, 0xFFFF */ cpu->gpr[2] = cpu->gpr[0] | 0xFFFFu; label_BFC08EC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC08EC4: 8C6CFFB0 lw $t4, -80($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (-80)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08EC4u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -25356,6 +31170,9 @@ label_BFC08EC4: /* nop */ if (psx_taken_BFC08ECC) goto label_BFC08EEC; label_BFC08ED4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC08ED4: 00106940 sll $t5, $s0, 5 */ cpu->gpr[13] = cpu->gpr[16] << 5u; @@ -25370,6 +31187,9 @@ label_BFC08ED4: /* 0xBFC08EE8: A4C20008 sh $v0, 8($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (8)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08EE8u); return; } g_debug_last_store_pc = 0xBFC08EE8u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[2] & 0xFFFFu)); } label_BFC08EEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08EEC: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -25380,6 +31200,9 @@ label_BFC08EEC: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_taken_BFC08EF0) goto label_BFC08EC4; label_BFC08EF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC08EF8: 8FAF004C lw $t7, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08EF8u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -25400,6 +31223,9 @@ label_BFC08EF8: /* 0xBFC08F18: 8FA400A8 lw $a0, 168($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (168)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08F18u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } label_BFC08F1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08F1C: 26050010 addiu $a1, $s0, 16 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[16] + (16)); @@ -25409,6 +31235,9 @@ label_BFC08F1C: cpu->gpr[31] = 0xBFC08F28u; psx_dispatch(cpu, 0xBFC0DA00u); label_BFC08F28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08F28: 14550005 bne $v0, $s5, 0xBFC08F40 */ uint32_t psx_brA_BFC08F28 = cpu->gpr[2]; uint32_t psx_brB_BFC08F28 = cpu->gpr[21]; @@ -25417,6 +31246,9 @@ label_BFC08F28: /* nop */ if (psx_taken_BFC08F28) goto label_BFC08F40; label_BFC08F30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08F30: 0FF02451 jal 0xBFC09144 */ /* 0xBFC08F34: 00000000 nop */ @@ -25424,6 +31256,9 @@ label_BFC08F30: cpu->gpr[31] = 0xBFC08F38u; psx_dispatch(cpu, 0xBFC09144u); label_BFC08F38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08F38: 14400003 bne $v0, $zero, 0xBFC08F48 */ uint32_t psx_brA_BFC08F38 = cpu->gpr[2]; uint32_t psx_brB_BFC08F38 = cpu->gpr[0]; @@ -25432,6 +31267,9 @@ label_BFC08F38: /* nop */ if (psx_taken_BFC08F38) goto label_BFC08F48; label_BFC08F40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08F40: 10000012 beq $zero, $zero, 0xBFC08F8C */ uint32_t psx_brA_BFC08F40 = cpu->gpr[0]; uint32_t psx_brB_BFC08F40 = cpu->gpr[0]; @@ -25440,6 +31278,9 @@ label_BFC08F40: cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC08F40) goto label_BFC08F8C; label_BFC08F48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08F48: 0FF021C8 jal 0xBFC08720 */ /* 0xBFC08F4C: 02602021 addu $a0, $s3, $zero */ @@ -25447,6 +31288,9 @@ label_BFC08F48: cpu->gpr[31] = 0xBFC08F50u; psx_dispatch(cpu, 0xBFC08720u); label_BFC08F50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08F50: 14400004 bne $v0, $zero, 0xBFC08F64 */ uint32_t psx_brA_BFC08F50 = cpu->gpr[2]; uint32_t psx_brB_BFC08F50 = cpu->gpr[0]; @@ -25455,6 +31299,9 @@ label_BFC08F50: cpu->gpr[9] = cpu->gpr[16] << 2u; if (psx_taken_BFC08F50) goto label_BFC08F64; label_BFC08F58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08F58: 1000000C beq $zero, $zero, 0xBFC08F8C */ uint32_t psx_brA_BFC08F58 = cpu->gpr[0]; uint32_t psx_brB_BFC08F58 = cpu->gpr[0]; @@ -25463,10 +31310,16 @@ label_BFC08F58: cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC08F58) goto label_BFC08F8C; label_BFC08F60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC08F60: 00104880 sll $t1, $s0, 2 */ cpu->gpr[9] = cpu->gpr[16] << 2u; label_BFC08F64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC08F64: 02292021 addu $a0, $s1, $t1 */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[9]; @@ -25478,6 +31331,9 @@ label_BFC08F64: cpu->gpr[31] = 0xBFC08F74u; psx_dispatch(cpu, 0xBFC02B50u); label_BFC08F74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC08F74: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -25490,6 +31346,9 @@ label_BFC08F74: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (168)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08F80u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } if (psx_taken_BFC08F7C) goto label_BFC08F1C; label_BFC08F84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC08F84: 10000014 beq $zero, $zero, 0xBFC08FD8 */ uint32_t psx_brA_BFC08F84 = cpu->gpr[0]; uint32_t psx_brB_BFC08F84 = cpu->gpr[0]; @@ -25498,10 +31357,16 @@ label_BFC08F84: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC08F84) goto label_BFC08FD8; label_BFC08F8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC08F8C: 00105140 sll $t2, $s0, 5 */ cpu->gpr[10] = cpu->gpr[16] << 5u; label_BFC08F90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08F90: 024A2021 addu $a0, $s2, $t2 */ cpu->gpr[4] = cpu->gpr[18] + cpu->gpr[10]; @@ -25511,6 +31376,9 @@ label_BFC08F90: cpu->gpr[31] = 0xBFC08F9Cu; psx_dispatch(cpu, 0xBFC01ACCu); label_BFC08F9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08F9C: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -25521,6 +31389,9 @@ label_BFC08F9C: cpu->gpr[10] = cpu->gpr[16] << 5u; if (psx_taken_BFC08FA0) goto label_BFC08F90; label_BFC08FA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC08FA8: 00008021 addu $s0, $zero, $zero */ cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; @@ -25529,6 +31400,9 @@ label_BFC08FA8: /* 0xBFC08FB0: 24040014 addiu $a0, $zero, 20 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (20)); label_BFC08FB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC08FB4: 00105880 sll $t3, $s0, 2 */ cpu->gpr[11] = cpu->gpr[16] << 2u; @@ -25549,14 +31423,23 @@ label_BFC08FB4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (12)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08FD0u); return; } g_debug_last_store_pc = 0xBFC08FD0u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC08FCC) goto label_BFC08FB4; label_BFC08FD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC08FD4: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC08FD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC08FD8: 8FBF0034 lw $ra, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08FD8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC08FDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC08FDC: 8FB0001C lw $s0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC08FDCu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -25579,6 +31462,9 @@ label_BFC08FDC: void func_1FC08FFC(CPUState* cpu) { debug_server_log_call_entry(0x1FC08FFCu); label_BFC08FFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC08FFC: 00047100 sll $t6, $a0, 4 */ cpu->gpr[14] = cpu->gpr[4] << 4u; @@ -25607,6 +31493,9 @@ label_BFC08FFC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (161)); if (psx_taken_BFC09024) goto label_BFC09038; label_BFC0902C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0902C: 10000008 beq $zero, $zero, 0xBFC09050 */ uint32_t psx_brA_BFC0902C = cpu->gpr[0]; uint32_t psx_brB_BFC0902C = cpu->gpr[0]; @@ -25615,10 +31504,16 @@ label_BFC0902C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); if (psx_taken_BFC0902C) goto label_BFC09050; label_BFC09034: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09034: 240100A1 addiu $at, $zero, 161 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (161)); label_BFC09038: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09038: 14410003 bne $v0, $at, 0xBFC09048 */ uint32_t psx_brA_BFC09038 = cpu->gpr[2]; uint32_t psx_brB_BFC09038 = cpu->gpr[1]; @@ -25627,6 +31522,9 @@ label_BFC09038: /* nop */ if (psx_taken_BFC09038) goto label_BFC09048; label_BFC09040: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09040: 10000003 beq $zero, $zero, 0xBFC09050 */ uint32_t psx_brA_BFC09040 = cpu->gpr[0]; uint32_t psx_brB_BFC09040 = cpu->gpr[0]; @@ -25635,12 +31533,18 @@ label_BFC09040: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (80)); if (psx_taken_BFC09040) goto label_BFC09050; label_BFC09048: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09048: 03E00008 jr $ra */ /* 0xBFC0904C: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; return; label_BFC09050: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC09050: 8CC70004 lw $a3, 4($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09050u); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } @@ -25657,10 +31561,16 @@ label_BFC09050: cpu->gpr[1] = cpu->gpr[7] + cpu->gpr[0]; if (psx_taken_BFC09060) goto label_BFC0906C; label_BFC09068: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09068: 24211FFF addiu $at, $at, 8191 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (8191)); label_BFC0906C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0906C: 00013B43 sra $a3, $at, 13 */ cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[1] >> 13u); @@ -25675,6 +31585,9 @@ label_BFC0906C: cpu->gpr[8] = cpu->gpr[9] + cpu->gpr[0]; if (psx_taken_BFC09078) goto label_BFC09088; label_BFC09080: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09080: 10000013 beq $zero, $zero, 0xBFC090D0 */ uint32_t psx_brA_BFC09080 = cpu->gpr[0]; uint32_t psx_brB_BFC09080 = cpu->gpr[0]; @@ -25683,6 +31596,9 @@ label_BFC09080: cpu->gpr[11] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC09080) goto label_BFC090D0; label_BFC09088: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC09088: 340BFFFF ori $t3, $zero, 0xFFFF */ cpu->gpr[11] = cpu->gpr[0] | 0xFFFFu; @@ -25693,10 +31609,16 @@ label_BFC09088: /* nop */ if (psx_taken_BFC0908C) goto label_BFC090D0; label_BFC09094: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09094: 0008C940 sll $t9, $t0, 5 */ cpu->gpr[25] = cpu->gpr[8] << 5u; label_BFC09098: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC09098: 00795021 addu $t2, $v1, $t9 */ cpu->gpr[10] = cpu->gpr[3] + cpu->gpr[25]; @@ -25713,6 +31635,9 @@ label_BFC09098: /* nop */ if (psx_taken_BFC090A8) goto label_BFC090B8; label_BFC090B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC090B0: 10000007 beq $zero, $zero, 0xBFC090D0 */ uint32_t psx_brA_BFC090B0 = cpu->gpr[0]; uint32_t psx_brB_BFC090B0 = cpu->gpr[0]; @@ -25721,6 +31646,9 @@ label_BFC090B0: cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC090B0) goto label_BFC090D0; label_BFC090B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC090B8: 95480008 lhu $t0, 8($t2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[10] + (8)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC090B8u); return; } cpu->gpr[8] = (uint32_t)cpu->read_half(psx_addr); } @@ -25733,6 +31661,9 @@ label_BFC090B8: /* nop */ if (psx_taken_BFC090C0) goto label_BFC090D0; label_BFC090C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC090C8: 150BFFF3 bne $t0, $t3, 0xBFC09098 */ uint32_t psx_brA_BFC090C8 = cpu->gpr[8]; uint32_t psx_brB_BFC090C8 = cpu->gpr[11]; @@ -25741,6 +31672,9 @@ label_BFC090C8: cpu->gpr[25] = cpu->gpr[8] << 5u; if (psx_taken_BFC090C8) goto label_BFC09098; label_BFC090D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC090D0: 1480001A bne $a0, $zero, 0xBFC0913C */ uint32_t psx_brA_BFC090D0 = cpu->gpr[4]; uint32_t psx_brB_BFC090D0 = cpu->gpr[0]; @@ -25749,6 +31683,9 @@ label_BFC090D0: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC090D0) goto label_BFC0913C; label_BFC090D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC090D8: A0C0000A sb $zero, 10($a2) */ g_debug_last_store_pc = 0xBFC090D8u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[6] + (10)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -25771,6 +31708,9 @@ label_BFC090D8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (8)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC090F8u); return; } g_debug_last_store_pc = 0xBFC090F8u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[12] & 0xFFFFu)); } if (psx_taken_BFC090F4) goto label_BFC09130; label_BFC090FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC090FC: 110B000C beq $t0, $t3, 0xBFC09130 */ uint32_t psx_brA_BFC090FC = cpu->gpr[8]; uint32_t psx_brB_BFC090FC = cpu->gpr[11]; @@ -25779,10 +31719,16 @@ label_BFC090FC: /* nop */ if (psx_taken_BFC090FC) goto label_BFC09130; label_BFC09104: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09104: 00087940 sll $t7, $t0, 5 */ cpu->gpr[15] = cpu->gpr[8] << 5u; label_BFC09108: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC09108: 006F5021 addu $t2, $v1, $t7 */ cpu->gpr[10] = cpu->gpr[3] + cpu->gpr[15]; @@ -25803,6 +31749,9 @@ label_BFC09108: cpu->gpr[8] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC09120) goto label_BFC09130; label_BFC09128: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09128: 148BFFF7 bne $a0, $t3, 0xBFC09108 */ uint32_t psx_brA_BFC09128 = cpu->gpr[4]; uint32_t psx_brB_BFC09128 = cpu->gpr[11]; @@ -25811,12 +31760,18 @@ label_BFC09128: cpu->gpr[15] = cpu->gpr[8] << 5u; if (psx_taken_BFC09128) goto label_BFC09108; label_BFC09130: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09130: 03E00008 jr $ra */ /* 0xBFC09134: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); return; label_BFC0913C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0913C: 03E00008 jr $ra */ /* 0xBFC09140: 00000000 nop */ @@ -25836,6 +31791,9 @@ void func_1FC09144(CPUState* cpu) { } } label_BFC09144: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC09144: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -25848,6 +31806,9 @@ label_BFC09144: /* 0xBFC09154: 24030001 addiu $v1, $zero, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC09158: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC09158: 3C0EA001 lui $t6, 0xA001 */ cpu->gpr[14] = 0xA0010000u; @@ -25862,6 +31823,9 @@ label_BFC09158: /* nop */ if (psx_taken_BFC09164) goto label_BFC0917C; label_BFC0916C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0916C: 0FF02213 jal 0xBFC0884C */ /* 0xBFC09170: 00000000 nop */ @@ -25869,6 +31833,9 @@ label_BFC0916C: cpu->gpr[31] = 0xBFC09174u; psx_dispatch(cpu, 0xBFC0884Cu); label_BFC09174: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09174: 10000011 beq $zero, $zero, 0xBFC091BC */ uint32_t psx_brA_BFC09174 = cpu->gpr[0]; uint32_t psx_brB_BFC09174 = cpu->gpr[0]; @@ -25877,6 +31844,9 @@ label_BFC09174: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC09174) goto label_BFC091BC; label_BFC0917C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0917C: 3C02A001 lui $v0, 0xA001 */ cpu->gpr[2] = 0xA0010000u; @@ -25885,6 +31855,9 @@ label_BFC0917C: /* 0xBFC09184: 00602821 addu $a1, $v1, $zero */ cpu->gpr[5] = cpu->gpr[3] + cpu->gpr[0]; label_BFC09188: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09188: 8C4F0000 lw $t7, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09188u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -25897,6 +31870,9 @@ label_BFC09188: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (4)); if (psx_taken_BFC09190) goto label_BFC091AC; label_BFC09198: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09198: 0FF02213 jal 0xBFC0884C */ /* 0xBFC0919C: 00000000 nop */ @@ -25904,6 +31880,9 @@ label_BFC09198: cpu->gpr[31] = 0xBFC091A0u; psx_dispatch(cpu, 0xBFC0884Cu); label_BFC091A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC091A0: 10000006 beq $zero, $zero, 0xBFC091BC */ uint32_t psx_brA_BFC091A0 = cpu->gpr[0]; uint32_t psx_brB_BFC091A0 = cpu->gpr[0]; @@ -25912,10 +31891,16 @@ label_BFC091A0: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC091A0) goto label_BFC091BC; label_BFC091A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC091A8: 24420004 addiu $v0, $v0, 4 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (4)); label_BFC091AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC091AC: 1444FFF6 bne $v0, $a0, 0xBFC09188 */ uint32_t psx_brA_BFC091AC = cpu->gpr[2]; uint32_t psx_brB_BFC091AC = cpu->gpr[4]; @@ -25924,6 +31909,9 @@ label_BFC091AC: /* nop */ if (psx_taken_BFC091AC) goto label_BFC09188; label_BFC091B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC091B4: 1000FFE8 beq $zero, $zero, 0xBFC09158 */ uint32_t psx_brA_BFC091B4 = cpu->gpr[0]; uint32_t psx_brB_BFC091B4 = cpu->gpr[0]; @@ -25932,6 +31920,9 @@ label_BFC091B4: /* nop */ if (psx_taken_BFC091B4) goto label_BFC09158; label_BFC091BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC091BC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC091BCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -25956,6 +31947,9 @@ void func_1FC091CC(CPUState* cpu) { } } label_BFC091CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC091CC: 27BDFFA8 addiu $sp, $sp, -88 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-88)); @@ -25990,6 +31984,9 @@ label_BFC091CC: cpu->gpr[19] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC09200) goto label_BFC092C4; label_BFC09208: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC09208: AFB60034 sw $s6, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09208u); return; } g_debug_last_store_pc = 0xBFC09208u; cpu->write_word(psx_addr, cpu->gpr[22]); } @@ -26008,14 +32005,23 @@ label_BFC09208: cpu->gpr[1] = cpu->gpr[23] + cpu->gpr[0]; if (psx_taken_BFC0921C) goto label_BFC09228; label_BFC09224: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09224: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC09228: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09228: 0001B103 sra $s6, $at, 4 */ cpu->gpr[22] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); label_BFC0922C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0922C: 02C02021 addu $a0, $s6, $zero */ cpu->gpr[4] = cpu->gpr[22] + cpu->gpr[0]; @@ -26025,6 +32031,9 @@ label_BFC0922C: cpu->gpr[31] = 0xBFC09238u; psx_dispatch(cpu, 0xBFC09540u); label_BFC09238: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09238: 14540002 bne $v0, $s4, 0xBFC09244 */ uint32_t psx_brA_BFC09238 = cpu->gpr[2]; uint32_t psx_brB_BFC09238 = cpu->gpr[20]; @@ -26033,10 +32042,16 @@ label_BFC09238: cpu->gpr[5] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC09238) goto label_BFC09244; label_BFC09240: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09240: 02002821 addu $a1, $s0, $zero */ cpu->gpr[5] = cpu->gpr[16] + cpu->gpr[0]; label_BFC09244: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC09244: 02E02021 addu $a0, $s7, $zero */ cpu->gpr[4] = cpu->gpr[23] + cpu->gpr[0]; @@ -26046,6 +32061,9 @@ label_BFC09244: cpu->gpr[31] = 0xBFC09250u; psx_dispatch(cpu, 0xBFC0DA00u); label_BFC09250: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09250: 10550006 beq $v0, $s5, 0xBFC0926C */ uint32_t psx_brA_BFC09250 = cpu->gpr[2]; uint32_t psx_brB_BFC09250 = cpu->gpr[21]; @@ -26054,6 +32072,9 @@ label_BFC09250: /* nop */ if (psx_taken_BFC09250) goto label_BFC0926C; label_BFC09258: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC09258: 8FB4003C lw $s4, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09258u); return; } cpu->gpr[20] = cpu->read_word(psx_addr); } @@ -26068,6 +32089,9 @@ label_BFC09258: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC09264) goto label_BFC092C8; label_BFC0926C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0926C: 0FF02257 jal 0xBFC0895C */ /* 0xBFC09270: 00000000 nop */ @@ -26075,6 +32099,9 @@ label_BFC0926C: cpu->gpr[31] = 0xBFC09274u; psx_dispatch(cpu, 0xBFC0895Cu); label_BFC09274: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09274: 1040000A beq $v0, $zero, 0xBFC092A0 */ uint32_t psx_brA_BFC09274 = cpu->gpr[2]; uint32_t psx_brB_BFC09274 = cpu->gpr[0]; @@ -26083,6 +32110,9 @@ label_BFC09274: cpu->gpr[5] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC09274) goto label_BFC092A0; label_BFC0927C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC0927C: 00167080 sll $t6, $s6, 2 */ cpu->gpr[14] = cpu->gpr[22] << 2u; @@ -26105,6 +32135,9 @@ label_BFC0927C: cpu->gpr[2] = cpu->gpr[19] + cpu->gpr[0]; if (psx_taken_BFC09298) goto label_BFC092C8; label_BFC092A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC092A0: 26310001 addiu $s1, $s1, 1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); @@ -26119,6 +32152,9 @@ label_BFC092A0: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); if (psx_taken_BFC092AC) goto label_BFC0922C; label_BFC092B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC092B4: 8FB4003C lw $s4, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC092B4u); return; } cpu->gpr[20] = cpu->read_word(psx_addr); } @@ -26129,10 +32165,16 @@ label_BFC092B4: /* 0xBFC092C0: 00000000 nop */ /* nop */ label_BFC092C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC092C4: 02601021 addu $v0, $s3, $zero */ cpu->gpr[2] = cpu->gpr[19] + cpu->gpr[0]; label_BFC092C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC092C8: 8FBF002C lw $ra, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC092C8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -26173,6 +32215,9 @@ void func_1FC092EC(CPUState* cpu) { } } label_BFC092EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC092EC: 27BDFFA0 addiu $sp, $sp, -96 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-96)); @@ -26209,6 +32254,9 @@ label_BFC092EC: cpu->gpr[23] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC09324) goto label_BFC09334; label_BFC0932C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0932C: 10000044 beq $zero, $zero, 0xBFC09440 */ uint32_t psx_brA_BFC0932C = cpu->gpr[0]; uint32_t psx_brB_BFC0932C = cpu->gpr[0]; @@ -26217,6 +32265,9 @@ label_BFC0932C: cpu->gpr[21] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC0932C) goto label_BFC09440; label_BFC09334: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC09334: AFB40038 sw $s4, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09334u); return; } g_debug_last_store_pc = 0xBFC09334u; cpu->write_word(psx_addr, cpu->gpr[20]); } @@ -26231,14 +32282,23 @@ label_BFC09334: cpu->gpr[1] = cpu->gpr[22] + cpu->gpr[0]; if (psx_taken_BFC09340) goto label_BFC0934C; label_BFC09348: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09348: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC0934C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0934C: 0001A103 sra $s4, $at, 4 */ cpu->gpr[20] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); label_BFC09350: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC09350: 02802021 addu $a0, $s4, $zero */ cpu->gpr[4] = cpu->gpr[20] + cpu->gpr[0]; @@ -26248,6 +32308,9 @@ label_BFC09350: cpu->gpr[31] = 0xBFC0935Cu; psx_dispatch(cpu, 0xBFC09540u); label_BFC0935C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0935C: 14550002 bne $v0, $s5, 0xBFC09368 */ uint32_t psx_brA_BFC0935C = cpu->gpr[2]; uint32_t psx_brB_BFC0935C = cpu->gpr[21]; @@ -26256,10 +32319,16 @@ label_BFC0935C: cpu->gpr[5] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC0935C) goto label_BFC09368; label_BFC09364: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09364: 02202821 addu $a1, $s1, $zero */ cpu->gpr[5] = cpu->gpr[17] + cpu->gpr[0]; label_BFC09368: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC09368: 02C02021 addu $a0, $s6, $zero */ cpu->gpr[4] = cpu->gpr[22] + cpu->gpr[0]; @@ -26269,6 +32338,9 @@ label_BFC09368: cpu->gpr[31] = 0xBFC09374u; psx_dispatch(cpu, 0xBFC0DA20u); label_BFC09374: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC09374: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -26279,6 +32351,9 @@ label_BFC09374: /* nop */ if (psx_taken_BFC09378) goto label_BFC09390; label_BFC09380: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09380: 8FB0003C lw $s0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09380u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -26291,6 +32366,9 @@ label_BFC09380: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC09388) goto label_BFC09518; label_BFC09390: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09390: 0FF02257 jal 0xBFC0895C */ /* 0xBFC09394: 00000000 nop */ @@ -26298,6 +32376,9 @@ label_BFC09390: cpu->gpr[31] = 0xBFC09398u; psx_dispatch(cpu, 0xBFC0895Cu); label_BFC09398: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC09398: 24010004 addiu $at, $zero, 4 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); @@ -26308,6 +32389,9 @@ label_BFC09398: cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC0939C) goto label_BFC093F8; label_BFC093A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC093A4: 2630FFFF addiu $s0, $s1, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[17] + (-1)); @@ -26319,6 +32403,9 @@ label_BFC093A4: cpu->gpr[31] = 0xBFC093B4u; psx_dispatch(cpu, 0xBFC09540u); label_BFC093B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC093B4: 14550002 bne $v0, $s5, 0xBFC093C0 */ uint32_t psx_brA_BFC093B4 = cpu->gpr[2]; uint32_t psx_brB_BFC093B4 = cpu->gpr[21]; @@ -26327,10 +32414,16 @@ label_BFC093B4: cpu->gpr[5] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC093B4) goto label_BFC093C0; label_BFC093BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC093BC: 02002821 addu $a1, $s0, $zero */ cpu->gpr[5] = cpu->gpr[16] + cpu->gpr[0]; label_BFC093C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC093C0: 02C02021 addu $a0, $s6, $zero */ cpu->gpr[4] = cpu->gpr[22] + cpu->gpr[0]; @@ -26340,6 +32433,9 @@ label_BFC093C0: cpu->gpr[31] = 0xBFC093CCu; psx_dispatch(cpu, 0xBFC09598u); label_BFC093CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC093CC: 14400015 bne $v0, $zero, 0xBFC09424 */ uint32_t psx_brA_BFC093CC = cpu->gpr[2]; uint32_t psx_brB_BFC093CC = cpu->gpr[0]; @@ -26348,6 +32444,9 @@ label_BFC093CC: cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (1)); if (psx_taken_BFC093CC) goto label_BFC09424; label_BFC093D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC093D4: 00147880 sll $t7, $s4, 2 */ cpu->gpr[15] = cpu->gpr[20] << 2u; @@ -26370,6 +32469,9 @@ label_BFC093D4: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC093F0) goto label_BFC09518; label_BFC093F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC093F8: 1840000A blez $v0, 0xBFC09424 */ uint32_t psx_brA_BFC093F8 = cpu->gpr[2]; @@ -26378,6 +32480,9 @@ label_BFC093F8: cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (1)); if (psx_taken_BFC093F8) goto label_BFC09424; label_BFC09400: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC09400: 0014C080 sll $t8, $s4, 2 */ cpu->gpr[24] = cpu->gpr[20] << 2u; @@ -26398,10 +32503,16 @@ label_BFC09400: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC09418) goto label_BFC09518; label_BFC09420: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09420: 26520001 addiu $s2, $s2, 1 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (1)); label_BFC09424: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09424: 26730080 addiu $s3, $s3, 128 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (128)); @@ -26414,6 +32525,9 @@ label_BFC09424: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); if (psx_taken_BFC0942C) goto label_BFC09350; label_BFC09434: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC09434: 8FB0003C lw $s0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09434u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -26422,6 +32536,9 @@ label_BFC09434: /* 0xBFC0943C: 00000000 nop */ /* nop */ label_BFC09440: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09440: 0FF03037 jal 0xBFC0C0DC */ /* 0xBFC09444: 02C02021 addu $a0, $s6, $zero */ @@ -26429,6 +32546,9 @@ label_BFC09440: cpu->gpr[31] = 0xBFC09448u; psx_dispatch(cpu, 0xBFC0C0DCu); label_BFC09448: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC09448: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -26439,6 +32559,9 @@ label_BFC09448: /* nop */ if (psx_taken_BFC0944C) goto label_BFC0945C; label_BFC09454: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09454: 10000030 beq $zero, $zero, 0xBFC09518 */ uint32_t psx_brA_BFC09454 = cpu->gpr[0]; uint32_t psx_brB_BFC09454 = cpu->gpr[0]; @@ -26447,6 +32570,9 @@ label_BFC09454: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC09454) goto label_BFC09518; label_BFC0945C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0945C: 0FF02257 jal 0xBFC0895C */ /* 0xBFC09460: AFB0003C sw $s0, 60($sp) */ @@ -26454,6 +32580,9 @@ label_BFC0945C: cpu->gpr[31] = 0xBFC09464u; psx_dispatch(cpu, 0xBFC0895Cu); label_BFC09464: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC09464: 24010004 addiu $at, $zero, 4 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); @@ -26464,6 +32593,9 @@ label_BFC09464: cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC09468) goto label_BFC094DC; label_BFC09470: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC09470: AFB40038 sw $s4, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09470u); return; } g_debug_last_store_pc = 0xBFC09470u; cpu->write_word(psx_addr, cpu->gpr[20]); } @@ -26474,10 +32606,16 @@ label_BFC09470: cpu->gpr[1] = cpu->gpr[22] + cpu->gpr[0]; if (psx_taken_BFC09474) goto label_BFC09480; label_BFC0947C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0947C: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC09480: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09480: 0001A103 sra $s4, $at, 4 */ cpu->gpr[20] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -26489,6 +32627,9 @@ label_BFC09480: cpu->gpr[31] = 0xBFC09490u; psx_dispatch(cpu, 0xBFC09540u); label_BFC09490: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09490: 14550002 bne $v0, $s5, 0xBFC0949C */ uint32_t psx_brA_BFC09490 = cpu->gpr[2]; uint32_t psx_brB_BFC09490 = cpu->gpr[21]; @@ -26497,10 +32638,16 @@ label_BFC09490: cpu->gpr[5] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC09490) goto label_BFC0949C; label_BFC09498: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09498: 02202821 addu $a1, $s1, $zero */ cpu->gpr[5] = cpu->gpr[17] + cpu->gpr[0]; label_BFC0949C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0949C: 02C02021 addu $a0, $s6, $zero */ cpu->gpr[4] = cpu->gpr[22] + cpu->gpr[0]; @@ -26510,6 +32657,9 @@ label_BFC0949C: cpu->gpr[31] = 0xBFC094A8u; psx_dispatch(cpu, 0xBFC09598u); label_BFC094A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC094A8: 1440000A bne $v0, $zero, 0xBFC094D4 */ uint32_t psx_brA_BFC094A8 = cpu->gpr[2]; uint32_t psx_brB_BFC094A8 = cpu->gpr[0]; @@ -26518,6 +32668,9 @@ label_BFC094A8: /* nop */ if (psx_taken_BFC094A8) goto label_BFC094D4; label_BFC094B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC094B0: 00144080 sll $t0, $s4, 2 */ cpu->gpr[8] = cpu->gpr[20] << 2u; @@ -26540,12 +32693,18 @@ label_BFC094B0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC094CC) goto label_BFC09518; label_BFC094D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC094D4: 8FB40038 lw $s4, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC094D4u); return; } cpu->gpr[20] = cpu->read_word(psx_addr); } /* 0xBFC094D8: 00000000 nop */ /* nop */ label_BFC094DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC094DC: 1A00000C blez $s0, 0xBFC09510 */ uint32_t psx_brA_BFC094DC = cpu->gpr[16]; @@ -26554,6 +32713,9 @@ label_BFC094DC: /* nop */ if (psx_taken_BFC094DC) goto label_BFC09510; label_BFC094E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC094E4: 06C10002 bgez $s6, 0xBFC094F0 */ uint32_t psx_brA_BFC094E4 = cpu->gpr[22]; @@ -26562,10 +32724,16 @@ label_BFC094E4: cpu->gpr[1] = cpu->gpr[22] + cpu->gpr[0]; if (psx_taken_BFC094E4) goto label_BFC094F0; label_BFC094EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC094EC: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC094F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC094F0: 00014903 sra $t1, $at, 4 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -26586,12 +32754,18 @@ label_BFC094F0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC09508) goto label_BFC09518; label_BFC09510: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09510: 8FB0003C lw $s0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09510u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } /* 0xBFC09514: 02E01021 addu $v0, $s7, $zero */ cpu->gpr[2] = cpu->gpr[23] + cpu->gpr[0]; label_BFC09518: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC09518: 8FBF0034 lw $ra, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09518u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -26618,6 +32792,9 @@ label_BFC09518: void func_1FC09540(CPUState* cpu) { debug_server_log_call_entry(0x1FC09540u); label_BFC09540: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC09540: 00047080 sll $t6, $a0, 2 */ cpu->gpr[14] = cpu->gpr[4] << 2u; @@ -26640,6 +32817,9 @@ label_BFC09540: /* 0xBFC09564: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; label_BFC09568: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09568: 8C580000 lw $t8, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09568u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -26652,12 +32832,18 @@ label_BFC09568: /* nop */ if (psx_taken_BFC09570) goto label_BFC09580; label_BFC09578: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09578: 03E00008 jr $ra */ /* 0xBFC0957C: 24620024 addiu $v0, $v1, 36 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[3] + (36)); return; label_BFC09580: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC09580: 24630001 addiu $v1, $v1, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1)); @@ -26668,6 +32854,9 @@ label_BFC09580: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (4)); if (psx_taken_BFC09584) goto label_BFC09568; label_BFC0958C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0958C: 2402FFFF addiu $v0, $zero, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -26694,6 +32883,9 @@ void func_1FC09598(CPUState* cpu) { } } label_BFC09598: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(23u); +#endif psx_check_interrupts(cpu); /* 0xBFC09598: 27BDFFA0 addiu $sp, $sp, -96 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-96)); @@ -26744,10 +32936,16 @@ label_BFC09598: cpu->gpr[1] = cpu->gpr[23] + cpu->gpr[0]; if (psx_taken_BFC095EC) goto label_BFC095F8; label_BFC095F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC095F4: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC095F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC095F8: 00017103 sra $t6, $at, 4 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -26766,6 +32964,9 @@ label_BFC095F8: /* 0xBFC09614: 03198821 addu $s1, $t8, $t9 */ cpu->gpr[17] = cpu->gpr[24] + cpu->gpr[25]; label_BFC09618: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC09618: 00104080 sll $t0, $s0, 2 */ cpu->gpr[8] = cpu->gpr[16] << 2u; @@ -26782,6 +32983,9 @@ label_BFC09618: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (20) ? 1 : 0); if (psx_taken_BFC09628) goto label_BFC0963C; label_BFC09630: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC09630: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -26792,6 +32996,9 @@ label_BFC09630: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (20) ? 1 : 0); if (psx_taken_BFC09634) goto label_BFC09618; label_BFC0963C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0963C: 14200004 bne $at, $zero, 0xBFC09650 */ uint32_t psx_brA_BFC0963C = cpu->gpr[1]; uint32_t psx_brB_BFC0963C = cpu->gpr[0]; @@ -26800,6 +33007,9 @@ label_BFC0963C: cpu->gpr[11] = cpu->gpr[16] << 2u; if (psx_taken_BFC0963C) goto label_BFC09650; label_BFC09644: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09644: 1000002A beq $zero, $zero, 0xBFC096F0 */ uint32_t psx_brA_BFC09644 = cpu->gpr[0]; uint32_t psx_brB_BFC09644 = cpu->gpr[0]; @@ -26808,10 +33018,16 @@ label_BFC09644: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC09644) goto label_BFC096F0; label_BFC0964C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0964C: 00105880 sll $t3, $s0, 2 */ cpu->gpr[11] = cpu->gpr[16] << 2u; label_BFC09650: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC09650: 022BA021 addu $s4, $s1, $t3 */ cpu->gpr[20] = cpu->gpr[17] + cpu->gpr[11]; @@ -26827,6 +33043,9 @@ label_BFC09650: cpu->gpr[31] = 0xBFC09668u; psx_dispatch(cpu, 0xBFC0DA20u); label_BFC09668: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09668: 145E0005 bne $v0, $fp, 0xBFC09680 */ uint32_t psx_brA_BFC09668 = cpu->gpr[2]; uint32_t psx_brB_BFC09668 = cpu->gpr[30]; @@ -26835,6 +33054,9 @@ label_BFC09668: /* nop */ if (psx_taken_BFC09668) goto label_BFC09680; label_BFC09670: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09670: 0FF02451 jal 0xBFC09144 */ /* 0xBFC09674: 00000000 nop */ @@ -26842,6 +33064,9 @@ label_BFC09670: cpu->gpr[31] = 0xBFC09678u; psx_dispatch(cpu, 0xBFC09144u); label_BFC09678: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09678: 14400004 bne $v0, $zero, 0xBFC0968C */ uint32_t psx_brA_BFC09678 = cpu->gpr[2]; uint32_t psx_brB_BFC09678 = cpu->gpr[0]; @@ -26850,6 +33075,9 @@ label_BFC09678: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0967Cu); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } if (psx_taken_BFC09678) goto label_BFC0968C; label_BFC09680: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09680: 1000FFE5 beq $zero, $zero, 0xBFC09618 */ uint32_t psx_brA_BFC09680 = cpu->gpr[0]; uint32_t psx_brB_BFC09680 = cpu->gpr[0]; @@ -26858,10 +33086,16 @@ label_BFC09680: cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC09680) goto label_BFC09618; label_BFC09688: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09688: 8FAC0064 lw $t4, 100($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09688u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } label_BFC0968C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC0968C: 3C0FA001 lui $t7, 0xA001 */ cpu->gpr[15] = 0xA0010000u; @@ -26883,6 +33117,9 @@ label_BFC0968C: cpu->gpr[31] = 0xBFC096B0u; psx_dispatch(cpu, 0xBFC01ACCu); label_BFC096B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC096B0: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -26894,6 +33131,9 @@ label_BFC096B0: cpu->gpr[31] = 0xBFC096C0u; psx_dispatch(cpu, 0xBFC02B50u); label_BFC096C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC096C0: 0FF021F1 jal 0xBFC087C4 */ /* 0xBFC096C4: 02202021 addu $a0, $s1, $zero */ @@ -26901,6 +33141,9 @@ label_BFC096C0: cpu->gpr[31] = 0xBFC096C8u; psx_dispatch(cpu, 0xBFC087C4u); label_BFC096C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC096C8: 02E02021 addu $a0, $s7, $zero */ cpu->gpr[4] = cpu->gpr[23] + cpu->gpr[0]; @@ -26912,6 +33155,9 @@ label_BFC096C8: cpu->gpr[31] = 0xBFC096D8u; psx_dispatch(cpu, 0xBFC0DA20u); label_BFC096D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC096D8: 105E0003 beq $v0, $fp, 0xBFC096E8 */ uint32_t psx_brA_BFC096D8 = cpu->gpr[2]; uint32_t psx_brB_BFC096D8 = cpu->gpr[30]; @@ -26920,6 +33166,9 @@ label_BFC096D8: /* nop */ if (psx_taken_BFC096D8) goto label_BFC096E8; label_BFC096E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC096E0: 10000003 beq $zero, $zero, 0xBFC096F0 */ uint32_t psx_brA_BFC096E0 = cpu->gpr[0]; uint32_t psx_brB_BFC096E0 = cpu->gpr[0]; @@ -26928,6 +33177,9 @@ label_BFC096E0: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC096E0) goto label_BFC096F0; label_BFC096E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC096E8: 0FF02451 jal 0xBFC09144 */ /* 0xBFC096EC: 00000000 nop */ @@ -26935,6 +33187,9 @@ label_BFC096E8: cpu->gpr[31] = 0xBFC096F0u; psx_dispatch(cpu, 0xBFC09144u); label_BFC096F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC096F0: 8FBF0044 lw $ra, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC096F0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -26981,6 +33236,9 @@ void func_1FC09720(CPUState* cpu) { } } label_BFC09720: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(21u); +#endif psx_check_interrupts(cpu); /* 0xBFC09720: 27BDFFC0 addiu $sp, $sp, -64 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-64)); @@ -27025,6 +33283,9 @@ label_BFC09720: /* 0xBFC09770: 2415000F addiu $s5, $zero, 15 */ cpu->gpr[21] = (uint32_t)((int32_t)cpu->gpr[0] + (15)); label_BFC09774: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09774: 1260000A beq $s3, $zero, 0xBFC097A0 */ uint32_t psx_brA_BFC09774 = cpu->gpr[19]; uint32_t psx_brB_BFC09774 = cpu->gpr[0]; @@ -27033,6 +33294,9 @@ label_BFC09774: /* nop */ if (psx_taken_BFC09774) goto label_BFC097A0; label_BFC0977C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0977C: 00117080 sll $t6, $s1, 2 */ cpu->gpr[14] = cpu->gpr[17] << 2u; @@ -27046,6 +33310,9 @@ label_BFC0977C: cpu->gpr[31] = 0xBFC09790u; psx_dispatch(cpu, cpu->gpr[19]); label_BFC09790: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09790: 10400003 beq $v0, $zero, 0xBFC097A0 */ uint32_t psx_brA_BFC09790 = cpu->gpr[2]; uint32_t psx_brB_BFC09790 = cpu->gpr[0]; @@ -27054,6 +33321,9 @@ label_BFC09790: /* nop */ if (psx_taken_BFC09790) goto label_BFC097A0; label_BFC09798: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09798: 10000021 beq $zero, $zero, 0xBFC09820 */ uint32_t psx_brA_BFC09798 = cpu->gpr[0]; uint32_t psx_brB_BFC09798 = cpu->gpr[0]; @@ -27062,6 +33332,9 @@ label_BFC09798: cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); if (psx_taken_BFC09798) goto label_BFC09820; label_BFC097A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC097A0: 06810002 bgez $s4, 0xBFC097AC */ uint32_t psx_brA_BFC097A0 = cpu->gpr[20]; @@ -27070,10 +33343,16 @@ label_BFC097A0: cpu->gpr[1] = cpu->gpr[20] + cpu->gpr[0]; if (psx_taken_BFC097A0) goto label_BFC097AC; label_BFC097A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC097A8: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC097AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC097AC: 00011103 sra $v0, $at, 4 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -27101,6 +33380,9 @@ label_BFC097AC: cpu->gpr[31] = 0xBFC097DCu; psx_dispatch(cpu, 0xBFC02B50u); label_BFC097DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC097DC: 0FF021F1 jal 0xBFC087C4 */ /* 0xBFC097E0: 02002021 addu $a0, $s0, $zero */ @@ -27108,6 +33390,9 @@ label_BFC097DC: cpu->gpr[31] = 0xBFC097E4u; psx_dispatch(cpu, 0xBFC087C4u); label_BFC097E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC097E4: 26320001 addiu $s2, $s1, 1 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); @@ -27121,6 +33406,9 @@ label_BFC097E4: cpu->gpr[31] = 0xBFC097F8u; psx_dispatch(cpu, 0xBFC0DA20u); label_BFC097F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC097F8: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -27131,6 +33419,9 @@ label_BFC097F8: /* nop */ if (psx_taken_BFC097FC) goto label_BFC09814; label_BFC09804: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09804: 0FF02451 jal 0xBFC09144 */ /* 0xBFC09808: 00000000 nop */ @@ -27138,6 +33429,9 @@ label_BFC09804: cpu->gpr[31] = 0xBFC0980Cu; psx_dispatch(cpu, 0xBFC09144u); label_BFC0980C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0980C: 14400005 bne $v0, $zero, 0xBFC09824 */ uint32_t psx_brA_BFC0980C = cpu->gpr[2]; uint32_t psx_brB_BFC0980C = cpu->gpr[0]; @@ -27146,6 +33440,9 @@ label_BFC0980C: cpu->gpr[17] = cpu->gpr[18] + cpu->gpr[0]; if (psx_taken_BFC0980C) goto label_BFC09824; label_BFC09814: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC09814: 8FA40044 lw $a0, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09814u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -27155,10 +33452,16 @@ label_BFC09814: cpu->gpr[31] = 0xBFC09820u; psx_dispatch(cpu, 0xBFC0227Cu); label_BFC09820: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09820: 02408821 addu $s1, $s2, $zero */ cpu->gpr[17] = cpu->gpr[18] + cpu->gpr[0]; label_BFC09824: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09824: 1635FFD3 bne $s1, $s5, 0xBFC09774 */ uint32_t psx_brA_BFC09824 = cpu->gpr[17]; uint32_t psx_brB_BFC09824 = cpu->gpr[21]; @@ -27167,6 +33470,9 @@ label_BFC09824: /* nop */ if (psx_taken_BFC09824) goto label_BFC09774; label_BFC0982C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0982C: 0FF03037 jal 0xBFC0C0DC */ /* 0xBFC09830: 02802021 addu $a0, $s4, $zero */ @@ -27174,6 +33480,9 @@ label_BFC0982C: cpu->gpr[31] = 0xBFC09834u; psx_dispatch(cpu, 0xBFC0C0DCu); label_BFC09834: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC09834: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -27184,6 +33493,9 @@ label_BFC09834: /* nop */ if (psx_taken_BFC09838) goto label_BFC09850; label_BFC09840: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09840: 0FF02451 jal 0xBFC09144 */ /* 0xBFC09844: 00000000 nop */ @@ -27191,6 +33503,9 @@ label_BFC09840: cpu->gpr[31] = 0xBFC09848u; psx_dispatch(cpu, 0xBFC09144u); label_BFC09848: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09848: 14400005 bne $v0, $zero, 0xBFC09860 */ uint32_t psx_brA_BFC09848 = cpu->gpr[2]; uint32_t psx_brB_BFC09848 = cpu->gpr[0]; @@ -27199,6 +33514,9 @@ label_BFC09848: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0984Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC09848) goto label_BFC09860; label_BFC09850: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC09850: 8FA40044 lw $a0, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09850u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -27208,10 +33526,16 @@ label_BFC09850: cpu->gpr[31] = 0xBFC0985Cu; psx_dispatch(cpu, 0xBFC0227Cu); label_BFC0985C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0985C: 8FBF003C lw $ra, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0985Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC09860: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC09860: 8FB00018 lw $s0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09860u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -27252,6 +33576,9 @@ void func_1FC098A8(CPUState* cpu) { } } label_BFC098A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC098A8: 27BDFFA8 addiu $sp, $sp, -88 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-88)); @@ -27267,6 +33594,9 @@ label_BFC098A8: cpu->gpr[31] = 0xBFC098C0u; psx_dispatch(cpu, 0xBFC02240u); label_BFC098C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC098C0: 14400010 bne $v0, $zero, 0xBFC09904 */ uint32_t psx_brA_BFC098C0 = cpu->gpr[2]; uint32_t psx_brB_BFC098C0 = cpu->gpr[0]; @@ -27275,6 +33605,9 @@ label_BFC098C0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC098C0) goto label_BFC09904; label_BFC098C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC098C8: 8FA40058 lw $a0, 88($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (88)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC098C8u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -27290,6 +33623,9 @@ label_BFC098C8: cpu->gpr[31] = 0xBFC098E0u; psx_dispatch(cpu, 0xBFC09720u); label_BFC098E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC098E0: 8FA40058 lw $a0, 88($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (88)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC098E0u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -27305,6 +33641,9 @@ label_BFC098E0: cpu->gpr[31] = 0xBFC098F8u; psx_dispatch(cpu, 0xBFC09720u); label_BFC098F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC098F8: 10000002 beq $zero, $zero, 0xBFC09904 */ uint32_t psx_brA_BFC098F8 = cpu->gpr[0]; uint32_t psx_brB_BFC098F8 = cpu->gpr[0]; @@ -27313,10 +33652,16 @@ label_BFC098F8: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC098F8) goto label_BFC09904; label_BFC09900: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09900: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC09904: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09904: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09904u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -27341,6 +33686,9 @@ void func_1FC09914(CPUState* cpu) { } } label_BFC09914: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC09914: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -27356,6 +33704,9 @@ label_BFC09914: cpu->gpr[31] = 0xBFC0992Cu; psx_dispatch(cpu, 0xBFC088A0u); label_BFC0992C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0992C: 0FF022CF jal 0xBFC08B3C */ /* 0xBFC09930: 00002021 addu $a0, $zero, $zero */ @@ -27363,6 +33714,9 @@ label_BFC0992C: cpu->gpr[31] = 0xBFC09934u; psx_dispatch(cpu, 0xBFC08B3Cu); label_BFC09934: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09934: 0FF022CF jal 0xBFC08B3C */ /* 0xBFC09938: 24040010 addiu $a0, $zero, 16 */ @@ -27370,6 +33724,9 @@ label_BFC09934: cpu->gpr[31] = 0xBFC0993Cu; psx_dispatch(cpu, 0xBFC08B3Cu); label_BFC0993C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0993C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0993Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -27392,6 +33749,9 @@ void func_1FC0994C(CPUState* cpu) { } } label_BFC0994C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0994C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -27403,6 +33763,9 @@ label_BFC0994C: cpu->gpr[31] = 0xBFC0995Cu; psx_dispatch(cpu, 0xBFC0884Cu); label_BFC0995C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0995C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0995Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -27432,6 +33795,9 @@ void func_1FC0996C(CPUState* cpu) { } } label_BFC0996C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC0996C: 27BDFF60 addiu $sp, $sp, -160 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-160)); @@ -27466,10 +33832,16 @@ label_BFC0996C: cpu->gpr[1] = cpu->gpr[18] + cpu->gpr[0]; if (psx_taken_BFC099A0) goto label_BFC099AC; label_BFC099A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC099A8: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC099AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC099AC: 00019103 sra $s2, $at, 4 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -27488,6 +33860,9 @@ label_BFC099AC: /* nop */ if (psx_taken_BFC099C0) goto label_BFC099D0; label_BFC099C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC099C8: 100000BE beq $zero, $zero, 0xBFC09CC4 */ uint32_t psx_brA_BFC099C8 = cpu->gpr[0]; uint32_t psx_brB_BFC099C8 = cpu->gpr[0]; @@ -27496,6 +33871,9 @@ label_BFC099C8: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC099C8) goto label_BFC09CC4; label_BFC099D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC099D0: 0FF02213 jal 0xBFC0884C */ /* 0xBFC099D4: 00000000 nop */ @@ -27503,6 +33881,9 @@ label_BFC099D0: cpu->gpr[31] = 0xBFC099D8u; psx_dispatch(cpu, 0xBFC0884Cu); label_BFC099D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC099D8: 32798000 andi $t9, $s3, 0x8000 */ cpu->gpr[25] = cpu->gpr[19] & 0x8000u; @@ -27515,6 +33896,9 @@ label_BFC099D8: cpu->gpr[11] = cpu->gpr[19] & 0x200u; if (psx_taken_BFC099E0) goto label_BFC09A08; label_BFC099E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC099E8: 8E840004 lw $a0, 4($s4) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[20] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC099E8u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -27524,6 +33908,9 @@ label_BFC099E8: cpu->gpr[31] = 0xBFC099F4u; psx_dispatch(cpu, 0xBFC089C0u); label_BFC099F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC099F4: 14400004 bne $v0, $zero, 0xBFC09A08 */ uint32_t psx_brA_BFC099F4 = cpu->gpr[2]; uint32_t psx_brB_BFC099F4 = cpu->gpr[0]; @@ -27532,6 +33919,9 @@ label_BFC099F4: cpu->gpr[11] = cpu->gpr[19] & 0x200u; if (psx_taken_BFC099F4) goto label_BFC09A08; label_BFC099FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC099FC: 100000B1 beq $zero, $zero, 0xBFC09CC4 */ uint32_t psx_brA_BFC099FC = cpu->gpr[0]; uint32_t psx_brB_BFC099FC = cpu->gpr[0]; @@ -27540,10 +33930,16 @@ label_BFC099FC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC099FC) goto label_BFC09CC4; label_BFC09A04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09A04: 326B0200 andi $t3, $s3, 0x200 */ cpu->gpr[11] = cpu->gpr[19] & 0x200u; label_BFC09A08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC09A08: 24010200 addiu $at, $zero, 512 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (512)); @@ -27554,6 +33950,9 @@ label_BFC09A08: /* nop */ if (psx_taken_BFC09A0C) goto label_BFC09C58; label_BFC09A14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09A14: 0FF036E0 jal 0xBFC0DB80 */ /* 0xBFC09A18: 00002021 addu $a0, $zero, $zero */ @@ -27561,6 +33960,9 @@ label_BFC09A14: cpu->gpr[31] = 0xBFC09A1Cu; psx_dispatch(cpu, 0xBFC0DB80u); label_BFC09A1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09A1C: 8E840004 lw $a0, 4($s4) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[20] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09A1Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -27572,6 +33974,9 @@ label_BFC09A1C: cpu->gpr[31] = 0xBFC09A2Cu; psx_dispatch(cpu, 0xBFC0A754u); label_BFC09A2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC09A2C: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -27582,6 +33987,9 @@ label_BFC09A2C: cpu->gpr[6] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC09A30) goto label_BFC09A48; label_BFC09A38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09A38: 240C0011 addiu $t4, $zero, 17 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[0] + (17)); @@ -27594,6 +34002,9 @@ label_BFC09A38: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC09A40) goto label_BFC09CC4; label_BFC09A48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC09A48: 00126900 sll $t5, $s2, 4 */ cpu->gpr[13] = cpu->gpr[18] << 4u; @@ -27624,6 +34035,9 @@ label_BFC09A48: /* 0xBFC09A7C: 240900A0 addiu $t1, $zero, 160 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); label_BFC09A80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC09A80: 8E2F0000 lw $t7, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09A80u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -27638,10 +34052,16 @@ label_BFC09A80: /* nop */ if (psx_taken_BFC09A8C) goto label_BFC09A98; label_BFC09A94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09A94: 25080001 addiu $t0, $t0, 1 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[8] + (1)); label_BFC09A98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC09A98: 24420004 addiu $v0, $v0, 4 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (4)); @@ -27652,6 +34072,9 @@ label_BFC09A98: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (32)); if (psx_taken_BFC09A9C) goto label_BFC09A80; label_BFC09AA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC09AA4: 00131403 sra $v0, $s3, 16 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[19] >> 16u); @@ -27670,6 +34093,9 @@ label_BFC09AA4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[20] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09ABCu); return; } g_debug_last_store_pc = 0xBFC09ABCu; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC09AB8) goto label_BFC09C40; label_BFC09AC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC09AC0: 8E820020 lw $v0, 32($s4) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[20] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09AC0u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -27684,10 +34110,16 @@ label_BFC09AC0: cpu->gpr[8] = cpu->gpr[2] >> 13u; if (psx_taken_BFC09ACC) goto label_BFC09AD8; label_BFC09AD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09AD4: 25080001 addiu $t0, $t0, 1 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[8] + (1)); label_BFC09AD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC09AD8: 8FB20090 lw $s2, 144($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (144)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09AD8u); return; } cpu->gpr[18] = cpu->read_word(psx_addr); } @@ -27702,6 +34134,9 @@ label_BFC09AD8: /* 0xBFC09AEC: 24070051 addiu $a3, $zero, 81 */ cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[0] + (81)); label_BFC09AF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC09AF0: 8E2C0000 lw $t4, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09AF0u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -27716,6 +34151,9 @@ label_BFC09AF0: /* nop */ if (psx_taken_BFC09AFC) goto label_BFC09C18; label_BFC09B04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09B04: 00107080 sll $t6, $s0, 2 */ cpu->gpr[14] = cpu->gpr[16] << 2u; @@ -27728,6 +34166,9 @@ label_BFC09B04: cpu->gpr[2] = cpu->gpr[14] + cpu->gpr[15]; if (psx_taken_BFC09B0C) goto label_BFC09B70; label_BFC09B14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC09B14: 24180051 addiu $t8, $zero, 81 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (81)); @@ -27759,6 +34200,9 @@ label_BFC09B14: cpu->gpr[31] = 0xBFC09B4Cu; psx_dispatch(cpu, 0xBFC03418u); label_BFC09B4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC09B4C: 8FA20038 lw $v0, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09B4Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -27781,6 +34225,9 @@ label_BFC09B4C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (-84)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09B6Cu); return; } g_debug_last_store_pc = 0xBFC09B6Cu; cpu->write_word(psx_addr, cpu->gpr[7]); } if (psx_taken_BFC09B68) goto label_BFC09B98; label_BFC09B70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC09B70: 00125940 sll $t3, $s2, 5 */ cpu->gpr[11] = cpu->gpr[18] << 5u; @@ -27801,12 +34248,18 @@ label_BFC09B70: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09B8Cu); return; } g_debug_last_store_pc = 0xBFC09B8Cu; cpu->write_word(psx_addr, cpu->gpr[13]); } if (psx_taken_BFC09B88) goto label_BFC09B98; label_BFC09B90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09B90: 240F0052 addiu $t7, $zero, 82 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (82)); /* 0xBFC09B94: AC4FFFAC sw $t7, -84($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (-84)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09B94u); return; } g_debug_last_store_pc = 0xBFC09B94u; cpu->write_word(psx_addr, cpu->gpr[15]); } label_BFC09B98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09B98: 24630001 addiu $v1, $v1, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1)); @@ -27819,6 +34272,9 @@ label_BFC09B98: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); if (psx_taken_BFC09BA0) goto label_BFC09C1C; label_BFC09BA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09BA8: 3410FFFF ori $s0, $zero, 0xFFFF */ cpu->gpr[16] = cpu->gpr[0] | 0xFFFFu; @@ -27831,12 +34287,18 @@ label_BFC09BA8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (8)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09BB4u); return; } g_debug_last_store_pc = 0xBFC09BB4u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[16] & 0xFFFFu)); } if (psx_taken_BFC09BB0) goto label_BFC09BC0; label_BFC09BB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09BB8: 24180053 addiu $t8, $zero, 83 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (83)); /* 0xBFC09BBC: AE380000 sw $t8, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09BBCu); return; } g_debug_last_store_pc = 0xBFC09BBCu; cpu->write_word(psx_addr, cpu->gpr[24]); } label_BFC09BC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC09BC0: 8E840004 lw $a0, 4($s4) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[20] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09BC0u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -27850,6 +34312,9 @@ label_BFC09BC0: cpu->gpr[31] = 0xBFC09BD4u; psx_dispatch(cpu, 0xBFC098A8u); label_BFC09BD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09BD4: 8FA6008C lw $a2, 140($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (140)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09BD4u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -27862,6 +34327,9 @@ label_BFC09BD4: cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); if (psx_taken_BFC09BDC) goto label_BFC09C30; label_BFC09BE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC09BE4: 0013C940 sll $t9, $s3, 5 */ cpu->gpr[25] = cpu->gpr[19] << 5u; @@ -27880,6 +34348,9 @@ label_BFC09BE4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09BFCu); return; } g_debug_last_store_pc = 0xBFC09BFCu; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC09BF8) goto label_BFC09BE4; label_BFC09C00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC09C00: 240B0010 addiu $t3, $zero, 16 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); @@ -27896,10 +34367,16 @@ label_BFC09C00: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC09C10) goto label_BFC09CC4; label_BFC09C18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09C18: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); label_BFC09C1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC09C1C: 2401000F addiu $at, $zero, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (15)); @@ -27910,12 +34387,18 @@ label_BFC09C1C: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (32)); if (psx_taken_BFC09C20) goto label_BFC09AF0; label_BFC09C28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09C28: AFB30088 sw $s3, 136($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (136)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09C28u); return; } g_debug_last_store_pc = 0xBFC09C28u; cpu->write_word(psx_addr, cpu->gpr[19]); } /* 0xBFC09C2C: AFB20090 sw $s2, 144($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (144)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09C2Cu); return; } g_debug_last_store_pc = 0xBFC09C2Cu; cpu->write_word(psx_addr, cpu->gpr[18]); } label_BFC09C30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09C30: 8FB0002C lw $s0, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09C30u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -27928,6 +34411,9 @@ label_BFC09C30: cpu->gpr[24] = cpu->gpr[6] << 5u; if (psx_taken_BFC09C38) goto label_BFC09CA8; label_BFC09C40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC09C40: 240C001C addiu $t4, $zero, 28 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[0] + (28)); @@ -27944,6 +34430,9 @@ label_BFC09C40: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC09C50) goto label_BFC09CC4; label_BFC09C58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09C58: 0FF036E0 jal 0xBFC0DB80 */ /* 0xBFC09C5C: 00002021 addu $a0, $zero, $zero */ @@ -27951,6 +34440,9 @@ label_BFC09C58: cpu->gpr[31] = 0xBFC09C60u; psx_dispatch(cpu, 0xBFC0DB80u); label_BFC09C60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09C60: 8E840004 lw $a0, 4($s4) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[20] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09C60u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -27962,6 +34454,9 @@ label_BFC09C60: cpu->gpr[31] = 0xBFC09C70u; psx_dispatch(cpu, 0xBFC0A754u); label_BFC09C70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC09C70: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -27972,6 +34467,9 @@ label_BFC09C70: cpu->gpr[6] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC09C74) goto label_BFC09C8C; label_BFC09C7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09C7C: 240D0002 addiu $t5, $zero, 2 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); @@ -27984,6 +34482,9 @@ label_BFC09C7C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC09C84) goto label_BFC09CC4; label_BFC09C8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC09C8C: 00127100 sll $t6, $s2, 4 */ cpu->gpr[14] = cpu->gpr[18] << 4u; @@ -28000,6 +34501,9 @@ label_BFC09C8C: /* 0xBFC09CA4: 0006C140 sll $t8, $a2, 5 */ cpu->gpr[24] = cpu->gpr[6] << 5u; label_BFC09CA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC09CA8: AE860024 sw $a2, 36($s4) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[20] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09CA8u); return; } g_debug_last_store_pc = 0xBFC09CA8u; cpu->write_word(psx_addr, cpu->gpr[6]); } @@ -28016,6 +34520,9 @@ label_BFC09CA8: /* 0xBFC09CC0: AE8B0020 sw $t3, 32($s4) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[20] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09CC0u); return; } g_debug_last_store_pc = 0xBFC09CC0u; cpu->write_word(psx_addr, cpu->gpr[11]); } label_BFC09CC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC09CC4: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09CC4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -28042,6 +34549,9 @@ void func_1FC09CDC(CPUState* cpu) { } } label_BFC09CDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC09CDC: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -28060,10 +34570,16 @@ label_BFC09CDC: cpu->gpr[1] = cpu->gpr[14] + cpu->gpr[0]; if (psx_taken_BFC09CF0) goto label_BFC09CFC; label_BFC09CF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09CF8: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC09CFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC09CFC: 00017903 sra $t7, $at, 4 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -28082,6 +34598,9 @@ label_BFC09CFC: /* nop */ if (psx_taken_BFC09D10) goto label_BFC09D20; label_BFC09D18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09D18: 10000004 beq $zero, $zero, 0xBFC09D2C */ uint32_t psx_brA_BFC09D18 = cpu->gpr[0]; uint32_t psx_brB_BFC09D18 = cpu->gpr[0]; @@ -28090,6 +34609,9 @@ label_BFC09D18: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC09D18) goto label_BFC09D2C; label_BFC09D20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09D20: 0FF02213 jal 0xBFC0884C */ /* 0xBFC09D24: 00000000 nop */ @@ -28097,10 +34619,16 @@ label_BFC09D20: cpu->gpr[31] = 0xBFC09D28u; psx_dispatch(cpu, 0xBFC0884Cu); label_BFC09D28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09D28: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC09D2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09D2C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09D2Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -28130,6 +34658,9 @@ void func_1FC09D3C(CPUState* cpu) { } } label_BFC09D3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC09D3C: 27BDFF88 addiu $sp, $sp, -120 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-120)); @@ -28170,10 +34701,16 @@ label_BFC09D3C: cpu->gpr[1] = cpu->gpr[23] + cpu->gpr[0]; if (psx_taken_BFC09D7C) goto label_BFC09D88; label_BFC09D84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09D84: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC09D88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC09D88: 0001B903 sra $s7, $at, 4 */ cpu->gpr[23] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -28192,6 +34729,9 @@ label_BFC09D88: /* nop */ if (psx_taken_BFC09D9C) goto label_BFC09DAC; label_BFC09DA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09DA4: 100000AE beq $zero, $zero, 0xBFC0A060 */ uint32_t psx_brA_BFC09DA4 = cpu->gpr[0]; uint32_t psx_brB_BFC09DA4 = cpu->gpr[0]; @@ -28200,6 +34740,9 @@ label_BFC09DA4: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC09DA4) goto label_BFC0A060; label_BFC09DAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09DAC: 0FF02213 jal 0xBFC0884C */ /* 0xBFC09DB0: AFA20050 sw $v0, 80($sp) */ @@ -28207,6 +34750,9 @@ label_BFC09DAC: cpu->gpr[31] = 0xBFC09DB4u; psx_dispatch(cpu, 0xBFC0884Cu); label_BFC09DB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC09DB4: 8EC30010 lw $v1, 16($s6) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[22] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09DB4u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -28221,6 +34767,9 @@ label_BFC09DB4: /* nop */ if (psx_taken_BFC09DC0) goto label_BFC09DD8; label_BFC09DC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09DC8: 24080016 addiu $t0, $zero, 22 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (22)); @@ -28233,6 +34782,9 @@ label_BFC09DC8: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC09DD0) goto label_BFC0A060; label_BFC09DD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC09DD8: 8EC90020 lw $t1, 32($s6) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[22] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09DD8u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -28247,6 +34799,9 @@ label_BFC09DD8: /* nop */ if (psx_taken_BFC09DE4) goto label_BFC09DFC; label_BFC09DEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09DEC: 240A0016 addiu $t2, $zero, 22 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (22)); @@ -28259,6 +34814,9 @@ label_BFC09DEC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC09DF4) goto label_BFC0A060; label_BFC09DFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC09DFC: AFB20060 sw $s2, 96($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (96)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09DFCu); return; } g_debug_last_store_pc = 0xBFC09DFCu; cpu->write_word(psx_addr, cpu->gpr[18]); } @@ -28281,10 +34839,16 @@ label_BFC09DFC: cpu->gpr[1] = cpu->gpr[18] + cpu->gpr[0]; if (psx_taken_BFC09E18) goto label_BFC09E24; label_BFC09E20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09E20: 2421007F addiu $at, $at, 127 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (127)); label_BFC09E24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09E24: 000191C3 sra $s2, $at, 7 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[1] >> 7u); @@ -28297,6 +34861,9 @@ label_BFC09E24: /* nop */ if (psx_taken_BFC09E2C) goto label_BFC09F68; label_BFC09E34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC09E34: 8FA20050 lw $v0, 80($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (80)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09E34u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -28313,6 +34880,9 @@ label_BFC09E34: /* nop */ if (psx_taken_BFC09E44) goto label_BFC09E5C; label_BFC09E4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09E4C: 8FB10044 lw $s1, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09E4Cu); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -28325,6 +34895,9 @@ label_BFC09E4C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC09E54) goto label_BFC0A060; label_BFC09E5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC09E5C: AFB0003C sw $s0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09E5Cu); return; } g_debug_last_store_pc = 0xBFC09E5Cu; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -28372,6 +34945,9 @@ label_BFC09E5C: cpu->gpr[31] = 0xBFC09EB4u; psx_dispatch(cpu, 0xBFC0884Cu); label_BFC09EB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09EB4: 1640000D bne $s2, $zero, 0xBFC09EEC */ uint32_t psx_brA_BFC09EB4 = cpu->gpr[18]; uint32_t psx_brB_BFC09EB4 = cpu->gpr[0]; @@ -28380,6 +34956,9 @@ label_BFC09EB4: /* nop */ if (psx_taken_BFC09EB4) goto label_BFC09EEC; label_BFC09EBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC09EBC: AEC00018 sw $zero, 24($s6) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[22] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09EBCu); return; } g_debug_last_store_pc = 0xBFC09EBCu; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -28397,6 +34976,9 @@ label_BFC09EBC: cpu->gpr[31] = 0xBFC09ED8u; psx_dispatch(cpu, 0xBFC0BFF0u); label_BFC09ED8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC09ED8: 8FB0003C lw $s0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09ED8u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -28411,6 +34993,9 @@ label_BFC09ED8: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC09EE4) goto label_BFC0A060; label_BFC09EEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC09EEC: 8E6C0000 lw $t4, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09EECu); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -28424,6 +35009,9 @@ label_BFC09EEC: cpu->gpr[31] = 0xBFC09F00u; psx_dispatch(cpu, 0xBFC0A3D4u); label_BFC09F00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09F00: 00408021 addu $s0, $v0, $zero */ cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; @@ -28435,6 +35023,9 @@ label_BFC09F00: cpu->gpr[31] = 0xBFC09F10u; psx_dispatch(cpu, 0xBFC09540u); label_BFC09F10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC09F10: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -28445,10 +35036,16 @@ label_BFC09F10: cpu->gpr[5] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC09F14) goto label_BFC09F20; label_BFC09F1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09F1C: 02002821 addu $a1, $s0, $zero */ cpu->gpr[5] = cpu->gpr[16] + cpu->gpr[0]; label_BFC09F20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09F20: 8EC40004 lw $a0, 4($s6) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[22] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09F20u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -28460,6 +35057,9 @@ label_BFC09F20: cpu->gpr[31] = 0xBFC09F30u; psx_dispatch(cpu, 0xBFC0DA00u); label_BFC09F30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC09F30: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -28470,6 +35070,9 @@ label_BFC09F30: /* nop */ if (psx_taken_BFC09F34) goto label_BFC09F50; label_BFC09F3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC09F3C: 8FB0003C lw $s0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09F3Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -28484,6 +35087,9 @@ label_BFC09F3C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC09F48) goto label_BFC0A060; label_BFC09F50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC09F50: AEC00018 sw $zero, 24($s6) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[22] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09F50u); return; } g_debug_last_store_pc = 0xBFC09F50u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -28500,6 +35106,9 @@ label_BFC09F50: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC09F60) goto label_BFC0A060; label_BFC09F68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09F68: 1A400028 blez $s2, 0xBFC0A00C */ uint32_t psx_brA_BFC09F68 = cpu->gpr[18]; @@ -28508,12 +35117,18 @@ label_BFC09F68: cpu->gpr[2] = cpu->gpr[19] << 7u; if (psx_taken_BFC09F68) goto label_BFC0A00C; label_BFC09F70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09F70: AFB0003C sw $s0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09F70u); return; } g_debug_last_store_pc = 0xBFC09F70u; cpu->write_word(psx_addr, cpu->gpr[16]); } /* 0xBFC09F74: 24150040 addiu $s5, $zero, 64 */ cpu->gpr[21] = (uint32_t)((int32_t)cpu->gpr[0] + (64)); label_BFC09F78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09F78: 06210004 bgez $s1, 0xBFC09F8C */ uint32_t psx_brA_BFC09F78 = cpu->gpr[17]; @@ -28522,6 +35137,9 @@ label_BFC09F78: cpu->gpr[13] = cpu->gpr[17] & 0x3Fu; if (psx_taken_BFC09F78) goto label_BFC09F8C; label_BFC09F80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09F80: 11A00002 beq $t5, $zero, 0xBFC09F8C */ uint32_t psx_brA_BFC09F80 = cpu->gpr[13]; uint32_t psx_brB_BFC09F80 = cpu->gpr[0]; @@ -28530,10 +35148,16 @@ label_BFC09F80: /* nop */ if (psx_taken_BFC09F80) goto label_BFC09F8C; label_BFC09F88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09F88: 25ADFFC0 addiu $t5, $t5, -64 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[13] + (-64)); label_BFC09F8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09F8C: 02AD1023 subu $v0, $s5, $t5 */ cpu->gpr[2] = cpu->gpr[21] - cpu->gpr[13]; @@ -28546,6 +35170,9 @@ label_BFC09F8C: cpu->gpr[16] = cpu->gpr[18] + cpu->gpr[0]; if (psx_taken_BFC09F94) goto label_BFC09FA8; label_BFC09F9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC09F9C: 10000002 beq $zero, $zero, 0xBFC09FA8 */ uint32_t psx_brA_BFC09F9C = cpu->gpr[0]; uint32_t psx_brB_BFC09F9C = cpu->gpr[0]; @@ -28554,10 +35181,16 @@ label_BFC09F9C: cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC09F9C) goto label_BFC09FA8; label_BFC09FA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09FA4: 02408021 addu $s0, $s2, $zero */ cpu->gpr[16] = cpu->gpr[18] + cpu->gpr[0]; label_BFC09FA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09FA8: 8EC50024 lw $a1, 36($s6) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[22] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09FA8u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -28569,6 +35202,9 @@ label_BFC09FA8: cpu->gpr[31] = 0xBFC09FB8u; psx_dispatch(cpu, 0xBFC0A3D4u); label_BFC09FB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC09FB8: 8EC40004 lw $a0, 4($s6) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[22] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09FB8u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -28582,6 +35218,9 @@ label_BFC09FB8: cpu->gpr[31] = 0xBFC09FCCu; psx_dispatch(cpu, 0xBFC091CCu); label_BFC09FCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC09FCC: 001019C0 sll $v1, $s0, 7 */ cpu->gpr[3] = cpu->gpr[16] << 7u; @@ -28592,6 +35231,9 @@ label_BFC09FCC: cpu->gpr[18] = cpu->gpr[18] - cpu->gpr[16]; if (psx_taken_BFC09FD0) goto label_BFC09FEC; label_BFC09FD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09FD8: 8EC30010 lw $v1, 16($s6) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[22] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09FD8u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -28604,10 +35246,16 @@ label_BFC09FD8: cpu->gpr[2] = cpu->gpr[19] << 7u; if (psx_taken_BFC09FE0) goto label_BFC0A00C; label_BFC09FE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC09FE8: 02509023 subu $s2, $s2, $s0 */ cpu->gpr[18] = cpu->gpr[18] - cpu->gpr[16]; label_BFC09FEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09FEC: 02308821 addu $s1, $s1, $s0 */ cpu->gpr[17] = cpu->gpr[17] + cpu->gpr[16]; @@ -28620,6 +35268,9 @@ label_BFC09FEC: cpu->gpr[19] = cpu->gpr[19] + cpu->gpr[16]; if (psx_taken_BFC09FF4) goto label_BFC09F78; label_BFC09FFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC09FFC: 8EC30010 lw $v1, 16($s6) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[22] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC09FFCu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -28630,6 +35281,9 @@ label_BFC09FFC: /* 0xBFC0A008: 001311C0 sll $v0, $s3, 7 */ cpu->gpr[2] = cpu->gpr[19] << 7u; label_BFC0A00C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A00C: 00627021 addu $t6, $v1, $v0 */ cpu->gpr[14] = cpu->gpr[3] + cpu->gpr[2]; @@ -28654,6 +35308,9 @@ label_BFC0A00C: cpu->gpr[25] = cpu->gpr[23] << 2u; if (psx_taken_BFC0A02C) goto label_BFC0A048; label_BFC0A034: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A034: 8FB10044 lw $s1, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A034u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -28666,10 +35323,16 @@ label_BFC0A034: cpu->gpr[2] = cpu->gpr[24] + cpu->gpr[0]; if (psx_taken_BFC0A03C) goto label_BFC0A060; label_BFC0A044: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A044: 0017C880 sll $t9, $s7, 2 */ cpu->gpr[25] = cpu->gpr[23] << 2u; label_BFC0A048: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A048: 3C02A001 lui $v0, 0xA001 */ cpu->gpr[2] = 0xA0010000u; @@ -28684,6 +35347,9 @@ label_BFC0A048: /* 0xBFC0A05C: 00021023 subu $v0, $zero, $v0 */ cpu->gpr[2] = cpu->gpr[0] - cpu->gpr[2]; label_BFC0A060: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A060: 8FBF0034 lw $ra, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A060u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -28721,6 +35387,9 @@ void func_1FC0A080(CPUState* cpu) { } } label_BFC0A080: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A080: 27BDFF88 addiu $sp, $sp, -120 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-120)); @@ -28761,10 +35430,16 @@ label_BFC0A080: cpu->gpr[1] = cpu->gpr[23] + cpu->gpr[0]; if (psx_taken_BFC0A0C0) goto label_BFC0A0CC; label_BFC0A0C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A0C8: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC0A0CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A0CC: 0001B903 sra $s7, $at, 4 */ cpu->gpr[23] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -28783,6 +35458,9 @@ label_BFC0A0CC: /* nop */ if (psx_taken_BFC0A0E0) goto label_BFC0A0F0; label_BFC0A0E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A0E8: 100000B2 beq $zero, $zero, 0xBFC0A3B4 */ uint32_t psx_brA_BFC0A0E8 = cpu->gpr[0]; uint32_t psx_brB_BFC0A0E8 = cpu->gpr[0]; @@ -28791,6 +35469,9 @@ label_BFC0A0E8: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC0A0E8) goto label_BFC0A3B4; label_BFC0A0F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A0F0: 0FF02213 jal 0xBFC0884C */ /* 0xBFC0A0F4: AFA20050 sw $v0, 80($sp) */ @@ -28798,6 +35479,9 @@ label_BFC0A0F0: cpu->gpr[31] = 0xBFC0A0F8u; psx_dispatch(cpu, 0xBFC0884Cu); label_BFC0A0F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A0F8: 8EC30010 lw $v1, 16($s6) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[22] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A0F8u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -28812,6 +35496,9 @@ label_BFC0A0F8: /* nop */ if (psx_taken_BFC0A104) goto label_BFC0A11C; label_BFC0A10C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A10C: 24080016 addiu $t0, $zero, 22 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (22)); @@ -28824,6 +35511,9 @@ label_BFC0A10C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC0A114) goto label_BFC0A3B4; label_BFC0A11C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A11C: 8EC90020 lw $t1, 32($s6) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[22] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A11Cu); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -28838,6 +35528,9 @@ label_BFC0A11C: /* nop */ if (psx_taken_BFC0A128) goto label_BFC0A140; label_BFC0A130: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A130: 240A0016 addiu $t2, $zero, 22 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (22)); @@ -28850,6 +35543,9 @@ label_BFC0A130: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC0A138) goto label_BFC0A3B4; label_BFC0A140: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A140: AFB20060 sw $s2, 96($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (96)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A140u); return; } g_debug_last_store_pc = 0xBFC0A140u; cpu->write_word(psx_addr, cpu->gpr[18]); } @@ -28872,10 +35568,16 @@ label_BFC0A140: cpu->gpr[1] = cpu->gpr[18] + cpu->gpr[0]; if (psx_taken_BFC0A15C) goto label_BFC0A168; label_BFC0A164: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A164: 2421007F addiu $at, $at, 127 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (127)); label_BFC0A168: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A168: 000191C3 sra $s2, $at, 7 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[1] >> 7u); @@ -28888,6 +35590,9 @@ label_BFC0A168: /* nop */ if (psx_taken_BFC0A170) goto label_BFC0A2BC; label_BFC0A178: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A178: 8FA20050 lw $v0, 80($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (80)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A178u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -28904,6 +35609,9 @@ label_BFC0A178: /* nop */ if (psx_taken_BFC0A188) goto label_BFC0A1A0; label_BFC0A190: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A190: 8FB10044 lw $s1, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A190u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -28916,6 +35624,9 @@ label_BFC0A190: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC0A198) goto label_BFC0A3B4; label_BFC0A1A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A1A0: AFB0003C sw $s0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A1A0u); return; } g_debug_last_store_pc = 0xBFC0A1A0u; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -28963,6 +35674,9 @@ label_BFC0A1A0: cpu->gpr[31] = 0xBFC0A1F8u; psx_dispatch(cpu, 0xBFC0884Cu); label_BFC0A1F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A1F8: 1640000D bne $s2, $zero, 0xBFC0A230 */ uint32_t psx_brA_BFC0A1F8 = cpu->gpr[18]; uint32_t psx_brB_BFC0A1F8 = cpu->gpr[0]; @@ -28971,6 +35685,9 @@ label_BFC0A1F8: /* nop */ if (psx_taken_BFC0A1F8) goto label_BFC0A230; label_BFC0A200: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A200: AEC00018 sw $zero, 24($s6) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[22] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A200u); return; } g_debug_last_store_pc = 0xBFC0A200u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -28988,6 +35705,9 @@ label_BFC0A200: cpu->gpr[31] = 0xBFC0A21Cu; psx_dispatch(cpu, 0xBFC0BFF0u); label_BFC0A21C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A21C: 8FB0003C lw $s0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A21Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -29002,6 +35722,9 @@ label_BFC0A21C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC0A228) goto label_BFC0A3B4; label_BFC0A230: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A230: 8E6C0000 lw $t4, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A230u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -29015,6 +35738,9 @@ label_BFC0A230: cpu->gpr[31] = 0xBFC0A244u; psx_dispatch(cpu, 0xBFC0A3D4u); label_BFC0A244: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A244: 00408021 addu $s0, $v0, $zero */ cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; @@ -29026,6 +35752,9 @@ label_BFC0A244: cpu->gpr[31] = 0xBFC0A254u; psx_dispatch(cpu, 0xBFC09540u); label_BFC0A254: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A254: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -29036,10 +35765,16 @@ label_BFC0A254: cpu->gpr[5] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC0A258) goto label_BFC0A264; label_BFC0A260: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A260: 02002821 addu $a1, $s0, $zero */ cpu->gpr[5] = cpu->gpr[16] + cpu->gpr[0]; label_BFC0A264: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A264: 00176840 sll $t5, $s7, 1 */ cpu->gpr[13] = cpu->gpr[23] << 1u; @@ -29059,6 +35794,9 @@ label_BFC0A264: cpu->gpr[31] = 0xBFC0A284u; psx_dispatch(cpu, 0xBFC0DA20u); label_BFC0A284: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A284: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -29069,6 +35807,9 @@ label_BFC0A284: /* nop */ if (psx_taken_BFC0A288) goto label_BFC0A2A4; label_BFC0A290: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A290: 8FB0003C lw $s0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A290u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -29083,6 +35824,9 @@ label_BFC0A290: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC0A29C) goto label_BFC0A3B4; label_BFC0A2A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A2A4: AEC00018 sw $zero, 24($s6) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[22] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A2A4u); return; } g_debug_last_store_pc = 0xBFC0A2A4u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -29099,6 +35843,9 @@ label_BFC0A2A4: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC0A2B4) goto label_BFC0A3B4; label_BFC0A2BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A2BC: 1A400028 blez $s2, 0xBFC0A360 */ uint32_t psx_brA_BFC0A2BC = cpu->gpr[18]; @@ -29107,12 +35854,18 @@ label_BFC0A2BC: cpu->gpr[2] = cpu->gpr[19] << 7u; if (psx_taken_BFC0A2BC) goto label_BFC0A360; label_BFC0A2C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A2C4: AFB0003C sw $s0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A2C4u); return; } g_debug_last_store_pc = 0xBFC0A2C4u; cpu->write_word(psx_addr, cpu->gpr[16]); } /* 0xBFC0A2C8: 24150040 addiu $s5, $zero, 64 */ cpu->gpr[21] = (uint32_t)((int32_t)cpu->gpr[0] + (64)); label_BFC0A2CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A2CC: 06210004 bgez $s1, 0xBFC0A2E0 */ uint32_t psx_brA_BFC0A2CC = cpu->gpr[17]; @@ -29121,6 +35874,9 @@ label_BFC0A2CC: cpu->gpr[14] = cpu->gpr[17] & 0x3Fu; if (psx_taken_BFC0A2CC) goto label_BFC0A2E0; label_BFC0A2D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A2D4: 11C00002 beq $t6, $zero, 0xBFC0A2E0 */ uint32_t psx_brA_BFC0A2D4 = cpu->gpr[14]; uint32_t psx_brB_BFC0A2D4 = cpu->gpr[0]; @@ -29129,10 +35885,16 @@ label_BFC0A2D4: /* nop */ if (psx_taken_BFC0A2D4) goto label_BFC0A2E0; label_BFC0A2DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A2DC: 25CEFFC0 addiu $t6, $t6, -64 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[14] + (-64)); label_BFC0A2E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A2E0: 02AE1023 subu $v0, $s5, $t6 */ cpu->gpr[2] = cpu->gpr[21] - cpu->gpr[14]; @@ -29145,6 +35907,9 @@ label_BFC0A2E0: cpu->gpr[16] = cpu->gpr[18] + cpu->gpr[0]; if (psx_taken_BFC0A2E8) goto label_BFC0A2FC; label_BFC0A2F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A2F0: 10000002 beq $zero, $zero, 0xBFC0A2FC */ uint32_t psx_brA_BFC0A2F0 = cpu->gpr[0]; uint32_t psx_brB_BFC0A2F0 = cpu->gpr[0]; @@ -29153,10 +35918,16 @@ label_BFC0A2F0: cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC0A2F0) goto label_BFC0A2FC; label_BFC0A2F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A2F8: 02408021 addu $s0, $s2, $zero */ cpu->gpr[16] = cpu->gpr[18] + cpu->gpr[0]; label_BFC0A2FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A2FC: 8EC50024 lw $a1, 36($s6) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[22] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A2FCu); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -29168,6 +35939,9 @@ label_BFC0A2FC: cpu->gpr[31] = 0xBFC0A30Cu; psx_dispatch(cpu, 0xBFC0A3D4u); label_BFC0A30C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A30C: 8EC40004 lw $a0, 4($s6) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[22] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A30Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -29181,6 +35955,9 @@ label_BFC0A30C: cpu->gpr[31] = 0xBFC0A320u; psx_dispatch(cpu, 0xBFC092ECu); label_BFC0A320: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A320: 001019C0 sll $v1, $s0, 7 */ cpu->gpr[3] = cpu->gpr[16] << 7u; @@ -29191,6 +35968,9 @@ label_BFC0A320: cpu->gpr[18] = cpu->gpr[18] - cpu->gpr[16]; if (psx_taken_BFC0A324) goto label_BFC0A340; label_BFC0A32C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A32C: 8EC30010 lw $v1, 16($s6) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[22] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A32Cu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -29203,10 +35983,16 @@ label_BFC0A32C: cpu->gpr[2] = cpu->gpr[19] << 7u; if (psx_taken_BFC0A334) goto label_BFC0A360; label_BFC0A33C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A33C: 02509023 subu $s2, $s2, $s0 */ cpu->gpr[18] = cpu->gpr[18] - cpu->gpr[16]; label_BFC0A340: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A340: 02308821 addu $s1, $s1, $s0 */ cpu->gpr[17] = cpu->gpr[17] + cpu->gpr[16]; @@ -29219,6 +36005,9 @@ label_BFC0A340: cpu->gpr[19] = cpu->gpr[19] + cpu->gpr[16]; if (psx_taken_BFC0A348) goto label_BFC0A2CC; label_BFC0A350: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A350: 8EC30010 lw $v1, 16($s6) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[22] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A350u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -29229,6 +36018,9 @@ label_BFC0A350: /* 0xBFC0A35C: 001311C0 sll $v0, $s3, 7 */ cpu->gpr[2] = cpu->gpr[19] << 7u; label_BFC0A360: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A360: 00627821 addu $t7, $v1, $v0 */ cpu->gpr[15] = cpu->gpr[3] + cpu->gpr[2]; @@ -29253,6 +36045,9 @@ label_BFC0A360: cpu->gpr[8] = cpu->gpr[23] << 2u; if (psx_taken_BFC0A380) goto label_BFC0A39C; label_BFC0A388: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A388: 8FB10044 lw $s1, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A388u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -29265,10 +36060,16 @@ label_BFC0A388: cpu->gpr[2] = cpu->gpr[25] + cpu->gpr[0]; if (psx_taken_BFC0A390) goto label_BFC0A3B4; label_BFC0A398: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A398: 00174080 sll $t0, $s7, 2 */ cpu->gpr[8] = cpu->gpr[23] << 2u; label_BFC0A39C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A39C: 3C02A001 lui $v0, 0xA001 */ cpu->gpr[2] = 0xA0010000u; @@ -29283,6 +36084,9 @@ label_BFC0A39C: /* 0xBFC0A3B0: 00021023 subu $v0, $zero, $v0 */ cpu->gpr[2] = cpu->gpr[0] - cpu->gpr[2]; label_BFC0A3B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A3B4: 8FBF0034 lw $ra, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A3B4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -29305,6 +36109,9 @@ label_BFC0A3B4: void func_1FC0A3D4(CPUState* cpu) { debug_server_log_call_entry(0x1FC0A3D4u); label_BFC0A3D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A3D4: 28C10040 slti $at, $a2, 64 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[6] < (64) ? 1 : 0); @@ -29315,6 +36122,9 @@ label_BFC0A3D4: cpu->gpr[8] = cpu->gpr[5] << 6u; if (psx_taken_BFC0A3D8) goto label_BFC0A42C; label_BFC0A3E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A3E0: 00047100 sll $t6, $a0, 4 */ cpu->gpr[14] = cpu->gpr[4] << 4u; @@ -29333,6 +36143,9 @@ label_BFC0A3E0: /* 0xBFC0A3FC: 0005C140 sll $t8, $a1, 5 */ cpu->gpr[24] = cpu->gpr[5] << 5u; label_BFC0A400: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A400: 0058C821 addu $t9, $v0, $t8 */ cpu->gpr[25] = cpu->gpr[2] + cpu->gpr[24]; @@ -29347,12 +36160,18 @@ label_BFC0A400: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[6] < (64) ? 1 : 0); if (psx_taken_BFC0A40C) goto label_BFC0A420; label_BFC0A414: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A414: 03E00008 jr $ra */ /* 0xBFC0A418: 2402FFFF addiu $v0, $zero, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); return; label_BFC0A420: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A420: 1020FFF7 beq $at, $zero, 0xBFC0A400 */ uint32_t psx_brA_BFC0A420 = cpu->gpr[1]; uint32_t psx_brB_BFC0A420 = cpu->gpr[0]; @@ -29361,10 +36180,16 @@ label_BFC0A420: cpu->gpr[24] = cpu->gpr[5] << 5u; if (psx_taken_BFC0A420) goto label_BFC0A400; label_BFC0A428: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A428: 00054180 sll $t0, $a1, 6 */ cpu->gpr[8] = cpu->gpr[5] << 6u; label_BFC0A42C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A42C: 01061021 addu $v0, $t0, $a2 */ cpu->gpr[2] = cpu->gpr[8] + cpu->gpr[6]; @@ -29379,6 +36204,9 @@ label_BFC0A42C: void func_1FC0A43C(CPUState* cpu) { debug_server_log_call_entry(0x1FC0A43Cu); label_BFC0A43C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A43C: 80820000 lb $v0, 0($a0) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (0))); @@ -29391,6 +36219,9 @@ label_BFC0A43C: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[0] + (63)); if (psx_taken_BFC0A444) goto label_BFC0A458; label_BFC0A44C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A44C: 1000000E beq $zero, $zero, 0xBFC0A488 */ uint32_t psx_brA_BFC0A44C = cpu->gpr[0]; uint32_t psx_brB_BFC0A44C = cpu->gpr[0]; @@ -29399,10 +36230,16 @@ label_BFC0A44C: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[0] + (63)); if (psx_taken_BFC0A44C) goto label_BFC0A488; label_BFC0A454: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A454: 2406003F addiu $a2, $zero, 63 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[0] + (63)); label_BFC0A458: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A458: 80A30000 lb $v1, 0($a1) */ cpu->gpr[3] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (0))); @@ -29415,6 +36252,9 @@ label_BFC0A458: /* nop */ if (psx_taken_BFC0A460) goto label_BFC0A478; label_BFC0A468: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A468: 10620003 beq $v1, $v0, 0xBFC0A478 */ uint32_t psx_brA_BFC0A468 = cpu->gpr[3]; uint32_t psx_brB_BFC0A468 = cpu->gpr[2]; @@ -29423,12 +36263,18 @@ label_BFC0A468: /* nop */ if (psx_taken_BFC0A468) goto label_BFC0A478; label_BFC0A470: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A470: 03E00008 jr $ra */ /* 0xBFC0A474: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; return; label_BFC0A478: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A478: 80820001 lb $v0, 1($a0) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (1))); @@ -29441,6 +36287,9 @@ label_BFC0A478: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (1)); if (psx_taken_BFC0A480) goto label_BFC0A458; label_BFC0A488: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A488: 80A30000 lb $v1, 0($a1) */ cpu->gpr[3] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (0))); @@ -29453,6 +36302,9 @@ label_BFC0A488: /* nop */ if (psx_taken_BFC0A490) goto label_BFC0A4A0; label_BFC0A498: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A498: 14C30004 bne $a2, $v1, 0xBFC0A4AC */ uint32_t psx_brA_BFC0A498 = cpu->gpr[6]; uint32_t psx_brB_BFC0A498 = cpu->gpr[3]; @@ -29461,12 +36313,18 @@ label_BFC0A498: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC0A498) goto label_BFC0A4AC; label_BFC0A4A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A4A0: 03E00008 jr $ra */ /* 0xBFC0A4A4: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); return; label_BFC0A4AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A4AC: 03E00008 jr $ra */ /* 0xBFC0A4B0: 00000000 nop */ @@ -29487,6 +36345,9 @@ void func_1FC0A4B4(CPUState* cpu) { } } label_BFC0A4B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A4B4: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -29509,10 +36370,16 @@ label_BFC0A4B4: cpu->gpr[1] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC0A4D0) goto label_BFC0A4DC; label_BFC0A4D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A4D8: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC0A4DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A4DC: 00014103 sra $t0, $at, 4 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -29531,6 +36398,9 @@ label_BFC0A4DC: /* nop */ if (psx_taken_BFC0A4F0) goto label_BFC0A508; label_BFC0A4F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A4F8: 24180010 addiu $t8, $zero, 16 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); @@ -29543,6 +36413,9 @@ label_BFC0A4F8: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC0A500) goto label_BFC0A5D4; label_BFC0A508: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A508: AFA30024 sw $v1, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A508u); return; } g_debug_last_store_pc = 0xBFC0A508u; cpu->write_word(psx_addr, cpu->gpr[3]); } @@ -29556,6 +36429,9 @@ label_BFC0A508: cpu->gpr[31] = 0xBFC0A51Cu; psx_dispatch(cpu, 0xBFC0884Cu); label_BFC0A51C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A51C: 3C05A001 lui $a1, 0xA001 */ cpu->gpr[5] = 0xA0010000u; @@ -29581,6 +36457,9 @@ label_BFC0A51C: cpu->gpr[31] = 0xBFC0A548u; psx_dispatch(cpu, 0xBFC0A754u); label_BFC0A548: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A548: 8FA7002C lw $a3, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A548u); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } @@ -29597,6 +36476,9 @@ label_BFC0A548: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC0A558) goto label_BFC0A570; label_BFC0A560: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A560: 24190002 addiu $t9, $zero, 2 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); @@ -29609,6 +36491,9 @@ label_BFC0A560: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC0A568) goto label_BFC0A5D4; label_BFC0A570: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(21u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A570: 00085100 sll $t2, $t0, 4 */ cpu->gpr[10] = cpu->gpr[8] << 4u; @@ -29654,6 +36539,9 @@ label_BFC0A570: cpu->gpr[31] = 0xBFC0A5C4u; psx_dispatch(cpu, 0xBFC033C8u); label_BFC0A5C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A5C4: 8FA7002C lw $a3, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A5C4u); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } @@ -29664,6 +36552,9 @@ label_BFC0A5C4: /* 0xBFC0A5D0: AD200018 sw $zero, 24($t1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A5D0u); return; } g_debug_last_store_pc = 0xBFC0A5D0u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC0A5D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A5D4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A5D4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -29689,6 +36580,9 @@ void func_1FC0A5E4(CPUState* cpu) { } } label_BFC0A5E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A5E4: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -29713,10 +36607,16 @@ label_BFC0A5E4: cpu->gpr[1] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC0A604) goto label_BFC0A610; label_BFC0A60C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A60C: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC0A610: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A610: 00017903 sra $t7, $at, 4 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -29735,6 +36635,9 @@ label_BFC0A610: /* nop */ if (psx_taken_BFC0A624) goto label_BFC0A634; label_BFC0A62C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A62C: 10000045 beq $zero, $zero, 0xBFC0A744 */ uint32_t psx_brA_BFC0A62C = cpu->gpr[0]; uint32_t psx_brB_BFC0A62C = cpu->gpr[0]; @@ -29743,6 +36646,9 @@ label_BFC0A62C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC0A62C) goto label_BFC0A744; label_BFC0A634: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A634: AFA30034 sw $v1, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A634u); return; } g_debug_last_store_pc = 0xBFC0A634u; cpu->write_word(psx_addr, cpu->gpr[3]); } @@ -29752,6 +36658,9 @@ label_BFC0A634: cpu->gpr[31] = 0xBFC0A640u; psx_dispatch(cpu, 0xBFC0884Cu); label_BFC0A640: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A640: 8FA30034 lw $v1, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A640u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -29761,6 +36670,9 @@ label_BFC0A640: cpu->gpr[31] = 0xBFC0A64Cu; psx_dispatch(cpu, 0xBFC089C0u); label_BFC0A64C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A64C: 14400004 bne $v0, $zero, 0xBFC0A660 */ uint32_t psx_brA_BFC0A64C = cpu->gpr[2]; uint32_t psx_brB_BFC0A64C = cpu->gpr[0]; @@ -29769,6 +36681,9 @@ label_BFC0A64C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A650u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } if (psx_taken_BFC0A64C) goto label_BFC0A660; label_BFC0A654: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A654: 1000003B beq $zero, $zero, 0xBFC0A744 */ uint32_t psx_brA_BFC0A654 = cpu->gpr[0]; uint32_t psx_brB_BFC0A654 = cpu->gpr[0]; @@ -29777,10 +36692,16 @@ label_BFC0A654: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC0A654) goto label_BFC0A744; label_BFC0A65C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A65C: 8FA4003C lw $a0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A65Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } label_BFC0A660: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A660: 3C03A001 lui $v1, 0xA001 */ cpu->gpr[3] = 0xA0010000u; @@ -29796,6 +36717,9 @@ label_BFC0A660: cpu->gpr[31] = 0xBFC0A678u; psx_dispatch(cpu, 0xBFC03494u); label_BFC0A678: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A678: 8FA3002C lw $v1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A678u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -29808,6 +36732,9 @@ label_BFC0A678: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A684u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } if (psx_taken_BFC0A680) goto label_BFC0A6B0; label_BFC0A688: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A688: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -29816,6 +36743,9 @@ label_BFC0A688: /* 0xBFC0A690: 2402003F addiu $v0, $zero, 63 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (63)); label_BFC0A694: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A694: 24630001 addiu $v1, $v1, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1)); @@ -29828,6 +36758,9 @@ label_BFC0A694: g_debug_last_store_pc = 0xBFC0A6A0u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[3] + (-1)), (uint8_t)(cpu->gpr[2] & 0xFFu)); if (psx_taken_BFC0A69C) goto label_BFC0A694; label_BFC0A6A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A6A4: 10000021 beq $zero, $zero, 0xBFC0A72C */ uint32_t psx_brA_BFC0A6A4 = cpu->gpr[0]; uint32_t psx_brB_BFC0A6A4 = cpu->gpr[0]; @@ -29836,10 +36769,16 @@ label_BFC0A6A4: g_debug_last_store_pc = 0xBFC0A6A8u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[3] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); if (psx_taken_BFC0A6A4) goto label_BFC0A72C; label_BFC0A6AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A6AC: 8FA8003C lw $t0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A6ACu); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } label_BFC0A6B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A6B0: 00000000 nop */ /* nop */ @@ -29854,6 +36793,9 @@ label_BFC0A6B0: /* nop */ if (psx_taken_BFC0A6BC) goto label_BFC0A6CC; label_BFC0A6C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A6C4: 1000000A beq $zero, $zero, 0xBFC0A6F0 */ uint32_t psx_brA_BFC0A6C4 = cpu->gpr[0]; uint32_t psx_brB_BFC0A6C4 = cpu->gpr[0]; @@ -29862,12 +36804,18 @@ label_BFC0A6C4: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (42)); if (psx_taken_BFC0A6C4) goto label_BFC0A6F0; label_BFC0A6CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A6CC: 80A20000 lb $v0, 0($a1) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (0))); /* 0xBFC0A6D0: 2404002A addiu $a0, $zero, 42 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (42)); label_BFC0A6D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A6D4: 10820006 beq $a0, $v0, 0xBFC0A6F0 */ uint32_t psx_brA_BFC0A6D4 = cpu->gpr[4]; uint32_t psx_brB_BFC0A6D4 = cpu->gpr[2]; @@ -29876,6 +36824,9 @@ label_BFC0A6D4: /* nop */ if (psx_taken_BFC0A6D4) goto label_BFC0A6F0; label_BFC0A6DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A6DC: A0620000 sb $v0, 0($v1) */ g_debug_last_store_pc = 0xBFC0A6DCu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[3] + (0)), (uint8_t)(cpu->gpr[2] & 0xFFu)); @@ -29890,6 +36841,9 @@ label_BFC0A6DC: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1)); if (psx_taken_BFC0A6E8) goto label_BFC0A6D4; label_BFC0A6F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A6F0: 80AA0000 lb $t2, 0($a1) */ cpu->gpr[10] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (0))); @@ -29902,6 +36856,9 @@ label_BFC0A6F0: /* nop */ if (psx_taken_BFC0A6F8) goto label_BFC0A728; label_BFC0A700: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A700: 3C04A001 lui $a0, 0xA001 */ cpu->gpr[4] = 0xA0010000u; @@ -29916,10 +36873,16 @@ label_BFC0A700: /* nop */ if (psx_taken_BFC0A70C) goto label_BFC0A728; label_BFC0A714: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A714: 2402003F addiu $v0, $zero, 63 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (63)); label_BFC0A718: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A718: 24630001 addiu $v1, $v1, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1)); @@ -29932,10 +36895,16 @@ label_BFC0A718: g_debug_last_store_pc = 0xBFC0A724u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[3] + (-1)), (uint8_t)(cpu->gpr[2] & 0xFFu)); if (psx_taken_BFC0A720) goto label_BFC0A718; label_BFC0A728: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A728: A0600000 sb $zero, 0($v1) */ g_debug_last_store_pc = 0xBFC0A728u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[3] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); label_BFC0A72C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A72C: 240BFFFF addiu $t3, $zero, -1 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -29951,6 +36920,9 @@ label_BFC0A72C: cpu->gpr[31] = 0xBFC0A744u; psx_dispatch(cpu, 0xBFC0A4B4u); label_BFC0A744: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A744: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A744u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -29977,6 +36949,9 @@ void func_1FC0A754(CPUState* cpu) { } } label_BFC0A754: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A754: 27BDFFB0 addiu $sp, $sp, -80 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-80)); @@ -29997,6 +36972,9 @@ label_BFC0A754: cpu->gpr[18] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC0A76C) goto label_BFC0A8A4; label_BFC0A774: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A774: AFB4002C sw $s4, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A774u); return; } g_debug_last_store_pc = 0xBFC0A774u; cpu->write_word(psx_addr, cpu->gpr[20]); } @@ -30023,10 +37001,16 @@ label_BFC0A774: cpu->gpr[1] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC0A798) goto label_BFC0A7A4; label_BFC0A7A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A7A0: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC0A7A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A7A4: 00017103 sra $t6, $at, 4 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -30041,6 +37025,9 @@ label_BFC0A7A4: /* 0xBFC0A7B8: 0012C940 sll $t9, $s2, 5 */ cpu->gpr[25] = cpu->gpr[18] << 5u; label_BFC0A7BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A7BC: 0FF036E4 jal 0xBFC0DB90 */ /* 0xBFC0A7C0: 02998821 addu $s1, $s4, $t9 */ @@ -30048,6 +37035,9 @@ label_BFC0A7BC: cpu->gpr[31] = 0xBFC0A7C4u; psx_dispatch(cpu, 0xBFC0DB90u); label_BFC0A7C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A7C4: 14400017 bne $v0, $zero, 0xBFC0A824 */ uint32_t psx_brA_BFC0A7C4 = cpu->gpr[2]; uint32_t psx_brB_BFC0A7C4 = cpu->gpr[0]; @@ -30056,6 +37046,9 @@ label_BFC0A7C4: /* nop */ if (psx_taken_BFC0A7C4) goto label_BFC0A824; label_BFC0A7CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A7CC: 8E280000 lw $t0, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A7CCu); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -30068,6 +37061,9 @@ label_BFC0A7CC: /* nop */ if (psx_taken_BFC0A7D4) goto label_BFC0A87C; label_BFC0A7DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A7DC: 2630000A addiu $s0, $s1, 10 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[17] + (10)); @@ -30077,6 +37073,9 @@ label_BFC0A7DC: cpu->gpr[31] = 0xBFC0A7E8u; psx_dispatch(cpu, 0xBFC03494u); label_BFC0A7E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A7E8: 10400024 beq $v0, $zero, 0xBFC0A87C */ uint32_t psx_brA_BFC0A7E8 = cpu->gpr[2]; uint32_t psx_brB_BFC0A7E8 = cpu->gpr[0]; @@ -30085,6 +37084,9 @@ label_BFC0A7E8: /* nop */ if (psx_taken_BFC0A7E8) goto label_BFC0A87C; label_BFC0A7F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A7F0: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -30094,6 +37096,9 @@ label_BFC0A7F0: cpu->gpr[31] = 0xBFC0A7FCu; psx_dispatch(cpu, 0xBFC0A43Cu); label_BFC0A7FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A7FC: 1040001F beq $v0, $zero, 0xBFC0A87C */ uint32_t psx_brA_BFC0A7FC = cpu->gpr[2]; uint32_t psx_brB_BFC0A7FC = cpu->gpr[0]; @@ -30102,6 +37107,9 @@ label_BFC0A7FC: cpu->gpr[1] = 0xA0010000u; if (psx_taken_BFC0A7FC) goto label_BFC0A87C; label_BFC0A804: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A804: 8FB00034 lw $s0, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A804u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -30122,6 +37130,9 @@ label_BFC0A804: cpu->gpr[2] = cpu->gpr[18] + cpu->gpr[0]; if (psx_taken_BFC0A81C) goto label_BFC0A8A8; label_BFC0A824: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A824: 8E290000 lw $t1, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A824u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -30134,6 +37145,9 @@ label_BFC0A824: /* nop */ if (psx_taken_BFC0A82C) goto label_BFC0A87C; label_BFC0A834: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A834: 2630000A addiu $s0, $s1, 10 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[17] + (10)); @@ -30143,6 +37157,9 @@ label_BFC0A834: cpu->gpr[31] = 0xBFC0A840u; psx_dispatch(cpu, 0xBFC03494u); label_BFC0A840: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A840: 1040000E beq $v0, $zero, 0xBFC0A87C */ uint32_t psx_brA_BFC0A840 = cpu->gpr[2]; uint32_t psx_brB_BFC0A840 = cpu->gpr[0]; @@ -30151,6 +37168,9 @@ label_BFC0A840: /* nop */ if (psx_taken_BFC0A840) goto label_BFC0A87C; label_BFC0A848: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A848: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -30160,6 +37180,9 @@ label_BFC0A848: cpu->gpr[31] = 0xBFC0A854u; psx_dispatch(cpu, 0xBFC0A43Cu); label_BFC0A854: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A854: 10400009 beq $v0, $zero, 0xBFC0A87C */ uint32_t psx_brA_BFC0A854 = cpu->gpr[2]; uint32_t psx_brB_BFC0A854 = cpu->gpr[0]; @@ -30168,6 +37191,9 @@ label_BFC0A854: cpu->gpr[1] = 0xA0010000u; if (psx_taken_BFC0A854) goto label_BFC0A87C; label_BFC0A85C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A85C: 8FB00034 lw $s0, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A85Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -30188,6 +37214,9 @@ label_BFC0A85C: cpu->gpr[2] = cpu->gpr[18] + cpu->gpr[0]; if (psx_taken_BFC0A874) goto label_BFC0A8A8; label_BFC0A87C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A87C: 26520001 addiu $s2, $s2, 1 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (1)); @@ -30200,6 +37229,9 @@ label_BFC0A87C: cpu->gpr[25] = cpu->gpr[18] << 5u; if (psx_taken_BFC0A884) goto label_BFC0A7BC; label_BFC0A88C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A88C: 8FB00034 lw $s0, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A88Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -30214,10 +37246,16 @@ label_BFC0A88C: /* 0xBFC0A8A0: 00000000 nop */ /* nop */ label_BFC0A8A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A8A4: 2402FFFF addiu $v0, $zero, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); label_BFC0A8A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A8A8: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A8A8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -30246,6 +37284,9 @@ void func_1FC0A8BC(CPUState* cpu) { } } label_BFC0A8BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A8BC: 27BDFF78 addiu $sp, $sp, -136 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-136)); @@ -30268,10 +37309,16 @@ label_BFC0A8BC: cpu->gpr[1] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC0A8D8) goto label_BFC0A8E4; label_BFC0A8E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A8E0: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC0A8E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A8E4: 00011103 sra $v0, $at, 4 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -30290,6 +37337,9 @@ label_BFC0A8E4: /* nop */ if (psx_taken_BFC0A8F8) goto label_BFC0A908; label_BFC0A900: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A900: 10000093 beq $zero, $zero, 0xBFC0AB50 */ uint32_t psx_brA_BFC0A900 = cpu->gpr[0]; uint32_t psx_brB_BFC0A900 = cpu->gpr[0]; @@ -30298,6 +37348,9 @@ label_BFC0A900: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC0A900) goto label_BFC0AB50; label_BFC0A908: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A908: AFA20030 sw $v0, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A908u); return; } g_debug_last_store_pc = 0xBFC0A908u; cpu->write_word(psx_addr, cpu->gpr[2]); } @@ -30309,6 +37362,9 @@ label_BFC0A908: cpu->gpr[31] = 0xBFC0A918u; psx_dispatch(cpu, 0xBFC0884Cu); label_BFC0A918: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A918: 8FA4003C lw $a0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A918u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -30318,6 +37374,9 @@ label_BFC0A918: cpu->gpr[31] = 0xBFC0A924u; psx_dispatch(cpu, 0xBFC089C0u); label_BFC0A924: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A924: 14400003 bne $v0, $zero, 0xBFC0A934 */ uint32_t psx_brA_BFC0A924 = cpu->gpr[2]; uint32_t psx_brB_BFC0A924 = cpu->gpr[0]; @@ -30326,6 +37385,9 @@ label_BFC0A924: /* nop */ if (psx_taken_BFC0A924) goto label_BFC0A934; label_BFC0A92C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A92C: 10000088 beq $zero, $zero, 0xBFC0AB50 */ uint32_t psx_brA_BFC0A92C = cpu->gpr[0]; uint32_t psx_brB_BFC0A92C = cpu->gpr[0]; @@ -30334,6 +37396,9 @@ label_BFC0A92C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC0A92C) goto label_BFC0AB50; label_BFC0A934: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A934: 0FF036E0 jal 0xBFC0DB80 */ /* 0xBFC0A938: 00002021 addu $a0, $zero, $zero */ @@ -30341,6 +37406,9 @@ label_BFC0A934: cpu->gpr[31] = 0xBFC0A93Cu; psx_dispatch(cpu, 0xBFC0DB80u); label_BFC0A93C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A93C: 8FA4003C lw $a0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A93Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -30352,6 +37420,9 @@ label_BFC0A93C: cpu->gpr[31] = 0xBFC0A94Cu; psx_dispatch(cpu, 0xBFC0A754u); label_BFC0A94C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A94C: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -30362,6 +37433,9 @@ label_BFC0A94C: /* nop */ if (psx_taken_BFC0A950) goto label_BFC0A96C; label_BFC0A958: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A958: 8FAB0088 lw $t3, 136($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (136)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A958u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -30376,6 +37450,9 @@ label_BFC0A958: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[11] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A968u); return; } g_debug_last_store_pc = 0xBFC0A968u; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC0A964) goto label_BFC0AB50; label_BFC0A96C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A96C: AFA00044 sw $zero, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A96Cu); return; } g_debug_last_store_pc = 0xBFC0A96Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -30390,6 +37467,9 @@ label_BFC0A96C: /* 0xBFC0A980: 27A30094 addiu $v1, $sp, 148 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[29] + (148)); label_BFC0A984: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A984: AC60FFBC sw $zero, -68($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (-68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A984u); return; } g_debug_last_store_pc = 0xBFC0A984u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -30406,6 +37486,9 @@ label_BFC0A984: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (-72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A998u); return; } g_debug_last_store_pc = 0xBFC0A998u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC0A994) goto label_BFC0A984; label_BFC0A99C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A99C: 8FAC0030 lw $t4, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0A99Cu); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -30450,10 +37533,16 @@ label_BFC0A99C: cpu->gpr[1] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC0A9E4) goto label_BFC0A9F0; label_BFC0A9EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A9EC: 24211FFF addiu $at, $at, 8191 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (8191)); label_BFC0A9F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0A9F0: 00012B43 sra $a1, $at, 13 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[1] >> 13u); @@ -30466,6 +37555,9 @@ label_BFC0A9F0: cpu->gpr[13] = cpu->gpr[6] << 5u; if (psx_taken_BFC0A9F8) goto label_BFC0AA10; label_BFC0AA00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AA00: 240A0052 addiu $t2, $zero, 82 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (82)); @@ -30476,10 +37568,16 @@ label_BFC0AA00: cpu->gpr[9] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC0AA04) goto label_BFC0AA90; label_BFC0AA0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AA0C: 00066940 sll $t5, $a2, 5 */ cpu->gpr[13] = cpu->gpr[6] << 5u; label_BFC0AA10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AA10: 010D1821 addu $v1, $t0, $t5 */ cpu->gpr[3] = cpu->gpr[8] + cpu->gpr[13]; @@ -30494,6 +37592,9 @@ label_BFC0AA10: /* nop */ if (psx_taken_BFC0AA1C) goto label_BFC0AA2C; label_BFC0AA24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AA24: 1000001A beq $zero, $zero, 0xBFC0AA90 */ uint32_t psx_brA_BFC0AA24 = cpu->gpr[0]; uint32_t psx_brB_BFC0AA24 = cpu->gpr[0]; @@ -30502,6 +37603,9 @@ label_BFC0AA24: cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (82)); if (psx_taken_BFC0AA24) goto label_BFC0AA90; label_BFC0AA2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AA2C: 8C6E0000 lw $t6, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AA2Cu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -30514,6 +37618,9 @@ label_BFC0AA2C: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (162)); if (psx_taken_BFC0AA34) goto label_BFC0AA48; label_BFC0AA3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AA3C: 10000014 beq $zero, $zero, 0xBFC0AA90 */ uint32_t psx_brA_BFC0AA3C = cpu->gpr[0]; uint32_t psx_brB_BFC0AA3C = cpu->gpr[0]; @@ -30522,16 +37629,25 @@ label_BFC0AA3C: cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (82)); if (psx_taken_BFC0AA3C) goto label_BFC0AA90; label_BFC0AA44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AA44: 240400A2 addiu $a0, $zero, 162 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (162)); label_BFC0AA48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AA48: 240A0052 addiu $t2, $zero, 82 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (82)); /* 0xBFC0AA4C: 00067880 sll $t7, $a2, 2 */ cpu->gpr[15] = cpu->gpr[6] << 2u; label_BFC0AA50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AA50: AC640000 sw $a0, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AA50u); return; } g_debug_last_store_pc = 0xBFC0AA50u; cpu->write_word(psx_addr, cpu->gpr[4]); } @@ -30548,6 +37664,9 @@ label_BFC0AA50: cpu->gpr[6] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC0AA60) goto label_BFC0AA90; label_BFC0AA68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AA68: 0006C940 sll $t9, $a2, 5 */ cpu->gpr[25] = cpu->gpr[6] << 5u; @@ -30564,6 +37683,9 @@ label_BFC0AA68: /* nop */ if (psx_taken_BFC0AA78) goto label_BFC0AA90; label_BFC0AA80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AA80: 8C6B0000 lw $t3, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AA80u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -30576,6 +37698,9 @@ label_BFC0AA80: cpu->gpr[15] = cpu->gpr[6] << 2u; if (psx_taken_BFC0AA88) goto label_BFC0AA50; label_BFC0AA90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AA90: 18A00011 blez $a1, 0xBFC0AAD8 */ uint32_t psx_brA_BFC0AA90 = cpu->gpr[5]; @@ -30584,6 +37709,9 @@ label_BFC0AA90: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AA94u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } if (psx_taken_BFC0AA90) goto label_BFC0AAD8; label_BFC0AA98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AA98: 00066140 sll $t4, $a2, 5 */ cpu->gpr[12] = cpu->gpr[6] << 5u; @@ -30600,6 +37728,9 @@ label_BFC0AA98: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AAACu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } if (psx_taken_BFC0AAA8) goto label_BFC0AAD8; label_BFC0AAB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AAB0: 8C6E0000 lw $t6, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AAB0u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -30612,6 +37743,9 @@ label_BFC0AAB0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AABCu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } if (psx_taken_BFC0AAB8) goto label_BFC0AAD8; label_BFC0AAC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AAC0: 240F00A3 addiu $t7, $zero, 163 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (163)); @@ -30626,6 +37760,9 @@ label_BFC0AAC0: /* 0xBFC0AAD4: 8FA4003C lw $a0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AAD4u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } label_BFC0AAD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AAD8: 27A50044 addiu $a1, $sp, 68 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[29] + (68)); @@ -30635,6 +37772,9 @@ label_BFC0AAD8: cpu->gpr[31] = 0xBFC0AAE4u; psx_dispatch(cpu, 0xBFC098A8u); label_BFC0AAE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AAE4: 8FA80028 lw $t0, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AAE4u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -30645,6 +37785,9 @@ label_BFC0AAE4: cpu->gpr[9] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC0AAE8) goto label_BFC0AB44; label_BFC0AAF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AAF0: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -30655,6 +37798,9 @@ label_BFC0AAF0: /* 0xBFC0AAFC: 2406000F addiu $a2, $zero, 15 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[0] + (15)); label_BFC0AB00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AB00: 8C6BFFBC lw $t3, -68($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (-68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AB00u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -30667,6 +37813,9 @@ label_BFC0AB00: /* nop */ if (psx_taken_BFC0AB08) goto label_BFC0AB24; label_BFC0AB10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AB10: 00046140 sll $t4, $a0, 5 */ cpu->gpr[12] = cpu->gpr[4] << 5u; @@ -30679,6 +37828,9 @@ label_BFC0AB10: /* 0xBFC0AB20: AC450000 sw $a1, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AB20u); return; } g_debug_last_store_pc = 0xBFC0AB20u; cpu->write_word(psx_addr, cpu->gpr[5]); } label_BFC0AB24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AB24: 24840001 addiu $a0, $a0, 1 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (1)); @@ -30689,6 +37841,9 @@ label_BFC0AB24: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_taken_BFC0AB28) goto label_BFC0AB00; label_BFC0AB30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AB30: 8FAE0088 lw $t6, 136($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (136)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AB30u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -30703,6 +37858,9 @@ label_BFC0AB30: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[14] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AB40u); return; } g_debug_last_store_pc = 0xBFC0AB40u; cpu->write_word(psx_addr, cpu->gpr[13]); } if (psx_taken_BFC0AB3C) goto label_BFC0AB50; label_BFC0AB44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AB44: 8FAF0088 lw $t7, 136($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (136)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AB44u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -30711,6 +37869,9 @@ label_BFC0AB44: /* 0xBFC0AB4C: ADE00018 sw $zero, 24($t7) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[15] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AB4Cu); return; } g_debug_last_store_pc = 0xBFC0AB4Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC0AB50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AB50: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AB50u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -30740,6 +37901,9 @@ void func_1FC0AB60(CPUState* cpu) { } } label_BFC0AB60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AB60: 27BDFF78 addiu $sp, $sp, -136 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-136)); @@ -30770,10 +37934,16 @@ label_BFC0AB60: cpu->gpr[1] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC0AB8C) goto label_BFC0AB98; label_BFC0AB94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AB94: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC0AB98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AB98: 00011903 sra $v1, $at, 4 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -30792,6 +37962,9 @@ label_BFC0AB98: /* nop */ if (psx_taken_BFC0ABAC) goto label_BFC0ABBC; label_BFC0ABB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0ABB4: 10000050 beq $zero, $zero, 0xBFC0ACF8 */ uint32_t psx_brA_BFC0ABB4 = cpu->gpr[0]; uint32_t psx_brB_BFC0ABB4 = cpu->gpr[0]; @@ -30800,6 +37973,9 @@ label_BFC0ABB4: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC0ABB4) goto label_BFC0ACF8; label_BFC0ABBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0ABBC: AFA20040 sw $v0, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0ABBCu); return; } g_debug_last_store_pc = 0xBFC0ABBCu; cpu->write_word(psx_addr, cpu->gpr[2]); } @@ -30809,6 +37985,9 @@ label_BFC0ABBC: cpu->gpr[31] = 0xBFC0ABC8u; psx_dispatch(cpu, 0xBFC0884Cu); label_BFC0ABC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0ABC8: 8FA40040 lw $a0, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0ABC8u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -30818,6 +37997,9 @@ label_BFC0ABC8: cpu->gpr[31] = 0xBFC0ABD4u; psx_dispatch(cpu, 0xBFC089C0u); label_BFC0ABD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0ABD4: 14400003 bne $v0, $zero, 0xBFC0ABE4 */ uint32_t psx_brA_BFC0ABD4 = cpu->gpr[2]; uint32_t psx_brB_BFC0ABD4 = cpu->gpr[0]; @@ -30826,6 +38008,9 @@ label_BFC0ABD4: /* nop */ if (psx_taken_BFC0ABD4) goto label_BFC0ABE4; label_BFC0ABDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0ABDC: 10000046 beq $zero, $zero, 0xBFC0ACF8 */ uint32_t psx_brA_BFC0ABDC = cpu->gpr[0]; uint32_t psx_brB_BFC0ABDC = cpu->gpr[0]; @@ -30834,6 +38019,9 @@ label_BFC0ABDC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC0ABDC) goto label_BFC0ACF8; label_BFC0ABE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0ABE4: 0FF036E0 jal 0xBFC0DB80 */ /* 0xBFC0ABE8: 00002021 addu $a0, $zero, $zero */ @@ -30841,6 +38029,9 @@ label_BFC0ABE4: cpu->gpr[31] = 0xBFC0ABECu; psx_dispatch(cpu, 0xBFC0DB80u); label_BFC0ABEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0ABEC: 8FA40040 lw $a0, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0ABECu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -30852,6 +38043,9 @@ label_BFC0ABEC: cpu->gpr[31] = 0xBFC0ABFCu; psx_dispatch(cpu, 0xBFC0A754u); label_BFC0ABFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0ABFC: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -30862,6 +38056,9 @@ label_BFC0ABFC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AC04u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } if (psx_taken_BFC0AC00) goto label_BFC0AC1C; label_BFC0AC08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AC08: 24190011 addiu $t9, $zero, 17 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (17)); @@ -30874,10 +38071,16 @@ label_BFC0AC08: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC0AC10) goto label_BFC0ACF8; label_BFC0AC18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AC18: 8FA40040 lw $a0, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AC18u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } label_BFC0AC1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AC1C: 8FA6008C lw $a2, 140($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (140)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AC1Cu); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -30887,6 +38090,9 @@ label_BFC0AC1C: cpu->gpr[31] = 0xBFC0AC28u; psx_dispatch(cpu, 0xBFC0A754u); label_BFC0AC28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AC28: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -30897,6 +38103,9 @@ label_BFC0AC28: cpu->gpr[6] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC0AC2C) goto label_BFC0AC44; label_BFC0AC34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AC34: 24080002 addiu $t0, $zero, 2 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); @@ -30909,6 +38118,9 @@ label_BFC0AC34: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC0AC3C) goto label_BFC0ACF8; label_BFC0AC44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AC44: AFA00044 sw $zero, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AC44u); return; } g_debug_last_store_pc = 0xBFC0AC44u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -30923,6 +38135,9 @@ label_BFC0AC44: /* 0xBFC0AC58: 27A20094 addiu $v0, $sp, 148 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[29] + (148)); label_BFC0AC5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AC5C: AC40FFBC sw $zero, -68($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (-68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AC5Cu); return; } g_debug_last_store_pc = 0xBFC0AC5Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -30939,6 +38154,9 @@ label_BFC0AC5C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (-72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AC70u); return; } g_debug_last_store_pc = 0xBFC0AC70u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC0AC6C) goto label_BFC0AC5C; label_BFC0AC74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AC74: 8FA90034 lw $t1, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AC74u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -30968,6 +38186,9 @@ label_BFC0AC74: cpu->gpr[31] = 0xBFC0ACA8u; psx_dispatch(cpu, 0xBFC033C8u); label_BFC0ACA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0ACA8: 8FA60080 lw $a2, 128($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (128)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0ACA8u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -30987,6 +38208,9 @@ label_BFC0ACA8: cpu->gpr[31] = 0xBFC0ACC8u; psx_dispatch(cpu, 0xBFC098A8u); label_BFC0ACC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0ACC8: 10400009 beq $v0, $zero, 0xBFC0ACF0 */ uint32_t psx_brA_BFC0ACC8 = cpu->gpr[2]; uint32_t psx_brB_BFC0ACC8 = cpu->gpr[0]; @@ -30995,6 +38219,9 @@ label_BFC0ACC8: /* nop */ if (psx_taken_BFC0ACC8) goto label_BFC0ACF0; label_BFC0ACD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0ACD0: 8FA40030 lw $a0, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0ACD0u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -31006,6 +38233,9 @@ label_BFC0ACD0: cpu->gpr[31] = 0xBFC0ACE0u; psx_dispatch(cpu, 0xBFC033C8u); label_BFC0ACE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0ACE0: 24190010 addiu $t9, $zero, 16 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); @@ -31018,12 +38248,18 @@ label_BFC0ACE0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC0ACE8) goto label_BFC0ACF8; label_BFC0ACF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0ACF0: AE000018 sw $zero, 24($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0ACF0u); return; } g_debug_last_store_pc = 0xBFC0ACF0u; cpu->write_word(psx_addr, cpu->gpr[0]); } /* 0xBFC0ACF4: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC0ACF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0ACF8: 8FBF002C lw $ra, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0ACF8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -31053,6 +38289,9 @@ void func_1FC0AD08(CPUState* cpu) { } } label_BFC0AD08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AD08: 27BDFF70 addiu $sp, $sp, -144 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-144)); @@ -31075,10 +38314,16 @@ label_BFC0AD08: cpu->gpr[1] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC0AD24) goto label_BFC0AD30; label_BFC0AD2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AD2C: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC0AD30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AD30: 00011103 sra $v0, $at, 4 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -31097,6 +38342,9 @@ label_BFC0AD30: /* nop */ if (psx_taken_BFC0AD44) goto label_BFC0AD54; label_BFC0AD4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AD4C: 100000D9 beq $zero, $zero, 0xBFC0B0B4 */ uint32_t psx_brA_BFC0AD4C = cpu->gpr[0]; uint32_t psx_brB_BFC0AD4C = cpu->gpr[0]; @@ -31105,6 +38353,9 @@ label_BFC0AD4C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC0AD4C) goto label_BFC0B0B4; label_BFC0AD54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AD54: AFA20038 sw $v0, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AD54u); return; } g_debug_last_store_pc = 0xBFC0AD54u; cpu->write_word(psx_addr, cpu->gpr[2]); } @@ -31116,6 +38367,9 @@ label_BFC0AD54: cpu->gpr[31] = 0xBFC0AD64u; psx_dispatch(cpu, 0xBFC0884Cu); label_BFC0AD64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AD64: 8FA40044 lw $a0, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AD64u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -31125,6 +38379,9 @@ label_BFC0AD64: cpu->gpr[31] = 0xBFC0AD70u; psx_dispatch(cpu, 0xBFC089C0u); label_BFC0AD70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AD70: 14400003 bne $v0, $zero, 0xBFC0AD80 */ uint32_t psx_brA_BFC0AD70 = cpu->gpr[2]; uint32_t psx_brB_BFC0AD70 = cpu->gpr[0]; @@ -31133,6 +38390,9 @@ label_BFC0AD70: /* nop */ if (psx_taken_BFC0AD70) goto label_BFC0AD80; label_BFC0AD78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AD78: 100000CE beq $zero, $zero, 0xBFC0B0B4 */ uint32_t psx_brA_BFC0AD78 = cpu->gpr[0]; uint32_t psx_brB_BFC0AD78 = cpu->gpr[0]; @@ -31141,6 +38401,9 @@ label_BFC0AD78: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC0AD78) goto label_BFC0B0B4; label_BFC0AD80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AD80: 0FF036E0 jal 0xBFC0DB80 */ /* 0xBFC0AD84: 00002021 addu $a0, $zero, $zero */ @@ -31148,6 +38411,9 @@ label_BFC0AD80: cpu->gpr[31] = 0xBFC0AD88u; psx_dispatch(cpu, 0xBFC0DB80u); label_BFC0AD88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AD88: 8FA40044 lw $a0, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AD88u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -31159,6 +38425,9 @@ label_BFC0AD88: cpu->gpr[31] = 0xBFC0AD98u; psx_dispatch(cpu, 0xBFC0A754u); label_BFC0AD98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AD98: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -31169,6 +38438,9 @@ label_BFC0AD98: /* nop */ if (psx_taken_BFC0AD9C) goto label_BFC0ADB8; label_BFC0ADA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0ADA4: 8FAD0090 lw $t5, 144($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (144)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0ADA4u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -31183,6 +38455,9 @@ label_BFC0ADA4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[13] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0ADB4u); return; } g_debug_last_store_pc = 0xBFC0ADB4u; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC0ADB0) goto label_BFC0B0B4; label_BFC0ADB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0ADB8: 0FF036E0 jal 0xBFC0DB80 */ /* 0xBFC0ADBC: 24040001 addiu $a0, $zero, 1 */ @@ -31190,6 +38465,9 @@ label_BFC0ADB8: cpu->gpr[31] = 0xBFC0ADC0u; psx_dispatch(cpu, 0xBFC0DB80u); label_BFC0ADC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0ADC0: 8FA40044 lw $a0, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0ADC0u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -31201,6 +38479,9 @@ label_BFC0ADC0: cpu->gpr[31] = 0xBFC0ADD0u; psx_dispatch(cpu, 0xBFC0A754u); label_BFC0ADD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0ADD0: 00403821 addu $a3, $v0, $zero */ cpu->gpr[7] = cpu->gpr[2] + cpu->gpr[0]; @@ -31212,6 +38493,9 @@ label_BFC0ADD0: cpu->gpr[31] = 0xBFC0ADE0u; psx_dispatch(cpu, 0xBFC0DB80u); label_BFC0ADE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0ADE0: 8FA70088 lw $a3, 136($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (136)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0ADE0u); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } @@ -31224,6 +38508,9 @@ label_BFC0ADE0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (144)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0ADECu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } if (psx_taken_BFC0ADE8) goto label_BFC0B0A8; label_BFC0ADF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC0ADF0: 8FAE0038 lw $t6, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0ADF0u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -31254,6 +38541,9 @@ label_BFC0ADF0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (144)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AE20u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } if (psx_taken_BFC0AE1C) goto label_BFC0B0A8; label_BFC0AE24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AE24: 94CC0008 lhu $t4, 8($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (8)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AE24u); return; } cpu->gpr[12] = (uint32_t)cpu->read_half(psx_addr); } @@ -31266,6 +38556,9 @@ label_BFC0AE24: cpu->gpr[4] = cpu->gpr[7] + cpu->gpr[0]; if (psx_taken_BFC0AE2C) goto label_BFC0AE3C; label_BFC0AE34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AE34: 10000026 beq $zero, $zero, 0xBFC0AED0 */ uint32_t psx_brA_BFC0AE34 = cpu->gpr[0]; uint32_t psx_brB_BFC0AE34 = cpu->gpr[0]; @@ -31274,6 +38567,9 @@ label_BFC0AE34: cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (162)); if (psx_taken_BFC0AE34) goto label_BFC0AED0; label_BFC0AE3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AE3C: 8CC50004 lw $a1, 4($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AE3Cu); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -31288,10 +38584,16 @@ label_BFC0AE3C: cpu->gpr[1] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC0AE48) goto label_BFC0AE54; label_BFC0AE50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AE50: 24211FFF addiu $at, $at, 8191 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (8191)); label_BFC0AE54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AE54: 00012B43 sra $a1, $at, 13 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[1] >> 13u); @@ -31304,6 +38606,9 @@ label_BFC0AE54: cpu->gpr[14] = cpu->gpr[4] << 5u; if (psx_taken_BFC0AE5C) goto label_BFC0AE70; label_BFC0AE64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AE64: 1000001A beq $zero, $zero, 0xBFC0AED0 */ uint32_t psx_brA_BFC0AE64 = cpu->gpr[0]; uint32_t psx_brB_BFC0AE64 = cpu->gpr[0]; @@ -31312,10 +38617,16 @@ label_BFC0AE64: cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (162)); if (psx_taken_BFC0AE64) goto label_BFC0AED0; label_BFC0AE6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AE6C: 00047140 sll $t6, $a0, 5 */ cpu->gpr[14] = cpu->gpr[4] << 5u; label_BFC0AE70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AE70: 010E1821 addu $v1, $t0, $t6 */ cpu->gpr[3] = cpu->gpr[8] + cpu->gpr[14]; @@ -31330,6 +38641,9 @@ label_BFC0AE70: /* nop */ if (psx_taken_BFC0AE7C) goto label_BFC0AE8C; label_BFC0AE84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AE84: 10000012 beq $zero, $zero, 0xBFC0AED0 */ uint32_t psx_brA_BFC0AE84 = cpu->gpr[0]; uint32_t psx_brB_BFC0AE84 = cpu->gpr[0]; @@ -31338,6 +38652,9 @@ label_BFC0AE84: cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (162)); if (psx_taken_BFC0AE84) goto label_BFC0AED0; label_BFC0AE8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AE8C: 8C6F0000 lw $t7, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AE8Cu); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -31350,10 +38667,16 @@ label_BFC0AE8C: cpu->gpr[13] = cpu->gpr[4] << 5u; if (psx_taken_BFC0AE94) goto label_BFC0AED4; label_BFC0AE9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AE9C: 24A5FFFF addiu $a1, $a1, -1 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (-1)); label_BFC0AEA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AEA0: 18A0000B blez $a1, 0xBFC0AED0 */ uint32_t psx_brA_BFC0AEA0 = cpu->gpr[5]; @@ -31362,6 +38685,9 @@ label_BFC0AEA0: cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC0AEA0) goto label_BFC0AED0; label_BFC0AEA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AEA8: 0004C140 sll $t8, $a0, 5 */ cpu->gpr[24] = cpu->gpr[4] << 5u; @@ -31378,6 +38704,9 @@ label_BFC0AEA8: cpu->gpr[13] = cpu->gpr[4] << 5u; if (psx_taken_BFC0AEB8) goto label_BFC0AED4; label_BFC0AEC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AEC0: 8C790000 lw $t9, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AEC0u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -31390,10 +38719,16 @@ label_BFC0AEC0: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (-1)); if (psx_taken_BFC0AEC8) goto label_BFC0AEA0; label_BFC0AED0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AED0: 00046940 sll $t5, $a0, 5 */ cpu->gpr[13] = cpu->gpr[4] << 5u; label_BFC0AED4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AED4: 010D7021 addu $t6, $t0, $t5 */ cpu->gpr[14] = cpu->gpr[8] + cpu->gpr[13]; @@ -31408,6 +38743,9 @@ label_BFC0AED4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (163)); if (psx_taken_BFC0AEE0) goto label_BFC0AEF0; label_BFC0AEE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AEE8: 1441006F bne $v0, $at, 0xBFC0B0A8 */ uint32_t psx_brA_BFC0AEE8 = cpu->gpr[2]; uint32_t psx_brB_BFC0AEE8 = cpu->gpr[1]; @@ -31416,6 +38754,9 @@ label_BFC0AEE8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (144)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AEECu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } if (psx_taken_BFC0AEE8) goto label_BFC0B0A8; label_BFC0AEF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AEF0: 8CC50004 lw $a1, 4($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AEF0u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -31430,10 +38771,16 @@ label_BFC0AEF0: cpu->gpr[1] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC0AEFC) goto label_BFC0AF08; label_BFC0AF04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AF04: 24211FFF addiu $at, $at, 8191 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (8191)); label_BFC0AF08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AF08: 00012B43 sra $a1, $at, 13 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[1] >> 13u); @@ -31452,6 +38799,9 @@ label_BFC0AF08: /* 0xBFC0AF24: 27A300CC addiu $v1, $sp, 204 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[29] + (204)); label_BFC0AF28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AF28: AC40FFBC sw $zero, -68($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (-68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AF28u); return; } g_debug_last_store_pc = 0xBFC0AF28u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -31468,6 +38818,9 @@ label_BFC0AF28: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (-72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AF3Cu); return; } g_debug_last_store_pc = 0xBFC0AF3Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC0AF38) goto label_BFC0AF28; label_BFC0AF40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AF40: 240F0051 addiu $t7, $zero, 81 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (81)); @@ -31488,6 +38841,9 @@ label_BFC0AF40: cpu->gpr[7] = cpu->gpr[11] + cpu->gpr[0]; if (psx_taken_BFC0AF58) goto label_BFC0AF6C; label_BFC0AF60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AF60: 3404FFFF ori $a0, $zero, 0xFFFF */ cpu->gpr[4] = cpu->gpr[0] | 0xFFFFu; @@ -31498,6 +38854,9 @@ label_BFC0AF60: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (82)); if (psx_taken_BFC0AF64) goto label_BFC0AFE8; label_BFC0AF6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AF6C: 3404FFFF ori $a0, $zero, 0xFFFF */ cpu->gpr[4] = cpu->gpr[0] | 0xFFFFu; @@ -31508,6 +38867,9 @@ label_BFC0AF6C: cpu->gpr[14] = cpu->gpr[7] << 5u; if (psx_taken_BFC0AF70) goto label_BFC0AF84; label_BFC0AF78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AF78: 1000001B beq $zero, $zero, 0xBFC0AFE8 */ uint32_t psx_brA_BFC0AF78 = cpu->gpr[0]; uint32_t psx_brB_BFC0AF78 = cpu->gpr[0]; @@ -31516,10 +38878,16 @@ label_BFC0AF78: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (82)); if (psx_taken_BFC0AF78) goto label_BFC0AFE8; label_BFC0AF80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AF80: 00077140 sll $t6, $a3, 5 */ cpu->gpr[14] = cpu->gpr[7] << 5u; label_BFC0AF84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AF84: 010E3021 addu $a2, $t0, $t6 */ cpu->gpr[6] = cpu->gpr[8] + cpu->gpr[14]; @@ -31534,6 +38902,9 @@ label_BFC0AF84: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (82)); if (psx_taken_BFC0AF90) goto label_BFC0AFA4; label_BFC0AF98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AF98: 10000013 beq $zero, $zero, 0xBFC0AFE8 */ uint32_t psx_brA_BFC0AF98 = cpu->gpr[0]; uint32_t psx_brB_BFC0AF98 = cpu->gpr[0]; @@ -31542,16 +38913,25 @@ label_BFC0AF98: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (82)); if (psx_taken_BFC0AF98) goto label_BFC0AFE8; label_BFC0AFA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AFA0: 24020052 addiu $v0, $zero, 82 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (82)); label_BFC0AFA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AFA4: 24030052 addiu $v1, $zero, 82 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (82)); /* 0xBFC0AFA8: 0007C080 sll $t8, $a3, 2 */ cpu->gpr[24] = cpu->gpr[7] << 2u; label_BFC0AFAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AFAC: ACC20000 sw $v0, 0($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AFACu); return; } g_debug_last_store_pc = 0xBFC0AFACu; cpu->write_word(psx_addr, cpu->gpr[2]); } @@ -31570,6 +38950,9 @@ label_BFC0AFAC: /* nop */ if (psx_taken_BFC0AFC0) goto label_BFC0AFE8; label_BFC0AFC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AFC8: 10E40007 beq $a3, $a0, 0xBFC0AFE8 */ uint32_t psx_brA_BFC0AFC8 = cpu->gpr[7]; uint32_t psx_brB_BFC0AFC8 = cpu->gpr[4]; @@ -31578,6 +38961,9 @@ label_BFC0AFC8: /* nop */ if (psx_taken_BFC0AFC8) goto label_BFC0AFE8; label_BFC0AFD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AFD0: 00076940 sll $t5, $a3, 5 */ cpu->gpr[13] = cpu->gpr[7] << 5u; @@ -31594,6 +38980,9 @@ label_BFC0AFD0: cpu->gpr[24] = cpu->gpr[7] << 2u; if (psx_taken_BFC0AFE0) goto label_BFC0AFAC; label_BFC0AFE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AFE8: 18A0000E blez $a1, 0xBFC0B024 */ uint32_t psx_brA_BFC0AFE8 = cpu->gpr[5]; @@ -31602,6 +38991,9 @@ label_BFC0AFE8: /* nop */ if (psx_taken_BFC0AFE8) goto label_BFC0B024; label_BFC0AFF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AFF0: 10E4000D beq $a3, $a0, 0xBFC0B028 */ uint32_t psx_brA_BFC0AFF0 = cpu->gpr[7]; uint32_t psx_brB_BFC0AFF0 = cpu->gpr[4]; @@ -31610,6 +39002,9 @@ label_BFC0AFF0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0AFF4u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } if (psx_taken_BFC0AFF0) goto label_BFC0B028; label_BFC0AFF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0AFF8: 00077940 sll $t7, $a3, 5 */ cpu->gpr[15] = cpu->gpr[7] << 5u; @@ -31626,6 +39021,9 @@ label_BFC0AFF8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B00Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } if (psx_taken_BFC0B008) goto label_BFC0B028; label_BFC0B010: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B010: 24190053 addiu $t9, $zero, 83 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (83)); @@ -31638,10 +39036,16 @@ label_BFC0B010: /* 0xBFC0B020: ADC3004C sw $v1, 76($t6) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[14] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B020u); return; } g_debug_last_store_pc = 0xBFC0B020u; cpu->write_word(psx_addr, cpu->gpr[3]); } label_BFC0B024: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B024: 8FA40044 lw $a0, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B024u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } label_BFC0B028: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B028: 27A5004C addiu $a1, $sp, 76 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[29] + (76)); @@ -31651,6 +39055,9 @@ label_BFC0B028: cpu->gpr[31] = 0xBFC0B034u; psx_dispatch(cpu, 0xBFC098A8u); label_BFC0B034: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B034: 8FA80034 lw $t0, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B034u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -31661,6 +39068,9 @@ label_BFC0B034: cpu->gpr[10] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC0B038) goto label_BFC0B094; label_BFC0B040: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B040: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -31671,6 +39081,9 @@ label_BFC0B040: /* 0xBFC0B04C: 2406000F addiu $a2, $zero, 15 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[0] + (15)); label_BFC0B050: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B050: 8C4FFFBC lw $t7, -68($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (-68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B050u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -31683,6 +39096,9 @@ label_BFC0B050: /* nop */ if (psx_taken_BFC0B058) goto label_BFC0B074; label_BFC0B060: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B060: 0004C140 sll $t8, $a0, 5 */ cpu->gpr[24] = cpu->gpr[4] << 5u; @@ -31695,6 +39111,9 @@ label_BFC0B060: /* 0xBFC0B070: AC650000 sw $a1, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B070u); return; } g_debug_last_store_pc = 0xBFC0B070u; cpu->write_word(psx_addr, cpu->gpr[5]); } label_BFC0B074: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B074: 24840001 addiu $a0, $a0, 1 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (1)); @@ -31705,6 +39124,9 @@ label_BFC0B074: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (4)); if (psx_taken_BFC0B078) goto label_BFC0B050; label_BFC0B080: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B080: 8FAD0090 lw $t5, 144($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (144)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B080u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -31719,6 +39141,9 @@ label_BFC0B080: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[13] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B090u); return; } g_debug_last_store_pc = 0xBFC0B090u; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC0B08C) goto label_BFC0B0B4; label_BFC0B094: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B094: 8FAE0090 lw $t6, 144($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (144)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B094u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -31731,10 +39156,16 @@ label_BFC0B094: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[14] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B0A0u); return; } g_debug_last_store_pc = 0xBFC0B0A0u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC0B09C) goto label_BFC0B0B4; label_BFC0B0A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B0A4: 8FB80090 lw $t8, 144($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (144)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B0A4u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } label_BFC0B0A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B0A8: 240F0002 addiu $t7, $zero, 2 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); @@ -31743,6 +39174,9 @@ label_BFC0B0A8: /* 0xBFC0B0B0: AF0F0018 sw $t7, 24($t8) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[24] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B0B0u); return; } g_debug_last_store_pc = 0xBFC0B0B0u; cpu->write_word(psx_addr, cpu->gpr[15]); } label_BFC0B0B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B0B4: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B0B4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -31766,6 +39200,9 @@ void func_1FC0B0D0(CPUState* cpu) { } } label_BFC0B0D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B0D0: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -31786,10 +39223,16 @@ label_BFC0B0D0: cpu->gpr[1] = cpu->gpr[14] + cpu->gpr[0]; if (psx_taken_BFC0B0E8) goto label_BFC0B0F4; label_BFC0B0F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B0F0: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC0B0F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B0F4: 00017903 sra $t7, $at, 4 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -31808,6 +39251,9 @@ label_BFC0B0F4: /* nop */ if (psx_taken_BFC0B108) goto label_BFC0B120; label_BFC0B110: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B110: 24080010 addiu $t0, $zero, 16 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); @@ -31820,6 +39266,9 @@ label_BFC0B110: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC0B118) goto label_BFC0B160; label_BFC0B120: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B120: 0FF02213 jal 0xBFC0884C */ /* 0xBFC0B124: AFA30018 sw $v1, 24($sp) */ @@ -31827,6 +39276,9 @@ label_BFC0B120: cpu->gpr[31] = 0xBFC0B128u; psx_dispatch(cpu, 0xBFC0884Cu); label_BFC0B128: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B128: 8FA30018 lw $v1, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B128u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -31840,6 +39292,9 @@ label_BFC0B128: cpu->gpr[31] = 0xBFC0B13Cu; psx_dispatch(cpu, 0xBFC0B170u); label_BFC0B13C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B13C: 8FA30018 lw $v1, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B13Cu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -31850,6 +39305,9 @@ label_BFC0B13C: /* nop */ if (psx_taken_BFC0B140) goto label_BFC0B158; label_BFC0B148: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B148: 24090010 addiu $t1, $zero, 16 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); @@ -31862,12 +39320,18 @@ label_BFC0B148: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC0B150) goto label_BFC0B160; label_BFC0B158: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B158: AC600018 sw $zero, 24($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B158u); return; } g_debug_last_store_pc = 0xBFC0B158u; cpu->write_word(psx_addr, cpu->gpr[0]); } /* 0xBFC0B15C: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC0B160: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B160: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B160u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -31903,6 +39367,9 @@ void func_1FC0B170(CPUState* cpu) { } } label_BFC0B170: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B170: 27BDFFA0 addiu $sp, $sp, -96 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-96)); @@ -31929,10 +39396,16 @@ label_BFC0B170: cpu->gpr[1] = cpu->gpr[30] + cpu->gpr[0]; if (psx_taken_BFC0B194) goto label_BFC0B1A0; label_BFC0B19C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B19C: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC0B1A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B1A0: 00011103 sra $v0, $at, 4 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -31948,6 +39421,9 @@ label_BFC0B1A0: cpu->gpr[31] = 0xBFC0B1B8u; psx_dispatch(cpu, 0xBFC01ACCu); label_BFC0B1B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B1B8: 2418004D addiu $t8, $zero, 77 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (77)); @@ -31963,6 +39439,9 @@ label_BFC0B1B8: cpu->gpr[31] = 0xBFC0B1D0u; psx_dispatch(cpu, 0xBFC087C4u); label_BFC0B1D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B1D0: 0FF03684 jal 0xBFC0DA10 */ /* 0xBFC0B1D4: 00000000 nop */ @@ -31970,6 +39449,9 @@ label_BFC0B1D0: cpu->gpr[31] = 0xBFC0B1D8u; psx_dispatch(cpu, 0xBFC0DA10u); label_BFC0B1D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B1D8: 03C02021 addu $a0, $fp, $zero */ cpu->gpr[4] = cpu->gpr[30] + cpu->gpr[0]; @@ -31981,6 +39463,9 @@ label_BFC0B1D8: cpu->gpr[31] = 0xBFC0B1E8u; psx_dispatch(cpu, 0xBFC0DA20u); label_BFC0B1E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B1E8: 24170001 addiu $s7, $zero, 1 */ cpu->gpr[23] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -31991,6 +39476,9 @@ label_BFC0B1E8: /* nop */ if (psx_taken_BFC0B1EC) goto label_BFC0B1FC; label_BFC0B1F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B1F4: 10000061 beq $zero, $zero, 0xBFC0B37C */ uint32_t psx_brA_BFC0B1F4 = cpu->gpr[0]; uint32_t psx_brB_BFC0B1F4 = cpu->gpr[0]; @@ -31999,6 +39487,9 @@ label_BFC0B1F4: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC0B1F4) goto label_BFC0B37C; label_BFC0B1FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B1FC: AFB0003C sw $s0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B1FCu); return; } g_debug_last_store_pc = 0xBFC0B1FCu; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -32016,6 +39507,9 @@ label_BFC0B1FC: cpu->gpr[31] = 0xBFC0B218u; psx_dispatch(cpu, 0xBFC09144u); label_BFC0B218: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B218: 8FA8004C lw $t0, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B218u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -32042,6 +39536,9 @@ label_BFC0B218: /* 0xBFC0B244: 00115940 sll $t3, $s1, 5 */ cpu->gpr[11] = cpu->gpr[17] << 5u; label_BFC0B248: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B248: 02CB8021 addu $s0, $s6, $t3 */ cpu->gpr[16] = cpu->gpr[22] + cpu->gpr[11]; @@ -32053,6 +39550,9 @@ label_BFC0B248: cpu->gpr[31] = 0xBFC0B258u; psx_dispatch(cpu, 0xBFC01ACCu); label_BFC0B258: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B258: AE130000 sw $s3, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B258u); return; } g_debug_last_store_pc = 0xBFC0B258u; cpu->write_word(psx_addr, cpu->gpr[19]); } @@ -32070,6 +39570,9 @@ label_BFC0B258: cpu->gpr[31] = 0xBFC0B274u; psx_dispatch(cpu, 0xBFC02B50u); label_BFC0B274: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B274: 0FF021F1 jal 0xBFC087C4 */ /* 0xBFC0B278: 02402021 addu $a0, $s2, $zero */ @@ -32077,6 +39580,9 @@ label_BFC0B274: cpu->gpr[31] = 0xBFC0B27Cu; psx_dispatch(cpu, 0xBFC087C4u); label_BFC0B27C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B27C: 26300001 addiu $s0, $s1, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); @@ -32090,6 +39596,9 @@ label_BFC0B27C: cpu->gpr[31] = 0xBFC0B290u; psx_dispatch(cpu, 0xBFC0DA20u); label_BFC0B290: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B290: 10570009 beq $v0, $s7, 0xBFC0B2B8 */ uint32_t psx_brA_BFC0B290 = cpu->gpr[2]; uint32_t psx_brB_BFC0B290 = cpu->gpr[23]; @@ -32098,6 +39607,9 @@ label_BFC0B290: /* nop */ if (psx_taken_BFC0B290) goto label_BFC0B2B8; label_BFC0B298: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B298: 8FB0003C lw $s0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B298u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -32118,6 +39630,9 @@ label_BFC0B298: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC0B2B0) goto label_BFC0B37C; label_BFC0B2B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B2B8: 0FF02257 jal 0xBFC0895C */ /* 0xBFC0B2BC: 00000000 nop */ @@ -32125,6 +39640,9 @@ label_BFC0B2B8: cpu->gpr[31] = 0xBFC0B2C0u; psx_dispatch(cpu, 0xBFC0895Cu); label_BFC0B2C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B2C0: 02008821 addu $s1, $s0, $zero */ cpu->gpr[17] = cpu->gpr[16] + cpu->gpr[0]; @@ -32135,6 +39653,9 @@ label_BFC0B2C0: cpu->gpr[11] = cpu->gpr[17] << 5u; if (psx_taken_BFC0B2C4) goto label_BFC0B248; label_BFC0B2CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B2CC: 8FAC004C lw $t4, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B2CCu); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -32159,6 +39680,9 @@ label_BFC0B2CC: /* 0xBFC0B2F4: 00117880 sll $t7, $s1, 2 */ cpu->gpr[15] = cpu->gpr[17] << 2u; label_BFC0B2F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B2F8: 028F2821 addu $a1, $s4, $t7 */ cpu->gpr[5] = cpu->gpr[20] + cpu->gpr[15]; @@ -32172,6 +39696,9 @@ label_BFC0B2F8: cpu->gpr[31] = 0xBFC0B30Cu; psx_dispatch(cpu, 0xBFC02B50u); label_BFC0B30C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B30C: 0FF021F1 jal 0xBFC087C4 */ /* 0xBFC0B310: 02402021 addu $a0, $s2, $zero */ @@ -32179,6 +39706,9 @@ label_BFC0B30C: cpu->gpr[31] = 0xBFC0B314u; psx_dispatch(cpu, 0xBFC087C4u); label_BFC0B314: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B314: 03C02021 addu $a0, $fp, $zero */ cpu->gpr[4] = cpu->gpr[30] + cpu->gpr[0]; @@ -32190,6 +39720,9 @@ label_BFC0B314: cpu->gpr[31] = 0xBFC0B324u; psx_dispatch(cpu, 0xBFC0DA20u); label_BFC0B324: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B324: 10570009 beq $v0, $s7, 0xBFC0B34C */ uint32_t psx_brA_BFC0B324 = cpu->gpr[2]; uint32_t psx_brB_BFC0B324 = cpu->gpr[23]; @@ -32198,6 +39731,9 @@ label_BFC0B324: /* nop */ if (psx_taken_BFC0B324) goto label_BFC0B34C; label_BFC0B32C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B32C: 8FB0003C lw $s0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B32Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -32218,6 +39754,9 @@ label_BFC0B32C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC0B344) goto label_BFC0B37C; label_BFC0B34C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B34C: 0FF02257 jal 0xBFC0895C */ /* 0xBFC0B350: 00000000 nop */ @@ -32225,6 +39764,9 @@ label_BFC0B34C: cpu->gpr[31] = 0xBFC0B354u; psx_dispatch(cpu, 0xBFC0895Cu); label_BFC0B354: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B354: 26310001 addiu $s1, $s1, 1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); @@ -32235,6 +39777,9 @@ label_BFC0B354: cpu->gpr[15] = cpu->gpr[17] << 2u; if (psx_taken_BFC0B358) goto label_BFC0B2F8; label_BFC0B360: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B360: 8FB0003C lw $s0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B360u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -32251,6 +39796,9 @@ label_BFC0B360: /* 0xBFC0B378: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC0B37C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B37C: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B37Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -32281,6 +39829,9 @@ void func_1FC0B394(CPUState* cpu) { } } label_BFC0B394: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B394: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -32292,6 +39843,9 @@ label_BFC0B394: cpu->gpr[31] = 0xBFC0B3A4u; psx_dispatch(cpu, 0xBFC0DA30u); label_BFC0B3A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B3A4: 3C07A001 lui $a3, 0xA001 */ cpu->gpr[7] = 0xA0010000u; @@ -32306,10 +39860,16 @@ label_BFC0B3A4: cpu->gpr[1] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC0B3B0) goto label_BFC0B3BC; label_BFC0B3B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B3B8: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC0B3BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B3BC: 00011903 sra $v1, $at, 4 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -32328,6 +39888,9 @@ label_BFC0B3BC: cpu->gpr[8] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC0B3D0) goto label_BFC0B53C; label_BFC0B3D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B3D8: 24010003 addiu $at, $zero, 3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); @@ -32338,6 +39901,9 @@ label_BFC0B3D8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); if (psx_taken_BFC0B3DC) goto label_BFC0B3F4; label_BFC0B3E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B3E4: 10810003 beq $a0, $at, 0xBFC0B3F4 */ uint32_t psx_brA_BFC0B3E4 = cpu->gpr[4]; uint32_t psx_brB_BFC0B3E4 = cpu->gpr[1]; @@ -32346,6 +39912,9 @@ label_BFC0B3E4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (6)); if (psx_taken_BFC0B3E4) goto label_BFC0B3F4; label_BFC0B3EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B3EC: 14810051 bne $a0, $at, 0xBFC0B534 */ uint32_t psx_brA_BFC0B3EC = cpu->gpr[4]; uint32_t psx_brB_BFC0B3EC = cpu->gpr[1]; @@ -32354,6 +39923,9 @@ label_BFC0B3EC: cpu->gpr[4] = cpu->gpr[8] + cpu->gpr[0]; if (psx_taken_BFC0B3EC) goto label_BFC0B534; label_BFC0B3F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B3F4: 0008C880 sll $t9, $t0, 2 */ cpu->gpr[25] = cpu->gpr[8] << 2u; @@ -32391,6 +39963,9 @@ label_BFC0B3F4: cpu->gpr[31] = 0xBFC0B438u; psx_dispatch(cpu, 0xBFC0A3D4u); label_BFC0B438: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B438: 8FA80030 lw $t0, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B438u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -32406,6 +39981,9 @@ label_BFC0B438: cpu->gpr[31] = 0xBFC0B450u; psx_dispatch(cpu, 0xBFC09540u); label_BFC0B450: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B450: 2404FFFF addiu $a0, $zero, -1 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -32420,10 +39998,16 @@ label_BFC0B450: cpu->gpr[9] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC0B45C) goto label_BFC0B468; label_BFC0B464: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B464: 00E04821 addu $t1, $a3, $zero */ cpu->gpr[9] = cpu->gpr[7] + cpu->gpr[0]; label_BFC0B468: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B468: 00087080 sll $t6, $t0, 2 */ cpu->gpr[14] = cpu->gpr[8] << 2u; @@ -32442,6 +40026,9 @@ label_BFC0B468: /* 0xBFC0B484: 24020014 addiu $v0, $zero, 20 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (20)); label_BFC0B488: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B488: 8C790000 lw $t9, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B488u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -32454,6 +40041,9 @@ label_BFC0B488: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[7] < (20) ? 1 : 0); if (psx_taken_BFC0B490) goto label_BFC0B4A8; label_BFC0B498: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B498: 24E70001 addiu $a3, $a3, 1 */ cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[7] + (1)); @@ -32464,10 +40054,16 @@ label_BFC0B498: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_taken_BFC0B49C) goto label_BFC0B488; label_BFC0B4A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B4A4: 28E10014 slti $at, $a3, 20 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[7] < (20) ? 1 : 0); label_BFC0B4A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B4A8: 10200022 beq $at, $zero, 0xBFC0B534 */ uint32_t psx_brA_BFC0B4A8 = cpu->gpr[1]; uint32_t psx_brB_BFC0B4A8 = cpu->gpr[0]; @@ -32476,6 +40072,9 @@ label_BFC0B4A8: cpu->gpr[4] = cpu->gpr[8] + cpu->gpr[0]; if (psx_taken_BFC0B4A8) goto label_BFC0B534; label_BFC0B4B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B4B0: 0008C080 sll $t8, $t0, 2 */ cpu->gpr[24] = cpu->gpr[8] << 2u; @@ -32503,6 +40102,9 @@ label_BFC0B4B0: cpu->gpr[31] = 0xBFC0B4E0u; psx_dispatch(cpu, 0xBFC0DA20u); label_BFC0B4E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B4E0: 8FA30020 lw $v1, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B4E0u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -32521,6 +40123,9 @@ label_BFC0B4E0: cpu->gpr[4] = cpu->gpr[8] + cpu->gpr[0]; if (psx_taken_BFC0B4F4) goto label_BFC0B534; label_BFC0B4FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B4FC: 240AFFFE addiu $t2, $zero, -2 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (-2)); @@ -32551,10 +40156,16 @@ label_BFC0B4FC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-17952)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B52Cu); return; } g_debug_last_store_pc = 0xBFC0B52Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC0B528) goto label_BFC0B53C; label_BFC0B530: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B530: 01002021 addu $a0, $t0, $zero */ cpu->gpr[4] = cpu->gpr[8] + cpu->gpr[0]; label_BFC0B534: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B534: 0FF02FFC jal 0xBFC0BFF0 */ /* 0xBFC0B538: 34058000 ori $a1, $zero, 0x8000 */ @@ -32562,6 +40173,9 @@ label_BFC0B534: cpu->gpr[31] = 0xBFC0B53Cu; psx_dispatch(cpu, 0xBFC0BFF0u); label_BFC0B53C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B53C: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B53Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -32585,6 +40199,9 @@ void func_1FC0B54C(CPUState* cpu) { } } label_BFC0B54C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B54C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -32596,6 +40213,9 @@ label_BFC0B54C: cpu->gpr[31] = 0xBFC0B55Cu; psx_dispatch(cpu, 0xBFC0DA30u); label_BFC0B55C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B55C: 04410002 bgez $v0, 0xBFC0B568 */ uint32_t psx_brA_BFC0B55C = cpu->gpr[2]; @@ -32604,10 +40224,16 @@ label_BFC0B55C: cpu->gpr[1] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC0B55C) goto label_BFC0B568; label_BFC0B564: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B564: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC0B568: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B568: 00011903 sra $v1, $at, 4 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -32628,6 +40254,9 @@ label_BFC0B568: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B584u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0B580) goto label_BFC0B594; label_BFC0B588: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B588: 0FF02FFC jal 0xBFC0BFF0 */ /* 0xBFC0B58C: 24050100 addiu $a1, $zero, 256 */ @@ -32635,10 +40264,16 @@ label_BFC0B588: cpu->gpr[31] = 0xBFC0B590u; psx_dispatch(cpu, 0xBFC0BFF0u); label_BFC0B590: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B590: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B590u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC0B594: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B594: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -32660,6 +40295,9 @@ void func_1FC0B5A0(CPUState* cpu) { } } label_BFC0B5A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B5A0: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -32671,6 +40309,9 @@ label_BFC0B5A0: cpu->gpr[31] = 0xBFC0B5B0u; psx_dispatch(cpu, 0xBFC0DA30u); label_BFC0B5B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B5B0: 04410002 bgez $v0, 0xBFC0B5BC */ uint32_t psx_brA_BFC0B5B0 = cpu->gpr[2]; @@ -32679,10 +40320,16 @@ label_BFC0B5B0: cpu->gpr[1] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC0B5B0) goto label_BFC0B5BC; label_BFC0B5B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B5B8: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC0B5BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B5BC: 00011903 sra $v1, $at, 4 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -32703,6 +40350,9 @@ label_BFC0B5BC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B5D8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0B5D4) goto label_BFC0B5E8; label_BFC0B5DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B5DC: 0FF02FFC jal 0xBFC0BFF0 */ /* 0xBFC0B5E0: 34058000 ori $a1, $zero, 0x8000 */ @@ -32710,10 +40360,16 @@ label_BFC0B5DC: cpu->gpr[31] = 0xBFC0B5E4u; psx_dispatch(cpu, 0xBFC0BFF0u); label_BFC0B5E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B5E4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B5E4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC0B5E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B5E8: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -32735,6 +40391,9 @@ void func_1FC0B5F4(CPUState* cpu) { } } label_BFC0B5F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B5F4: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -32746,6 +40405,9 @@ label_BFC0B5F4: cpu->gpr[31] = 0xBFC0B604u; psx_dispatch(cpu, 0xBFC0DA30u); label_BFC0B604: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B604: 04410002 bgez $v0, 0xBFC0B610 */ uint32_t psx_brA_BFC0B604 = cpu->gpr[2]; @@ -32754,10 +40416,16 @@ label_BFC0B604: cpu->gpr[1] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC0B604) goto label_BFC0B610; label_BFC0B60C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B60C: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC0B610: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B610: 00011903 sra $v1, $at, 4 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -32778,6 +40446,9 @@ label_BFC0B610: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B62Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0B628) goto label_BFC0B63C; label_BFC0B630: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B630: 0FF02FFC jal 0xBFC0BFF0 */ /* 0xBFC0B634: 24052000 addiu $a1, $zero, 8192 */ @@ -32785,10 +40456,16 @@ label_BFC0B630: cpu->gpr[31] = 0xBFC0B638u; psx_dispatch(cpu, 0xBFC0BFF0u); label_BFC0B638: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B638: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B638u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC0B63C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B63C: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -32827,6 +40504,9 @@ void func_1FC0B648(CPUState* cpu) { } } label_BFC0B648: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B648: 27BDFF58 addiu $sp, $sp, -168 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-168)); @@ -32838,6 +40518,9 @@ label_BFC0B648: cpu->gpr[31] = 0xBFC0B658u; psx_dispatch(cpu, 0xBFC0DA30u); label_BFC0B658: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B658: 3C07A001 lui $a3, 0xA001 */ cpu->gpr[7] = 0xA0010000u; @@ -32852,10 +40535,16 @@ label_BFC0B658: cpu->gpr[1] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC0B664) goto label_BFC0B670; label_BFC0B66C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B66C: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC0B670: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B670: 00013103 sra $a2, $at, 4 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -32874,6 +40563,9 @@ label_BFC0B670: cpu->gpr[17] = cpu->gpr[6] + cpu->gpr[0]; if (psx_taken_BFC0B684) { cpu->pc = 0xBFC0BFE0u; return; } label_BFC0B68C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B68C: 00801821 addu $v1, $a0, $zero */ cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[0]; @@ -32888,6 +40580,9 @@ label_BFC0B68C: /* nop */ if (psx_taken_BFC0B698) { cpu->pc = 0xBFC0BFB8u; return; } label_BFC0B6A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B6A0: 000F7880 sll $t7, $t7, 2 */ cpu->gpr[15] = cpu->gpr[15] << 2u; @@ -32912,6 +40607,9 @@ label_BFC0B6A0: default: cpu->pc = cpu->gpr[15]; return; } label_BFC0B6BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B6BC: 3C19A001 lui $t9, 0xA001 */ cpu->gpr[25] = 0xA0010000u; @@ -32934,6 +40632,9 @@ label_BFC0B6BC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B6DCu); return; } g_debug_last_store_pc = 0xBFC0B6DCu; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC0B6D8) goto label_BFC0B714; label_BFC0B6E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B6E0: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -32943,6 +40644,9 @@ label_BFC0B6E0: cpu->gpr[31] = 0xBFC0B6ECu; psx_dispatch(cpu, 0xBFC0BFF0u); label_BFC0B6EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B6EC: 00115080 sll $t2, $s1, 2 */ cpu->gpr[10] = cpu->gpr[17] << 2u; @@ -32962,6 +40666,9 @@ label_BFC0B6EC: cpu->gpr[31] = 0xBFC0B70Cu; psx_dispatch(cpu, 0xBFC0D970u); label_BFC0B70C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B70C: 10000235 beq $zero, $zero, 0xBFC0BFE4 */ uint32_t psx_brA_BFC0B70C = cpu->gpr[0]; uint32_t psx_brB_BFC0B70C = cpu->gpr[0]; @@ -32970,6 +40677,9 @@ label_BFC0B70C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B710u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0B70C) { cpu->pc = 0xBFC0BFE4u; return; } label_BFC0B714: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(29u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B714: 3C0DA001 lui $t5, 0xA001 */ cpu->gpr[13] = 0xA0010000u; @@ -33031,6 +40741,9 @@ label_BFC0B714: cpu->gpr[31] = 0xBFC0B788u; psx_dispatch(cpu, 0xBFC0A3D4u); label_BFC0B788: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B788: 8FA70048 lw $a3, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B788u); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } @@ -33044,6 +40757,9 @@ label_BFC0B788: cpu->gpr[31] = 0xBFC0B79Cu; psx_dispatch(cpu, 0xBFC09540u); label_BFC0B79C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B79C: 2403FFFF addiu $v1, $zero, -1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -33056,10 +40772,16 @@ label_BFC0B79C: cpu->gpr[5] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC0B7A4) goto label_BFC0B7B0; label_BFC0B7AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B7AC: 02002821 addu $a1, $s0, $zero */ cpu->gpr[5] = cpu->gpr[16] + cpu->gpr[0]; label_BFC0B7B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B7B0: 8FA400A4 lw $a0, 164($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (164)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B7B0u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -33071,6 +40793,9 @@ label_BFC0B7B0: cpu->gpr[31] = 0xBFC0B7C0u; psx_dispatch(cpu, 0xBFC0DA00u); label_BFC0B7C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B7C0: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -33081,6 +40806,9 @@ label_BFC0B7C0: cpu->gpr[1] = 0xA0010000u; if (psx_taken_BFC0B7C4) goto label_BFC0B7E8; label_BFC0B7CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B7CC: AC20B9D0 sw $zero, -17968($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-17968)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B7CCu); return; } g_debug_last_store_pc = 0xBFC0B7CCu; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -33098,6 +40826,9 @@ label_BFC0B7CC: cpu->gpr[31] = 0xBFC0B7E8u; psx_dispatch(cpu, 0xBFC0BFF0u); label_BFC0B7E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B7E8: 8FB00038 lw $s0, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B7E8u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -33108,6 +40839,9 @@ label_BFC0B7E8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B7F0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0B7EC) { cpu->pc = 0xBFC0BFE4u; return; } label_BFC0B7F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B7F4: 3C0BA001 lui $t3, 0xA001 */ cpu->gpr[11] = 0xA0010000u; @@ -33130,6 +40864,9 @@ label_BFC0B7F4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B814u); return; } g_debug_last_store_pc = 0xBFC0B814u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC0B810) goto label_BFC0B864; label_BFC0B818: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B818: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -33141,6 +40878,9 @@ label_BFC0B818: cpu->gpr[31] = 0xBFC0B828u; psx_dispatch(cpu, 0xBFC0C0DCu); label_BFC0B828: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B828: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -33151,6 +40891,9 @@ label_BFC0B828: cpu->gpr[14] = cpu->gpr[17] << 2u; if (psx_taken_BFC0B82C) goto label_BFC0B850; label_BFC0B834: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B834: 240C0001 addiu $t4, $zero, 1 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -33166,10 +40909,16 @@ label_BFC0B834: cpu->gpr[31] = 0xBFC0B84Cu; psx_dispatch(cpu, 0xBFC0BFF0u); label_BFC0B84C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B84C: 00117080 sll $t6, $s1, 2 */ cpu->gpr[14] = cpu->gpr[17] << 2u; label_BFC0B850: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B850: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -33184,6 +40933,9 @@ label_BFC0B850: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24800)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B860u); return; } g_debug_last_store_pc = 0xBFC0B860u; cpu->write_word(psx_addr, cpu->gpr[13]); } if (psx_taken_BFC0B85C) { cpu->pc = 0xBFC0BFE0u; return; } label_BFC0B864: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(29u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B864: 3C18A001 lui $t8, 0xA001 */ cpu->gpr[24] = 0xA0010000u; @@ -33245,6 +40997,9 @@ label_BFC0B864: cpu->gpr[31] = 0xBFC0B8D8u; psx_dispatch(cpu, 0xBFC0A3D4u); label_BFC0B8D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B8D8: 8FA70048 lw $a3, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B8D8u); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } @@ -33258,6 +41013,9 @@ label_BFC0B8D8: cpu->gpr[31] = 0xBFC0B8ECu; psx_dispatch(cpu, 0xBFC09540u); label_BFC0B8EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B8EC: 2403FFFF addiu $v1, $zero, -1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -33270,10 +41028,16 @@ label_BFC0B8EC: cpu->gpr[5] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC0B8F4) goto label_BFC0B900; label_BFC0B8FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B8FC: 02002821 addu $a1, $s0, $zero */ cpu->gpr[5] = cpu->gpr[16] + cpu->gpr[0]; label_BFC0B900: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B900: 00116040 sll $t4, $s1, 1 */ cpu->gpr[12] = cpu->gpr[17] << 1u; @@ -33293,6 +41057,9 @@ label_BFC0B900: cpu->gpr[31] = 0xBFC0B920u; psx_dispatch(cpu, 0xBFC0DA20u); label_BFC0B920: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B920: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -33303,6 +41070,9 @@ label_BFC0B920: cpu->gpr[1] = 0xA0010000u; if (psx_taken_BFC0B924) goto label_BFC0B948; label_BFC0B92C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B92C: AC20B9D0 sw $zero, -17968($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-17968)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B92Cu); return; } g_debug_last_store_pc = 0xBFC0B92Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -33320,6 +41090,9 @@ label_BFC0B92C: cpu->gpr[31] = 0xBFC0B948u; psx_dispatch(cpu, 0xBFC0BFF0u); label_BFC0B948: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B948: 8FB00038 lw $s0, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B948u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -33330,6 +41103,9 @@ label_BFC0B948: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B950u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0B94C) { cpu->pc = 0xBFC0BFE4u; return; } label_BFC0B954: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(31u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B954: AFB00038 sw $s0, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B954u); return; } g_debug_last_store_pc = 0xBFC0B954u; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -33395,6 +41171,9 @@ label_BFC0B954: cpu->gpr[31] = 0xBFC0B9D0u; psx_dispatch(cpu, 0xBFC01ACCu); label_BFC0B9D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B9D0: 8FA40040 lw $a0, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B9D0u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -33406,6 +41185,9 @@ label_BFC0B9D0: cpu->gpr[31] = 0xBFC0B9E0u; psx_dispatch(cpu, 0xBFC02B50u); label_BFC0B9E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B9E0: 8FA40040 lw $a0, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B9E0u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -33415,6 +41197,9 @@ label_BFC0B9E0: cpu->gpr[31] = 0xBFC0B9ECu; psx_dispatch(cpu, 0xBFC087C4u); label_BFC0B9EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0B9EC: 8FAC0048 lw $t4, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0B9ECu); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -33430,6 +41215,9 @@ label_BFC0B9EC: cpu->gpr[31] = 0xBFC0BA04u; psx_dispatch(cpu, 0xBFC0DA20u); label_BFC0BA04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BA04: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -33440,6 +41228,9 @@ label_BFC0BA04: cpu->gpr[1] = 0xA0010000u; if (psx_taken_BFC0BA08) goto label_BFC0BA2C; label_BFC0BA10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BA10: AC20B9D0 sw $zero, -17968($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-17968)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BA10u); return; } g_debug_last_store_pc = 0xBFC0BA10u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -33457,6 +41248,9 @@ label_BFC0BA10: cpu->gpr[31] = 0xBFC0BA2Cu; psx_dispatch(cpu, 0xBFC0BFF0u); label_BFC0BA2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BA2C: 8FB00038 lw $s0, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BA2Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -33467,6 +41261,9 @@ label_BFC0BA2C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BA34u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0BA30) { cpu->pc = 0xBFC0BFE4u; return; } label_BFC0BA38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BA38: 240F0003 addiu $t7, $zero, 3 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); @@ -33477,6 +41274,9 @@ label_BFC0BA38: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BA40u); return; } g_debug_last_store_pc = 0xBFC0BA40u; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC0BA3C) goto label_BFC0B7F4; label_BFC0BA44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BA44: 3C0DA001 lui $t5, 0xA001 */ cpu->gpr[13] = 0xA0010000u; @@ -33500,6 +41300,9 @@ label_BFC0BA44: cpu->gpr[31] = 0xBFC0BA6Cu; psx_dispatch(cpu, 0xBFC0D970u); label_BFC0BA6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BA6C: 8E030000 lw $v1, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BA6Cu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -33551,6 +41354,9 @@ void func_1FC0BA8C(CPUState* cpu) { } } label_BFC0BA8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BA8C: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -33560,6 +41366,9 @@ label_BFC0BA8C: cpu->gpr[31] = 0xBFC0BA98u; psx_dispatch(cpu, 0xBFC0BFF0u); label_BFC0BA98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BA98: 10000152 beq $zero, $zero, 0xBFC0BFE4 */ uint32_t psx_brA_BFC0BA98 = cpu->gpr[0]; uint32_t psx_brB_BFC0BA98 = cpu->gpr[0]; @@ -33568,6 +41377,9 @@ label_BFC0BA98: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BA9Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0BA98) goto label_BFC0BFE4; label_BFC0BAA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BAA0: 00066080 sll $t4, $a2, 2 */ cpu->gpr[12] = cpu->gpr[6] << 2u; @@ -33586,6 +41398,9 @@ label_BFC0BAA0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC0BAB4) goto label_BFC0BAD4; label_BFC0BABC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BABC: 1061004F beq $v1, $at, 0xBFC0BBFC */ uint32_t psx_brA_BFC0BABC = cpu->gpr[3]; uint32_t psx_brB_BFC0BABC = cpu->gpr[1]; @@ -33594,6 +41409,9 @@ label_BFC0BABC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); if (psx_taken_BFC0BABC) goto label_BFC0BBFC; label_BFC0BAC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BAC4: 10610105 beq $v1, $at, 0xBFC0BEDC */ uint32_t psx_brA_BFC0BAC4 = cpu->gpr[3]; uint32_t psx_brB_BFC0BAC4 = cpu->gpr[1]; @@ -33602,6 +41420,9 @@ label_BFC0BAC4: /* nop */ if (psx_taken_BFC0BAC4) goto label_BFC0BEDC; label_BFC0BACC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BACC: 1000013A beq $zero, $zero, 0xBFC0BFB8 */ uint32_t psx_brA_BFC0BACC = cpu->gpr[0]; uint32_t psx_brB_BFC0BACC = cpu->gpr[0]; @@ -33610,6 +41431,9 @@ label_BFC0BACC: /* nop */ if (psx_taken_BFC0BACC) goto label_BFC0BFB8; label_BFC0BAD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BAD4: 3C0FA001 lui $t7, 0xA001 */ cpu->gpr[15] = 0xA0010000u; @@ -33630,6 +41454,9 @@ label_BFC0BAD4: /* nop */ if (psx_taken_BFC0BAEC) goto label_BFC0BB00; label_BFC0BAF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BAF4: 904D0001 lbu $t5, 1($v0) */ cpu->gpr[13] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[2] + (1))); @@ -33639,11 +41466,17 @@ label_BFC0BAF4: uint32_t psx_brA_BFC0BAFC = cpu->gpr[13]; uint32_t psx_brB_BFC0BAFC = cpu->gpr[1]; int psx_taken_BFC0BAFC = (psx_brA_BFC0BAFC == psx_brB_BFC0BAFC); label_BFC0BB00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BB00: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; if (psx_taken_BFC0BAFC) goto label_BFC0BB28; label_BFC0BB04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BB04: AC20B9D0 sw $zero, -17968($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-17968)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BB04u); return; } g_debug_last_store_pc = 0xBFC0BB04u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -33661,6 +41494,9 @@ label_BFC0BB04: cpu->gpr[31] = 0xBFC0BB20u; psx_dispatch(cpu, 0xBFC0BFF0u); label_BFC0BB20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BB20: 10000130 beq $zero, $zero, 0xBFC0BFE4 */ uint32_t psx_brA_BFC0BB20 = cpu->gpr[0]; uint32_t psx_brB_BFC0BB20 = cpu->gpr[0]; @@ -33669,6 +41505,9 @@ label_BFC0BB20: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BB24u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0BB20) goto label_BFC0BFE4; label_BFC0BB28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BB28: 00115100 sll $t2, $s1, 4 */ cpu->gpr[10] = cpu->gpr[17] << 4u; @@ -33687,6 +41526,9 @@ label_BFC0BB28: /* 0xBFC0BB44: 00008021 addu $s0, $zero, $zero */ cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; label_BFC0BB48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BB48: 00C02021 addu $a0, $a2, $zero */ cpu->gpr[4] = cpu->gpr[6] + cpu->gpr[0]; @@ -33698,6 +41540,9 @@ label_BFC0BB48: cpu->gpr[31] = 0xBFC0BB58u; psx_dispatch(cpu, 0xBFC01ACCu); label_BFC0BB58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BB58: 8FA60044 lw $a2, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BB58u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -33722,6 +41567,9 @@ label_BFC0BB58: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (32)); if (psx_taken_BFC0BB78) goto label_BFC0BB48; label_BFC0BB80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BB80: 3C18A001 lui $t8, 0xA001 */ cpu->gpr[24] = 0xA0010000u; @@ -33739,6 +41587,9 @@ label_BFC0BB80: cpu->gpr[31] = 0xBFC0BB9Cu; psx_dispatch(cpu, 0xBFC0DA00u); label_BFC0BB9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BB9C: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -33749,6 +41600,9 @@ label_BFC0BB9C: cpu->gpr[1] = 0xA0010000u; if (psx_taken_BFC0BBA0) goto label_BFC0BBCC; label_BFC0BBA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BBA8: AC20B9D0 sw $zero, -17968($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-17968)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BBA8u); return; } g_debug_last_store_pc = 0xBFC0BBA8u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -33766,6 +41620,9 @@ label_BFC0BBA8: cpu->gpr[31] = 0xBFC0BBC4u; psx_dispatch(cpu, 0xBFC0BFF0u); label_BFC0BBC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BBC4: 1000000B beq $zero, $zero, 0xBFC0BBF4 */ uint32_t psx_brA_BFC0BBC4 = cpu->gpr[0]; uint32_t psx_brB_BFC0BBC4 = cpu->gpr[0]; @@ -33774,6 +41631,9 @@ label_BFC0BBC4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BBC8u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } if (psx_taken_BFC0BBC4) goto label_BFC0BBF4; label_BFC0BBCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BBCC: 0011C880 sll $t9, $s1, 2 */ cpu->gpr[25] = cpu->gpr[17] << 2u; @@ -33796,6 +41656,9 @@ label_BFC0BBCC: /* 0xBFC0BBF0: 8FB00038 lw $s0, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BBF0u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } label_BFC0BBF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BBF4: 100000FB beq $zero, $zero, 0xBFC0BFE4 */ uint32_t psx_brA_BFC0BBF4 = cpu->gpr[0]; uint32_t psx_brB_BFC0BBF4 = cpu->gpr[0]; @@ -33804,6 +41667,9 @@ label_BFC0BBF4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BBF8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0BBF4) goto label_BFC0BFE4; label_BFC0BBFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BBFC: 3C0EA001 lui $t6, 0xA001 */ cpu->gpr[14] = 0xA0010000u; @@ -33819,6 +41685,9 @@ label_BFC0BBFC: cpu->gpr[31] = 0xBFC0BC14u; psx_dispatch(cpu, 0xBFC08720u); label_BFC0BC14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BC14: 10400013 beq $v0, $zero, 0xBFC0BC64 */ uint32_t psx_brA_BFC0BC14 = cpu->gpr[2]; uint32_t psx_brB_BFC0BC14 = cpu->gpr[0]; @@ -33827,6 +41696,9 @@ label_BFC0BC14: /* nop */ if (psx_taken_BFC0BC14) goto label_BFC0BC64; label_BFC0BC1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BC1C: AFB00038 sw $s0, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BC1Cu); return; } g_debug_last_store_pc = 0xBFC0BC1Cu; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -33862,12 +41734,18 @@ label_BFC0BC1C: cpu->gpr[31] = 0xBFC0BC5Cu; psx_dispatch(cpu, 0xBFC02B50u); label_BFC0BC5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BC5C: 8FB00038 lw $s0, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BC5Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } /* 0xBFC0BC60: 00000000 nop */ /* nop */ label_BFC0BC64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BC64: 3C0CA001 lui $t4, 0xA001 */ cpu->gpr[12] = 0xA0010000u; @@ -33892,6 +41770,9 @@ label_BFC0BC64: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BC88u); return; } g_debug_last_store_pc = 0xBFC0BC88u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC0BC84) goto label_BFC0BCD0; label_BFC0BC8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BC8C: 8C450000 lw $a1, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BC8Cu); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -33905,6 +41786,9 @@ label_BFC0BC8C: cpu->gpr[31] = 0xBFC0BCA0u; psx_dispatch(cpu, 0xBFC0DA00u); label_BFC0BCA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BCA0: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -33915,6 +41799,9 @@ label_BFC0BCA0: cpu->gpr[1] = 0xA0010000u; if (psx_taken_BFC0BCA4) goto label_BFC0BFE0; label_BFC0BCAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BCAC: AC20B9D0 sw $zero, -17968($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-17968)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BCACu); return; } g_debug_last_store_pc = 0xBFC0BCACu; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -33932,6 +41819,9 @@ label_BFC0BCAC: cpu->gpr[31] = 0xBFC0BCC8u; psx_dispatch(cpu, 0xBFC0BFF0u); label_BFC0BCC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BCC8: 100000C6 beq $zero, $zero, 0xBFC0BFE4 */ uint32_t psx_brA_BFC0BCC8 = cpu->gpr[0]; uint32_t psx_brB_BFC0BCC8 = cpu->gpr[0]; @@ -33940,6 +41830,9 @@ label_BFC0BCC8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BCCCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0BCC8) goto label_BFC0BFE4; label_BFC0BCD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BCD0: 00117900 sll $t7, $s1, 4 */ cpu->gpr[15] = cpu->gpr[17] << 4u; @@ -33964,6 +41857,9 @@ label_BFC0BCD0: /* 0xBFC0BCF8: 2409000F addiu $t1, $zero, 15 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (15)); label_BFC0BCFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BCFC: 8FA2003C lw $v0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BCFCu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -33981,6 +41877,9 @@ label_BFC0BCFC: cpu->gpr[31] = 0xBFC0BD18u; psx_dispatch(cpu, 0xBFC08FFCu); label_BFC0BD18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BD18: 8FA30044 lw $v1, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BD18u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -33995,6 +41894,9 @@ label_BFC0BD18: cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (15)); if (psx_taken_BFC0BD24) goto label_BFC0BD38; label_BFC0BD2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BD2C: 240D0052 addiu $t5, $zero, 82 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (82)); @@ -34003,6 +41905,9 @@ label_BFC0BD2C: /* 0xBFC0BD34: 2409000F addiu $t1, $zero, 15 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (15)); label_BFC0BD38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BD38: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -34013,6 +41918,9 @@ label_BFC0BD38: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_taken_BFC0BD3C) goto label_BFC0BCFC; label_BFC0BD44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BD44: AFA00054 sw $zero, 84($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (84)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BD44u); return; } g_debug_last_store_pc = 0xBFC0BD44u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -34027,6 +41935,9 @@ label_BFC0BD44: /* 0xBFC0BD58: 27A200E4 addiu $v0, $sp, 228 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[29] + (228)); label_BFC0BD5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BD5C: AC60FFAC sw $zero, -84($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (-84)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BD5Cu); return; } g_debug_last_store_pc = 0xBFC0BD5Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -34043,6 +41954,9 @@ label_BFC0BD5C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (-88)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BD70u); return; } g_debug_last_store_pc = 0xBFC0BD70u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC0BD6C) goto label_BFC0BD5C; label_BFC0BD74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BD74: 00008021 addu $s0, $zero, $zero */ cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; @@ -34053,6 +41967,9 @@ label_BFC0BD74: /* 0xBFC0BD80: 24080051 addiu $t0, $zero, 81 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (81)); label_BFC0BD84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BD84: 8CD90000 lw $t9, 0($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BD84u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -34065,6 +41982,9 @@ label_BFC0BD84: /* nop */ if (psx_taken_BFC0BD8C) goto label_BFC0BE0C; label_BFC0BD94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BD94: 00105880 sll $t3, $s0, 2 */ cpu->gpr[11] = cpu->gpr[16] << 2u; @@ -34087,10 +42007,16 @@ label_BFC0BD94: cpu->gpr[1] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC0BDB0) goto label_BFC0BDBC; label_BFC0BDB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BDB8: 24211FFF addiu $at, $at, 8191 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (8191)); label_BFC0BDBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BDBC: 00012343 sra $a0, $at, 13 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[1] >> 13u); @@ -34103,6 +42029,9 @@ label_BFC0BDBC: /* nop */ if (psx_taken_BFC0BDC4) goto label_BFC0BE0C; label_BFC0BDCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BDCC: 1065000F beq $v1, $a1, 0xBFC0BE0C */ uint32_t psx_brA_BFC0BDCC = cpu->gpr[3]; uint32_t psx_brB_BFC0BDCC = cpu->gpr[5]; @@ -34111,10 +42040,16 @@ label_BFC0BDCC: /* nop */ if (psx_taken_BFC0BDCC) goto label_BFC0BE0C; label_BFC0BDD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BDD4: 00037080 sll $t6, $v1, 2 */ cpu->gpr[14] = cpu->gpr[3] << 2u; label_BFC0BDD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BDD8: 27AF00A8 addiu $t7, $sp, 168 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[29] + (168)); @@ -34141,6 +42076,9 @@ label_BFC0BDD8: /* nop */ if (psx_taken_BFC0BDFC) goto label_BFC0BE0C; label_BFC0BE04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BE04: 1465FFF4 bne $v1, $a1, 0xBFC0BDD8 */ uint32_t psx_brA_BFC0BE04 = cpu->gpr[3]; uint32_t psx_brB_BFC0BE04 = cpu->gpr[5]; @@ -34149,6 +42087,9 @@ label_BFC0BE04: cpu->gpr[14] = cpu->gpr[3] << 2u; if (psx_taken_BFC0BE04) goto label_BFC0BDD8; label_BFC0BE0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BE0C: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -34161,6 +42102,9 @@ label_BFC0BE0C: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (32)); if (psx_taken_BFC0BE14) goto label_BFC0BD84; label_BFC0BE1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BE1C: 00008021 addu $s0, $zero, $zero */ cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; @@ -34169,6 +42113,9 @@ label_BFC0BE1C: /* 0xBFC0BE24: 240200A0 addiu $v0, $zero, 160 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); label_BFC0BE28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BE28: 8C6BFFAC lw $t3, -84($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (-84)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BE28u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -34181,6 +42128,9 @@ label_BFC0BE28: /* nop */ if (psx_taken_BFC0BE30) goto label_BFC0BE44; label_BFC0BE38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BE38: 00106140 sll $t4, $s0, 5 */ cpu->gpr[12] = cpu->gpr[16] << 5u; @@ -34189,6 +42139,9 @@ label_BFC0BE38: /* 0xBFC0BE40: ADC20000 sw $v0, 0($t6) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[14] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BE40u); return; } g_debug_last_store_pc = 0xBFC0BE40u; cpu->write_word(psx_addr, cpu->gpr[2]); } label_BFC0BE44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BE44: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -34199,6 +42152,9 @@ label_BFC0BE44: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_taken_BFC0BE48) goto label_BFC0BE28; label_BFC0BE50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BE50: 00117880 sll $t7, $s1, 2 */ cpu->gpr[15] = cpu->gpr[17] << 2u; @@ -34219,6 +42175,9 @@ label_BFC0BE50: /* 0xBFC0BE70: 24040014 addiu $a0, $zero, 20 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (20)); label_BFC0BE74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BE74: AC430000 sw $v1, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BE74u); return; } g_debug_last_store_pc = 0xBFC0BE74u; cpu->write_word(psx_addr, cpu->gpr[3]); } @@ -34237,6 +42196,9 @@ label_BFC0BE74: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (16)); if (psx_taken_BFC0BE88) goto label_BFC0BE74; label_BFC0BE90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BE90: 8FA400A4 lw $a0, 164($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (164)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BE90u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -34248,6 +42210,9 @@ label_BFC0BE90: cpu->gpr[31] = 0xBFC0BEA0u; psx_dispatch(cpu, 0xBFC0DA00u); label_BFC0BEA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BEA0: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -34258,6 +42223,9 @@ label_BFC0BEA0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BEA8u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } if (psx_taken_BFC0BEA4) goto label_BFC0BEBC; label_BFC0BEAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BEAC: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -34267,10 +42235,16 @@ label_BFC0BEAC: cpu->gpr[31] = 0xBFC0BEB8u; psx_dispatch(cpu, 0xBFC0BFF0u); label_BFC0BEB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BEB8: 8FAD003C lw $t5, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BEB8u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } label_BFC0BEBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BEBC: 00115080 sll $t2, $s1, 2 */ cpu->gpr[10] = cpu->gpr[17] << 2u; @@ -34291,6 +42265,9 @@ label_BFC0BEBC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24792)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BED8u); return; } g_debug_last_store_pc = 0xBFC0BED8u; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC0BED4) goto label_BFC0BFE0; label_BFC0BEDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BEDC: 3C0CA001 lui $t4, 0xA001 */ cpu->gpr[12] = 0xA0010000u; @@ -34306,6 +42283,9 @@ label_BFC0BEDC: cpu->gpr[31] = 0xBFC0BEF4u; psx_dispatch(cpu, 0xBFC08720u); label_BFC0BEF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BEF4: 10400010 beq $v0, $zero, 0xBFC0BF38 */ uint32_t psx_brA_BFC0BEF4 = cpu->gpr[2]; uint32_t psx_brB_BFC0BEF4 = cpu->gpr[0]; @@ -34314,6 +42294,9 @@ label_BFC0BEF4: /* nop */ if (psx_taken_BFC0BEF4) goto label_BFC0BF38; label_BFC0BEFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BEFC: 00117880 sll $t7, $s1, 2 */ cpu->gpr[15] = cpu->gpr[17] << 2u; @@ -34347,6 +42330,9 @@ label_BFC0BEFC: cpu->gpr[31] = 0xBFC0BF38u; psx_dispatch(cpu, 0xBFC02B50u); label_BFC0BF38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BF38: 3C0CA001 lui $t4, 0xA001 */ cpu->gpr[12] = 0xA0010000u; @@ -34371,6 +42357,9 @@ label_BFC0BF38: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BF5Cu); return; } g_debug_last_store_pc = 0xBFC0BF5Cu; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC0BF58) goto label_BFC0BFA4; label_BFC0BF60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BF60: 8C450000 lw $a1, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BF60u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -34384,6 +42373,9 @@ label_BFC0BF60: cpu->gpr[31] = 0xBFC0BF74u; psx_dispatch(cpu, 0xBFC0DA00u); label_BFC0BF74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BF74: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -34394,6 +42386,9 @@ label_BFC0BF74: cpu->gpr[1] = 0xA0010000u; if (psx_taken_BFC0BF78) goto label_BFC0BFE0; label_BFC0BF80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BF80: AC20B9D0 sw $zero, -17968($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-17968)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BF80u); return; } g_debug_last_store_pc = 0xBFC0BF80u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -34411,6 +42406,9 @@ label_BFC0BF80: cpu->gpr[31] = 0xBFC0BF9Cu; psx_dispatch(cpu, 0xBFC0BFF0u); label_BFC0BF9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BF9C: 10000011 beq $zero, $zero, 0xBFC0BFE4 */ uint32_t psx_brA_BFC0BF9C = cpu->gpr[0]; uint32_t psx_brB_BFC0BF9C = cpu->gpr[0]; @@ -34419,6 +42417,9 @@ label_BFC0BF9C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BFA0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0BF9C) goto label_BFC0BFE4; label_BFC0BFA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BFA4: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -34428,6 +42429,9 @@ label_BFC0BFA4: cpu->gpr[31] = 0xBFC0BFB0u; psx_dispatch(cpu, 0xBFC0BFF0u); label_BFC0BFB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BFB0: 1000000C beq $zero, $zero, 0xBFC0BFE4 */ uint32_t psx_brA_BFC0BFB0 = cpu->gpr[0]; uint32_t psx_brB_BFC0BFB0 = cpu->gpr[0]; @@ -34436,6 +42440,9 @@ label_BFC0BFB0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BFB4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0BFB0) goto label_BFC0BFE4; label_BFC0BFB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BFB8: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -34455,6 +42462,9 @@ label_BFC0BFB8: cpu->gpr[31] = 0xBFC0BFD8u; psx_dispatch(cpu, 0xBFC0BFF0u); label_BFC0BFD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BFD8: 10000002 beq $zero, $zero, 0xBFC0BFE4 */ uint32_t psx_brA_BFC0BFD8 = cpu->gpr[0]; uint32_t psx_brB_BFC0BFD8 = cpu->gpr[0]; @@ -34463,10 +42473,16 @@ label_BFC0BFD8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BFDCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0BFD8) goto label_BFC0BFE4; label_BFC0BFE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BFE0: 8FBF002C lw $ra, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BFE0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC0BFE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BFE4: 8FB10028 lw $s1, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0BFE4u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -34487,6 +42503,9 @@ void func_1FC0BFF0(CPUState* cpu) { } } label_BFC0BFF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC0BFF0: 00801821 addu $v1, $a0, $zero */ cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[0]; @@ -34526,6 +42545,9 @@ label_BFC0BFF0: cpu->gpr[31] = 0xBFC0C038u; psx_dispatch(cpu, 0xBFC0D970u); label_BFC0C038: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C038: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C038u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -34549,6 +42571,9 @@ void func_1FC0C048(CPUState* cpu) { } } label_BFC0C048: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C048: 27BDFFD0 addiu $sp, $sp, -48 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-48)); @@ -34573,10 +42598,16 @@ label_BFC0C048: cpu->gpr[1] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC0C068) goto label_BFC0C074; label_BFC0C070: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C070: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC0C074: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C074: 00011103 sra $v0, $at, 4 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -34594,6 +42625,9 @@ label_BFC0C074: cpu->gpr[31] = 0xBFC0C090u; psx_dispatch(cpu, 0xBFC0DA10u); label_BFC0C090: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C090: 8FA20024 lw $v0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C090u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -34613,6 +42647,9 @@ label_BFC0C090: cpu->gpr[31] = 0xBFC0C0B0u; psx_dispatch(cpu, 0xBFC0DA20u); label_BFC0C0B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C0B0: 14400006 bne $v0, $zero, 0xBFC0C0CC */ uint32_t psx_brA_BFC0C0B0 = cpu->gpr[2]; uint32_t psx_brB_BFC0C0B0 = cpu->gpr[0]; @@ -34621,6 +42658,9 @@ label_BFC0C0B0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC0C0B0) goto label_BFC0C0CC; label_BFC0C0B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C0B8: 8FA90020 lw $t1, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C0B8u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -34633,10 +42673,16 @@ label_BFC0C0B8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C0C4u); return; } g_debug_last_store_pc = 0xBFC0C0C4u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC0C0C0) goto label_BFC0C0CC; label_BFC0C0C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C0C8: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC0C0CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C0CC: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C0CCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -34659,6 +42705,9 @@ void func_1FC0C0DC(CPUState* cpu) { } } label_BFC0C0DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C0DC: 3C18A001 lui $t8, 0xA001 */ cpu->gpr[24] = 0xA0010000u; @@ -34677,10 +42726,16 @@ label_BFC0C0DC: cpu->gpr[1] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC0C0F0) goto label_BFC0C0FC; label_BFC0C0F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C0F8: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC0C0FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C0FC: 00017103 sra $t6, $at, 4 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -34696,6 +42751,9 @@ label_BFC0C0FC: cpu->gpr[31] = 0xBFC0C114u; psx_dispatch(cpu, 0xBFC0DA40u); label_BFC0C114: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C114: 8FA30018 lw $v1, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C114u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -34706,6 +42764,9 @@ label_BFC0C114: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC0C118) goto label_BFC0C130; label_BFC0C120: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C120: AC600000 sw $zero, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C120u); return; } g_debug_last_store_pc = 0xBFC0C120u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -34716,10 +42777,16 @@ label_BFC0C120: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC0C124) goto label_BFC0C130; label_BFC0C12C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C12C: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC0C130: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C130: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C130u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -34742,6 +42809,9 @@ void func_1FC0C140(CPUState* cpu) { } } label_BFC0C140: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C140: 3C0FA001 lui $t7, 0xA001 */ cpu->gpr[15] = 0xA0010000u; @@ -34766,10 +42836,16 @@ label_BFC0C140: cpu->gpr[1] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC0C160) goto label_BFC0C16C; label_BFC0C168: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C168: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC0C16C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C16C: 00011903 sra $v1, $at, 4 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -34791,6 +42867,9 @@ label_BFC0C16C: cpu->gpr[31] = 0xBFC0C190u; psx_dispatch(cpu, 0xBFC0DA00u); label_BFC0C190: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C190: 8FA30020 lw $v1, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C190u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -34803,6 +42882,9 @@ label_BFC0C190: cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); if (psx_taken_BFC0C198) goto label_BFC0C1B0; label_BFC0C1A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C1A0: ACE00000 sw $zero, 0($a3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[7] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C1A0u); return; } g_debug_last_store_pc = 0xBFC0C1A0u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -34813,10 +42895,16 @@ label_BFC0C1A0: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC0C1A4) goto label_BFC0C1CC; label_BFC0C1AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C1AC: 24090004 addiu $t1, $zero, 4 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); label_BFC0C1B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C1B0: 00035880 sll $t3, $v1, 2 */ cpu->gpr[11] = cpu->gpr[3] << 2u; @@ -34833,6 +42921,9 @@ label_BFC0C1B0: /* 0xBFC0C1C8: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC0C1CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C1CC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C1CCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -34847,6 +42938,9 @@ label_BFC0C1CC: void func_1FC0C1DC(CPUState* cpu) { debug_server_log_call_entry(0x1FC0C1DCu); label_BFC0C1DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C1DC: 3C03A001 lui $v1, 0xA001 */ cpu->gpr[3] = 0xA0010000u; @@ -34873,6 +42967,9 @@ void func_1FC0C1FC(CPUState* cpu) { } } label_BFC0C1FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C1FC: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -34886,6 +42983,9 @@ label_BFC0C1FC: cpu->gpr[31] = 0xBFC0C210u; psx_dispatch(cpu, 0xBFC0D9F0u); label_BFC0C210: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C210: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C210u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -34908,6 +43008,9 @@ void func_1FC0C220(CPUState* cpu) { } } label_BFC0C220: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C220: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -34923,6 +43026,9 @@ label_BFC0C220: cpu->gpr[31] = 0xBFC0C238u; psx_dispatch(cpu, 0xBFC0B648u); label_BFC0C238: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C238: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C238u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -34945,6 +43051,9 @@ void func_1FC0C248(CPUState* cpu) { } } label_BFC0C248: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C248: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -34960,6 +43069,9 @@ label_BFC0C248: cpu->gpr[31] = 0xBFC0C260u; psx_dispatch(cpu, 0xBFC0B5A0u); label_BFC0C260: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C260: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C260u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -34982,6 +43094,9 @@ void func_1FC0C270(CPUState* cpu) { } } label_BFC0C270: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C270: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -34997,6 +43112,9 @@ label_BFC0C270: cpu->gpr[31] = 0xBFC0C288u; psx_dispatch(cpu, 0xBFC0B54Cu); label_BFC0C288: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C288: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C288u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -35019,6 +43137,9 @@ void func_1FC0C298(CPUState* cpu) { } } label_BFC0C298: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C298: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -35034,6 +43155,9 @@ label_BFC0C298: cpu->gpr[31] = 0xBFC0C2B0u; psx_dispatch(cpu, 0xBFC0B5F4u); label_BFC0C2B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C2B0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C2B0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -35056,6 +43180,9 @@ void func_1FC0C2C0(CPUState* cpu) { } } label_BFC0C2C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C2C0: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -35071,6 +43198,9 @@ label_BFC0C2C0: cpu->gpr[31] = 0xBFC0C2D8u; psx_dispatch(cpu, 0xBFC0B394u); label_BFC0C2D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C2D8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C2D8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -35095,6 +43225,9 @@ void func_1FC0C2E8(CPUState* cpu) { } } label_BFC0C2E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C2E8: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -35106,6 +43239,9 @@ label_BFC0C2E8: cpu->gpr[31] = 0xBFC0C2F8u; psx_dispatch(cpu, 0xBFC0DA50u); label_BFC0C2F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C2F8: 0FF03698 jal 0xBFC0DA60 */ /* 0xBFC0C2FC: 00000000 nop */ @@ -35113,6 +43249,9 @@ label_BFC0C2F8: cpu->gpr[31] = 0xBFC0C300u; psx_dispatch(cpu, 0xBFC0DA60u); label_BFC0C300: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C300: 0FF02645 jal 0xBFC09914 */ /* 0xBFC0C304: 00000000 nop */ @@ -35120,6 +43259,9 @@ label_BFC0C300: cpu->gpr[31] = 0xBFC0C308u; psx_dispatch(cpu, 0xBFC09914u); label_BFC0C308: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C308: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C308u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -35144,6 +43286,9 @@ void func_1FC0C318(CPUState* cpu) { } } label_BFC0C318: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C318: 27BDFF68 addiu $sp, $sp, -152 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-152)); @@ -35157,6 +43302,9 @@ label_BFC0C318: cpu->gpr[31] = 0xBFC0C32Cu; psx_dispatch(cpu, 0xBFC01ACCu); label_BFC0C32C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C32C: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -35168,6 +43316,9 @@ label_BFC0C32C: cpu->gpr[31] = 0xBFC0C33Cu; psx_dispatch(cpu, 0xBFC0DA20u); label_BFC0C33C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C33C: 0FF02451 jal 0xBFC09144 */ /* 0xBFC0C340: 00000000 nop */ @@ -35175,6 +43326,9 @@ label_BFC0C33C: cpu->gpr[31] = 0xBFC0C344u; psx_dispatch(cpu, 0xBFC09144u); label_BFC0C344: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C344: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C344u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -35200,6 +43354,9 @@ void func_1FC0C354(CPUState* cpu) { } } label_BFC0C354: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C354: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -35215,6 +43372,9 @@ label_BFC0C354: cpu->gpr[31] = 0xBFC0C36Cu; psx_dispatch(cpu, 0xBFC0D990u); label_BFC0C36C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C36C: 3C04F400 lui $a0, 0xF400 */ cpu->gpr[4] = 0xF4000000u; @@ -35226,6 +43386,9 @@ label_BFC0C36C: cpu->gpr[31] = 0xBFC0C37Cu; psx_dispatch(cpu, 0xBFC0D990u); label_BFC0C37C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C37C: 3C04F400 lui $a0, 0xF400 */ cpu->gpr[4] = 0xF4000000u; @@ -35237,6 +43400,9 @@ label_BFC0C37C: cpu->gpr[31] = 0xBFC0C38Cu; psx_dispatch(cpu, 0xBFC0D990u); label_BFC0C38C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C38C: 3C04F400 lui $a0, 0xF400 */ cpu->gpr[4] = 0xF4000000u; @@ -35248,6 +43414,9 @@ label_BFC0C38C: cpu->gpr[31] = 0xBFC0C39Cu; psx_dispatch(cpu, 0xBFC0D990u); label_BFC0C39C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C39C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C39Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -35279,6 +43448,9 @@ void func_1FC0C580(CPUState* cpu) { } } label_BFC0C580: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C580: 27BDFFB0 addiu $sp, $sp, -80 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-80)); @@ -35294,6 +43466,9 @@ label_BFC0C580: cpu->gpr[31] = 0xBFC0C598u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC0C598: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C598: 27A40038 addiu $a0, $sp, 56 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (56)); @@ -35307,6 +43482,9 @@ label_BFC0C598: cpu->gpr[31] = 0xBFC0C5ACu; psx_dispatch(cpu, 0xBFC0DAA0u); label_BFC0C5AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C5AC: 0FF036AC jal 0xBFC0DAB0 */ /* 0xBFC0C5B0: 00000000 nop */ @@ -35314,6 +43492,9 @@ label_BFC0C5AC: cpu->gpr[31] = 0xBFC0C5B4u; psx_dispatch(cpu, 0xBFC0DAB0u); label_BFC0C5B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C5B4: AFB00028 sw $s0, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C5B4u); return; } g_debug_last_store_pc = 0xBFC0C5B4u; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -35348,6 +43529,9 @@ label_BFC0C5B4: /* 0xBFC0C5F0: AFA00044 sw $zero, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C5F0u); return; } g_debug_last_store_pc = 0xBFC0C5F0u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC0C5F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C5F4: 8FAE0044 lw $t6, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C5F4u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -35362,10 +43546,16 @@ label_BFC0C5F4: /* nop */ if (psx_taken_BFC0C600) goto label_BFC0C638; label_BFC0C608: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C608: 8FAF0044 lw $t7, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C608u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } label_BFC0C60C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C60C: 00000000 nop */ /* nop */ @@ -35392,6 +43582,9 @@ label_BFC0C60C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C634u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } if (psx_taken_BFC0C630) goto label_BFC0C60C; label_BFC0C638: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C638: 0FF03658 jal 0xBFC0D960 */ /* 0xBFC0C63C: 00000000 nop */ @@ -35399,6 +43592,9 @@ label_BFC0C638: cpu->gpr[31] = 0xBFC0C640u; psx_dispatch(cpu, 0xBFC0D960u); label_BFC0C640: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C640: 0FF00638 jal 0xBFC018E0 */ /* 0xBFC0C644: 02402021 addu $a0, $s2, $zero */ @@ -35406,6 +43602,9 @@ label_BFC0C640: cpu->gpr[31] = 0xBFC0C648u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC0C648: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C648: AFA00044 sw $zero, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C648u); return; } g_debug_last_store_pc = 0xBFC0C648u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -35422,10 +43621,16 @@ label_BFC0C648: /* nop */ if (psx_taken_BFC0C658) goto label_BFC0C69C; label_BFC0C660: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C660: 8FAA0044 lw $t2, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C660u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } label_BFC0C664: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C664: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -35439,6 +43644,9 @@ label_BFC0C664: cpu->gpr[31] = 0xBFC0C678u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC0C678: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C678: 8FAB0044 lw $t3, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C678u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -35461,6 +43669,9 @@ label_BFC0C678: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C698u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } if (psx_taken_BFC0C694) goto label_BFC0C664; label_BFC0C69C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C69C: 0FF00638 jal 0xBFC018E0 */ /* 0xBFC0C6A0: 02602021 addu $a0, $s3, $zero */ @@ -35468,6 +43679,9 @@ label_BFC0C69C: cpu->gpr[31] = 0xBFC0C6A4u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC0C6A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C6A4: AFA00044 sw $zero, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C6A4u); return; } g_debug_last_store_pc = 0xBFC0C6A4u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -35484,10 +43698,16 @@ label_BFC0C6A4: /* nop */ if (psx_taken_BFC0C6B4) goto label_BFC0C6F8; label_BFC0C6BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C6BC: 8FAF0044 lw $t7, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C6BCu); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } label_BFC0C6C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C6C0: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -35501,6 +43721,9 @@ label_BFC0C6C0: cpu->gpr[31] = 0xBFC0C6D4u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC0C6D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C6D4: 8FB80044 lw $t8, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C6D4u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -35523,6 +43746,9 @@ label_BFC0C6D4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C6F4u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } if (psx_taken_BFC0C6F0) goto label_BFC0C6C0; label_BFC0C6F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C6F8: 0FF00638 jal 0xBFC018E0 */ /* 0xBFC0C6FC: 02802021 addu $a0, $s4, $zero */ @@ -35530,6 +43756,9 @@ label_BFC0C6F8: cpu->gpr[31] = 0xBFC0C700u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC0C700: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C700: 0FF03630 jal 0xBFC0D8C0 */ /* 0xBFC0C704: 00000000 nop */ @@ -35537,6 +43766,9 @@ label_BFC0C700: cpu->gpr[31] = 0xBFC0C708u; psx_dispatch(cpu, 0xBFC0D8C0u); label_BFC0C708: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C708: 1000FFBA beq $zero, $zero, 0xBFC0C5F4 */ uint32_t psx_brA_BFC0C708 = cpu->gpr[0]; uint32_t psx_brB_BFC0C708 = cpu->gpr[0]; @@ -35545,6 +43777,9 @@ label_BFC0C708: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C70Cu); return; } g_debug_last_store_pc = 0xBFC0C70Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC0C708) goto label_BFC0C5F4; label_BFC0C710: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C710: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C710u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -35574,6 +43809,9 @@ void func_1FC0C720(CPUState* cpu) { } } label_BFC0C720: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C720: 27BDFFC0 addiu $sp, $sp, -64 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-64)); @@ -35589,6 +43827,9 @@ label_BFC0C720: cpu->gpr[31] = 0xBFC0C738u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC0C738: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C738: 240EFFFF addiu $t6, $zero, -1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -35604,6 +43845,9 @@ label_BFC0C738: cpu->gpr[31] = 0xBFC0C750u; psx_dispatch(cpu, 0xBFC0DAC0u); label_BFC0C750: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C750: 10400031 beq $v0, $zero, 0xBFC0C818 */ uint32_t psx_brA_BFC0C750 = cpu->gpr[2]; uint32_t psx_brB_BFC0C750 = cpu->gpr[0]; @@ -35612,6 +43856,9 @@ label_BFC0C750: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C754u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0C750) goto label_BFC0C818; label_BFC0C758: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C758: AFB10028 sw $s1, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C758u); return; } g_debug_last_store_pc = 0xBFC0C758u; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -35642,6 +43889,9 @@ label_BFC0C758: /* 0xBFC0C78C: AFA00034 sw $zero, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C78Cu); return; } g_debug_last_store_pc = 0xBFC0C78Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC0C790: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C790: 8FAF0034 lw $t7, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C790u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -35656,10 +43906,16 @@ label_BFC0C790: /* nop */ if (psx_taken_BFC0C79C) goto label_BFC0C7D4; label_BFC0C7A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C7A4: 8FB80034 lw $t8, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C7A4u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } label_BFC0C7A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C7A8: 00000000 nop */ /* nop */ @@ -35686,6 +43942,9 @@ label_BFC0C7A8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C7D0u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } if (psx_taken_BFC0C7CC) goto label_BFC0C7A8; label_BFC0C7D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C7D4: 0FF036B4 jal 0xBFC0DAD0 */ /* 0xBFC0C7D8: 00000000 nop */ @@ -35693,6 +43952,9 @@ label_BFC0C7D4: cpu->gpr[31] = 0xBFC0C7DCu; psx_dispatch(cpu, 0xBFC0DAD0u); label_BFC0C7DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C7DC: 0FF03658 jal 0xBFC0D960 */ /* 0xBFC0C7E0: 00408021 addu $s0, $v0, $zero */ @@ -35700,6 +43962,9 @@ label_BFC0C7DC: cpu->gpr[31] = 0xBFC0C7E4u; psx_dispatch(cpu, 0xBFC0D960u); label_BFC0C7E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C7E4: 02402021 addu $a0, $s2, $zero */ cpu->gpr[4] = cpu->gpr[18] + cpu->gpr[0]; @@ -35709,6 +43974,9 @@ label_BFC0C7E4: cpu->gpr[31] = 0xBFC0C7F0u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC0C7F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C7F0: 8FA50038 lw $a1, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C7F0u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -35718,6 +43986,9 @@ label_BFC0C7F0: cpu->gpr[31] = 0xBFC0C7FCu; psx_dispatch(cpu, 0xBFC018E0u); label_BFC0C7FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C7FC: 0FF00638 jal 0xBFC018E0 */ /* 0xBFC0C800: 02802021 addu $a0, $s4, $zero */ @@ -35725,6 +43996,9 @@ label_BFC0C7FC: cpu->gpr[31] = 0xBFC0C804u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC0C804: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C804: 0FF03630 jal 0xBFC0D8C0 */ /* 0xBFC0C808: 00000000 nop */ @@ -35732,6 +44006,9 @@ label_BFC0C804: cpu->gpr[31] = 0xBFC0C80Cu; psx_dispatch(cpu, 0xBFC0D8C0u); label_BFC0C80C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C80C: 1000FFE0 beq $zero, $zero, 0xBFC0C790 */ uint32_t psx_brA_BFC0C80C = cpu->gpr[0]; uint32_t psx_brB_BFC0C80C = cpu->gpr[0]; @@ -35740,10 +44017,16 @@ label_BFC0C80C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C810u); return; } g_debug_last_store_pc = 0xBFC0C810u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC0C80C) goto label_BFC0C790; label_BFC0C814: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C814: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C814u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC0C818: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C818: 27BD0040 addiu $sp, $sp, 64 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (64)); @@ -35766,6 +44049,9 @@ void func_1FC0C830(CPUState* cpu) { } } label_BFC0C830: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C830: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -35782,6 +44068,9 @@ label_BFC0C830: /* 0xBFC0C848: 24110010 addiu $s1, $zero, 16 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); label_BFC0C84C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C84C: 0FF03628 jal 0xBFC0D8A0 */ /* 0xBFC0C850: 02002021 addu $a0, $s0, $zero */ @@ -35789,6 +44078,9 @@ label_BFC0C84C: cpu->gpr[31] = 0xBFC0C854u; psx_dispatch(cpu, 0xBFC0D8A0u); label_BFC0C854: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C854: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -35799,6 +44091,9 @@ label_BFC0C854: /* nop */ if (psx_taken_BFC0C858) goto label_BFC0C84C; label_BFC0C860: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C860: 0FF036E8 jal 0xBFC0DBA0 */ /* 0xBFC0C864: 00002021 addu $a0, $zero, $zero */ @@ -35806,6 +44101,9 @@ label_BFC0C860: cpu->gpr[31] = 0xBFC0C868u; psx_dispatch(cpu, 0xBFC0DBA0u); label_BFC0C868: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C868: 8FA40028 lw $a0, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C868u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -35815,6 +44113,9 @@ label_BFC0C868: cpu->gpr[31] = 0xBFC0C874u; psx_dispatch(cpu, 0xBFC0D8D0u); label_BFC0C874: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C874: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C874u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -35853,6 +44154,9 @@ void func_1FC0C890(CPUState* cpu) { } } label_BFC0C890: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C890: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -35872,6 +44176,9 @@ label_BFC0C890: cpu->gpr[31] = 0xBFC0C8B0u; psx_dispatch(cpu, 0xBFC03990u); label_BFC0C8B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C8B0: 3C18BFC1 lui $t8, 0xBFC1 */ cpu->gpr[24] = 0xBFC10000u; @@ -35883,6 +44190,9 @@ label_BFC0C8B0: cpu->gpr[31] = 0xBFC0C8C0u; psx_dispatch(cpu, 0xBFC03990u); label_BFC0C8C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C8C0: 3C19BFC1 lui $t9, 0xBFC1 */ cpu->gpr[25] = 0xBFC10000u; @@ -35894,6 +44204,9 @@ label_BFC0C8C0: cpu->gpr[31] = 0xBFC0C8D0u; psx_dispatch(cpu, 0xBFC03990u); label_BFC0C8D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C8D0: 3C08BFC1 lui $t0, 0xBFC1 */ cpu->gpr[8] = 0xBFC10000u; @@ -35913,6 +44226,9 @@ label_BFC0C8D0: cpu->gpr[31] = 0xBFC0C8F0u; psx_dispatch(cpu, 0xBFC03990u); label_BFC0C8F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C8F0: 240A0020 addiu $t2, $zero, 32 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (32)); @@ -35922,6 +44238,9 @@ label_BFC0C8F0: cpu->gpr[31] = 0xBFC0C8FCu; psx_dispatch(cpu, 0xBFC03990u); label_BFC0C8FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C8FC: 240B0030 addiu $t3, $zero, 48 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (48)); @@ -35931,6 +44250,9 @@ label_BFC0C8FC: cpu->gpr[31] = 0xBFC0C908u; psx_dispatch(cpu, 0xBFC03990u); label_BFC0C908: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C908: 240C0040 addiu $t4, $zero, 64 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[0] + (64)); @@ -35940,6 +44262,9 @@ label_BFC0C908: cpu->gpr[31] = 0xBFC0C914u; psx_dispatch(cpu, 0xBFC03990u); label_BFC0C914: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C914: 240D0050 addiu $t5, $zero, 80 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (80)); @@ -35949,6 +44274,9 @@ label_BFC0C914: cpu->gpr[31] = 0xBFC0C920u; psx_dispatch(cpu, 0xBFC03990u); label_BFC0C920: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C920: 3C0EBFC1 lui $t6, 0xBFC1 */ cpu->gpr[14] = 0xBFC10000u; @@ -35970,6 +44298,9 @@ label_BFC0C920: cpu->gpr[31] = 0xBFC0C944u; psx_dispatch(cpu, 0xBFC03990u); label_BFC0C944: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C944: 24190020 addiu $t9, $zero, 32 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (32)); @@ -35979,6 +44310,9 @@ label_BFC0C944: cpu->gpr[31] = 0xBFC0C950u; psx_dispatch(cpu, 0xBFC03990u); label_BFC0C950: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C950: 24090030 addiu $t1, $zero, 48 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (48)); @@ -35988,6 +44322,9 @@ label_BFC0C950: cpu->gpr[31] = 0xBFC0C95Cu; psx_dispatch(cpu, 0xBFC03990u); label_BFC0C95C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C95C: 24080040 addiu $t0, $zero, 64 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (64)); @@ -35997,6 +44334,9 @@ label_BFC0C95C: cpu->gpr[31] = 0xBFC0C968u; psx_dispatch(cpu, 0xBFC03990u); label_BFC0C968: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C968: 240A0050 addiu $t2, $zero, 80 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (80)); @@ -36006,6 +44346,9 @@ label_BFC0C968: cpu->gpr[31] = 0xBFC0C974u; psx_dispatch(cpu, 0xBFC03990u); label_BFC0C974: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C974: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -36025,6 +44368,9 @@ label_BFC0C974: cpu->gpr[31] = 0xBFC0C994u; psx_dispatch(cpu, 0xBFC01ACCu); label_BFC0C994: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C994: 3C01A001 lui $at, 0xA001 */ cpu->gpr[1] = 0xA0010000u; @@ -36044,6 +44390,9 @@ label_BFC0C994: cpu->gpr[31] = 0xBFC0C9B4u; psx_dispatch(cpu, 0xBFC01ACCu); label_BFC0C9B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C9B4: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C9B4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -36077,6 +44426,9 @@ void func_1FC0C9CC(CPUState* cpu) { } } label_BFC0C9CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C9CC: 27BDFFD0 addiu $sp, $sp, -48 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-48)); @@ -36096,6 +44448,9 @@ label_BFC0C9CC: cpu->gpr[31] = 0xBFC0C9ECu; psx_dispatch(cpu, 0xBFC01A60u); label_BFC0C9EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C9EC: 8FA30030 lw $v1, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0C9ECu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -36108,6 +44463,9 @@ label_BFC0C9EC: /* nop */ if (psx_taken_BFC0C9F4) goto label_BFC0CA0C; label_BFC0C9FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0C9FC: 240E0006 addiu $t6, $zero, 6 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (6)); @@ -36120,6 +44478,9 @@ label_BFC0C9FC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC0CA04) goto label_BFC0CAA4; label_BFC0CA0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CA0C: AFB00020 sw $s0, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CA0Cu); return; } g_debug_last_store_pc = 0xBFC0CA0Cu; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -36145,6 +44506,9 @@ label_BFC0CA0C: cpu->gpr[31] = 0xBFC0CA38u; psx_dispatch(cpu, 0xBFC03990u); label_BFC0CA38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CA38: 24090020 addiu $t1, $zero, 32 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (32)); @@ -36154,6 +44518,9 @@ label_BFC0CA38: cpu->gpr[31] = 0xBFC0CA44u; psx_dispatch(cpu, 0xBFC03990u); label_BFC0CA44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CA44: 240A0030 addiu $t2, $zero, 48 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (48)); @@ -36163,6 +44530,9 @@ label_BFC0CA44: cpu->gpr[31] = 0xBFC0CA50u; psx_dispatch(cpu, 0xBFC03990u); label_BFC0CA50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CA50: 240B0040 addiu $t3, $zero, 64 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (64)); @@ -36172,6 +44542,9 @@ label_BFC0CA50: cpu->gpr[31] = 0xBFC0CA5Cu; psx_dispatch(cpu, 0xBFC03990u); label_BFC0CA5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CA5C: 240C0050 addiu $t4, $zero, 80 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[0] + (80)); @@ -36181,6 +44554,9 @@ label_BFC0CA5C: cpu->gpr[31] = 0xBFC0CA68u; psx_dispatch(cpu, 0xBFC03990u); label_BFC0CA68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CA68: 240D0005 addiu $t5, $zero, 5 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); @@ -36190,6 +44566,9 @@ label_BFC0CA68: cpu->gpr[31] = 0xBFC0CA74u; psx_dispatch(cpu, 0xBFC03990u); label_BFC0CA74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CA74: 00117880 sll $t7, $s1, 2 */ cpu->gpr[15] = cpu->gpr[17] << 2u; @@ -36207,6 +44586,9 @@ label_BFC0CA74: cpu->gpr[31] = 0xBFC0CA90u; psx_dispatch(cpu, 0xBFC0CD80u); label_BFC0CA90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CA90: 24180001 addiu $t8, $zero, 1 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -36219,6 +44601,9 @@ label_BFC0CA90: /* 0xBFC0CAA0: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC0CAA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CAA4: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CAA4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -36247,6 +44632,9 @@ void func_1FC0CAB4(CPUState* cpu) { } } label_BFC0CAB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CAB4: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -36267,6 +44655,9 @@ label_BFC0CAB4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CAD0u); return; } g_debug_last_store_pc = 0xBFC0CAD0u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC0CACC) goto label_BFC0CBE0; label_BFC0CAD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CAD4: AFB00020 sw $s0, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CAD4u); return; } g_debug_last_store_pc = 0xBFC0CAD4u; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -36293,6 +44684,9 @@ label_BFC0CAD4: cpu->gpr[16] = cpu->gpr[15] + cpu->gpr[24]; if (psx_taken_BFC0CAF8) goto label_BFC0CBD0; label_BFC0CB00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CB00: 8E240004 lw $a0, 4($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CB00u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -36302,6 +44696,9 @@ label_BFC0CB00: cpu->gpr[31] = 0xBFC0CB0Cu; psx_dispatch(cpu, 0xBFC0D11Cu); label_BFC0CB0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CB0C: 10400008 beq $v0, $zero, 0xBFC0CB30 */ uint32_t psx_brA_BFC0CB0C = cpu->gpr[2]; uint32_t psx_brB_BFC0CB0C = cpu->gpr[0]; @@ -36310,6 +44707,9 @@ label_BFC0CB0C: cpu->gpr[5] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC0CB0C) goto label_BFC0CB30; label_BFC0CB14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CB14: 0FF036EC jal 0xBFC0DBB0 */ /* 0xBFC0CB18: 02002021 addu $a0, $s0, $zero */ @@ -36317,6 +44717,9 @@ label_BFC0CB14: cpu->gpr[31] = 0xBFC0CB1Cu; psx_dispatch(cpu, 0xBFC0DBB0u); label_BFC0CB1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CB1C: 8E240004 lw $a0, 4($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CB1Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -36326,6 +44729,9 @@ label_BFC0CB1C: cpu->gpr[31] = 0xBFC0CB28u; psx_dispatch(cpu, 0xBFC0D11Cu); label_BFC0CB28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CB28: 1440FFFA bne $v0, $zero, 0xBFC0CB14 */ uint32_t psx_brA_BFC0CB28 = cpu->gpr[2]; uint32_t psx_brB_BFC0CB28 = cpu->gpr[0]; @@ -36334,6 +44740,9 @@ label_BFC0CB28: cpu->gpr[5] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC0CB28) goto label_BFC0CB14; label_BFC0CB30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CB30: 8E390000 lw $t9, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CB30u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -36348,6 +44757,9 @@ label_BFC0CB30: /* nop */ if (psx_taken_BFC0CB3C) goto label_BFC0CB74; label_BFC0CB44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CB44: 8E090008 lw $t1, 8($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CB44u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -36362,6 +44774,9 @@ label_BFC0CB44: /* nop */ if (psx_taken_BFC0CB50) goto label_BFC0CB74; label_BFC0CB58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CB58: 0FF036F0 jal 0xBFC0DBC0 */ /* 0xBFC0CB5C: 00000000 nop */ @@ -36369,6 +44784,9 @@ label_BFC0CB58: cpu->gpr[31] = 0xBFC0CB60u; psx_dispatch(cpu, 0xBFC0DBC0u); label_BFC0CB60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CB60: 8E0B0008 lw $t3, 8($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CB60u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -36383,6 +44801,9 @@ label_BFC0CB60: /* nop */ if (psx_taken_BFC0CB6C) goto label_BFC0CB58; label_BFC0CB74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CB74: 8E0D0008 lw $t5, 8($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CB74u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -36397,6 +44818,9 @@ label_BFC0CB74: /* nop */ if (psx_taken_BFC0CB80) goto label_BFC0CB9C; label_BFC0CB88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CB88: 8FAF002C lw $t7, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CB88u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -36411,6 +44835,9 @@ label_BFC0CB88: cpu->gpr[2] = cpu->gpr[15] - cpu->gpr[24]; if (psx_taken_BFC0CB94) goto label_BFC0CC58; label_BFC0CB9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CB9C: 0FF036F4 jal 0xBFC0DBD0 */ /* 0xBFC0CBA0: 02002021 addu $a0, $s0, $zero */ @@ -36418,6 +44845,9 @@ label_BFC0CB9C: cpu->gpr[31] = 0xBFC0CBA4u; psx_dispatch(cpu, 0xBFC0DBD0u); label_BFC0CBA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CBA4: 8E390008 lw $t9, 8($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CBA4u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -36444,6 +44874,9 @@ label_BFC0CBA4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CBCCu); return; } g_debug_last_store_pc = 0xBFC0CBCCu; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC0CBC8) goto label_BFC0CB00; label_BFC0CBD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CBD0: 8FA2002C lw $v0, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CBD0u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -36456,6 +44889,9 @@ label_BFC0CBD0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CBDCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0CBD8) goto label_BFC0CC5C; label_BFC0CBE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CBE0: 24010002 addiu $at, $zero, 2 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); @@ -36466,6 +44902,9 @@ label_BFC0CBE0: /* nop */ if (psx_taken_BFC0CBE4) goto label_BFC0CC4C; label_BFC0CBEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CBEC: 8E2D0000 lw $t5, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CBECu); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -36480,6 +44919,9 @@ label_BFC0CBEC: /* nop */ if (psx_taken_BFC0CBF8) goto label_BFC0CC4C; label_BFC0CC00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CC00: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; @@ -36492,6 +44934,9 @@ label_BFC0CC00: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (12)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CC0Cu); return; } g_debug_last_store_pc = 0xBFC0CC0Cu; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC0CC08) goto label_BFC0CC40; label_BFC0CC10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CC10: 8E220008 lw $v0, 8($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CC10u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -36507,6 +44952,9 @@ label_BFC0CC10: cpu->gpr[31] = 0xBFC0CC28u; psx_dispatch(cpu, 0xBFC0D34Cu); label_BFC0CC28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CC28: 8E23000C lw $v1, 12($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (12)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CC28u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -36523,6 +44971,9 @@ label_BFC0CC28: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (12)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CC3Cu); return; } g_debug_last_store_pc = 0xBFC0CC3Cu; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC0CC38) goto label_BFC0CC10; label_BFC0CC40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CC40: 8FA2002C lw $v0, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CC40u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -36533,6 +44984,9 @@ label_BFC0CC40: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CC48u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0CC44) goto label_BFC0CC5C; label_BFC0CC4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CC4C: 3C04BFC1 lui $a0, 0xBFC1 */ cpu->gpr[4] = 0xBFC10000u; @@ -36542,10 +44996,16 @@ label_BFC0CC4C: cpu->gpr[31] = 0xBFC0CC58u; psx_dispatch(cpu, 0xBFC0DBE0u); label_BFC0CC58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CC58: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CC58u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC0CC5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CC5C: 8FB10018 lw $s1, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CC5Cu); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -36569,6 +45029,9 @@ void func_1FC0CC68(CPUState* cpu) { } } label_BFC0CC68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CC68: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -36607,6 +45070,9 @@ label_BFC0CC68: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CCA8u); return; } g_debug_last_store_pc = 0xBFC0CCA8u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC0CCA4) goto label_BFC0CCD0; label_BFC0CCAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CCAC: 24017401 addiu $at, $zero, 29697 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (29697)); @@ -36617,6 +45083,9 @@ label_BFC0CCAC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (29698)); if (psx_taken_BFC0CCB0) goto label_BFC0CD04; label_BFC0CCB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CCB8: 10A1001E beq $a1, $at, 0xBFC0CD34 */ uint32_t psx_brA_BFC0CCB8 = cpu->gpr[5]; uint32_t psx_brB_BFC0CCB8 = cpu->gpr[1]; @@ -36625,6 +45094,9 @@ label_BFC0CCB8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (29699)); if (psx_taken_BFC0CCB8) goto label_BFC0CD34; label_BFC0CCC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CCC0: 10A10020 beq $a1, $at, 0xBFC0CD44 */ uint32_t psx_brA_BFC0CCC0 = cpu->gpr[5]; uint32_t psx_brB_BFC0CCC0 = cpu->gpr[1]; @@ -36633,6 +45105,9 @@ label_BFC0CCC0: /* nop */ if (psx_taken_BFC0CCC0) goto label_BFC0CD44; label_BFC0CCC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CCC8: 10000023 beq $zero, $zero, 0xBFC0CD58 */ uint32_t psx_brA_BFC0CCC8 = cpu->gpr[0]; uint32_t psx_brB_BFC0CCC8 = cpu->gpr[0]; @@ -36641,6 +45116,9 @@ label_BFC0CCC8: cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (22)); if (psx_taken_BFC0CCC8) goto label_BFC0CD58; label_BFC0CCD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CCD0: 0FF03447 jal 0xBFC0D11C */ /* 0xBFC0CCD4: 00602021 addu $a0, $v1, $zero */ @@ -36648,6 +45126,9 @@ label_BFC0CCD0: cpu->gpr[31] = 0xBFC0CCD8u; psx_dispatch(cpu, 0xBFC0D11Cu); label_BFC0CCD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CCD8: 10400022 beq $v0, $zero, 0xBFC0CD64 */ uint32_t psx_brA_BFC0CCD8 = cpu->gpr[2]; uint32_t psx_brB_BFC0CCD8 = cpu->gpr[0]; @@ -36656,6 +45137,9 @@ label_BFC0CCD8: cpu->gpr[5] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC0CCD8) goto label_BFC0CD64; label_BFC0CCE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CCE0: 0FF036EC jal 0xBFC0DBB0 */ /* 0xBFC0CCE4: 02002021 addu $a0, $s0, $zero */ @@ -36663,6 +45147,9 @@ label_BFC0CCE0: cpu->gpr[31] = 0xBFC0CCE8u; psx_dispatch(cpu, 0xBFC0DBB0u); label_BFC0CCE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CCE8: 8E240004 lw $a0, 4($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CCE8u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -36672,6 +45159,9 @@ label_BFC0CCE8: cpu->gpr[31] = 0xBFC0CCF4u; psx_dispatch(cpu, 0xBFC0D11Cu); label_BFC0CCF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CCF4: 1440FFFA bne $v0, $zero, 0xBFC0CCE0 */ uint32_t psx_brA_BFC0CCF4 = cpu->gpr[2]; uint32_t psx_brB_BFC0CCF4 = cpu->gpr[0]; @@ -36680,6 +45170,9 @@ label_BFC0CCF4: cpu->gpr[5] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC0CCF4) goto label_BFC0CCE0; label_BFC0CCFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CCFC: 1000001A beq $zero, $zero, 0xBFC0CD68 */ uint32_t psx_brA_BFC0CCFC = cpu->gpr[0]; uint32_t psx_brB_BFC0CCFC = cpu->gpr[0]; @@ -36688,6 +45181,9 @@ label_BFC0CCFC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CD00u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } if (psx_taken_BFC0CCFC) goto label_BFC0CD68; label_BFC0CD04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CD04: 10C00006 beq $a2, $zero, 0xBFC0CD20 */ uint32_t psx_brA_BFC0CD04 = cpu->gpr[6]; uint32_t psx_brB_BFC0CD04 = cpu->gpr[0]; @@ -36696,6 +45192,9 @@ label_BFC0CD04: /* nop */ if (psx_taken_BFC0CD04) goto label_BFC0CD20; label_BFC0CD0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CD0C: 8E180000 lw $t8, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CD0Cu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -36710,6 +45209,9 @@ label_BFC0CD0C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CD1Cu); return; } g_debug_last_store_pc = 0xBFC0CD1Cu; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC0CD18) goto label_BFC0CD64; label_BFC0CD20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CD20: 8E080000 lw $t0, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CD20u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -36724,6 +45226,9 @@ label_BFC0CD20: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CD30u); return; } g_debug_last_store_pc = 0xBFC0CD30u; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC0CD2C) goto label_BFC0CD64; label_BFC0CD34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CD34: 2602000C addiu $v0, $s0, 12 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[16] + (12)); @@ -36736,6 +45241,9 @@ label_BFC0CD34: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CD40u); return; } g_debug_last_store_pc = 0xBFC0CD40u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC0CD3C) goto label_BFC0CD64; label_BFC0CD44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CD44: 0FF03273 jal 0xBFC0C9CC */ /* 0xBFC0CD48: 02202021 addu $a0, $s1, $zero */ @@ -36743,6 +45251,9 @@ label_BFC0CD44: cpu->gpr[31] = 0xBFC0CD4Cu; psx_dispatch(cpu, 0xBFC0C9CCu); label_BFC0CD4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CD4C: 10000005 beq $zero, $zero, 0xBFC0CD64 */ uint32_t psx_brA_BFC0CD4C = cpu->gpr[0]; uint32_t psx_brB_BFC0CD4C = cpu->gpr[0]; @@ -36751,10 +45262,16 @@ label_BFC0CD4C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CD50u); return; } g_debug_last_store_pc = 0xBFC0CD50u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC0CD4C) goto label_BFC0CD64; label_BFC0CD54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CD54: 240A0016 addiu $t2, $zero, 22 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (22)); label_BFC0CD58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CD58: AE2A0018 sw $t2, 24($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CD58u); return; } g_debug_last_store_pc = 0xBFC0CD58u; cpu->write_word(psx_addr, cpu->gpr[10]); } @@ -36765,14 +45282,23 @@ label_BFC0CD58: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC0CD5C) goto label_BFC0CD6C; label_BFC0CD64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CD64: 8FA2002C lw $v0, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CD64u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } label_BFC0CD68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CD68: 00000000 nop */ /* nop */ label_BFC0CD6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CD6C: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CD6Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -36806,6 +45332,9 @@ void func_1FC0CD80(CPUState* cpu) { } } label_BFC0CD80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CD80: 27BDFFA8 addiu $sp, $sp, -88 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-88)); @@ -36831,6 +45360,9 @@ label_BFC0CD80: cpu->gpr[31] = 0xBFC0CDACu; psx_dispatch(cpu, 0xBFC0CF84u); label_BFC0CDAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CDAC: 8FA30030 lw $v1, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CDACu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -36841,6 +45373,9 @@ label_BFC0CDAC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CDB4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0CDB0) goto label_BFC0CF78; label_BFC0CDB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CDB8: 8FA80058 lw $t0, 88($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (88)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CDB8u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -36867,6 +45402,9 @@ label_BFC0CDB8: cpu->gpr[4] = cpu->gpr[2] | cpu->gpr[25]; if (psx_taken_BFC0CDDC) goto label_BFC0CDF0; label_BFC0CDE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CDE4: 240B000F addiu $t3, $zero, 15 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (15)); @@ -36877,12 +45415,18 @@ label_BFC0CDE4: g_debug_last_store_pc = 0xBFC0CDECu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[29] + (64)), (uint8_t)(cpu->gpr[11] & 0xFFu)); if (psx_taken_BFC0CDE8) goto label_BFC0CDF8; label_BFC0CDF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CDF0: 240C0007 addiu $t4, $zero, 7 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[0] + (7)); /* 0xBFC0CDF4: A3AC0040 sb $t4, 64($sp) */ g_debug_last_store_pc = 0xBFC0CDF4u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[29] + (64)), (uint8_t)(cpu->gpr[12] & 0xFFu)); label_BFC0CDF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CDF8: 240D0093 addiu $t5, $zero, 147 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (147)); @@ -36894,6 +45438,9 @@ label_BFC0CDF8: cpu->gpr[31] = 0xBFC0CE08u; psx_dispatch(cpu, 0xBFC03990u); label_BFC0CE08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CE08: 240E0010 addiu $t6, $zero, 16 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); @@ -36903,6 +45450,9 @@ label_BFC0CE08: cpu->gpr[31] = 0xBFC0CE14u; psx_dispatch(cpu, 0xBFC03990u); label_BFC0CE14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CE14: 93AF0044 lbu $t7, 68($sp) */ cpu->gpr[15] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (68))); @@ -36912,6 +45462,9 @@ label_BFC0CE14: cpu->gpr[31] = 0xBFC0CE20u; psx_dispatch(cpu, 0xBFC03990u); label_BFC0CE20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CE20: 93B80040 lbu $t8, 64($sp) */ cpu->gpr[24] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (64))); @@ -36921,6 +45474,9 @@ label_BFC0CE20: cpu->gpr[31] = 0xBFC0CE2Cu; psx_dispatch(cpu, 0xBFC03990u); label_BFC0CE2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CE2C: 3C08BFC1 lui $t0, 0xBFC1 */ cpu->gpr[8] = 0xBFC10000u; @@ -36934,6 +45490,9 @@ label_BFC0CE2C: cpu->gpr[31] = 0xBFC0CE40u; psx_dispatch(cpu, 0xBFC03990u); label_BFC0CE40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CE40: 8FA40058 lw $a0, 88($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (88)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CE40u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -36943,6 +45502,9 @@ label_BFC0CE40: cpu->gpr[31] = 0xBFC0CE4Cu; psx_dispatch(cpu, 0xBFC01A60u); label_BFC0CE4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CE4C: 24097530 addiu $t1, $zero, 30000 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (30000)); @@ -36967,10 +45529,16 @@ label_BFC0CE4C: /* nop */ if (psx_taken_BFC0CE6C) goto label_BFC0CE94; label_BFC0CE74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CE74: 8FAD003C lw $t5, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CE74u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } label_BFC0CE78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CE78: 00000000 nop */ /* nop */ @@ -36989,6 +45557,9 @@ label_BFC0CE78: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CE90u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } if (psx_taken_BFC0CE8C) goto label_BFC0CE78; label_BFC0CE94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CE94: 92020001 lbu $v0, 1($s0) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (1))); @@ -37003,10 +45574,16 @@ label_BFC0CE94: cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (80)); if (psx_taken_BFC0CEA0) goto label_BFC0CF18; label_BFC0CEA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CEA8: 2419012C addiu $t9, $zero, 300 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (300)); label_BFC0CEAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CEAC: AFB90038 sw $t9, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CEACu); return; } g_debug_last_store_pc = 0xBFC0CEACu; cpu->write_word(psx_addr, cpu->gpr[25]); } @@ -37029,10 +45606,16 @@ label_BFC0CEAC: /* nop */ if (psx_taken_BFC0CEC8) goto label_BFC0CEF0; label_BFC0CED0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CED0: 8FAB0038 lw $t3, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CED0u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } label_BFC0CED4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CED4: 00000000 nop */ /* nop */ @@ -37051,6 +45634,9 @@ label_BFC0CED4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CEECu); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } if (psx_taken_BFC0CEE8) goto label_BFC0CED4; label_BFC0CEF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CEF0: 92000003 lbu $zero, 3($s0) */ (void)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (3))); @@ -37063,6 +45649,9 @@ label_BFC0CEF0: cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (80)); if (psx_taken_BFC0CEF8) goto label_BFC0CF18; label_BFC0CF00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CF00: 92020001 lbu $v0, 1($s0) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (1))); @@ -37077,10 +45666,16 @@ label_BFC0CF00: cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (300)); if (psx_taken_BFC0CF0C) goto label_BFC0CEAC; label_BFC0CF14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CF14: 240F0050 addiu $t7, $zero, 80 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (80)); label_BFC0CF18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CF18: 0FF00E64 jal 0xBFC03990 */ /* 0xBFC0CF1C: A20F0002 sb $t7, 2($s0) */ @@ -37088,6 +45683,9 @@ label_BFC0CF18: cpu->gpr[31] = 0xBFC0CF20u; psx_dispatch(cpu, 0xBFC03990u); label_BFC0CF20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CF20: 24180040 addiu $t8, $zero, 64 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (64)); @@ -37097,6 +45695,9 @@ label_BFC0CF20: cpu->gpr[31] = 0xBFC0CF2Cu; psx_dispatch(cpu, 0xBFC03990u); label_BFC0CF2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CF2C: 8FB90058 lw $t9, 88($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (88)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CF2Cu); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -37132,6 +45733,9 @@ label_BFC0CF2C: cpu->gpr[31] = 0xBFC0CF6Cu; psx_dispatch(cpu, 0xBFC01A60u); label_BFC0CF6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CF6C: 8FB0002C lw $s0, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CF6Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -37140,6 +45744,9 @@ label_BFC0CF6C: /* 0xBFC0CF74: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0CF74u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC0CF78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CF78: 27BD0058 addiu $sp, $sp, 88 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (88)); @@ -37152,6 +45759,9 @@ label_BFC0CF78: void func_1FC0CF84(CPUState* cpu) { debug_server_log_call_entry(0x1FC0CF84u); label_BFC0CF84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CF84: 1000001A beq $zero, $zero, 0xBFC0CFF0 */ uint32_t psx_brA_BFC0CF84 = cpu->gpr[0]; uint32_t psx_brB_BFC0CF84 = cpu->gpr[0]; @@ -37160,6 +45770,9 @@ label_BFC0CF84: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1800)); if (psx_taken_BFC0CF84) goto label_BFC0CFF0; label_BFC0CF8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CF8C: 1000004D beq $zero, $zero, 0xBFC0D0C4 */ uint32_t psx_brA_BFC0CF8C = cpu->gpr[0]; uint32_t psx_brB_BFC0CF8C = cpu->gpr[0]; @@ -37168,6 +45781,9 @@ label_BFC0CF8C: cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC0CF8C) goto label_BFC0D0C4; label_BFC0CF94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CF94: 1000004B beq $zero, $zero, 0xBFC0D0C4 */ uint32_t psx_brA_BFC0CF94 = cpu->gpr[0]; uint32_t psx_brB_BFC0CF94 = cpu->gpr[0]; @@ -37176,6 +45792,9 @@ label_BFC0CF94: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC0CF94) goto label_BFC0D0C4; label_BFC0CF9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CF9C: 10000049 beq $zero, $zero, 0xBFC0D0C4 */ uint32_t psx_brA_BFC0CF9C = cpu->gpr[0]; uint32_t psx_brB_BFC0CF9C = cpu->gpr[0]; @@ -37184,6 +45803,9 @@ label_BFC0CF9C: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC0CF9C) goto label_BFC0D0C4; label_BFC0CFA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CFA4: 10000047 beq $zero, $zero, 0xBFC0D0C4 */ uint32_t psx_brA_BFC0CFA4 = cpu->gpr[0]; uint32_t psx_brB_BFC0CFA4 = cpu->gpr[0]; @@ -37192,6 +45814,9 @@ label_BFC0CFA4: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); if (psx_taken_BFC0CFA4) goto label_BFC0D0C4; label_BFC0CFAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CFAC: 10000045 beq $zero, $zero, 0xBFC0D0C4 */ uint32_t psx_brA_BFC0CFAC = cpu->gpr[0]; uint32_t psx_brB_BFC0CFAC = cpu->gpr[0]; @@ -37200,6 +45825,9 @@ label_BFC0CFAC: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); if (psx_taken_BFC0CFAC) goto label_BFC0D0C4; label_BFC0CFB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CFB4: 10000043 beq $zero, $zero, 0xBFC0D0C4 */ uint32_t psx_brA_BFC0CFB4 = cpu->gpr[0]; uint32_t psx_brB_BFC0CFB4 = cpu->gpr[0]; @@ -37208,6 +45836,9 @@ label_BFC0CFB4: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); if (psx_taken_BFC0CFB4) goto label_BFC0D0C4; label_BFC0CFBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CFBC: 10000041 beq $zero, $zero, 0xBFC0D0C4 */ uint32_t psx_brA_BFC0CFBC = cpu->gpr[0]; uint32_t psx_brB_BFC0CFBC = cpu->gpr[0]; @@ -37216,6 +45847,9 @@ label_BFC0CFBC: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (6)); if (psx_taken_BFC0CFBC) goto label_BFC0D0C4; label_BFC0CFC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CFC4: 1000003F beq $zero, $zero, 0xBFC0D0C4 */ uint32_t psx_brA_BFC0CFC4 = cpu->gpr[0]; uint32_t psx_brB_BFC0CFC4 = cpu->gpr[0]; @@ -37224,6 +45858,9 @@ label_BFC0CFC4: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (8)); if (psx_taken_BFC0CFC4) goto label_BFC0D0C4; label_BFC0CFCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CFCC: 1000003D beq $zero, $zero, 0xBFC0D0C4 */ uint32_t psx_brA_BFC0CFCC = cpu->gpr[0]; uint32_t psx_brB_BFC0CFCC = cpu->gpr[0]; @@ -37232,6 +45869,9 @@ label_BFC0CFCC: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); if (psx_taken_BFC0CFCC) goto label_BFC0D0C4; label_BFC0CFD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CFD4: 1000003B beq $zero, $zero, 0xBFC0D0C4 */ uint32_t psx_brA_BFC0CFD4 = cpu->gpr[0]; uint32_t psx_brB_BFC0CFD4 = cpu->gpr[0]; @@ -37240,6 +45880,9 @@ label_BFC0CFD4: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); if (psx_taken_BFC0CFD4) goto label_BFC0D0C4; label_BFC0CFDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CFDC: 10000039 beq $zero, $zero, 0xBFC0D0C4 */ uint32_t psx_brA_BFC0CFDC = cpu->gpr[0]; uint32_t psx_brB_BFC0CFDC = cpu->gpr[0]; @@ -37248,6 +45891,9 @@ label_BFC0CFDC: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (11)); if (psx_taken_BFC0CFDC) goto label_BFC0D0C4; label_BFC0CFE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CFE4: 10000037 beq $zero, $zero, 0xBFC0D0C4 */ uint32_t psx_brA_BFC0CFE4 = cpu->gpr[0]; uint32_t psx_brB_BFC0CFE4 = cpu->gpr[0]; @@ -37256,10 +45902,16 @@ label_BFC0CFE4: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (12)); if (psx_taken_BFC0CFE4) goto label_BFC0D0C4; label_BFC0CFEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CFEC: 24010708 addiu $at, $zero, 1800 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1800)); label_BFC0CFF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CFF0: 1081FFF8 beq $a0, $at, 0xBFC0CFD4 */ uint32_t psx_brA_BFC0CFF0 = cpu->gpr[4]; uint32_t psx_brB_BFC0CFF0 = cpu->gpr[1]; @@ -37268,6 +45920,9 @@ label_BFC0CFF0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (1801) ? 1 : 0); if (psx_taken_BFC0CFF0) goto label_BFC0CFD4; label_BFC0CFF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0CFF8: 10200020 beq $at, $zero, 0xBFC0D07C */ uint32_t psx_brA_BFC0CFF8 = cpu->gpr[1]; uint32_t psx_brB_BFC0CFF8 = cpu->gpr[0]; @@ -37276,6 +45931,9 @@ label_BFC0CFF8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (150)); if (psx_taken_BFC0CFF8) goto label_BFC0D07C; label_BFC0D000: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D000: 1081FFE8 beq $a0, $at, 0xBFC0CFA4 */ uint32_t psx_brA_BFC0D000 = cpu->gpr[4]; uint32_t psx_brB_BFC0D000 = cpu->gpr[1]; @@ -37284,6 +45942,9 @@ label_BFC0D000: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (151) ? 1 : 0); if (psx_taken_BFC0D000) goto label_BFC0CFA4; label_BFC0D008: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D008: 1020000E beq $at, $zero, 0xBFC0D044 */ uint32_t psx_brA_BFC0D008 = cpu->gpr[1]; uint32_t psx_brB_BFC0D008 = cpu->gpr[0]; @@ -37292,6 +45953,9 @@ label_BFC0D008: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (110)); if (psx_taken_BFC0D008) goto label_BFC0D044; label_BFC0D010: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D010: 1081FFE0 beq $a0, $at, 0xBFC0CF94 */ uint32_t psx_brA_BFC0D010 = cpu->gpr[4]; uint32_t psx_brB_BFC0D010 = cpu->gpr[1]; @@ -37300,6 +45964,9 @@ label_BFC0D010: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (111) ? 1 : 0); if (psx_taken_BFC0D010) goto label_BFC0CF94; label_BFC0D018: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D018: 10200005 beq $at, $zero, 0xBFC0D030 */ uint32_t psx_brA_BFC0D018 = cpu->gpr[1]; uint32_t psx_brB_BFC0D018 = cpu->gpr[0]; @@ -37308,6 +45975,9 @@ label_BFC0D018: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (75)); if (psx_taken_BFC0D018) goto label_BFC0D030; label_BFC0D020: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D020: 1081FFDA beq $a0, $at, 0xBFC0CF8C */ uint32_t psx_brA_BFC0D020 = cpu->gpr[4]; uint32_t psx_brB_BFC0D020 = cpu->gpr[1]; @@ -37316,6 +45986,9 @@ label_BFC0D020: /* nop */ if (psx_taken_BFC0D020) goto label_BFC0CF8C; label_BFC0D028: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D028: 10000004 beq $zero, $zero, 0xBFC0D03C */ uint32_t psx_brA_BFC0D028 = cpu->gpr[0]; uint32_t psx_brB_BFC0D028 = cpu->gpr[0]; @@ -37324,6 +45997,9 @@ label_BFC0D028: /* nop */ if (psx_taken_BFC0D028) goto label_BFC0D03C; label_BFC0D030: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D030: 24010086 addiu $at, $zero, 134 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (134)); @@ -37334,6 +46010,9 @@ label_BFC0D030: /* nop */ if (psx_taken_BFC0D034) goto label_BFC0CF9C; label_BFC0D03C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D03C: 10000021 beq $zero, $zero, 0xBFC0D0C4 */ uint32_t psx_brA_BFC0D03C = cpu->gpr[0]; uint32_t psx_brB_BFC0D03C = cpu->gpr[0]; @@ -37342,6 +46021,9 @@ label_BFC0D03C: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC0D03C) goto label_BFC0D0C4; label_BFC0D044: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D044: 24010258 addiu $at, $zero, 600 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (600)); @@ -37352,6 +46034,9 @@ label_BFC0D044: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (601) ? 1 : 0); if (psx_taken_BFC0D048) goto label_BFC0CFB4; label_BFC0D050: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D050: 10200005 beq $at, $zero, 0xBFC0D068 */ uint32_t psx_brA_BFC0D050 = cpu->gpr[1]; uint32_t psx_brB_BFC0D050 = cpu->gpr[0]; @@ -37360,6 +46045,9 @@ label_BFC0D050: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (300)); if (psx_taken_BFC0D050) goto label_BFC0D068; label_BFC0D058: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D058: 1081FFD4 beq $a0, $at, 0xBFC0CFAC */ uint32_t psx_brA_BFC0D058 = cpu->gpr[4]; uint32_t psx_brB_BFC0D058 = cpu->gpr[1]; @@ -37368,6 +46056,9 @@ label_BFC0D058: /* nop */ if (psx_taken_BFC0D058) goto label_BFC0CFAC; label_BFC0D060: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D060: 1000FFF6 beq $zero, $zero, 0xBFC0D03C */ uint32_t psx_brA_BFC0D060 = cpu->gpr[0]; uint32_t psx_brB_BFC0D060 = cpu->gpr[0]; @@ -37376,6 +46067,9 @@ label_BFC0D060: /* nop */ if (psx_taken_BFC0D060) goto label_BFC0D03C; label_BFC0D068: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D068: 240104B0 addiu $at, $zero, 1200 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1200)); @@ -37386,6 +46080,9 @@ label_BFC0D068: /* nop */ if (psx_taken_BFC0D06C) goto label_BFC0CFBC; label_BFC0D074: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D074: 1000FFF1 beq $zero, $zero, 0xBFC0D03C */ uint32_t psx_brA_BFC0D074 = cpu->gpr[0]; uint32_t psx_brB_BFC0D074 = cpu->gpr[0]; @@ -37394,6 +46091,9 @@ label_BFC0D074: /* nop */ if (psx_taken_BFC0D074) goto label_BFC0D03C; label_BFC0D07C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D07C: 24012580 addiu $at, $zero, 9600 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (9600)); @@ -37404,6 +46104,9 @@ label_BFC0D07C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (9601) ? 1 : 0); if (psx_taken_BFC0D080) goto label_BFC0CFDC; label_BFC0D088: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D088: 10200009 beq $at, $zero, 0xBFC0D0B0 */ uint32_t psx_brA_BFC0D088 = cpu->gpr[1]; uint32_t psx_brB_BFC0D088 = cpu->gpr[0]; @@ -37412,6 +46115,9 @@ label_BFC0D088: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4800)); if (psx_taken_BFC0D088) goto label_BFC0D0B0; label_BFC0D090: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D090: 1081FFCE beq $a0, $at, 0xBFC0CFCC */ uint32_t psx_brA_BFC0D090 = cpu->gpr[4]; uint32_t psx_brB_BFC0D090 = cpu->gpr[1]; @@ -37420,6 +46126,9 @@ label_BFC0D090: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (4801) ? 1 : 0); if (psx_taken_BFC0D090) goto label_BFC0CFCC; label_BFC0D098: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D098: 1020FFE8 beq $at, $zero, 0xBFC0D03C */ uint32_t psx_brA_BFC0D098 = cpu->gpr[1]; uint32_t psx_brB_BFC0D098 = cpu->gpr[0]; @@ -37428,6 +46137,9 @@ label_BFC0D098: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (2400)); if (psx_taken_BFC0D098) goto label_BFC0D03C; label_BFC0D0A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D0A0: 1081FFC8 beq $a0, $at, 0xBFC0CFC4 */ uint32_t psx_brA_BFC0D0A0 = cpu->gpr[4]; uint32_t psx_brB_BFC0D0A0 = cpu->gpr[1]; @@ -37436,6 +46148,9 @@ label_BFC0D0A0: /* nop */ if (psx_taken_BFC0D0A0) goto label_BFC0CFC4; label_BFC0D0A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D0A8: 1000FFE4 beq $zero, $zero, 0xBFC0D03C */ uint32_t psx_brA_BFC0D0A8 = cpu->gpr[0]; uint32_t psx_brB_BFC0D0A8 = cpu->gpr[0]; @@ -37444,6 +46159,9 @@ label_BFC0D0A8: /* nop */ if (psx_taken_BFC0D0A8) goto label_BFC0D03C; label_BFC0D0B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D0B0: 24014B00 addiu $at, $zero, 19200 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (19200)); @@ -37454,6 +46172,9 @@ label_BFC0D0B0: /* nop */ if (psx_taken_BFC0D0B4) goto label_BFC0CFE4; label_BFC0D0BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D0BC: 1000FFDF beq $zero, $zero, 0xBFC0D03C */ uint32_t psx_brA_BFC0D0BC = cpu->gpr[0]; uint32_t psx_brB_BFC0D0BC = cpu->gpr[0]; @@ -37462,6 +46183,9 @@ label_BFC0D0BC: /* nop */ if (psx_taken_BFC0D0BC) goto label_BFC0D03C; label_BFC0D0C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D0C4: 03E00008 jr $ra */ /* 0xBFC0D0C8: 00601021 addu $v0, $v1, $zero */ @@ -37472,6 +46196,9 @@ label_BFC0D0C4: void func_1FC0D0CC(CPUState* cpu) { debug_server_log_call_entry(0x1FC0D0CCu); label_BFC0D0CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D0CC: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -37484,6 +46211,9 @@ label_BFC0D0CC: /* 0xBFC0D0DC: 2442E568 addiu $v0, $v0, -6808 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (-6808)); label_BFC0D0E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D0E0: 8C6E0000 lw $t6, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D0E0u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -37496,6 +46226,9 @@ label_BFC0D0E0: /* nop */ if (psx_taken_BFC0D0E8) goto label_BFC0D0FC; label_BFC0D0F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D0F0: 8C62FFFC lw $v0, -4($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D0F0u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -37504,6 +46237,9 @@ label_BFC0D0F0: /* nop */ return; label_BFC0D0FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D0FC: 24630004 addiu $v1, $v1, 4 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (4)); @@ -37514,6 +46250,9 @@ label_BFC0D0FC: /* nop */ if (psx_taken_BFC0D100) goto label_BFC0D0E0; label_BFC0D108: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D108: 3C02BFC1 lui $v0, 0xBFC1 */ cpu->gpr[2] = 0xBFC10000u; @@ -37544,6 +46283,9 @@ void func_1FC0D11C(CPUState* cpu) { } } label_BFC0D11C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D11C: 27BDFFB8 addiu $sp, $sp, -72 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-72)); @@ -37574,6 +46316,9 @@ label_BFC0D11C: cpu->gpr[25] = cpu->gpr[2] & 0x10u; if (psx_taken_BFC0D148) goto label_BFC0D15C; label_BFC0D150: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D150: 1000007A beq $zero, $zero, 0xBFC0D33C */ uint32_t psx_brA_BFC0D150 = cpu->gpr[0]; uint32_t psx_brB_BFC0D150 = cpu->gpr[0]; @@ -37582,10 +46327,16 @@ label_BFC0D150: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC0D150) goto label_BFC0D33C; label_BFC0D158: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D158: 30590010 andi $t9, $v0, 0x10 */ cpu->gpr[25] = cpu->gpr[2] & 0x10u; label_BFC0D15C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D15C: 13200039 beq $t9, $zero, 0xBFC0D244 */ uint32_t psx_brA_BFC0D15C = cpu->gpr[25]; uint32_t psx_brB_BFC0D15C = cpu->gpr[0]; @@ -37594,6 +46345,9 @@ label_BFC0D15C: cpu->gpr[25] = cpu->gpr[2] & 0xC0u; if (psx_taken_BFC0D15C) goto label_BFC0D244; label_BFC0D164: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D164: 90680001 lbu $t0, 1($v1) */ cpu->gpr[8] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[3] + (1))); @@ -37608,10 +46362,16 @@ label_BFC0D164: cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (64)); if (psx_taken_BFC0D170) goto label_BFC0D230; label_BFC0D178: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D178: 240A001E addiu $t2, $zero, 30 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (30)); label_BFC0D17C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D17C: AFAA0034 sw $t2, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D17Cu); return; } g_debug_last_store_pc = 0xBFC0D17Cu; cpu->write_word(psx_addr, cpu->gpr[10]); } @@ -37634,10 +46394,16 @@ label_BFC0D17C: /* nop */ if (psx_taken_BFC0D198) goto label_BFC0D1C0; label_BFC0D1A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D1A0: 8FAE0034 lw $t6, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D1A0u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } label_BFC0D1A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D1A4: 00000000 nop */ /* nop */ @@ -37656,6 +46422,9 @@ label_BFC0D1A4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D1BCu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } if (psx_taken_BFC0D1B8) goto label_BFC0D1A4; label_BFC0D1C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D1C0: 90600003 lbu $zero, 3($v1) */ (void)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[3] + (3))); @@ -37682,10 +46451,16 @@ label_BFC0D1C0: /* nop */ if (psx_taken_BFC0D1E4) goto label_BFC0D20C; label_BFC0D1EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D1EC: 8FAB0030 lw $t3, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D1ECu); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } label_BFC0D1F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D1F0: 00000000 nop */ /* nop */ @@ -37704,6 +46479,9 @@ label_BFC0D1F0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D208u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } if (psx_taken_BFC0D204) goto label_BFC0D1F0; label_BFC0D20C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D20C: 2442FFFF addiu $v0, $v0, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (-1)); @@ -37714,6 +46492,9 @@ label_BFC0D20C: cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (64)); if (psx_taken_BFC0D210) goto label_BFC0D230; label_BFC0D218: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D218: 906E0001 lbu $t6, 1($v1) */ cpu->gpr[14] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[3] + (1))); @@ -37728,10 +46509,16 @@ label_BFC0D218: cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (30)); if (psx_taken_BFC0D224) goto label_BFC0D17C; label_BFC0D22C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D22C: 24180040 addiu $t8, $zero, 64 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (64)); label_BFC0D230: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D230: 0FF00E64 jal 0xBFC03990 */ /* 0xBFC0D234: A0780002 sb $t8, 2($v1) */ @@ -37739,6 +46526,9 @@ label_BFC0D230: cpu->gpr[31] = 0xBFC0D238u; psx_dispatch(cpu, 0xBFC03990u); label_BFC0D238: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D238: 10000040 beq $zero, $zero, 0xBFC0D33C */ uint32_t psx_brA_BFC0D238 = cpu->gpr[0]; uint32_t psx_brB_BFC0D238 = cpu->gpr[0]; @@ -37747,10 +46537,16 @@ label_BFC0D238: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC0D238) goto label_BFC0D33C; label_BFC0D240: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D240: 305900C0 andi $t9, $v0, 0xC0 */ cpu->gpr[25] = cpu->gpr[2] & 0xC0u; label_BFC0D244: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D244: 13200029 beq $t9, $zero, 0xBFC0D2EC */ uint32_t psx_brA_BFC0D244 = cpu->gpr[25]; uint32_t psx_brB_BFC0D244 = cpu->gpr[0]; @@ -37759,6 +46555,9 @@ label_BFC0D244: /* nop */ if (psx_taken_BFC0D244) goto label_BFC0D2EC; label_BFC0D24C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D24C: 24080050 addiu $t0, $zero, 80 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (80)); @@ -37770,6 +46569,9 @@ label_BFC0D24C: cpu->gpr[31] = 0xBFC0D25Cu; psx_dispatch(cpu, 0xBFC03990u); label_BFC0D25C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D25C: 8FA30044 lw $v1, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D25Cu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -37781,6 +46583,9 @@ label_BFC0D25C: cpu->gpr[31] = 0xBFC0D26Cu; psx_dispatch(cpu, 0xBFC03990u); label_BFC0D26C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D26C: 8FAA0048 lw $t2, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D26Cu); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -37800,6 +46605,9 @@ label_BFC0D26C: cpu->gpr[31] = 0xBFC0D28Cu; psx_dispatch(cpu, 0xBFC0D0CCu); label_BFC0D28C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D28C: 8FAD0024 lw $t5, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D28Cu); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -37809,6 +46617,9 @@ label_BFC0D28C: cpu->gpr[31] = 0xBFC0D298u; psx_dispatch(cpu, 0xBFC03990u); label_BFC0D298: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D298: 240E0001 addiu $t6, $zero, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -37822,6 +46633,9 @@ label_BFC0D298: cpu->gpr[31] = 0xBFC0D2ACu; psx_dispatch(cpu, 0xBFC0CD80u); label_BFC0D2AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D2AC: 8FA20024 lw $v0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D2ACu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -37836,6 +46650,9 @@ label_BFC0D2AC: /* nop */ if (psx_taken_BFC0D2B8) goto label_BFC0D2CC; label_BFC0D2C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D2C0: 3C05BFC1 lui $a1, 0xBFC1 */ cpu->gpr[5] = 0xBFC10000u; @@ -37846,12 +46663,18 @@ label_BFC0D2C0: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (-6780)); if (psx_taken_BFC0D2C4) goto label_BFC0D2D4; label_BFC0D2CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D2CC: 3C05BFC1 lui $a1, 0xBFC1 */ cpu->gpr[5] = 0xBFC10000u; /* 0xBFC0D2D0: 24A5E590 addiu $a1, $a1, -6768 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (-6768)); label_BFC0D2D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D2D4: 3C04BFC1 lui $a0, 0xBFC1 */ cpu->gpr[4] = 0xBFC10000u; @@ -37863,6 +46686,9 @@ label_BFC0D2D4: cpu->gpr[31] = 0xBFC0D2E4u; psx_dispatch(cpu, 0xBFC018E0u); label_BFC0D2E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D2E4: 10000015 beq $zero, $zero, 0xBFC0D33C */ uint32_t psx_brA_BFC0D2E4 = cpu->gpr[0]; uint32_t psx_brB_BFC0D2E4 = cpu->gpr[0]; @@ -37871,6 +46697,9 @@ label_BFC0D2E4: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC0D2E4) goto label_BFC0D33C; label_BFC0D2EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D2EC: 90640003 lbu $a0, 3($v1) */ cpu->gpr[4] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[3] + (3))); @@ -37897,10 +46726,16 @@ label_BFC0D2EC: cpu->gpr[2] = cpu->gpr[4] | 0x100u; if (psx_taken_BFC0D310) goto label_BFC0D33C; label_BFC0D318: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D318: 8FAA0028 lw $t2, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D318u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } label_BFC0D31C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D31C: 00000000 nop */ /* nop */ @@ -37919,10 +46754,16 @@ label_BFC0D31C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D334u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } if (psx_taken_BFC0D330) goto label_BFC0D31C; label_BFC0D338: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D338: 34820100 ori $v0, $a0, 0x100 */ cpu->gpr[2] = cpu->gpr[4] | 0x100u; label_BFC0D33C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D33C: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D33Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -37947,6 +46788,9 @@ void func_1FC0D34C(CPUState* cpu) { } } label_BFC0D34C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D34C: 27BDFFC0 addiu $sp, $sp, -64 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-64)); @@ -37991,6 +46835,9 @@ label_BFC0D34C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D398u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } if (psx_taken_BFC0D394) goto label_BFC0D3BC; label_BFC0D39C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D39C: 0FF036F0 jal 0xBFC0DBC0 */ /* 0xBFC0D3A0: 00000000 nop */ @@ -37998,6 +46845,9 @@ label_BFC0D39C: cpu->gpr[31] = 0xBFC0D3A4u; psx_dispatch(cpu, 0xBFC0DBC0u); label_BFC0D3A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D3A4: 8E290000 lw $t1, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D3A4u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -38012,10 +46862,16 @@ label_BFC0D3A4: /* nop */ if (psx_taken_BFC0D3B0) goto label_BFC0D39C; label_BFC0D3B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D3B8: 8FAB0044 lw $t3, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D3B8u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } label_BFC0D3BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D3BC: 3C11A001 lui $s1, 0xA001 */ cpu->gpr[17] = 0xA0010000u; @@ -38034,6 +46890,9 @@ label_BFC0D3BC: /* nop */ if (psx_taken_BFC0D3D0) goto label_BFC0D414; label_BFC0D3D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D3D8: 922D0001 lbu $t5, 1($s1) */ cpu->gpr[13] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (1))); @@ -38048,6 +46907,9 @@ label_BFC0D3D8: /* nop */ if (psx_taken_BFC0D3E4) goto label_BFC0D414; label_BFC0D3EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D3EC: 0FF036F0 jal 0xBFC0DBC0 */ /* 0xBFC0D3F0: 00000000 nop */ @@ -38055,6 +46917,9 @@ label_BFC0D3EC: cpu->gpr[31] = 0xBFC0D3F4u; psx_dispatch(cpu, 0xBFC0DBC0u); label_BFC0D3F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D3F4: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); @@ -38065,6 +46930,9 @@ label_BFC0D3F4: /* nop */ if (psx_taken_BFC0D3F8) goto label_BFC0D414; label_BFC0D400: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D400: 922F0001 lbu $t7, 1($s1) */ cpu->gpr[15] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (1))); @@ -38079,6 +46947,9 @@ label_BFC0D400: /* nop */ if (psx_taken_BFC0D40C) goto label_BFC0D3EC; label_BFC0D414: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D414: 1A000029 blez $s0, 0xBFC0D4BC */ uint32_t psx_brA_BFC0D414 = cpu->gpr[16]; @@ -38087,6 +46958,9 @@ label_BFC0D414: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D418u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0D414) goto label_BFC0D4BC; label_BFC0D41C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D41C: 2419001E addiu $t9, $zero, 30 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (30)); @@ -38111,10 +46985,16 @@ label_BFC0D41C: cpu->gpr[14] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (64))); if (psx_taken_BFC0D43C) goto label_BFC0D468; label_BFC0D444: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D444: 8FAB0030 lw $t3, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D444u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } label_BFC0D448: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D448: 00000000 nop */ /* nop */ @@ -38133,10 +47013,16 @@ label_BFC0D448: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D460u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } if (psx_taken_BFC0D45C) goto label_BFC0D448; label_BFC0D464: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D464: 83AE0040 lb $t6, 64($sp) */ cpu->gpr[14] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (64))); label_BFC0D468: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D468: 0FF00E64 jal 0xBFC03990 */ /* 0xBFC0D46C: A22E0003 sb $t6, 3($s1) */ @@ -38144,6 +47030,9 @@ label_BFC0D468: cpu->gpr[31] = 0xBFC0D470u; psx_dispatch(cpu, 0xBFC03990u); label_BFC0D470: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D470: 240F001E addiu $t7, $zero, 30 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (30)); @@ -38168,10 +47057,16 @@ label_BFC0D470: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D494u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC0D490) goto label_BFC0D4BC; label_BFC0D498: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D498: 8FA9002C lw $t1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D498u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } label_BFC0D49C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D49C: 00000000 nop */ /* nop */ @@ -38190,10 +47085,16 @@ label_BFC0D49C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D4B4u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } if (psx_taken_BFC0D4B0) goto label_BFC0D49C; label_BFC0D4B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D4B8: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D4B8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC0D4BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D4BC: 8FB0001C lw $s0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D4BCu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -38216,6 +47117,9 @@ void func_1FC0D4CC(CPUState* cpu) { } } label_BFC0D4CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D4CC: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -38229,6 +47133,9 @@ label_BFC0D4CC: cpu->gpr[31] = 0xBFC0D4E0u; psx_dispatch(cpu, 0xBFC0D9F0u); label_BFC0D4E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D4E0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D4E0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -38257,6 +47164,9 @@ void func_1FC0D570(CPUState* cpu) { } } label_BFC0D570: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D570: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -38272,6 +47182,9 @@ label_BFC0D570: cpu->gpr[31] = 0xBFC0D588u; psx_dispatch(cpu, 0xBFC0D8C0u); label_BFC0D588: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D588: 3C0EA001 lui $t6, 0xA001 */ cpu->gpr[14] = 0xA0010000u; @@ -38286,6 +47199,9 @@ label_BFC0D588: /* nop */ if (psx_taken_BFC0D594) goto label_BFC0D5D4; label_BFC0D59C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D59C: 0FF035CB jal 0xBFC0D72C */ /* 0xBFC0D5A0: 00000000 nop */ @@ -38293,6 +47209,9 @@ label_BFC0D59C: cpu->gpr[31] = 0xBFC0D5A4u; psx_dispatch(cpu, 0xBFC0D72Cu); label_BFC0D5A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D5A4: 04410004 bgez $v0, 0xBFC0D5B8 */ uint32_t psx_brA_BFC0D5A4 = cpu->gpr[2]; @@ -38301,6 +47220,9 @@ label_BFC0D5A4: /* nop */ if (psx_taken_BFC0D5A4) goto label_BFC0D5B8; label_BFC0D5AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D5AC: 24040044 addiu $a0, $zero, 68 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (68)); @@ -38310,6 +47232,9 @@ label_BFC0D5AC: cpu->gpr[31] = 0xBFC0D5B8u; psx_dispatch(cpu, 0xBFC0D950u); label_BFC0D5B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D5B8: 0FF035EF jal 0xBFC0D7BC */ /* 0xBFC0D5BC: 00000000 nop */ @@ -38317,6 +47242,9 @@ label_BFC0D5B8: cpu->gpr[31] = 0xBFC0D5C0u; psx_dispatch(cpu, 0xBFC0D7BCu); label_BFC0D5C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D5C0: 04410004 bgez $v0, 0xBFC0D5D4 */ uint32_t psx_brA_BFC0D5C0 = cpu->gpr[2]; @@ -38325,6 +47253,9 @@ label_BFC0D5C0: /* nop */ if (psx_taken_BFC0D5C0) goto label_BFC0D5D4; label_BFC0D5C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D5C8: 24040044 addiu $a0, $zero, 68 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (68)); @@ -38334,6 +47265,9 @@ label_BFC0D5C8: cpu->gpr[31] = 0xBFC0D5D4u; psx_dispatch(cpu, 0xBFC0D950u); label_BFC0D5D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D5D4: 0FF03658 jal 0xBFC0D960 */ /* 0xBFC0D5D8: 00000000 nop */ @@ -38341,6 +47275,9 @@ label_BFC0D5D4: cpu->gpr[31] = 0xBFC0D5DCu; psx_dispatch(cpu, 0xBFC0D960u); label_BFC0D5DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D5DC: 8FA40028 lw $a0, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D5DCu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -38354,6 +47291,9 @@ label_BFC0D5DC: cpu->gpr[31] = 0xBFC0D5F0u; psx_dispatch(cpu, 0xBFC03CF0u); label_BFC0D5F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D5F0: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D5F0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -38368,6 +47308,9 @@ label_BFC0D5F0: void func_1FC0D600(CPUState* cpu) { debug_server_log_call_entry(0x1FC0D600u); label_BFC0D600: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D600: 3C0FBFC1 lui $t7, 0xBFC1 */ cpu->gpr[15] = 0xBFC10000u; @@ -38390,6 +47333,9 @@ label_BFC0D600: /* 0xBFC0D624: A3380000 sb $t8, 0($t9) */ g_debug_last_store_pc = 0xBFC0D624u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[25] + (0)), (uint8_t)(cpu->gpr[24] & 0xFFu)); label_BFC0D628: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D628: 24480003 addiu $t0, $v0, 3 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[2] + (3)); @@ -38402,6 +47348,9 @@ label_BFC0D628: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[0] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D634u); return; } g_debug_last_store_pc = 0xBFC0D634u; cpu->write_word(psx_addr, cpu->gpr[8]); } if (psx_taken_BFC0D630) goto label_BFC0D628; label_BFC0D638: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D638: 03E00008 jr $ra */ /* 0xBFC0D63C: 00000000 nop */ @@ -38412,6 +47361,9 @@ label_BFC0D638: void func_1FC0D640(CPUState* cpu) { debug_server_log_call_entry(0x1FC0D640u); label_BFC0D640: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D640: 3C0FBFC1 lui $t7, 0xBFC1 */ cpu->gpr[15] = 0xBFC10000u; @@ -38436,6 +47388,9 @@ label_BFC0D640: void func_1FC0D664(CPUState* cpu) { debug_server_log_call_entry(0x1FC0D664u); label_BFC0D664: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D664: 3C0FBFC1 lui $t7, 0xBFC1 */ cpu->gpr[15] = 0xBFC10000u; @@ -38468,6 +47423,9 @@ void func_1FC0D688(CPUState* cpu) { } } label_BFC0D688: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D688: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -38492,6 +47450,9 @@ label_BFC0D688: /* 0xBFC0D6B0: 24130001 addiu $s3, $zero, 1 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC0D6B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D6B4: 3C0EBFC1 lui $t6, 0xBFC1 */ cpu->gpr[14] = 0xBFC10000u; @@ -38518,6 +47479,9 @@ label_BFC0D6B4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (5) ? 1 : 0); if (psx_taken_BFC0D6D8) goto label_BFC0D6F4; label_BFC0D6E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D6E0: 0FF03580 jal 0xBFC0D600 */ /* 0xBFC0D6E4: 02118021 addu $s0, $s0, $s1 */ @@ -38525,6 +47489,9 @@ label_BFC0D6E0: cpu->gpr[31] = 0xBFC0D6E8u; psx_dispatch(cpu, 0xBFC0D600u); label_BFC0D6E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D6E8: 92430000 lbu $v1, 0($s2) */ cpu->gpr[3] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[18] + (0))); @@ -38533,6 +47500,9 @@ label_BFC0D6E8: /* 0xBFC0D6F0: 2A010005 slti $at, $s0, 5 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (5) ? 1 : 0); label_BFC0D6F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D6F4: 1420FFEF bne $at, $zero, 0xBFC0D6B4 */ uint32_t psx_brA_BFC0D6F4 = cpu->gpr[1]; uint32_t psx_brB_BFC0D6F4 = cpu->gpr[0]; @@ -38541,6 +47511,9 @@ label_BFC0D6F4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); if (psx_taken_BFC0D6F4) goto label_BFC0D6B4; label_BFC0D6FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D6FC: 16210004 bne $s1, $at, 0xBFC0D710 */ uint32_t psx_brA_BFC0D6FC = cpu->gpr[17]; uint32_t psx_brB_BFC0D6FC = cpu->gpr[1]; @@ -38549,6 +47522,9 @@ label_BFC0D6FC: cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC0D6FC) goto label_BFC0D710; label_BFC0D704: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D704: 10000002 beq $zero, $zero, 0xBFC0D710 */ uint32_t psx_brA_BFC0D704 = cpu->gpr[0]; uint32_t psx_brB_BFC0D704 = cpu->gpr[0]; @@ -38557,10 +47533,16 @@ label_BFC0D704: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC0D704) goto label_BFC0D710; label_BFC0D70C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D70C: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; label_BFC0D710: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D710: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D710u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -38595,6 +47577,9 @@ void func_1FC0D72C(CPUState* cpu) { } } label_BFC0D72C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D72C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -38606,6 +47591,9 @@ label_BFC0D72C: cpu->gpr[31] = 0xBFC0D73Cu; psx_dispatch(cpu, 0xBFC0D600u); label_BFC0D73C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D73C: 0FF03599 jal 0xBFC0D664 */ /* 0xBFC0D740: 00000000 nop */ @@ -38613,6 +47601,9 @@ label_BFC0D73C: cpu->gpr[31] = 0xBFC0D744u; psx_dispatch(cpu, 0xBFC0D664u); label_BFC0D744: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D744: 3C0EBFC1 lui $t6, 0xBFC1 */ cpu->gpr[14] = 0xBFC10000u; @@ -38632,6 +47623,9 @@ label_BFC0D744: cpu->gpr[31] = 0xBFC0D764u; psx_dispatch(cpu, 0xBFC0D688u); label_BFC0D764: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D764: 04410006 bgez $v0, 0xBFC0D780 */ uint32_t psx_brA_BFC0D764 = cpu->gpr[2]; @@ -38640,6 +47634,9 @@ label_BFC0D764: cpu->gpr[25] = cpu->gpr[2] & 0x1Du; if (psx_taken_BFC0D764) goto label_BFC0D780; label_BFC0D76C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D76C: 0FF03590 jal 0xBFC0D640 */ /* 0xBFC0D770: 00000000 nop */ @@ -38647,6 +47644,9 @@ label_BFC0D76C: cpu->gpr[31] = 0xBFC0D774u; psx_dispatch(cpu, 0xBFC0D640u); label_BFC0D774: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D774: 1000000D beq $zero, $zero, 0xBFC0D7AC */ uint32_t psx_brA_BFC0D774 = cpu->gpr[0]; uint32_t psx_brB_BFC0D774 = cpu->gpr[0]; @@ -38655,10 +47655,16 @@ label_BFC0D774: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC0D774) goto label_BFC0D7AC; label_BFC0D77C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D77C: 3059001D andi $t9, $v0, 0x1D */ cpu->gpr[25] = cpu->gpr[2] & 0x1Du; label_BFC0D780: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D780: 13200005 beq $t9, $zero, 0xBFC0D798 */ uint32_t psx_brA_BFC0D780 = cpu->gpr[25]; uint32_t psx_brB_BFC0D780 = cpu->gpr[0]; @@ -38667,6 +47673,9 @@ label_BFC0D780: /* nop */ if (psx_taken_BFC0D780) goto label_BFC0D798; label_BFC0D788: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D788: 0FF03590 jal 0xBFC0D640 */ /* 0xBFC0D78C: 00000000 nop */ @@ -38674,6 +47683,9 @@ label_BFC0D788: cpu->gpr[31] = 0xBFC0D790u; psx_dispatch(cpu, 0xBFC0D640u); label_BFC0D790: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D790: 10000006 beq $zero, $zero, 0xBFC0D7AC */ uint32_t psx_brA_BFC0D790 = cpu->gpr[0]; uint32_t psx_brB_BFC0D790 = cpu->gpr[0]; @@ -38682,6 +47694,9 @@ label_BFC0D790: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC0D790) goto label_BFC0D7AC; label_BFC0D798: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D798: 0FF03580 jal 0xBFC0D600 */ /* 0xBFC0D79C: 00000000 nop */ @@ -38689,6 +47704,9 @@ label_BFC0D798: cpu->gpr[31] = 0xBFC0D7A0u; psx_dispatch(cpu, 0xBFC0D600u); label_BFC0D7A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D7A0: 0FF03590 jal 0xBFC0D640 */ /* 0xBFC0D7A4: 00000000 nop */ @@ -38696,10 +47714,16 @@ label_BFC0D7A0: cpu->gpr[31] = 0xBFC0D7A8u; psx_dispatch(cpu, 0xBFC0D640u); label_BFC0D7A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D7A8: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC0D7AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D7AC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D7ACu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -38728,6 +47752,9 @@ void func_1FC0D7BC(CPUState* cpu) { } } label_BFC0D7BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D7BC: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -38739,6 +47766,9 @@ label_BFC0D7BC: cpu->gpr[31] = 0xBFC0D7CCu; psx_dispatch(cpu, 0xBFC0D600u); label_BFC0D7CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D7CC: 0FF03599 jal 0xBFC0D664 */ /* 0xBFC0D7D0: 00000000 nop */ @@ -38746,6 +47776,9 @@ label_BFC0D7CC: cpu->gpr[31] = 0xBFC0D7D4u; psx_dispatch(cpu, 0xBFC0D664u); label_BFC0D7D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D7D4: 3C0EBFC1 lui $t6, 0xBFC1 */ cpu->gpr[14] = 0xBFC10000u; @@ -38765,6 +47798,9 @@ label_BFC0D7D4: cpu->gpr[31] = 0xBFC0D7F4u; psx_dispatch(cpu, 0xBFC0D688u); label_BFC0D7F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D7F4: 04410006 bgez $v0, 0xBFC0D810 */ uint32_t psx_brA_BFC0D7F4 = cpu->gpr[2]; @@ -38773,6 +47809,9 @@ label_BFC0D7F4: cpu->gpr[25] = cpu->gpr[2] & 0x1Du; if (psx_taken_BFC0D7F4) goto label_BFC0D810; label_BFC0D7FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D7FC: 0FF03590 jal 0xBFC0D640 */ /* 0xBFC0D800: 00000000 nop */ @@ -38780,6 +47819,9 @@ label_BFC0D7FC: cpu->gpr[31] = 0xBFC0D804u; psx_dispatch(cpu, 0xBFC0D640u); label_BFC0D804: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D804: 1000000D beq $zero, $zero, 0xBFC0D83C */ uint32_t psx_brA_BFC0D804 = cpu->gpr[0]; uint32_t psx_brB_BFC0D804 = cpu->gpr[0]; @@ -38788,10 +47830,16 @@ label_BFC0D804: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC0D804) goto label_BFC0D83C; label_BFC0D80C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D80C: 3059001D andi $t9, $v0, 0x1D */ cpu->gpr[25] = cpu->gpr[2] & 0x1Du; label_BFC0D810: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D810: 13200005 beq $t9, $zero, 0xBFC0D828 */ uint32_t psx_brA_BFC0D810 = cpu->gpr[25]; uint32_t psx_brB_BFC0D810 = cpu->gpr[0]; @@ -38800,6 +47848,9 @@ label_BFC0D810: /* nop */ if (psx_taken_BFC0D810) goto label_BFC0D828; label_BFC0D818: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D818: 0FF03590 jal 0xBFC0D640 */ /* 0xBFC0D81C: 00000000 nop */ @@ -38807,6 +47858,9 @@ label_BFC0D818: cpu->gpr[31] = 0xBFC0D820u; psx_dispatch(cpu, 0xBFC0D640u); label_BFC0D820: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D820: 10000006 beq $zero, $zero, 0xBFC0D83C */ uint32_t psx_brA_BFC0D820 = cpu->gpr[0]; uint32_t psx_brB_BFC0D820 = cpu->gpr[0]; @@ -38815,6 +47869,9 @@ label_BFC0D820: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC0D820) goto label_BFC0D83C; label_BFC0D828: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D828: 0FF03580 jal 0xBFC0D600 */ /* 0xBFC0D82C: 00000000 nop */ @@ -38822,6 +47879,9 @@ label_BFC0D828: cpu->gpr[31] = 0xBFC0D830u; psx_dispatch(cpu, 0xBFC0D600u); label_BFC0D830: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D830: 0FF03590 jal 0xBFC0D640 */ /* 0xBFC0D834: 00000000 nop */ @@ -38829,10 +47889,16 @@ label_BFC0D830: cpu->gpr[31] = 0xBFC0D838u; psx_dispatch(cpu, 0xBFC0D640u); label_BFC0D838: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D838: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC0D83C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D83C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D83Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -38847,6 +47913,9 @@ label_BFC0D83C: void func_1FC0D850(CPUState* cpu) { debug_server_log_call_entry(0x1FC0D850u); label_BFC0D850: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D850: 3C09A001 lui $t1, 0xA001 */ cpu->gpr[9] = 0xA0010000u; @@ -38859,6 +47928,9 @@ label_BFC0D850: /* 0xBFC0D860: 01415025 or $t2, $t2, $at */ cpu->gpr[10] = cpu->gpr[10] | cpu->gpr[1]; label_BFC0D864: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D864: AD200000 sw $zero, 0($t1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC0D864u); return; } g_debug_last_store_pc = 0xBFC0D864u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -38871,6 +47943,9 @@ label_BFC0D864: /* nop */ if (psx_taken_BFC0D86C) goto label_BFC0D864; label_BFC0D874: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D874: 03E00008 jr $ra */ /* 0xBFC0D878: 00000000 nop */ @@ -38881,6 +47956,9 @@ label_BFC0D874: void func_1FC0D880(CPUState* cpu) { debug_server_log_call_entry(0x1FC0D880u); label_BFC0D880: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D880: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -38893,6 +47971,9 @@ label_BFC0D880: void func_1FC0D890(CPUState* cpu) { debug_server_log_call_entry(0x1FC0D890u); label_BFC0D890: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D890: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -38905,6 +47986,9 @@ label_BFC0D890: void func_1FC0D8A0(CPUState* cpu) { debug_server_log_call_entry(0x1FC0D8A0u); label_BFC0D8A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D8A0: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -38917,6 +48001,9 @@ label_BFC0D8A0: void func_1FC0D8B0(CPUState* cpu) { debug_server_log_call_entry(0x1FC0D8B0u); label_BFC0D8B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D8B0: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -38929,6 +48016,9 @@ label_BFC0D8B0: void func_1FC0D8C0(CPUState* cpu) { debug_server_log_call_entry(0x1FC0D8C0u); label_BFC0D8C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D8C0: 24040002 addiu $a0, $zero, 2 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); @@ -38943,6 +48033,9 @@ label_BFC0D8C0: void func_1FC0D8D0(CPUState* cpu) { debug_server_log_call_entry(0x1FC0D8D0u); label_BFC0D8D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D8D0: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -38955,6 +48048,9 @@ label_BFC0D8D0: void func_1FC0D950(CPUState* cpu) { debug_server_log_call_entry(0x1FC0D950u); label_BFC0D950: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D950: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -38967,6 +48063,9 @@ label_BFC0D950: void func_1FC0D960(CPUState* cpu) { debug_server_log_call_entry(0x1FC0D960u); label_BFC0D960: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D960: 24040001 addiu $a0, $zero, 1 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -38981,6 +48080,9 @@ label_BFC0D960: void func_1FC0D970(CPUState* cpu) { debug_server_log_call_entry(0x1FC0D970u); label_BFC0D970: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D970: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -38993,6 +48095,9 @@ label_BFC0D970: void func_1FC0D980(CPUState* cpu) { debug_server_log_call_entry(0x1FC0D980u); label_BFC0D980: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D980: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -39005,6 +48110,9 @@ label_BFC0D980: void func_1FC0D990(CPUState* cpu) { debug_server_log_call_entry(0x1FC0D990u); label_BFC0D990: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D990: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -39017,6 +48125,9 @@ label_BFC0D990: void func_1FC0D9A0(CPUState* cpu) { debug_server_log_call_entry(0x1FC0D9A0u); label_BFC0D9A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D9A0: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -39029,6 +48140,9 @@ label_BFC0D9A0: void func_1FC0D9B0(CPUState* cpu) { debug_server_log_call_entry(0x1FC0D9B0u); label_BFC0D9B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D9B0: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -39041,6 +48155,9 @@ label_BFC0D9B0: void func_1FC0D9C0(CPUState* cpu) { debug_server_log_call_entry(0x1FC0D9C0u); label_BFC0D9C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D9C0: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -39053,6 +48170,9 @@ label_BFC0D9C0: void func_1FC0D9D0(CPUState* cpu) { debug_server_log_call_entry(0x1FC0D9D0u); label_BFC0D9D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D9D0: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -39065,6 +48185,9 @@ label_BFC0D9D0: void func_1FC0D9E0(CPUState* cpu) { debug_server_log_call_entry(0x1FC0D9E0u); label_BFC0D9E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D9E0: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -39077,6 +48200,9 @@ label_BFC0D9E0: void func_1FC0D9F0(CPUState* cpu) { debug_server_log_call_entry(0x1FC0D9F0u); label_BFC0D9F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0D9F0: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -39089,6 +48215,9 @@ label_BFC0D9F0: void func_1FC0DA00(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DA00u); label_BFC0DA00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DA00: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -39101,6 +48230,9 @@ label_BFC0DA00: void func_1FC0DA10(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DA10u); label_BFC0DA10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DA10: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -39113,6 +48245,9 @@ label_BFC0DA10: void func_1FC0DA20(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DA20u); label_BFC0DA20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DA20: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -39125,6 +48260,9 @@ label_BFC0DA20: void func_1FC0DA30(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DA30u); label_BFC0DA30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DA30: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -39137,6 +48275,9 @@ label_BFC0DA30: void func_1FC0DA40(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DA40u); label_BFC0DA40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DA40: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -39149,6 +48290,9 @@ label_BFC0DA40: void func_1FC0DA50(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DA50u); label_BFC0DA50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DA50: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -39161,6 +48305,9 @@ label_BFC0DA50: void func_1FC0DA60(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DA60u); label_BFC0DA60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DA60: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -39173,6 +48320,9 @@ label_BFC0DA60: void func_1FC0DA70(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DA70u); label_BFC0DA70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DA70: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -39185,6 +48335,9 @@ label_BFC0DA70: void func_1FC0DA80(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DA80u); label_BFC0DA80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DA80: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -39197,6 +48350,9 @@ label_BFC0DA80: void func_1FC0DA90(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DA90u); label_BFC0DA90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DA90: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -39209,6 +48365,9 @@ label_BFC0DA90: void func_1FC0DAA0(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DAA0u); label_BFC0DAA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DAA0: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -39221,6 +48380,9 @@ label_BFC0DAA0: void func_1FC0DAB0(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DAB0u); label_BFC0DAB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DAB0: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -39233,6 +48395,9 @@ label_BFC0DAB0: void func_1FC0DAC0(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DAC0u); label_BFC0DAC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DAC0: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -39245,6 +48410,9 @@ label_BFC0DAC0: void func_1FC0DAD0(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DAD0u); label_BFC0DAD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DAD0: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -39257,6 +48425,9 @@ label_BFC0DAD0: void func_1FC0DAE0(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DAE0u); label_BFC0DAE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DAE0: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -39269,6 +48440,9 @@ label_BFC0DAE0: void func_1FC0DAF0(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DAF0u); label_BFC0DAF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DAF0: 240A00C0 addiu $t2, $zero, 192 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (192)); @@ -39281,6 +48455,9 @@ label_BFC0DAF0: void func_1FC0DB00(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DB00u); label_BFC0DB00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DB00: 240A00C0 addiu $t2, $zero, 192 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (192)); @@ -39293,6 +48470,9 @@ label_BFC0DB00: void func_1FC0DB10(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DB10u); label_BFC0DB10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DB10: 240A00C0 addiu $t2, $zero, 192 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (192)); @@ -39305,6 +48485,9 @@ label_BFC0DB10: void func_1FC0DB20(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DB20u); label_BFC0DB20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DB20: 240A00C0 addiu $t2, $zero, 192 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (192)); @@ -39317,6 +48500,9 @@ label_BFC0DB20: void func_1FC0DB30(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DB30u); label_BFC0DB30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DB30: 240A00C0 addiu $t2, $zero, 192 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (192)); @@ -39329,6 +48515,9 @@ label_BFC0DB30: void func_1FC0DB40(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DB40u); label_BFC0DB40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DB40: 240A00C0 addiu $t2, $zero, 192 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (192)); @@ -39341,6 +48530,9 @@ label_BFC0DB40: void func_1FC0DB50(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DB50u); label_BFC0DB50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DB50: 240A00C0 addiu $t2, $zero, 192 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (192)); @@ -39353,6 +48545,9 @@ label_BFC0DB50: void func_1FC0DB60(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DB60u); label_BFC0DB60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DB60: 240A00C0 addiu $t2, $zero, 192 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (192)); @@ -39365,6 +48560,9 @@ label_BFC0DB60: void func_1FC0DB70(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DB70u); label_BFC0DB70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DB70: 240A00C0 addiu $t2, $zero, 192 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (192)); @@ -39377,6 +48575,9 @@ label_BFC0DB70: void func_1FC0DB80(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DB80u); label_BFC0DB80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DB80: 240A00C0 addiu $t2, $zero, 192 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (192)); @@ -39389,6 +48590,9 @@ label_BFC0DB80: void func_1FC0DB90(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DB90u); label_BFC0DB90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DB90: 240A00C0 addiu $t2, $zero, 192 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (192)); @@ -39401,6 +48605,9 @@ label_BFC0DB90: void func_1FC0DBA0(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DBA0u); label_BFC0DBA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DBA0: 240A00C0 addiu $t2, $zero, 192 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (192)); @@ -39413,6 +48620,9 @@ label_BFC0DBA0: void func_1FC0DBB0(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DBB0u); label_BFC0DBB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DBB0: 240A00C0 addiu $t2, $zero, 192 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (192)); @@ -39425,6 +48635,9 @@ label_BFC0DBB0: void func_1FC0DBC0(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DBC0u); label_BFC0DBC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DBC0: 240A00C0 addiu $t2, $zero, 192 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (192)); @@ -39437,6 +48650,9 @@ label_BFC0DBC0: void func_1FC0DBD0(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DBD0u); label_BFC0DBD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DBD0: 240A00C0 addiu $t2, $zero, 192 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (192)); @@ -39449,6 +48665,9 @@ label_BFC0DBD0: void func_1FC0DBE0(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DBE0u); label_BFC0DBE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DBE0: 240A00C0 addiu $t2, $zero, 192 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (192)); @@ -39461,6 +48680,9 @@ label_BFC0DBE0: void func_1FC0DBF0(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DBF0u); label_BFC0DBF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DBF0: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -39473,6 +48695,9 @@ label_BFC0DBF0: void func_1FC0DC00(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DC00u); label_BFC0DC00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DC00: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -39485,6 +48710,9 @@ label_BFC0DC00: void func_1FC0DC10(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DC10u); label_BFC0DC10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DC10: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -39497,6 +48725,9 @@ label_BFC0DC10: void func_1FC0DC20(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DC20u); label_BFC0DC20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DC20: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -39509,6 +48740,9 @@ label_BFC0DC20: void func_1FC0DC30(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DC30u); label_BFC0DC30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DC30: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -39521,6 +48755,9 @@ label_BFC0DC30: void func_1FC0DC40(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DC40u); label_BFC0DC40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DC40: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -39533,6 +48770,9 @@ label_BFC0DC40: void func_1FC0DC50(CPUState* cpu) { debug_server_log_call_entry(0x1FC0DC50u); label_BFC0DC50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC0DC50: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -39545,6 +48785,9 @@ label_BFC0DC50: void func_00000500(CPUState* cpu) { debug_server_log_call_entry(0x00000500u); label_BFC10000: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC10000: 3C080000 lui $t0, 0x0 */ cpu->gpr[8] = 0x00000000u; @@ -39559,6 +48802,9 @@ label_BFC10000: void func_00000510(CPUState* cpu) { debug_server_log_call_entry(0x00000510u); label_BFC10010: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC10010: 3C080000 lui $t0, 0x0 */ cpu->gpr[8] = 0x00000000u; @@ -39573,6 +48819,9 @@ label_BFC10010: void func_00000520(CPUState* cpu) { debug_server_log_call_entry(0x00000520u); label_BFC10020: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC10020: 3C080000 lui $t0, 0x0 */ cpu->gpr[8] = 0x00000000u; @@ -39587,6 +48836,9 @@ label_BFC10020: void func_00000530(CPUState* cpu) { debug_server_log_call_entry(0x00000530u); label_BFC10030: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC10030: 3C080000 lui $t0, 0x0 */ cpu->gpr[8] = 0x00000000u; @@ -39601,6 +48853,9 @@ label_BFC10030: void func_00000540(CPUState* cpu) { debug_server_log_call_entry(0x00000540u); label_BFC10040: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC10040: 3C050000 lui $a1, 0x0 */ cpu->gpr[5] = 0x00000000u; @@ -39613,6 +48868,9 @@ label_BFC10040: /* 0xBFC10050: 24840964 addiu $a0, $a0, 2404 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (2404)); label_BFC10054: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC10054: 8CA20000 lw $v0, 0($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC10054u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -39627,6 +48885,9 @@ label_BFC10054: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC10064u); return; } g_debug_last_store_pc = 0xBFC10064u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC10060) goto label_BFC10054; label_BFC10068: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC10068: 3C050000 lui $a1, 0x0 */ cpu->gpr[5] = 0x00000000u; @@ -39639,6 +48900,9 @@ label_BFC10068: /* 0xBFC10078: 24840974 addiu $a0, $a0, 2420 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (2420)); label_BFC1007C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1007C: 8CA20000 lw $v0, 0($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1007Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -39653,6 +48917,9 @@ label_BFC1007C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1008Cu); return; } g_debug_last_store_pc = 0xBFC1008Cu; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC10088) goto label_BFC1007C; label_BFC10090: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10090: 03E00008 jr $ra */ /* 0xBFC10094: 00000000 nop */ @@ -39663,6 +48930,9 @@ label_BFC10090: void func_00000598(CPUState* cpu) { debug_server_log_call_entry(0x00000598u); label_BFC10098: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC10098: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -39673,6 +48943,9 @@ label_BFC10098: /* 0xBFC100A4: 24638920 addiu $v1, $v1, -30432 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (-30432)); label_BFC100A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC100A8: AC400000 sw $zero, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC100A8u); return; } g_debug_last_store_pc = 0xBFC100A8u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -39687,6 +48960,9 @@ label_BFC100A8: /* nop */ if (psx_taken_BFC100B4) goto label_BFC100A8; label_BFC100BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC100BC: 03E00008 jr $ra */ /* 0xBFC100C0: 00000000 nop */ @@ -39697,6 +48973,9 @@ label_BFC100BC: void func_000005C4(CPUState* cpu) { debug_server_log_call_entry(0x000005C4u); label_BFC100C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC100C4: 24080200 addiu $t0, $zero, 512 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (512)); @@ -39717,6 +48996,9 @@ label_BFC100C4: void func_000005E0(CPUState* cpu) { debug_server_log_call_entry(0x000005E0u); label_BFC100E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC100E0: 3C080000 lui $t0, 0x0 */ cpu->gpr[8] = 0x00000000u; @@ -39739,6 +49021,9 @@ label_BFC100E0: void func_00000600(CPUState* cpu) { debug_server_log_call_entry(0x00000600u); label_BFC10100: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC10100: 3C080000 lui $t0, 0x0 */ cpu->gpr[8] = 0x00000000u; @@ -39761,6 +49046,9 @@ label_BFC10100: void func_00000620(CPUState* cpu) { debug_server_log_call_entry(0x00000620u); label_BFC10120: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC10120: 40026800 mfc0 $v0, cop0[13] */ cpu->gpr[2] = cpu->cop0[13]; @@ -39775,6 +49063,9 @@ label_BFC10120: void func_00000630(CPUState* cpu) { debug_server_log_call_entry(0x00000630u); label_BFC10130: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC10130: 40026000 mfc0 $v0, cop0[12] */ cpu->gpr[2] = cpu->cop0[12]; @@ -39789,6 +49080,9 @@ label_BFC10130: void func_00000640(CPUState* cpu) { debug_server_log_call_entry(0x00000640u); label_BFC10140: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC10140: 40846000 mtc0 $a0, cop0[12] */ cpu->cop0[12] = cpu->gpr[4]; @@ -39803,6 +49097,9 @@ label_BFC10140: void func_00000650(CPUState* cpu) { debug_server_log_call_entry(0x00000650u); label_BFC10150: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC10150: 0000000C syscall */ cpu->pc = 0xBFC10150u; psx_syscall(cpu, cpu->gpr[2]); return; @@ -39815,6 +49112,9 @@ label_BFC10150: void func_0000065C(CPUState* cpu) { debug_server_log_call_entry(0x0000065Cu); label_BFC1015C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1015C: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -39827,6 +49127,9 @@ label_BFC1015C: void func_00000668(CPUState* cpu) { debug_server_log_call_entry(0x00000668u); label_BFC10168: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC10168: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -39839,6 +49142,9 @@ label_BFC10168: void func_00000674(CPUState* cpu) { debug_server_log_call_entry(0x00000674u); label_BFC10174: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10174: 00001508 jr $zero */ /* 0xBFC10178: 00001B20 add $v1, $zero, $zero */ @@ -39860,6 +49166,9 @@ void func_00000C80(CPUState* cpu) { } } label_BFC10780: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC10780: 00000000 nop */ /* nop */ @@ -39895,6 +49204,9 @@ label_BFC10780: cpu->gpr[31] = 0x00000CC0u; psx_dispatch(cpu, 0x00000EA0u); label_BFC107C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC107C0: 3042003C andi $v0, $v0, 0x3C */ cpu->gpr[2] = cpu->gpr[2] & 0x3Cu; @@ -39905,6 +49217,9 @@ label_BFC107C0: /* nop */ if (psx_taken_BFC107C4) goto label_BFC107EC; label_BFC107CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC107CC: 8C620000 lw $v0, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC107CCu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -39923,10 +49238,16 @@ label_BFC107CC: /* nop */ if (psx_taken_BFC107E0) goto label_BFC107EC; label_BFC107E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC107E8: 20630004 addi $v1, $v1, 4 */ { int32_t psx_a = (int32_t)cpu->gpr[3]; int32_t psx_b = (4); int64_t psx_r = (int64_t)psx_a + (int64_t)psx_b; if (psx_r < (int64_t)INT32_MIN || psx_r > (int64_t)INT32_MAX) { psx_arith_overflow(cpu); return; } cpu->gpr[3] = (uint32_t)(int32_t)psx_r; } label_BFC107EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(63u); +#endif psx_check_interrupts(cpu); /* 0xBFC107EC: AF430080 sw $v1, 128($k0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[26] + (128)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC107ECu); return; } g_debug_last_store_pc = 0xBFC107ECu; cpu->write_word(psx_addr, cpu->gpr[3]); } @@ -40065,6 +49386,9 @@ label_BFC10800: /* 0xBFC108E4: 22740020 addi $s4, $s3, 32 */ { int32_t psx_a = (int32_t)cpu->gpr[19]; int32_t psx_b = (32); int64_t psx_r = (int64_t)psx_a + (int64_t)psx_b; if (psx_r < (int64_t)INT32_MIN || psx_r > (int64_t)INT32_MAX) { psx_arith_overflow(cpu); return; } cpu->gpr[20] = (uint32_t)(int32_t)psx_r; } label_BFC108E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC108E8: 8E760000 lw $s6, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC108E8u); return; } cpu->gpr[22] = cpu->read_word(psx_addr); } @@ -40077,6 +49401,9 @@ label_BFC108E8: /* nop */ if (psx_taken_BFC108F0) goto label_BFC10938; label_BFC108F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC108F8: 8ED10008 lw $s1, 8($s6) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[22] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC108F8u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -40089,6 +49416,9 @@ label_BFC108F8: /* nop */ if (psx_taken_BFC10900) goto label_BFC10928; label_BFC10908: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10908: 0220F809 jalr $ra, $s1 */ /* 0xBFC1090C: 00000000 nop */ @@ -40096,6 +49426,9 @@ label_BFC10908: cpu->gpr[31] = 0x00000E10u; psx_dispatch(cpu, cpu->gpr[17]); label_BFC10910: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10910: 10400005 beq $v0, $zero, 0xBFC10928 */ uint32_t psx_brA_BFC10910 = cpu->gpr[2]; uint32_t psx_brB_BFC10910 = cpu->gpr[0]; @@ -40104,6 +49437,9 @@ label_BFC10910: /* nop */ if (psx_taken_BFC10910) goto label_BFC10928; label_BFC10918: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10918: 12000003 beq $s0, $zero, 0xBFC10928 */ uint32_t psx_brA_BFC10918 = cpu->gpr[16]; uint32_t psx_brB_BFC10918 = cpu->gpr[0]; @@ -40112,6 +49448,9 @@ label_BFC10918: cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC10918) goto label_BFC10928; label_BFC10920: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10920: 0200F809 jalr $ra, $s0 */ /* 0xBFC10924: 00000000 nop */ @@ -40119,6 +49458,9 @@ label_BFC10920: cpu->gpr[31] = 0x00000E28u; psx_dispatch(cpu, cpu->gpr[16]); label_BFC10928: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC10928: 8ED60000 lw $s6, 0($s6) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[22] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC10928u); return; } cpu->gpr[22] = cpu->read_word(psx_addr); } @@ -40131,6 +49473,9 @@ label_BFC10928: /* nop */ if (psx_taken_BFC10930) goto label_BFC108F8; label_BFC10938: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC10938: 22730008 addi $s3, $s3, 8 */ { int32_t psx_a = (int32_t)cpu->gpr[19]; int32_t psx_b = (8); int64_t psx_r = (int64_t)psx_a + (int64_t)psx_b; if (psx_r < (int64_t)INT32_MIN || psx_r > (int64_t)INT32_MAX) { psx_arith_overflow(cpu); return; } cpu->gpr[19] = (uint32_t)(int32_t)psx_r; } @@ -40141,6 +49486,9 @@ label_BFC10938: /* nop */ if (psx_taken_BFC1093C) goto label_BFC108E8; label_BFC10944: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(23u); +#endif psx_check_interrupts(cpu); /* 0xBFC10944: 241A0100 addiu $k0, $zero, 256 */ cpu->gpr[26] = (uint32_t)((int32_t)cpu->gpr[0] + (256)); @@ -40193,6 +49541,9 @@ label_BFC10944: void func_00000EA0(CPUState* cpu) { debug_server_log_call_entry(0x00000EA0u); label_BFC109A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC109A0: 40026800 mfc0 $v0, cop0[13] */ cpu->gpr[2] = cpu->cop0[13]; @@ -40207,6 +49558,9 @@ label_BFC109A0: void func_00000EB0(CPUState* cpu) { debug_server_log_call_entry(0x00000EB0u); label_BFC109B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC109B0: 3C028000 lui $v0, 0x8000 */ cpu->gpr[2] = 0x80000000u; @@ -40221,6 +49575,9 @@ label_BFC109B0: /* 0xBFC109C4: 277B0F1C addiu $k1, $k1, 3868 */ cpu->gpr[27] = (uint32_t)((int32_t)cpu->gpr[27] + (3868)); label_BFC109C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC109C8: 8F430000 lw $v1, 0($k0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[26] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC109C8u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -40235,6 +49592,9 @@ label_BFC109C8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC109D8u); return; } g_debug_last_store_pc = 0xBFC109D8u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC109D4) goto label_BFC109C8; label_BFC109DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC109DC: 3C1A0000 lui $k0, 0x0 */ cpu->gpr[26] = 0x00000000u; @@ -40247,6 +49607,9 @@ label_BFC109DC: /* 0xBFC109EC: 277B0F1C addiu $k1, $k1, 3868 */ cpu->gpr[27] = (uint32_t)((int32_t)cpu->gpr[27] + (3868)); label_BFC109F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC109F0: 8F430000 lw $v1, 0($k0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[26] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC109F0u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -40261,6 +49624,9 @@ label_BFC109F0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC10A00u); return; } g_debug_last_store_pc = 0xBFC10A00u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC109FC) goto label_BFC109F0; label_BFC10A04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10A04: 08001A9C j 0xB0006A70 */ /* 0xBFC10A08: 00000000 nop */ @@ -40271,6 +49637,9 @@ label_BFC10A04: void func_00000F20(CPUState* cpu) { debug_server_log_call_entry(0x00000F20u); label_BFC10A20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC10A20: 3C010000 lui $at, 0x0 */ cpu->gpr[1] = 0x00000000u; @@ -40283,6 +49652,9 @@ label_BFC10A20: void func_00000F2C(CPUState* cpu) { debug_server_log_call_entry(0x00000F2Cu); label_BFC10A2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC10A2C: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -40299,6 +49671,9 @@ label_BFC10A2C: void func_00000F40(CPUState* cpu) { debug_server_log_call_entry(0x00000F40u); label_BFC10A40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(54u); +#endif psx_check_interrupts(cpu); /* 0xBFC10A40: 241A0100 addiu $k0, $zero, 256 */ cpu->gpr[26] = (uint32_t)((int32_t)cpu->gpr[0] + (256)); @@ -40413,6 +49788,9 @@ label_BFC10A40: void func_00001030(CPUState* cpu) { debug_server_log_call_entry(0x00001030u); label_BFC10B30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10B30: 10800021 beq $a0, $zero, 0xBFC10BB8 */ uint32_t psx_brA_BFC10B30 = cpu->gpr[4]; uint32_t psx_brB_BFC10B30 = cpu->gpr[0]; @@ -40421,6 +49799,9 @@ label_BFC10B30: /* nop */ if (psx_taken_BFC10B30) { cpu->pc = 0xBFC10BB8u; return; } label_BFC10B38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC10B38: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -40437,6 +49818,9 @@ label_BFC10B38: cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC10B48) goto label_BFC10B60; label_BFC10B50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC10B50: 00401821 addu $v1, $v0, $zero */ cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; @@ -40447,14 +49831,23 @@ label_BFC10B50: cpu->gpr[5] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC10B54) goto label_BFC10B64; label_BFC10B5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC10B5C: 00801821 addu $v1, $a0, $zero */ cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[0]; label_BFC10B60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC10B60: 00402821 addu $a1, $v0, $zero */ cpu->gpr[5] = cpu->gpr[2] + cpu->gpr[0]; label_BFC10B64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC10B64: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -40483,6 +49876,9 @@ label_BFC10B64: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < cpu->gpr[5] ? 1 : 0); if (psx_taken_BFC10B8C) goto label_BFC10BA0; label_BFC10B94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10B94: 10000013 beq $zero, $zero, 0xBFC10BE4 */ uint32_t psx_brA_BFC10B94 = cpu->gpr[0]; uint32_t psx_brB_BFC10B94 = cpu->gpr[0]; @@ -40491,10 +49887,16 @@ label_BFC10B94: cpu->gpr[6] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC10B94) { cpu->pc = 0xBFC10BE4u; return; } label_BFC10B9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC10B9C: 0045082B sltu $at, $v0, $a1 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < cpu->gpr[5] ? 1 : 0); label_BFC10BA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10BA0: 14200003 bne $at, $zero, 0xBFC10BB0 */ uint32_t psx_brA_BFC10BA0 = cpu->gpr[1]; uint32_t psx_brB_BFC10BA0 = cpu->gpr[0]; @@ -40503,6 +49905,9 @@ label_BFC10BA0: /* nop */ if (psx_taken_BFC10BA0) goto label_BFC10BB0; label_BFC10BA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10BA8: 1000000E beq $zero, $zero, 0xBFC10BE4 */ uint32_t psx_brA_BFC10BA8 = cpu->gpr[0]; uint32_t psx_brB_BFC10BA8 = cpu->gpr[0]; @@ -40511,6 +49916,9 @@ label_BFC10BA8: cpu->gpr[6] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC10BA8) { cpu->pc = 0xBFC10BE4u; return; } label_BFC10BB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10BB0: 03E00008 jr $ra */ /* 0xBFC10BB4: 2402FFFF addiu $v0, $zero, -1 */ @@ -40521,6 +49929,9 @@ label_BFC10BB0: void func_000010B8(CPUState* cpu) { debug_server_log_call_entry(0x000010B8u); label_BFC10BB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC10BB8: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -40541,6 +49952,9 @@ label_BFC10BB8: cpu->gpr[6] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC10BD0) { cpu->pc = 0xBFC10BE4u; return; } label_BFC10BD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10BD8: 03E00008 jr $ra */ /* 0xBFC10BDC: 2402FFFF addiu $v0, $zero, -1 */ @@ -40551,6 +49965,9 @@ label_BFC10BD8: void func_000010E0(CPUState* cpu) { debug_server_log_call_entry(0x000010E0u); label_BFC10BE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC10BE0: 00003021 addu $a2, $zero, $zero */ cpu->gpr[6] = cpu->gpr[0] + cpu->gpr[0]; @@ -40560,6 +49977,9 @@ label_BFC10BE0: void func_000010E4(CPUState* cpu) { debug_server_log_call_entry(0x000010E4u); label_BFC10BE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC10BE4: 24CB0004 addiu $t3, $a2, 4 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[6] + (4)); @@ -40576,10 +49996,16 @@ label_BFC10BE4: cpu->gpr[1] = cpu->gpr[6] + cpu->gpr[0]; if (psx_taken_BFC10BF4) goto label_BFC10C00; label_BFC10BFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC10BFC: 24210003 addiu $at, $at, 3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (3)); label_BFC10C00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC10C00: 0001C883 sra $t9, $at, 2 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[1] >> 2u); @@ -40598,10 +50024,16 @@ label_BFC10C00: cpu->gpr[1] = cpu->gpr[11] + cpu->gpr[0]; if (psx_taken_BFC10C14) goto label_BFC10C20; label_BFC10C1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC10C1C: 24210003 addiu $at, $at, 3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (3)); label_BFC10C20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC10C20: 00016083 sra $t4, $at, 2 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[1] >> 2u); @@ -40622,6 +50054,9 @@ label_BFC10C20: void func_0000113C(CPUState* cpu) { debug_server_log_call_entry(0x0000113Cu); label_BFC10C3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC10C3C: 3C010000 lui $at, 0x0 */ cpu->gpr[1] = 0x00000000u; @@ -40666,6 +50101,9 @@ void func_00001174(CPUState* cpu) { } } label_BFC10C74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC10C74: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -40700,6 +50138,9 @@ label_BFC10C74: cpu->gpr[17] = cpu->gpr[17] & cpu->gpr[1]; if (psx_taken_BFC10CA8) goto label_BFC10CB8; label_BFC10CB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10CB0: 1000001F beq $zero, $zero, 0xBFC10D30 */ uint32_t psx_brA_BFC10CB0 = cpu->gpr[0]; uint32_t psx_brB_BFC10CB0 = cpu->gpr[0]; @@ -40708,6 +50149,9 @@ label_BFC10CB0: cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[0] + (-2)); if (psx_taken_BFC10CB0) goto label_BFC10D30; label_BFC10CB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC10CB8: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -40728,6 +50172,9 @@ label_BFC10CB8: cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[0] + (-2)); if (psx_taken_BFC10CD0) goto label_BFC10CE4; label_BFC10CD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10CD8: 10000085 beq $zero, $zero, 0xBFC10EF0 */ uint32_t psx_brA_BFC10CD8 = cpu->gpr[0]; uint32_t psx_brB_BFC10CD8 = cpu->gpr[0]; @@ -40736,10 +50183,16 @@ label_BFC10CD8: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC10CD8) goto label_BFC10EF0; label_BFC10CE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC10CE0: 2412FFFE addiu $s2, $zero, -2 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[0] + (-2)); label_BFC10CE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC10CE4: AC520000 sw $s2, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC10CE4u); return; } g_debug_last_store_pc = 0xBFC10CE4u; cpu->write_word(psx_addr, cpu->gpr[18]); } @@ -40759,6 +50212,9 @@ label_BFC10CE4: cpu->gpr[31] = 0x00001204u; psx_dispatch(cpu, 0x00001030u); label_BFC10D04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10D04: 10400003 beq $v0, $zero, 0xBFC10D14 */ uint32_t psx_brA_BFC10D04 = cpu->gpr[2]; uint32_t psx_brB_BFC10D04 = cpu->gpr[0]; @@ -40767,6 +50223,9 @@ label_BFC10D04: /* nop */ if (psx_taken_BFC10D04) goto label_BFC10D14; label_BFC10D0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10D0C: 10000078 beq $zero, $zero, 0xBFC10EF0 */ uint32_t psx_brA_BFC10D0C = cpu->gpr[0]; uint32_t psx_brB_BFC10D0C = cpu->gpr[0]; @@ -40775,6 +50234,9 @@ label_BFC10D0C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC10D0C) goto label_BFC10EF0; label_BFC10D14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC10D14: 3C180001 lui $t8, 0x1 */ cpu->gpr[24] = 0x00010000u; @@ -40791,6 +50253,9 @@ label_BFC10D14: /* 0xBFC10D2C: AC396D30 sw $t9, 27952($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (27952)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC10D2Cu); return; } g_debug_last_store_pc = 0xBFC10D2Cu; cpu->write_word(psx_addr, cpu->gpr[25]); } label_BFC10D30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC10D30: 3C080001 lui $t0, 0x1 */ cpu->gpr[8] = 0x00010000u; @@ -40805,6 +50270,9 @@ label_BFC10D30: /* 0xBFC10D44: 30830001 andi $v1, $a0, 0x1 */ cpu->gpr[3] = cpu->gpr[4] & 0x1u; label_BFC10D48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10D48: 10600047 beq $v1, $zero, 0xBFC10E68 */ uint32_t psx_brA_BFC10D48 = cpu->gpr[3]; uint32_t psx_brB_BFC10D48 = cpu->gpr[0]; @@ -40813,6 +50281,9 @@ label_BFC10D48: /* nop */ if (psx_taken_BFC10D48) goto label_BFC10E68; label_BFC10D50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC10D50: 36220001 ori $v0, $s1, 0x1 */ cpu->gpr[2] = cpu->gpr[17] | 0x1u; @@ -40823,6 +50294,9 @@ label_BFC10D50: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < cpu->gpr[4] ? 1 : 0); if (psx_taken_BFC10D54) goto label_BFC10D74; label_BFC10D5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC10D5C: 3C0A0001 lui $t2, 0x1 */ cpu->gpr[10] = 0x00010000u; @@ -40837,10 +50311,16 @@ label_BFC10D5C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[10] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC10D6Cu); return; } g_debug_last_store_pc = 0xBFC10D6Cu; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC10D68) goto label_BFC10EE0; label_BFC10D70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC10D70: 0044082B sltu $at, $v0, $a0 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < cpu->gpr[4] ? 1 : 0); label_BFC10D74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10D74: 10200011 beq $at, $zero, 0xBFC10DBC */ uint32_t psx_brA_BFC10D74 = cpu->gpr[1]; uint32_t psx_brB_BFC10D74 = cpu->gpr[0]; @@ -40849,6 +50329,9 @@ label_BFC10D74: cpu->gpr[1] = (uint32_t)(cpu->gpr[4] < cpu->gpr[17] ? 1 : 0); if (psx_taken_BFC10D74) goto label_BFC10DBC; label_BFC10D7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC10D7C: 3C0D0001 lui $t5, 0x1 */ cpu->gpr[13] = 0x00010000u; @@ -40867,10 +50350,16 @@ label_BFC10D7C: cpu->gpr[1] = cpu->gpr[17] + cpu->gpr[0]; if (psx_taken_BFC10D90) goto label_BFC10D9C; label_BFC10D98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC10D98: 24210003 addiu $at, $at, 3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (3)); label_BFC10D9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC10D9C: 00017083 sra $t6, $at, 2 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[1] >> 2u); @@ -40889,10 +50378,16 @@ label_BFC10D9C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[25] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC10DB4u); return; } g_debug_last_store_pc = 0xBFC10DB4u; cpu->write_word(psx_addr, cpu->gpr[17]); } if (psx_taken_BFC10DB0) goto label_BFC10EE0; label_BFC10DB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC10DB8: 0091082B sltu $at, $a0, $s1 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[4] < cpu->gpr[17] ? 1 : 0); label_BFC10DBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10DBC: 1020FFE2 beq $at, $zero, 0xBFC10D48 */ uint32_t psx_brA_BFC10DBC = cpu->gpr[1]; uint32_t psx_brB_BFC10DBC = cpu->gpr[0]; @@ -40901,6 +50396,9 @@ label_BFC10DBC: /* nop */ if (psx_taken_BFC10DBC) goto label_BFC10D48; label_BFC10DC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC10DC4: 3C080001 lui $t0, 0x1 */ cpu->gpr[8] = 0x00010000u; @@ -40923,6 +50421,9 @@ label_BFC10DC4: cpu->gpr[14] = cpu->gpr[2] & 0x1u; if (psx_taken_BFC10DE0) goto label_BFC10E24; label_BFC10DE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC10DE8: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); @@ -40933,6 +50434,9 @@ label_BFC10DE8: /* nop */ if (psx_taken_BFC10DEC) goto label_BFC10E0C; label_BFC10DF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10DF4: 0C00040C jal 0xB0001030 */ /* 0xBFC10DF8: 02202021 addu $a0, $s1, $zero */ @@ -40940,6 +50444,9 @@ label_BFC10DF4: cpu->gpr[31] = 0x000012FCu; psx_dispatch(cpu, 0x00001030u); label_BFC10DFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10DFC: 10400014 beq $v0, $zero, 0xBFC10E50 */ uint32_t psx_brA_BFC10DFC = cpu->gpr[2]; uint32_t psx_brB_BFC10DFC = cpu->gpr[0]; @@ -40948,6 +50455,9 @@ label_BFC10DFC: /* nop */ if (psx_taken_BFC10DFC) goto label_BFC10E50; label_BFC10E04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10E04: 1000003A beq $zero, $zero, 0xBFC10EF0 */ uint32_t psx_brA_BFC10E04 = cpu->gpr[0]; uint32_t psx_brB_BFC10E04 = cpu->gpr[0]; @@ -40956,6 +50466,9 @@ label_BFC10E04: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC10E04) goto label_BFC10EF0; label_BFC10E0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC10E0C: 3C0B0001 lui $t3, 0x1 */ cpu->gpr[11] = 0x00010000u; @@ -40970,10 +50483,16 @@ label_BFC10E0C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-31236)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC10E1Cu); return; } g_debug_last_store_pc = 0xBFC10E1Cu; cpu->write_word(psx_addr, cpu->gpr[11]); } if (psx_taken_BFC10E18) goto label_BFC10E50; label_BFC10E20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC10E20: 304E0001 andi $t6, $v0, 0x1 */ cpu->gpr[14] = cpu->gpr[2] & 0x1u; label_BFC10E24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10E24: 11C00008 beq $t6, $zero, 0xBFC10E48 */ uint32_t psx_brA_BFC10E24 = cpu->gpr[14]; uint32_t psx_brB_BFC10E24 = cpu->gpr[0]; @@ -40982,6 +50501,9 @@ label_BFC10E24: /* nop */ if (psx_taken_BFC10E24) goto label_BFC10E48; label_BFC10E2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC10E2C: 00526824 and $t5, $v0, $s2 */ cpu->gpr[13] = cpu->gpr[2] & cpu->gpr[18]; @@ -41000,12 +50522,18 @@ label_BFC10E2C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[24] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC10E44u); return; } g_debug_last_store_pc = 0xBFC10E44u; cpu->write_word(psx_addr, cpu->gpr[12]); } if (psx_taken_BFC10E40) goto label_BFC10E50; label_BFC10E48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10E48: 3C010001 lui $at, 0x1 */ cpu->gpr[1] = 0x00010000u; /* 0xBFC10E4C: AC2385FC sw $v1, -31236($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-31236)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC10E4Cu); return; } g_debug_last_store_pc = 0xBFC10E4Cu; cpu->write_word(psx_addr, cpu->gpr[3]); } label_BFC10E50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC10E50: 3C190001 lui $t9, 0x1 */ cpu->gpr[25] = 0x00010000u; @@ -41022,6 +50550,9 @@ label_BFC10E50: cpu->gpr[3] = cpu->gpr[4] & 0x1u; if (psx_taken_BFC10E60) goto label_BFC10D48; label_BFC10E68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10E68: 1244000A beq $s2, $a0, 0xBFC10E94 */ uint32_t psx_brA_BFC10E68 = cpu->gpr[18]; uint32_t psx_brB_BFC10E68 = cpu->gpr[4]; @@ -41030,6 +50561,9 @@ label_BFC10E68: /* nop */ if (psx_taken_BFC10E68) goto label_BFC10E94; label_BFC10E70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC10E70: 3C090001 lui $t1, 0x1 */ cpu->gpr[9] = 0x00010000u; @@ -41052,6 +50586,9 @@ label_BFC10E70: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-31236)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC10E90u); return; } g_debug_last_store_pc = 0xBFC10E90u; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC10E8C) goto label_BFC10EC8; label_BFC10E94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC10E94: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); @@ -41062,6 +50599,9 @@ label_BFC10E94: /* nop */ if (psx_taken_BFC10E98) goto label_BFC10EB8; label_BFC10EA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10EA0: 0C00040C jal 0xB0001030 */ /* 0xBFC10EA4: 02202021 addu $a0, $s1, $zero */ @@ -41069,6 +50609,9 @@ label_BFC10EA0: cpu->gpr[31] = 0x000013A8u; psx_dispatch(cpu, 0x00001030u); label_BFC10EA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10EA8: 10400007 beq $v0, $zero, 0xBFC10EC8 */ uint32_t psx_brA_BFC10EA8 = cpu->gpr[2]; uint32_t psx_brB_BFC10EA8 = cpu->gpr[0]; @@ -41077,6 +50620,9 @@ label_BFC10EA8: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC10EA8) goto label_BFC10EC8; label_BFC10EB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10EB0: 1000000F beq $zero, $zero, 0xBFC10EF0 */ uint32_t psx_brA_BFC10EB0 = cpu->gpr[0]; uint32_t psx_brB_BFC10EB0 = cpu->gpr[0]; @@ -41085,6 +50631,9 @@ label_BFC10EB0: cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC10EB0) goto label_BFC10EF0; label_BFC10EB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC10EB8: 3C0D0001 lui $t5, 0x1 */ cpu->gpr[13] = 0x00010000u; @@ -41095,6 +50644,9 @@ label_BFC10EB8: /* 0xBFC10EC4: AC2D85FC sw $t5, -31236($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-31236)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC10EC4u); return; } g_debug_last_store_pc = 0xBFC10EC4u; cpu->write_word(psx_addr, cpu->gpr[13]); } label_BFC10EC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC10EC8: 3C0F0001 lui $t7, 0x1 */ cpu->gpr[15] = 0x00010000u; @@ -41111,6 +50663,9 @@ label_BFC10EC8: cpu->gpr[3] = cpu->gpr[4] & 0x1u; if (psx_taken_BFC10ED8) goto label_BFC10D48; label_BFC10EE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC10EE0: 3C020001 lui $v0, 0x1 */ cpu->gpr[2] = 0x00010000u; @@ -41121,6 +50676,9 @@ label_BFC10EE0: /* 0xBFC10EEC: 24420004 addiu $v0, $v0, 4 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (4)); label_BFC10EF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC10EF0: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC10EF0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -41139,6 +50697,9 @@ label_BFC10EF0: void func_00001408(CPUState* cpu) { debug_server_log_call_entry(0x00001408u); label_BFC10F08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC10F08: 8C8EFFFC lw $t6, -4($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC10F08u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -41155,6 +50716,9 @@ label_BFC10F08: void func_00001420(CPUState* cpu) { debug_server_log_call_entry(0x00001420u); label_BFC10F20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC10F20: 3C0EA000 lui $t6, 0xA000 */ cpu->gpr[14] = 0xA0000000u; @@ -41179,6 +50743,9 @@ label_BFC10F20: void func_00001444(CPUState* cpu) { debug_server_log_call_entry(0x00001444u); label_BFC10F44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC10F44: 3C0EA000 lui $t6, 0xA000 */ cpu->gpr[14] = 0xA0000000u; @@ -41199,6 +50766,9 @@ label_BFC10F44: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC10F5C) goto label_BFC10F6C; label_BFC10F64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10F64: 10000026 beq $zero, $zero, 0xBFC11000 */ uint32_t psx_brA_BFC10F64 = cpu->gpr[0]; uint32_t psx_brB_BFC10F64 = cpu->gpr[0]; @@ -41207,6 +50777,9 @@ label_BFC10F64: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC10F64) goto label_BFC11000; label_BFC10F6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10F6C: 14C50005 bne $a2, $a1, 0xBFC10F84 */ uint32_t psx_brA_BFC10F6C = cpu->gpr[6]; uint32_t psx_brB_BFC10F6C = cpu->gpr[5]; @@ -41215,6 +50788,9 @@ label_BFC10F6C: /* nop */ if (psx_taken_BFC10F6C) goto label_BFC10F84; label_BFC10F74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC10F74: 8CD80000 lw $t8, 0($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC10F74u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -41227,6 +50803,9 @@ label_BFC10F74: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC10F80u); return; } g_debug_last_store_pc = 0xBFC10F80u; cpu->write_word(psx_addr, cpu->gpr[24]); } if (psx_taken_BFC10F7C) goto label_BFC11000; label_BFC10F84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC10F84: 8CC20000 lw $v0, 0($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC10F84u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -41239,6 +50818,9 @@ label_BFC10F84: /* nop */ if (psx_taken_BFC10F8C) goto label_BFC10F9C; label_BFC10F94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10F94: 1000001A beq $zero, $zero, 0xBFC11000 */ uint32_t psx_brA_BFC10F94 = cpu->gpr[0]; uint32_t psx_brB_BFC10F94 = cpu->gpr[0]; @@ -41247,6 +50829,9 @@ label_BFC10F94: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC10F94) goto label_BFC11000; label_BFC10F9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10F9C: 14C50004 bne $a2, $a1, 0xBFC10FB0 */ uint32_t psx_brA_BFC10F9C = cpu->gpr[6]; uint32_t psx_brB_BFC10F9C = cpu->gpr[5]; @@ -41255,6 +50840,9 @@ label_BFC10F9C: /* nop */ if (psx_taken_BFC10F9C) goto label_BFC10FB0; label_BFC10FA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC10FA4: 8FA30000 lw $v1, 0($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC10FA4u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -41265,6 +50853,9 @@ label_BFC10FA4: /* nop */ if (psx_taken_BFC10FA8) goto label_BFC10FE4; label_BFC10FB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10FB0: 14400005 bne $v0, $zero, 0xBFC10FC8 */ uint32_t psx_brA_BFC10FB0 = cpu->gpr[2]; uint32_t psx_brB_BFC10FB0 = cpu->gpr[0]; @@ -41273,6 +50864,9 @@ label_BFC10FB0: cpu->gpr[3] = cpu->gpr[6] + cpu->gpr[0]; if (psx_taken_BFC10FB0) goto label_BFC10FC8; label_BFC10FB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC10FB8: 8FA30000 lw $v1, 0($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC10FB8u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -41283,10 +50877,16 @@ label_BFC10FB8: /* nop */ if (psx_taken_BFC10FBC) goto label_BFC10FE4; label_BFC10FC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC10FC4: 00C01821 addu $v1, $a2, $zero */ cpu->gpr[3] = cpu->gpr[6] + cpu->gpr[0]; label_BFC10FC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC10FC8: 00403021 addu $a2, $v0, $zero */ cpu->gpr[6] = cpu->gpr[2] + cpu->gpr[0]; @@ -41297,6 +50897,9 @@ label_BFC10FC8: /* nop */ if (psx_taken_BFC10FCC) goto label_BFC10FE4; label_BFC10FD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC10FD4: 8CC20000 lw $v0, 0($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC10FD4u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -41309,6 +50912,9 @@ label_BFC10FD4: /* nop */ if (psx_taken_BFC10FDC) goto label_BFC10FC4; label_BFC10FE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC10FE4: 14C50006 bne $a2, $a1, 0xBFC11000 */ uint32_t psx_brA_BFC10FE4 = cpu->gpr[6]; uint32_t psx_brB_BFC10FE4 = cpu->gpr[5]; @@ -41317,6 +50923,9 @@ label_BFC10FE4: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC10FE4) goto label_BFC11000; label_BFC10FEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC10FEC: 8CD90000 lw $t9, 0($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC10FECu); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -41329,10 +50938,16 @@ label_BFC10FEC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC10FF8u); return; } g_debug_last_store_pc = 0xBFC10FF8u; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC10FF4) goto label_BFC11000; label_BFC10FFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC10FFC: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC11000: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11000: 03E00008 jr $ra */ /* 0xBFC11004: 27BD0008 addiu $sp, $sp, 8 */ @@ -41354,6 +50969,9 @@ void func_00001508(CPUState* cpu) { } } label_BFC11008: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC11008: 27BDFFD0 addiu $sp, $sp, -48 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-48)); @@ -41393,6 +51011,9 @@ label_BFC11008: cpu->gpr[31] = 0x00001550u; psx_dispatch(cpu, 0x000027A0u); label_BFC11050: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC11050: 00009021 addu $s2, $zero, $zero */ cpu->gpr[18] = cpu->gpr[0] + cpu->gpr[0]; @@ -41411,6 +51032,9 @@ label_BFC11050: /* 0xBFC1106C: 24120001 addiu $s2, $zero, 1 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC11070: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11070: AE320000 sw $s2, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11070u); return; } g_debug_last_store_pc = 0xBFC11070u; cpu->write_word(psx_addr, cpu->gpr[18]); } @@ -41422,6 +51046,9 @@ label_BFC11070: cpu->gpr[31] = 0x00001580u; psx_dispatch(cpu, 0x00001420u); label_BFC11080: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC11080: 26100010 addiu $s0, $s0, 16 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (16)); @@ -41432,12 +51059,18 @@ label_BFC11080: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (4)); if (psx_taken_BFC11084) goto label_BFC11070; label_BFC1108C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1108C: 00009021 addu $s2, $zero, $zero */ cpu->gpr[18] = cpu->gpr[0] + cpu->gpr[0]; /* 0xBFC11090: 24100003 addiu $s0, $zero, 3 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); label_BFC11094: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11094: 0C0009E8 jal 0xB00027A0 */ /* 0xBFC11098: A6600004 sh $zero, 4($s3) */ @@ -41445,6 +51078,9 @@ label_BFC11094: cpu->gpr[31] = 0x0000159Cu; psx_dispatch(cpu, 0x000027A0u); label_BFC1109C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1109C: A6600008 sh $zero, 8($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (8)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1109Cu); return; } g_debug_last_store_pc = 0xBFC1109Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } @@ -41454,6 +51090,9 @@ label_BFC1109C: cpu->gpr[31] = 0x000015A8u; psx_dispatch(cpu, 0x000027A0u); label_BFC110A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC110A8: 26520001 addiu $s2, $s2, 1 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (1)); @@ -41464,6 +51103,9 @@ label_BFC110A8: cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (16)); if (psx_taken_BFC110AC) goto label_BFC11094; label_BFC110B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC110B4: 8FBF002C lw $ra, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC110B4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -41488,6 +51130,9 @@ label_BFC110B4: void func_000015D8(CPUState* cpu) { debug_server_log_call_entry(0x000015D8u); label_BFC110D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC110D8: 3C0F0001 lui $t7, 0x1 */ cpu->gpr[15] = 0x00010000u; @@ -41510,6 +51155,9 @@ label_BFC110D8: void func_000015F8(CPUState* cpu) { debug_server_log_call_entry(0x000015F8u); label_BFC110F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC110F8: 3084FFFF andi $a0, $a0, 0xFFFF */ cpu->gpr[4] = cpu->gpr[4] & 0xFFFFu; @@ -41524,6 +51172,9 @@ label_BFC110F8: cpu->gpr[7] = cpu->gpr[6] + cpu->gpr[0]; if (psx_taken_BFC11104) { cpu->pc = 0xBFC11114u; return; } label_BFC1110C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1110C: 03E00008 jr $ra */ /* 0xBFC11110: 00001021 addu $v0, $zero, $zero */ @@ -41534,6 +51185,9 @@ label_BFC1110C: void func_00001614(CPUState* cpu) { debug_server_log_call_entry(0x00001614u); label_BFC11114: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC11114: 3C0E0000 lui $t6, 0x0 */ cpu->gpr[14] = 0x00000000u; @@ -41560,6 +51214,9 @@ label_BFC11114: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[0] + (72)); if (psx_taken_BFC11138) goto label_BFC1114C; label_BFC11140: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC11140: 34580001 ori $t8, $v0, 0x1 */ cpu->gpr[24] = cpu->gpr[2] | 0x1u; @@ -41570,6 +51227,9 @@ label_BFC11140: cpu->gpr[9] = cpu->gpr[2] | 0x2u; if (psx_taken_BFC11144) goto label_BFC11174; label_BFC1114C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1114C: 30F90010 andi $t9, $a3, 0x10 */ cpu->gpr[25] = cpu->gpr[7] & 0x10u; @@ -41580,12 +51240,18 @@ label_BFC1114C: cpu->gpr[8] = cpu->gpr[7] & 0x1u; if (psx_taken_BFC11150) goto label_BFC11160; label_BFC11158: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11158: 24060049 addiu $a2, $zero, 73 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[0] + (73)); /* 0xBFC1115C: 30E80001 andi $t0, $a3, 0x1 */ cpu->gpr[8] = cpu->gpr[7] & 0x1u; label_BFC11160: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11160: 1500000B bne $t0, $zero, 0xBFC11190 */ uint32_t psx_brA_BFC11160 = cpu->gpr[8]; uint32_t psx_brB_BFC11160 = cpu->gpr[0]; @@ -41594,6 +51260,9 @@ label_BFC11160: cpu->gpr[11] = cpu->gpr[7] & 0x1000u; if (psx_taken_BFC11160) goto label_BFC11190; label_BFC11168: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11168: 10000008 beq $zero, $zero, 0xBFC1118C */ uint32_t psx_brA_BFC11168 = cpu->gpr[0]; uint32_t psx_brB_BFC11168 = cpu->gpr[0]; @@ -41602,10 +51271,16 @@ label_BFC11168: cpu->gpr[6] = cpu->gpr[6] | 0x100u; if (psx_taken_BFC11168) goto label_BFC1118C; label_BFC11170: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC11170: 34490002 ori $t1, $v0, 0x2 */ cpu->gpr[9] = cpu->gpr[2] | 0x2u; label_BFC11174: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11174: 11200006 beq $t1, $zero, 0xBFC11190 */ uint32_t psx_brA_BFC11174 = cpu->gpr[9]; uint32_t psx_brB_BFC11174 = cpu->gpr[0]; @@ -41614,6 +51289,9 @@ label_BFC11174: cpu->gpr[11] = cpu->gpr[7] & 0x1000u; if (psx_taken_BFC11174) goto label_BFC11190; label_BFC1117C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1117C: 30EA0001 andi $t2, $a3, 0x1 */ cpu->gpr[10] = cpu->gpr[7] & 0x1u; @@ -41624,14 +51302,23 @@ label_BFC1117C: cpu->gpr[11] = cpu->gpr[7] & 0x1000u; if (psx_taken_BFC11180) goto label_BFC11190; label_BFC11188: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC11188: 24060248 addiu $a2, $zero, 584 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[0] + (584)); label_BFC1118C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1118C: 30EB1000 andi $t3, $a3, 0x1000 */ cpu->gpr[11] = cpu->gpr[7] & 0x1000u; label_BFC11190: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11190: 11600002 beq $t3, $zero, 0xBFC1119C */ uint32_t psx_brA_BFC11190 = cpu->gpr[11]; uint32_t psx_brB_BFC11190 = cpu->gpr[0]; @@ -41640,10 +51327,16 @@ label_BFC11190: /* nop */ if (psx_taken_BFC11190) goto label_BFC1119C; label_BFC11198: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC11198: 34C60010 ori $a2, $a2, 0x10 */ cpu->gpr[6] = cpu->gpr[6] | 0x10u; label_BFC1119C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1119C: A4660004 sh $a2, 4($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1119Cu); return; } g_debug_last_store_pc = 0xBFC1119Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[6] & 0xFFFFu)); } @@ -41658,6 +51351,9 @@ label_BFC1119C: void func_000016AC(CPUState* cpu) { debug_server_log_call_entry(0x000016ACu); label_BFC111AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC111AC: 3084FFFF andi $a0, $a0, 0xFFFF */ cpu->gpr[4] = cpu->gpr[4] & 0xFFFFu; @@ -41670,6 +51366,9 @@ label_BFC111AC: /* nop */ if (psx_taken_BFC111B4) { cpu->pc = 0xBFC111C4u; return; } label_BFC111BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC111BC: 03E00008 jr $ra */ /* 0xBFC111C0: 00001021 addu $v0, $zero, $zero */ @@ -41680,6 +51379,9 @@ label_BFC111BC: void func_000016C4(CPUState* cpu) { debug_server_log_call_entry(0x000016C4u); label_BFC111C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC111C4: 3C0E0000 lui $t6, 0x0 */ cpu->gpr[14] = 0x00000000u; @@ -41702,6 +51404,9 @@ label_BFC111C4: void func_000016E4(CPUState* cpu) { debug_server_log_call_entry(0x000016E4u); label_BFC111E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC111E4: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -41730,6 +51435,9 @@ label_BFC111E4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11210u); return; } g_debug_last_store_pc = 0xBFC11210u; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC1120C) { cpu->pc = 0xBFC1121Cu; return; } label_BFC11214: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11214: 03E00008 jr $ra */ /* 0xBFC11218: 00001021 addu $v0, $zero, $zero */ @@ -41740,6 +51448,9 @@ label_BFC11214: void func_0000171C(CPUState* cpu) { debug_server_log_call_entry(0x0000171Cu); label_BFC1121C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1121C: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -41752,6 +51463,9 @@ label_BFC1121C: void func_00001728(CPUState* cpu) { debug_server_log_call_entry(0x00001728u); label_BFC11228: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC11228: 3084FFFF andi $a0, $a0, 0xFFFF */ cpu->gpr[4] = cpu->gpr[4] & 0xFFFFu; @@ -41784,6 +51498,9 @@ label_BFC11228: void func_0000175C(CPUState* cpu) { debug_server_log_call_entry(0x0000175Cu); label_BFC1125C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1125C: 3084FFFF andi $a0, $a0, 0xFFFF */ cpu->gpr[4] = cpu->gpr[4] & 0xFFFFu; @@ -41796,6 +51513,9 @@ label_BFC1125C: /* nop */ if (psx_taken_BFC11264) { cpu->pc = 0xBFC11274u; return; } label_BFC1126C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1126C: 03E00008 jr $ra */ /* 0xBFC11270: 00001021 addu $v0, $zero, $zero */ @@ -41806,6 +51526,9 @@ label_BFC1126C: void func_00001774(CPUState* cpu) { debug_server_log_call_entry(0x00001774u); label_BFC11274: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC11274: 3C0E0000 lui $t6, 0x0 */ cpu->gpr[14] = 0x00000000u; @@ -41836,6 +51559,9 @@ void func_00001794(CPUState* cpu) { } } label_BFC11294: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC11294: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -41858,6 +51584,9 @@ label_BFC11294: /* nop */ if (psx_taken_BFC112B0) goto label_BFC112CC; label_BFC112B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC112B8: 8C580000 lw $t8, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC112B8u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -41872,6 +51601,9 @@ label_BFC112B8: cpu->gpr[4] = 0xF2000000u; if (psx_taken_BFC112C4) goto label_BFC112D8; label_BFC112CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC112CC: 10000005 beq $zero, $zero, 0xBFC112E4 */ uint32_t psx_brA_BFC112CC = cpu->gpr[0]; uint32_t psx_brB_BFC112CC = cpu->gpr[0]; @@ -41880,10 +51612,16 @@ label_BFC112CC: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC112CC) goto label_BFC112E4; label_BFC112D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC112D4: 3C04F200 lui $a0, 0xF200 */ cpu->gpr[4] = 0xF2000000u; label_BFC112D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC112D8: 0C0006D1 jal 0xB0001B44 */ /* 0xBFC112DC: 24050002 addiu $a1, $zero, 2 */ @@ -41891,10 +51629,16 @@ label_BFC112D8: cpu->gpr[31] = 0x000017E0u; psx_dispatch(cpu, 0x00001B44u); label_BFC112E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC112E0: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC112E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC112E4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC112E4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -41917,6 +51661,9 @@ void func_000017F4(CPUState* cpu) { } } label_BFC112F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC112F4: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -41939,6 +51686,9 @@ label_BFC112F4: /* nop */ if (psx_taken_BFC11310) goto label_BFC1132C; label_BFC11318: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC11318: 8C580000 lw $t8, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11318u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -41953,6 +51703,9 @@ label_BFC11318: cpu->gpr[4] = 0xF2000000u; if (psx_taken_BFC11324) goto label_BFC11338; label_BFC1132C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1132C: 10000006 beq $zero, $zero, 0xBFC11348 */ uint32_t psx_brA_BFC1132C = cpu->gpr[0]; uint32_t psx_brB_BFC1132C = cpu->gpr[0]; @@ -41961,10 +51714,16 @@ label_BFC1132C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC1132C) goto label_BFC11348; label_BFC11334: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC11334: 3C04F200 lui $a0, 0xF200 */ cpu->gpr[4] = 0xF2000000u; label_BFC11338: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC11338: 34840001 ori $a0, $a0, 0x1 */ cpu->gpr[4] = cpu->gpr[4] | 0x1u; @@ -41974,10 +51733,16 @@ label_BFC11338: cpu->gpr[31] = 0x00001844u; psx_dispatch(cpu, 0x00001B44u); label_BFC11344: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC11344: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC11348: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11348: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11348u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -42000,6 +51765,9 @@ void func_00001858(CPUState* cpu) { } } label_BFC11358: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC11358: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -42022,6 +51790,9 @@ label_BFC11358: /* nop */ if (psx_taken_BFC11374) goto label_BFC11390; label_BFC1137C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1137C: 8C580000 lw $t8, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1137Cu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -42036,6 +51807,9 @@ label_BFC1137C: cpu->gpr[4] = 0xF2000000u; if (psx_taken_BFC11388) goto label_BFC1139C; label_BFC11390: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11390: 10000006 beq $zero, $zero, 0xBFC113AC */ uint32_t psx_brA_BFC11390 = cpu->gpr[0]; uint32_t psx_brB_BFC11390 = cpu->gpr[0]; @@ -42044,10 +51818,16 @@ label_BFC11390: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC11390) goto label_BFC113AC; label_BFC11398: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC11398: 3C04F200 lui $a0, 0xF200 */ cpu->gpr[4] = 0xF2000000u; label_BFC1139C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1139C: 34840002 ori $a0, $a0, 0x2 */ cpu->gpr[4] = cpu->gpr[4] | 0x2u; @@ -42057,10 +51837,16 @@ label_BFC1139C: cpu->gpr[31] = 0x000018A8u; psx_dispatch(cpu, 0x00001B44u); label_BFC113A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC113A8: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC113AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC113AC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC113ACu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -42083,6 +51869,9 @@ void func_000018BC(CPUState* cpu) { } } label_BFC113BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC113BC: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -42105,6 +51894,9 @@ label_BFC113BC: /* nop */ if (psx_taken_BFC113D8) goto label_BFC113F4; label_BFC113E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC113E0: 8C580000 lw $t8, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC113E0u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -42119,6 +51911,9 @@ label_BFC113E0: cpu->gpr[4] = 0xF2000000u; if (psx_taken_BFC113EC) goto label_BFC11400; label_BFC113F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC113F4: 10000006 beq $zero, $zero, 0xBFC11410 */ uint32_t psx_brA_BFC113F4 = cpu->gpr[0]; uint32_t psx_brB_BFC113F4 = cpu->gpr[0]; @@ -42127,10 +51922,16 @@ label_BFC113F4: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC113F4) goto label_BFC11410; label_BFC113FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC113FC: 3C04F200 lui $a0, 0xF200 */ cpu->gpr[4] = 0xF2000000u; label_BFC11400: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC11400: 34840003 ori $a0, $a0, 0x3 */ cpu->gpr[4] = cpu->gpr[4] | 0x3u; @@ -42140,10 +51941,16 @@ label_BFC11400: cpu->gpr[31] = 0x0000190Cu; psx_dispatch(cpu, 0x00001B44u); label_BFC1140C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1140C: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC11410: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11410: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11410u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -42166,6 +51973,9 @@ void func_00001920(CPUState* cpu) { } } label_BFC11420: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC11420: 3C0E0001 lui $t6, 0x1 */ cpu->gpr[14] = 0x00010000u; @@ -42180,6 +51990,9 @@ label_BFC11420: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11430u); return; } g_debug_last_store_pc = 0xBFC11430u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC1142C) goto label_BFC11448; label_BFC11434: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC11434: 3C180000 lui $t8, 0x0 */ cpu->gpr[24] = 0x00000000u; @@ -42193,6 +52006,9 @@ label_BFC11434: cpu->gpr[31] = 0x00001948u; psx_dispatch(cpu, 0x00000F40u); label_BFC11448: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11448: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11448u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -42215,6 +52031,9 @@ void func_00001958(CPUState* cpu) { } } label_BFC11458: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC11458: 3C0E0001 lui $t6, 0x1 */ cpu->gpr[14] = 0x00010000u; @@ -42229,6 +52048,9 @@ label_BFC11458: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11468u); return; } g_debug_last_store_pc = 0xBFC11468u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC11464) goto label_BFC11480; label_BFC1146C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1146C: 3C180000 lui $t8, 0x0 */ cpu->gpr[24] = 0x00000000u; @@ -42242,6 +52064,9 @@ label_BFC1146C: cpu->gpr[31] = 0x00001980u; psx_dispatch(cpu, 0x00000F40u); label_BFC11480: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11480: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11480u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -42264,6 +52089,9 @@ void func_00001990(CPUState* cpu) { } } label_BFC11490: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC11490: 3C0E0001 lui $t6, 0x1 */ cpu->gpr[14] = 0x00010000u; @@ -42278,6 +52106,9 @@ label_BFC11490: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC114A0u); return; } g_debug_last_store_pc = 0xBFC114A0u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC1149C) goto label_BFC114B8; label_BFC114A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC114A4: 3C180000 lui $t8, 0x0 */ cpu->gpr[24] = 0x00000000u; @@ -42291,6 +52122,9 @@ label_BFC114A4: cpu->gpr[31] = 0x000019B8u; psx_dispatch(cpu, 0x00000F40u); label_BFC114B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC114B8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC114B8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -42313,6 +52147,9 @@ void func_000019C8(CPUState* cpu) { } } label_BFC114C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC114C8: 3C0E0001 lui $t6, 0x1 */ cpu->gpr[14] = 0x00010000u; @@ -42327,6 +52164,9 @@ label_BFC114C8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC114D8u); return; } g_debug_last_store_pc = 0xBFC114D8u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC114D4) goto label_BFC114F0; label_BFC114DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC114DC: 3C180000 lui $t8, 0x0 */ cpu->gpr[24] = 0x00000000u; @@ -42340,6 +52180,9 @@ label_BFC114DC: cpu->gpr[31] = 0x000019F0u; psx_dispatch(cpu, 0x00000F40u); label_BFC114F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC114F0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC114F0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -42354,6 +52197,9 @@ label_BFC114F0: void func_00001A00(CPUState* cpu) { debug_server_log_call_entry(0x00001A00u); label_BFC11500: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC11500: 3C0EA000 lui $t6, 0xA000 */ cpu->gpr[14] = 0xA0000000u; @@ -42381,6 +52227,9 @@ label_BFC11500: void func_00001A24(CPUState* cpu) { debug_server_log_call_entry(0x00001A24u); label_BFC11524: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11524: 1000003A beq $zero, $zero, 0xBFC11610 */ uint32_t psx_brA_BFC11524 = cpu->gpr[0]; uint32_t psx_brB_BFC11524 = cpu->gpr[0]; @@ -42394,6 +52243,9 @@ label_BFC11524: void func_00001A2C(CPUState* cpu) { debug_server_log_call_entry(0x00001A2Cu); label_BFC1152C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1152C: 8C4F0088 lw $t7, 136($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (136)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1152Cu); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -42410,6 +52262,9 @@ label_BFC1152C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (136)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11540u); return; } g_debug_last_store_pc = 0xBFC11540u; cpu->write_word(psx_addr, cpu->gpr[24]); } if (psx_taken_BFC1153C) { cpu->pc = 0xBFC115C0u; return; } label_BFC11544: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC11544: 0003C880 sll $t9, $v1, 2 */ cpu->gpr[25] = cpu->gpr[3] << 2u; @@ -42440,6 +52295,9 @@ void func_00001A60(CPUState* cpu) { } } label_BFC11560: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC11560: 8C480094 lw $t0, 148($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (148)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11560u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -42454,6 +52312,9 @@ label_BFC11560: /* nop */ if (psx_taken_BFC1156C) goto label_BFC11580; label_BFC11574: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC11574: 240A0001 addiu $t2, $zero, 1 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -42464,10 +52325,16 @@ label_BFC11574: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1157Cu); return; } g_debug_last_store_pc = 0xBFC1157Cu; cpu->write_word(psx_addr, cpu->gpr[10]); } if (psx_taken_BFC11578) goto label_BFC11584; label_BFC11580: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC11580: AC400010 sw $zero, 16($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11580u); return; } g_debug_last_store_pc = 0xBFC11580u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC11584: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC11584: 8C4B0094 lw $t3, 148($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (148)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11584u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -42482,6 +52349,9 @@ label_BFC11584: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (148)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11594u); return; } g_debug_last_store_pc = 0xBFC11594u; cpu->write_word(psx_addr, cpu->gpr[12]); } if (psx_taken_BFC11590) goto label_BFC115D8; label_BFC11598: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC11598: 8C4D0094 lw $t5, 148($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (148)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11598u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -42496,6 +52366,9 @@ label_BFC11598: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (148)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC115A8u); return; } g_debug_last_store_pc = 0xBFC115A8u; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC115A4) goto label_BFC115D8; label_BFC115AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC115AC: 8C4F001C lw $t7, 28($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC115ACu); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -42510,6 +52383,9 @@ label_BFC115AC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC115BCu); return; } g_debug_last_store_pc = 0xBFC115BCu; cpu->write_word(psx_addr, cpu->gpr[24]); } if (psx_taken_BFC115B8) goto label_BFC115D8; label_BFC115C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC115C0: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -42521,6 +52397,9 @@ label_BFC115C0: cpu->gpr[31] = 0x00001AD0u; psx_dispatch(cpu, 0x00001B44u); label_BFC115D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC115D0: 10000001 beq $zero, $zero, 0xBFC115D8 */ uint32_t psx_brA_BFC115D0 = cpu->gpr[0]; uint32_t psx_brB_BFC115D0 = cpu->gpr[0]; @@ -42529,6 +52408,9 @@ label_BFC115D0: /* nop */ if (psx_taken_BFC115D0) goto label_BFC115D8; label_BFC115D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC115D8: 0C0003D0 jal 0xB0000F40 */ /* 0xBFC115DC: 00000000 nop */ @@ -42536,6 +52418,9 @@ label_BFC115D8: cpu->gpr[31] = 0x00001AE0u; psx_dispatch(cpu, 0x00000F40u); label_BFC115E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC115E0: 10000006 beq $zero, $zero, 0xBFC115FC */ uint32_t psx_brA_BFC115E0 = cpu->gpr[0]; uint32_t psx_brB_BFC115E0 = cpu->gpr[0]; @@ -42549,6 +52434,9 @@ label_BFC115E0: void func_00001AE8(CPUState* cpu) { debug_server_log_call_entry(0x00001AE8u); label_BFC115E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC115E8: 1060FFCE beq $v1, $zero, 0xBFC11524 */ uint32_t psx_brA_BFC115E8 = cpu->gpr[3]; uint32_t psx_brB_BFC115E8 = cpu->gpr[0]; @@ -42557,6 +52445,9 @@ label_BFC115E8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (32)); if (psx_taken_BFC115E8) { cpu->pc = 0xBFC11524u; return; } label_BFC115F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC115F0: 1061FFCE beq $v1, $at, 0xBFC1152C */ uint32_t psx_brA_BFC115F0 = cpu->gpr[3]; uint32_t psx_brB_BFC115F0 = cpu->gpr[1]; @@ -42565,6 +52456,9 @@ label_BFC115F0: /* nop */ if (psx_taken_BFC115F0) { cpu->pc = 0xBFC1152Cu; return; } label_BFC115F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC115F8: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -42582,6 +52476,9 @@ void func_00001AFC(CPUState* cpu) { } } label_BFC115FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC115FC: 34840010 ori $a0, $a0, 0x10 */ cpu->gpr[4] = cpu->gpr[4] | 0x10u; @@ -42591,6 +52488,9 @@ label_BFC115FC: cpu->gpr[31] = 0x00001B08u; psx_dispatch(cpu, 0x00001B44u); label_BFC11608: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11608: 0C001AA0 jal 0xB0006A80 */ /* 0xBFC1160C: 00000000 nop */ @@ -42603,6 +52503,9 @@ label_BFC11608: void func_00001B10(CPUState* cpu) { debug_server_log_call_entry(0x00001B10u); label_BFC11610: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11610: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11610u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -42625,6 +52528,9 @@ void func_00001B20(CPUState* cpu) { } } label_BFC11620: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC11620: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -42638,6 +52544,9 @@ label_BFC11620: cpu->gpr[31] = 0x00001B34u; psx_dispatch(cpu, 0x00001420u); label_BFC11634: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11634: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11634u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -42660,6 +52569,9 @@ void func_00001B44(CPUState* cpu) { } } label_BFC11644: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(23u); +#endif psx_check_interrupts(cpu); /* 0xBFC11644: 3C0EA000 lui $t6, 0xA000 */ cpu->gpr[14] = 0xA0000000u; @@ -42710,6 +52622,9 @@ label_BFC11644: cpu->gpr[20] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC11698) goto label_BFC11740; label_BFC116A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC116A0: AFB10030 sw $s1, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC116A0u); return; } g_debug_last_store_pc = 0xBFC116A0u; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -42724,6 +52639,9 @@ label_BFC116A0: /* 0xBFC116B4: 24112000 addiu $s1, $zero, 8192 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[0] + (8192)); label_BFC116B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC116B8: 8E190004 lw $t9, 4($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC116B8u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -42736,6 +52654,9 @@ label_BFC116B8: /* nop */ if (psx_taken_BFC116C0) goto label_BFC11720; label_BFC116C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC116C8: 8E080000 lw $t0, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC116C8u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -42748,6 +52669,9 @@ label_BFC116C8: /* nop */ if (psx_taken_BFC116D0) goto label_BFC11720; label_BFC116D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC116D8: 8E090008 lw $t1, 8($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC116D8u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -42760,6 +52684,9 @@ label_BFC116D8: /* nop */ if (psx_taken_BFC116E0) goto label_BFC11720; label_BFC116E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC116E8: 8E02000C lw $v0, 12($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (12)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC116E8u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -42772,6 +52699,9 @@ label_BFC116E8: /* nop */ if (psx_taken_BFC116F0) goto label_BFC11700; label_BFC116F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC116F8: 10000009 beq $zero, $zero, 0xBFC11720 */ uint32_t psx_brA_BFC116F8 = cpu->gpr[0]; uint32_t psx_brB_BFC116F8 = cpu->gpr[0]; @@ -42780,6 +52710,9 @@ label_BFC116F8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC116FCu); return; } g_debug_last_store_pc = 0xBFC116FCu; cpu->write_word(psx_addr, cpu->gpr[18]); } if (psx_taken_BFC116F8) goto label_BFC11720; label_BFC11700: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11700: 16620007 bne $s3, $v0, 0xBFC11720 */ uint32_t psx_brA_BFC11700 = cpu->gpr[19]; uint32_t psx_brB_BFC11700 = cpu->gpr[2]; @@ -42788,6 +52721,9 @@ label_BFC11700: /* nop */ if (psx_taken_BFC11700) goto label_BFC11720; label_BFC11708: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11708: 8E020010 lw $v0, 16($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11708u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -42800,6 +52736,9 @@ label_BFC11708: /* nop */ if (psx_taken_BFC11710) goto label_BFC11720; label_BFC11718: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11718: 0040F809 jalr $ra, $v0 */ /* 0xBFC1171C: 00000000 nop */ @@ -42807,6 +52746,9 @@ label_BFC11718: cpu->gpr[31] = 0x00001C20u; psx_dispatch(cpu, cpu->gpr[2]); label_BFC11720: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11720: 2610001C addiu $s0, $s0, 28 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (28)); @@ -42819,6 +52761,9 @@ label_BFC11720: /* nop */ if (psx_taken_BFC11728) goto label_BFC116B8; label_BFC11730: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11730: 8FB10030 lw $s1, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11730u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -42829,6 +52774,9 @@ label_BFC11730: /* 0xBFC1173C: 00000000 nop */ /* nop */ label_BFC11740: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC11740: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11740u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -42849,6 +52797,9 @@ label_BFC11740: void func_00001C5C(CPUState* cpu) { debug_server_log_call_entry(0x00001C5Cu); label_BFC1175C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC1175C: 3C0EA000 lui $t6, 0xA000 */ cpu->gpr[14] = 0xA0000000u; @@ -42885,12 +52836,18 @@ label_BFC1175C: cpu->gpr[6] = cpu->gpr[7] + cpu->gpr[0]; if (psx_taken_BFC11794) goto label_BFC117F8; label_BFC1179C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1179C: 24034000 addiu $v1, $zero, 16384 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (16384)); /* 0xBFC117A0: 24072000 addiu $a3, $zero, 8192 */ cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[0] + (8192)); label_BFC117A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC117A4: 8C590004 lw $t9, 4($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC117A4u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -42903,6 +52860,9 @@ label_BFC117A4: /* nop */ if (psx_taken_BFC117AC) goto label_BFC117E8; label_BFC117B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC117B4: 8C480000 lw $t0, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC117B4u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -42915,6 +52875,9 @@ label_BFC117B4: /* nop */ if (psx_taken_BFC117BC) goto label_BFC117E8; label_BFC117C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC117C4: 8C490008 lw $t1, 8($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC117C4u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -42927,6 +52890,9 @@ label_BFC117C4: /* nop */ if (psx_taken_BFC117CC) goto label_BFC117E8; label_BFC117D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC117D4: 8C4A000C lw $t2, 12($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (12)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC117D4u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -42939,10 +52905,16 @@ label_BFC117D4: /* nop */ if (psx_taken_BFC117DC) goto label_BFC117E8; label_BFC117E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC117E4: AC470004 sw $a3, 4($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC117E4u); return; } g_debug_last_store_pc = 0xBFC117E4u; cpu->write_word(psx_addr, cpu->gpr[7]); } label_BFC117E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC117E8: 2442001C addiu $v0, $v0, 28 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (28)); @@ -42955,6 +52927,9 @@ label_BFC117E8: /* nop */ if (psx_taken_BFC117F0) goto label_BFC117A4; label_BFC117F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC117F8: 03E00008 jr $ra */ /* 0xBFC117FC: 00000000 nop */ @@ -42965,6 +52940,9 @@ label_BFC117F8: void func_00001D00(CPUState* cpu) { debug_server_log_call_entry(0x00001D00u); label_BFC11800: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC11800: 3C0FA000 lui $t7, 0xA000 */ cpu->gpr[15] = 0xA0000000u; @@ -43006,6 +52984,9 @@ label_BFC11800: void func_00001D40(CPUState* cpu) { debug_server_log_call_entry(0x00001D40u); label_BFC11840: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11840: 8C680004 lw $t0, 4($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11840u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -43018,6 +52999,9 @@ label_BFC11840: /* nop */ if (psx_taken_BFC11848) { cpu->pc = 0xBFC11870u; return; } label_BFC11850: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC11850: 3C09A000 lui $t1, 0xA000 */ cpu->gpr[9] = 0xA0000000u; @@ -43048,6 +53032,9 @@ void func_00001D70(CPUState* cpu) { } } label_BFC11870: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11870: 2463001C addiu $v1, $v1, 28 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (28)); @@ -43060,6 +53047,9 @@ label_BFC11870: /* nop */ if (psx_taken_BFC11878) { cpu->pc = 0xBFC11840u; return; } label_BFC11880: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC11880: 2402FFFF addiu $v0, $zero, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -43080,6 +53070,9 @@ void func_00001D8C(CPUState* cpu) { } } label_BFC1188C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC1188C: 27BDFFD0 addiu $sp, $sp, -48 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-48)); @@ -43103,6 +53096,9 @@ label_BFC1188C: cpu->gpr[31] = 0x00001DB4u; psx_dispatch(cpu, 0x00001D00u); label_BFC118B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC118B4: 8FA3002C lw $v1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC118B4u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -43115,6 +53111,9 @@ label_BFC118B4: cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC118BC) goto label_BFC118CC; label_BFC118C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC118C4: 10000011 beq $zero, $zero, 0xBFC1190C */ uint32_t psx_brA_BFC118C4 = cpu->gpr[0]; uint32_t psx_brB_BFC118C4 = cpu->gpr[0]; @@ -43123,6 +53122,9 @@ label_BFC118C4: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC118C4) goto label_BFC1190C; label_BFC118CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC118CC: 000470C0 sll $t6, $a0, 3 */ cpu->gpr[14] = cpu->gpr[4] << 3u; @@ -43157,6 +53159,9 @@ label_BFC118CC: /* 0xBFC11908: AC680010 sw $t0, 16($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11908u); return; } g_debug_last_store_pc = 0xBFC11908u; cpu->write_word(psx_addr, cpu->gpr[8]); } label_BFC1190C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1190C: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1190Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -43171,6 +53176,9 @@ label_BFC1190C: void func_00001E1C(CPUState* cpu) { debug_server_log_call_entry(0x00001E1Cu); label_BFC1191C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC1191C: 3084FFFF andi $a0, $a0, 0xFFFF */ cpu->gpr[4] = cpu->gpr[4] & 0xFFFFu; @@ -43197,6 +53205,9 @@ label_BFC1191C: void func_00001E44(CPUState* cpu) { debug_server_log_call_entry(0x00001E44u); label_BFC11944: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC11944: 3084FFFF andi $a0, $a0, 0xFFFF */ cpu->gpr[4] = cpu->gpr[4] & 0xFFFFu; @@ -43223,6 +53234,9 @@ label_BFC11944: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC11968) { cpu->pc = 0xBFC11980u; return; } label_BFC11970: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11970: 24042000 addiu $a0, $zero, 8192 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (8192)); @@ -43237,6 +53251,9 @@ label_BFC11970: void func_00001E80(CPUState* cpu) { debug_server_log_call_entry(0x00001E80u); label_BFC11980: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11980: 8C590004 lw $t9, 4($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11980u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -43249,6 +53266,9 @@ label_BFC11980: /* nop */ if (psx_taken_BFC11988) { cpu->pc = 0xBFC11998u; return; } label_BFC11990: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11990: 03E00008 jr $ra */ /* 0xBFC11994: 00001021 addu $v0, $zero, $zero */ @@ -43259,6 +53279,9 @@ label_BFC11990: void func_00001E98(CPUState* cpu) { debug_server_log_call_entry(0x00001E98u); label_BFC11998: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11998: 8C480004 lw $t0, 4($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11998u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -43271,6 +53294,9 @@ label_BFC11998: /* nop */ if (psx_taken_BFC119A0) goto label_BFC119B8; label_BFC119A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC119A8: 8C490004 lw $t1, 4($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC119A8u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -43283,6 +53309,9 @@ label_BFC119A8: /* nop */ if (psx_taken_BFC119B0) goto label_BFC119A8; label_BFC119B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC119B8: AC640004 sw $a0, 4($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC119B8u); return; } g_debug_last_store_pc = 0xBFC119B8u; cpu->write_word(psx_addr, cpu->gpr[4]); } @@ -43297,6 +53326,9 @@ label_BFC119B8: void func_00001EC8(CPUState* cpu) { debug_server_log_call_entry(0x00001EC8u); label_BFC119C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC119C8: 3084FFFF andi $a0, $a0, 0xFFFF */ cpu->gpr[4] = cpu->gpr[4] & 0xFFFFu; @@ -43323,6 +53355,9 @@ label_BFC119C8: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC119EC) { cpu->pc = 0xBFC11A04u; return; } label_BFC119F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC119F4: 24192000 addiu $t9, $zero, 8192 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (8192)); @@ -43337,6 +53372,9 @@ label_BFC119F4: void func_00001F04(CPUState* cpu) { debug_server_log_call_entry(0x00001F04u); label_BFC11A04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC11A04: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; @@ -43349,6 +53387,9 @@ label_BFC11A04: void func_00001F10(CPUState* cpu) { debug_server_log_call_entry(0x00001F10u); label_BFC11A10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC11A10: 3084FFFF andi $a0, $a0, 0xFFFF */ cpu->gpr[4] = cpu->gpr[4] & 0xFFFFu; @@ -43375,12 +53416,18 @@ label_BFC11A10: /* nop */ if (psx_taken_BFC11A34) goto label_BFC11A44; label_BFC11A3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11A3C: 24192000 addiu $t9, $zero, 8192 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (8192)); /* 0xBFC11A40: AC590004 sw $t9, 4($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11A40u); return; } g_debug_last_store_pc = 0xBFC11A40u; cpu->write_word(psx_addr, cpu->gpr[25]); } label_BFC11A44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11A44: 03E00008 jr $ra */ /* 0xBFC11A48: 24020001 addiu $v0, $zero, 1 */ @@ -43391,6 +53438,9 @@ label_BFC11A44: void func_00001F4C(CPUState* cpu) { debug_server_log_call_entry(0x00001F4Cu); label_BFC11A4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC11A4C: 3084FFFF andi $a0, $a0, 0xFFFF */ cpu->gpr[4] = cpu->gpr[4] & 0xFFFFu; @@ -43417,12 +53467,18 @@ label_BFC11A4C: /* nop */ if (psx_taken_BFC11A70) goto label_BFC11A80; label_BFC11A78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11A78: 24191000 addiu $t9, $zero, 4096 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (4096)); /* 0xBFC11A7C: AC590004 sw $t9, 4($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11A7Cu); return; } g_debug_last_store_pc = 0xBFC11A7Cu; cpu->write_word(psx_addr, cpu->gpr[25]); } label_BFC11A80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11A80: 03E00008 jr $ra */ /* 0xBFC11A84: 24020001 addiu $v0, $zero, 1 */ @@ -43441,6 +53497,9 @@ void func_00001F88(CPUState* cpu) { } } label_BFC11A88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC11A88: 3C0FA000 lui $t7, 0xA000 */ cpu->gpr[15] = 0xA0000000u; @@ -43477,10 +53536,16 @@ label_BFC11A88: /* nop */ if (psx_taken_BFC11AC0) { cpu->pc = 0xBFC11B0Cu; return; } label_BFC11AC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC11AC8: 24041000 addiu $a0, $zero, 4096 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (4096)); label_BFC11ACC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11ACC: 8C680000 lw $t0, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11ACCu); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -43493,6 +53558,9 @@ label_BFC11ACC: /* nop */ if (psx_taken_BFC11AD4) { cpu->pc = 0xBFC11AFCu; return; } label_BFC11ADC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC11ADC: 3C09A000 lui $t1, 0xA000 */ cpu->gpr[9] = 0xA0000000u; @@ -43523,6 +53591,9 @@ void func_00001FFC(CPUState* cpu) { } } label_BFC11AFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11AFC: 246300C0 addiu $v1, $v1, 192 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (192)); @@ -43535,6 +53606,9 @@ label_BFC11AFC: /* nop */ if (psx_taken_BFC11B04) { cpu->pc = 0xBFC11ACCu; return; } label_BFC11B0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC11B0C: 2402FFFF addiu $v0, $zero, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -43555,6 +53629,9 @@ void func_00002018(CPUState* cpu) { } } label_BFC11B18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC11B18: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -43576,6 +53653,9 @@ label_BFC11B18: cpu->gpr[31] = 0x0000203Cu; psx_dispatch(cpu, 0x00001F88u); label_BFC11B3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC11B3C: 8FA30020 lw $v1, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11B3Cu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -43590,6 +53670,9 @@ label_BFC11B3C: cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC11B48) goto label_BFC11B58; label_BFC11B50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11B50: 10000011 beq $zero, $zero, 0xBFC11B98 */ uint32_t psx_brA_BFC11B50 = cpu->gpr[0]; uint32_t psx_brB_BFC11B50 = cpu->gpr[0]; @@ -43598,6 +53681,9 @@ label_BFC11B50: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC11B50) goto label_BFC11B98; label_BFC11B58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC11B58: 00047080 sll $t6, $a0, 2 */ cpu->gpr[14] = cpu->gpr[4] << 2u; @@ -43632,6 +53718,9 @@ label_BFC11B58: /* 0xBFC11B94: AC680078 sw $t0, 120($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (120)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11B94u); return; } g_debug_last_store_pc = 0xBFC11B94u; cpu->write_word(psx_addr, cpu->gpr[8]); } label_BFC11B98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11B98: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11B98u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -43646,6 +53735,9 @@ label_BFC11B98: void func_000020A8(CPUState* cpu) { debug_server_log_call_entry(0x000020A8u); label_BFC11BA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC11BA8: 3084FFFF andi $a0, $a0, 0xFFFF */ cpu->gpr[4] = cpu->gpr[4] & 0xFFFFu; @@ -43682,6 +53774,9 @@ void func_000020D4(CPUState* cpu) { } } label_BFC11BD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC11BD4: 00801821 addu $v1, $a0, $zero */ cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[0]; @@ -43709,6 +53804,9 @@ label_BFC11BD4: cpu->gpr[31] = 0x00002104u; psx_dispatch(cpu, 0x00000650u); label_BFC11C04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11C04: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11C04u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -43723,6 +53821,9 @@ label_BFC11C04: void func_00002114(CPUState* cpu) { debug_server_log_call_entry(0x00002114u); label_BFC11C14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11C14: 14800003 bne $a0, $zero, 0xBFC11C24 */ uint32_t psx_brA_BFC11C14 = cpu->gpr[4]; uint32_t psx_brB_BFC11C14 = cpu->gpr[0]; @@ -43731,6 +53832,9 @@ label_BFC11C14: /* nop */ if (psx_taken_BFC11C14) { cpu->pc = 0xBFC11C24u; return; } label_BFC11C1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11C1C: 03E00008 jr $ra */ /* 0xBFC11C20: 00001021 addu $v0, $zero, $zero */ @@ -43741,6 +53845,9 @@ label_BFC11C1C: void func_00002124(CPUState* cpu) { debug_server_log_call_entry(0x00002124u); label_BFC11C24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11C24: 18C00007 blez $a2, 0xBFC11C44 */ uint32_t psx_brA_BFC11C24 = cpu->gpr[6]; @@ -43749,6 +53856,9 @@ label_BFC11C24: cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC11C24) goto label_BFC11C44; label_BFC11C2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC11C2C: 908E0000 lbu $t6, 0($a0) */ cpu->gpr[14] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (0))); @@ -43765,6 +53875,9 @@ label_BFC11C2C: g_debug_last_store_pc = 0xBFC11C40u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[5] + (-1)), (uint8_t)(cpu->gpr[14] & 0xFFu)); if (psx_taken_BFC11C3C) goto label_BFC11C2C; label_BFC11C44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC11C44: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; @@ -43777,6 +53890,9 @@ label_BFC11C44: void func_00002150(CPUState* cpu) { debug_server_log_call_entry(0x00002150u); label_BFC11C50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11C50: 10800003 beq $a0, $zero, 0xBFC11C60 */ uint32_t psx_brA_BFC11C50 = cpu->gpr[4]; uint32_t psx_brB_BFC11C50 = cpu->gpr[0]; @@ -43785,6 +53901,9 @@ label_BFC11C50: /* nop */ if (psx_taken_BFC11C50) goto label_BFC11C60; label_BFC11C58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11C58: 1CA00003 bgtz $a1, 0xBFC11C68 */ uint32_t psx_brA_BFC11C58 = cpu->gpr[5]; @@ -43793,6 +53912,9 @@ label_BFC11C58: /* nop */ if (psx_taken_BFC11C58) { cpu->pc = 0xBFC11C68u; return; } label_BFC11C60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11C60: 03E00008 jr $ra */ /* 0xBFC11C64: 00001021 addu $v0, $zero, $zero */ @@ -43803,6 +53925,9 @@ label_BFC11C60: void func_00002168(CPUState* cpu) { debug_server_log_call_entry(0x00002168u); label_BFC11C68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC11C68: 18A00005 blez $a1, 0xBFC11C80 */ uint32_t psx_brA_BFC11C68 = cpu->gpr[5]; @@ -43811,6 +53936,9 @@ label_BFC11C68: cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC11C68) goto label_BFC11C80; label_BFC11C70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11C70: 24A5FFFF addiu $a1, $a1, -1 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (-1)); @@ -43823,6 +53951,9 @@ label_BFC11C70: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (1)); if (psx_taken_BFC11C78) goto label_BFC11C70; label_BFC11C80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC11C80: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; @@ -43853,6 +53984,9 @@ void func_0000218C(CPUState* cpu) { } } label_BFC11C8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC11C8C: 3C060000 lui $a2, 0x0 */ cpu->gpr[6] = 0x00000000u; @@ -43879,6 +54013,9 @@ label_BFC11C8C: /* nop */ if (psx_taken_BFC11CB0) goto label_BFC11CD4; label_BFC11CB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11CB8: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -43890,6 +54027,9 @@ label_BFC11CB8: cpu->gpr[31] = 0x000021C8u; psx_dispatch(cpu, 0x00001B44u); label_BFC11CC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC11CC8: 3C060000 lui $a2, 0x0 */ cpu->gpr[6] = 0x00000000u; @@ -43898,6 +54038,9 @@ label_BFC11CC8: /* 0xBFC11CD0: 00000000 nop */ /* nop */ label_BFC11CD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC11CD4: 8CC80004 lw $t0, 4($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11CD4u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -43916,6 +54059,9 @@ label_BFC11CD4: /* nop */ if (psx_taken_BFC11CE8) goto label_BFC11D0C; label_BFC11CF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11CF0: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -43927,6 +54073,9 @@ label_BFC11CF0: cpu->gpr[31] = 0x00002200u; psx_dispatch(cpu, 0x00001B44u); label_BFC11D00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC11D00: 3C060000 lui $a2, 0x0 */ cpu->gpr[6] = 0x00000000u; @@ -43935,6 +54084,9 @@ label_BFC11D00: /* 0xBFC11D08: 00000000 nop */ /* nop */ label_BFC11D0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC11D0C: 8CCC0004 lw $t4, 4($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11D0Cu); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -43953,6 +54105,9 @@ label_BFC11D0C: /* nop */ if (psx_taken_BFC11D20) goto label_BFC11D44; label_BFC11D28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11D28: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -43964,6 +54119,9 @@ label_BFC11D28: cpu->gpr[31] = 0x00002238u; psx_dispatch(cpu, 0x00001B44u); label_BFC11D38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC11D38: 3C060000 lui $a2, 0x0 */ cpu->gpr[6] = 0x00000000u; @@ -43972,6 +54130,9 @@ label_BFC11D38: /* 0xBFC11D40: 00000000 nop */ /* nop */ label_BFC11D44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC11D44: 8CD80004 lw $t8, 4($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11D44u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -43990,6 +54151,9 @@ label_BFC11D44: /* nop */ if (psx_taken_BFC11D58) goto label_BFC11D7C; label_BFC11D60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11D60: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -44001,6 +54165,9 @@ label_BFC11D60: cpu->gpr[31] = 0x00002270u; psx_dispatch(cpu, 0x00001B44u); label_BFC11D70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC11D70: 3C060000 lui $a2, 0x0 */ cpu->gpr[6] = 0x00000000u; @@ -44009,6 +54176,9 @@ label_BFC11D70: /* 0xBFC11D78: 00000000 nop */ /* nop */ label_BFC11D7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC11D7C: 8CCA0004 lw $t2, 4($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11D7Cu); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -44027,6 +54197,9 @@ label_BFC11D7C: /* nop */ if (psx_taken_BFC11D90) goto label_BFC11DB4; label_BFC11D98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11D98: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -44038,6 +54211,9 @@ label_BFC11D98: cpu->gpr[31] = 0x000022A8u; psx_dispatch(cpu, 0x00001B44u); label_BFC11DA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC11DA8: 3C060000 lui $a2, 0x0 */ cpu->gpr[6] = 0x00000000u; @@ -44046,6 +54222,9 @@ label_BFC11DA8: /* 0xBFC11DB0: 00000000 nop */ /* nop */ label_BFC11DB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC11DB4: 8CCE0004 lw $t6, 4($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11DB4u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -44064,6 +54243,9 @@ label_BFC11DB4: /* nop */ if (psx_taken_BFC11DC8) goto label_BFC11DEC; label_BFC11DD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11DD0: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -44075,6 +54257,9 @@ label_BFC11DD0: cpu->gpr[31] = 0x000022E0u; psx_dispatch(cpu, 0x00001B44u); label_BFC11DE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC11DE0: 3C060000 lui $a2, 0x0 */ cpu->gpr[6] = 0x00000000u; @@ -44083,6 +54268,9 @@ label_BFC11DE0: /* 0xBFC11DE8: 00000000 nop */ /* nop */ label_BFC11DEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC11DEC: 8CC80004 lw $t0, 4($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11DECu); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -44101,6 +54289,9 @@ label_BFC11DEC: /* nop */ if (psx_taken_BFC11E00) goto label_BFC11E24; label_BFC11E08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11E08: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -44112,6 +54303,9 @@ label_BFC11E08: cpu->gpr[31] = 0x00002318u; psx_dispatch(cpu, 0x00001B44u); label_BFC11E18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC11E18: 3C060000 lui $a2, 0x0 */ cpu->gpr[6] = 0x00000000u; @@ -44120,6 +54314,9 @@ label_BFC11E18: /* 0xBFC11E20: 00000000 nop */ /* nop */ label_BFC11E24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC11E24: 8CCC0004 lw $t4, 4($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11E24u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -44138,6 +54335,9 @@ label_BFC11E24: /* nop */ if (psx_taken_BFC11E38) goto label_BFC11E5C; label_BFC11E40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11E40: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -44149,6 +54349,9 @@ label_BFC11E40: cpu->gpr[31] = 0x00002350u; psx_dispatch(cpu, 0x00001B44u); label_BFC11E50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC11E50: 3C060000 lui $a2, 0x0 */ cpu->gpr[6] = 0x00000000u; @@ -44157,6 +54360,9 @@ label_BFC11E50: /* 0xBFC11E58: 00000000 nop */ /* nop */ label_BFC11E5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC11E5C: 8CD80004 lw $t8, 4($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11E5Cu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -44175,6 +54381,9 @@ label_BFC11E5C: /* nop */ if (psx_taken_BFC11E70) goto label_BFC11E94; label_BFC11E78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11E78: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -44186,6 +54395,9 @@ label_BFC11E78: cpu->gpr[31] = 0x00002388u; psx_dispatch(cpu, 0x00001B44u); label_BFC11E88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC11E88: 3C060000 lui $a2, 0x0 */ cpu->gpr[6] = 0x00000000u; @@ -44194,6 +54406,9 @@ label_BFC11E88: /* 0xBFC11E90: 00000000 nop */ /* nop */ label_BFC11E94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC11E94: 8CCA0004 lw $t2, 4($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11E94u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -44212,6 +54427,9 @@ label_BFC11E94: /* nop */ if (psx_taken_BFC11EA8) goto label_BFC11ECC; label_BFC11EB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11EB0: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -44223,6 +54441,9 @@ label_BFC11EB0: cpu->gpr[31] = 0x000023C0u; psx_dispatch(cpu, 0x00001B44u); label_BFC11EC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC11EC0: 3C060000 lui $a2, 0x0 */ cpu->gpr[6] = 0x00000000u; @@ -44231,6 +54452,9 @@ label_BFC11EC0: /* 0xBFC11EC8: 00000000 nop */ /* nop */ label_BFC11ECC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC11ECC: 8CCE0004 lw $t6, 4($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11ECCu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -44249,6 +54473,9 @@ label_BFC11ECC: /* nop */ if (psx_taken_BFC11EE0) goto label_BFC11F04; label_BFC11EE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11EE8: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -44260,6 +54487,9 @@ label_BFC11EE8: cpu->gpr[31] = 0x000023F8u; psx_dispatch(cpu, 0x00001B44u); label_BFC11EF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC11EF8: 3C060000 lui $a2, 0x0 */ cpu->gpr[6] = 0x00000000u; @@ -44268,6 +54498,9 @@ label_BFC11EF8: /* 0xBFC11F00: 00000000 nop */ /* nop */ label_BFC11F04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC11F04: 3C030001 lui $v1, 0x1 */ cpu->gpr[3] = 0x00010000u; @@ -44280,6 +54513,9 @@ label_BFC11F04: /* 0xBFC11F14: 2405000B addiu $a1, $zero, 11 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[0] + (11)); label_BFC11F18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11F18: 8C680000 lw $t0, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11F18u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -44292,6 +54528,9 @@ label_BFC11F18: /* nop */ if (psx_taken_BFC11F20) goto label_BFC11F34; label_BFC11F28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC11F28: 24090001 addiu $t1, $zero, 1 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -44300,6 +54539,9 @@ label_BFC11F28: /* 0xBFC11F30: 008A2025 or $a0, $a0, $t2 */ cpu->gpr[4] = cpu->gpr[4] | cpu->gpr[10]; label_BFC11F34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC11F34: 24420001 addiu $v0, $v0, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (1)); @@ -44310,6 +54552,9 @@ label_BFC11F34: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_taken_BFC11F38) goto label_BFC11F18; label_BFC11F40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC11F40: 00805827 nor $t3, $a0, $zero */ cpu->gpr[11] = ~(cpu->gpr[4] | cpu->gpr[0]); @@ -44346,6 +54591,9 @@ void func_00002458(CPUState* cpu) { } } label_BFC11F58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC11F58: 3C060000 lui $a2, 0x0 */ cpu->gpr[6] = 0x00000000u; @@ -44372,6 +54620,9 @@ label_BFC11F58: /* nop */ if (psx_taken_BFC11F7C) goto label_BFC11FA0; label_BFC11F84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11F84: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -44383,6 +54634,9 @@ label_BFC11F84: cpu->gpr[31] = 0x00002494u; psx_dispatch(cpu, 0x00001B44u); label_BFC11F94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC11F94: 3C060000 lui $a2, 0x0 */ cpu->gpr[6] = 0x00000000u; @@ -44391,6 +54645,9 @@ label_BFC11F94: /* 0xBFC11F9C: 00000000 nop */ /* nop */ label_BFC11FA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC11FA0: 8CC80004 lw $t0, 4($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11FA0u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -44409,6 +54666,9 @@ label_BFC11FA0: /* nop */ if (psx_taken_BFC11FB4) goto label_BFC11FD8; label_BFC11FBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11FBC: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -44420,6 +54680,9 @@ label_BFC11FBC: cpu->gpr[31] = 0x000024CCu; psx_dispatch(cpu, 0x00001B44u); label_BFC11FCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC11FCC: 3C060000 lui $a2, 0x0 */ cpu->gpr[6] = 0x00000000u; @@ -44428,6 +54691,9 @@ label_BFC11FCC: /* 0xBFC11FD4: 00000000 nop */ /* nop */ label_BFC11FD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC11FD8: 8CCC0004 lw $t4, 4($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC11FD8u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -44446,6 +54712,9 @@ label_BFC11FD8: /* nop */ if (psx_taken_BFC11FEC) goto label_BFC12010; label_BFC11FF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC11FF4: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -44457,6 +54726,9 @@ label_BFC11FF4: cpu->gpr[31] = 0x00002504u; psx_dispatch(cpu, 0x00001B44u); label_BFC12004: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC12004: 3C060000 lui $a2, 0x0 */ cpu->gpr[6] = 0x00000000u; @@ -44465,6 +54737,9 @@ label_BFC12004: /* 0xBFC1200C: 00000000 nop */ /* nop */ label_BFC12010: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC12010: 8CD80004 lw $t8, 4($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12010u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -44483,6 +54758,9 @@ label_BFC12010: /* nop */ if (psx_taken_BFC12024) goto label_BFC12048; label_BFC1202C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1202C: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -44494,6 +54772,9 @@ label_BFC1202C: cpu->gpr[31] = 0x0000253Cu; psx_dispatch(cpu, 0x00001B44u); label_BFC1203C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1203C: 3C060000 lui $a2, 0x0 */ cpu->gpr[6] = 0x00000000u; @@ -44502,6 +54783,9 @@ label_BFC1203C: /* 0xBFC12044: 00000000 nop */ /* nop */ label_BFC12048: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC12048: 8CCA0004 lw $t2, 4($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12048u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -44520,6 +54804,9 @@ label_BFC12048: /* nop */ if (psx_taken_BFC1205C) goto label_BFC12080; label_BFC12064: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12064: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -44531,6 +54818,9 @@ label_BFC12064: cpu->gpr[31] = 0x00002574u; psx_dispatch(cpu, 0x00001B44u); label_BFC12074: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC12074: 3C060000 lui $a2, 0x0 */ cpu->gpr[6] = 0x00000000u; @@ -44539,6 +54829,9 @@ label_BFC12074: /* 0xBFC1207C: 00000000 nop */ /* nop */ label_BFC12080: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC12080: 8CCE0004 lw $t6, 4($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12080u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -44557,6 +54850,9 @@ label_BFC12080: /* nop */ if (psx_taken_BFC12094) goto label_BFC120B8; label_BFC1209C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1209C: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -44568,6 +54864,9 @@ label_BFC1209C: cpu->gpr[31] = 0x000025ACu; psx_dispatch(cpu, 0x00001B44u); label_BFC120AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC120AC: 3C060000 lui $a2, 0x0 */ cpu->gpr[6] = 0x00000000u; @@ -44576,6 +54875,9 @@ label_BFC120AC: /* 0xBFC120B4: 00000000 nop */ /* nop */ label_BFC120B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC120B8: 8CC80004 lw $t0, 4($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC120B8u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -44594,6 +54896,9 @@ label_BFC120B8: /* nop */ if (psx_taken_BFC120CC) goto label_BFC120F0; label_BFC120D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC120D4: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -44605,6 +54910,9 @@ label_BFC120D4: cpu->gpr[31] = 0x000025E4u; psx_dispatch(cpu, 0x00001B44u); label_BFC120E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC120E4: 3C060000 lui $a2, 0x0 */ cpu->gpr[6] = 0x00000000u; @@ -44613,6 +54921,9 @@ label_BFC120E4: /* 0xBFC120EC: 00000000 nop */ /* nop */ label_BFC120F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC120F0: 8CCC0004 lw $t4, 4($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC120F0u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -44631,6 +54942,9 @@ label_BFC120F0: /* nop */ if (psx_taken_BFC12104) goto label_BFC12128; label_BFC1210C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1210C: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -44642,6 +54956,9 @@ label_BFC1210C: cpu->gpr[31] = 0x0000261Cu; psx_dispatch(cpu, 0x00001B44u); label_BFC1211C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1211C: 3C060000 lui $a2, 0x0 */ cpu->gpr[6] = 0x00000000u; @@ -44650,6 +54967,9 @@ label_BFC1211C: /* 0xBFC12124: 00000000 nop */ /* nop */ label_BFC12128: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC12128: 8CD80004 lw $t8, 4($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12128u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -44668,6 +54988,9 @@ label_BFC12128: /* nop */ if (psx_taken_BFC1213C) goto label_BFC12160; label_BFC12144: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12144: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -44679,6 +55002,9 @@ label_BFC12144: cpu->gpr[31] = 0x00002654u; psx_dispatch(cpu, 0x00001B44u); label_BFC12154: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC12154: 3C060000 lui $a2, 0x0 */ cpu->gpr[6] = 0x00000000u; @@ -44687,6 +55013,9 @@ label_BFC12154: /* 0xBFC1215C: 00000000 nop */ /* nop */ label_BFC12160: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC12160: 8CCA0004 lw $t2, 4($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12160u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -44705,6 +55034,9 @@ label_BFC12160: /* nop */ if (psx_taken_BFC12174) goto label_BFC12198; label_BFC1217C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1217C: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -44716,6 +55048,9 @@ label_BFC1217C: cpu->gpr[31] = 0x0000268Cu; psx_dispatch(cpu, 0x00001B44u); label_BFC1218C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1218C: 3C060000 lui $a2, 0x0 */ cpu->gpr[6] = 0x00000000u; @@ -44724,6 +55059,9 @@ label_BFC1218C: /* 0xBFC12194: 00000000 nop */ /* nop */ label_BFC12198: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC12198: 8CCE0004 lw $t6, 4($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12198u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -44742,6 +55080,9 @@ label_BFC12198: /* nop */ if (psx_taken_BFC121AC) goto label_BFC121D0; label_BFC121B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC121B4: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -44753,6 +55094,9 @@ label_BFC121B4: cpu->gpr[31] = 0x000026C4u; psx_dispatch(cpu, 0x00001B44u); label_BFC121C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC121C4: 3C060000 lui $a2, 0x0 */ cpu->gpr[6] = 0x00000000u; @@ -44761,6 +55105,9 @@ label_BFC121C4: /* 0xBFC121CC: 00000000 nop */ /* nop */ label_BFC121D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC121D0: 3C030001 lui $v1, 0x1 */ cpu->gpr[3] = 0x00010000u; @@ -44773,6 +55120,9 @@ label_BFC121D0: /* 0xBFC121E0: 2405000B addiu $a1, $zero, 11 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[0] + (11)); label_BFC121E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC121E4: 8C680000 lw $t0, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC121E4u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -44785,6 +55135,9 @@ label_BFC121E4: /* nop */ if (psx_taken_BFC121EC) goto label_BFC12200; label_BFC121F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC121F4: 24090001 addiu $t1, $zero, 1 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -44793,6 +55146,9 @@ label_BFC121F4: /* 0xBFC121FC: 008A2025 or $a0, $a0, $t2 */ cpu->gpr[4] = cpu->gpr[4] | cpu->gpr[10]; label_BFC12200: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC12200: 24420001 addiu $v0, $v0, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (1)); @@ -44803,6 +55159,9 @@ label_BFC12200: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_taken_BFC12204) goto label_BFC121E4; label_BFC1220C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1220C: 00805827 nor $t3, $a0, $zero */ cpu->gpr[11] = ~(cpu->gpr[4] | cpu->gpr[0]); @@ -44829,6 +55188,9 @@ void func_00002724(CPUState* cpu) { } } label_BFC12224: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC12224: 3C010001 lui $at, 0x1 */ cpu->gpr[1] = 0x00010000u; @@ -44857,6 +55219,9 @@ label_BFC12224: /* 0xBFC12254: 2463863C addiu $v1, $v1, -31172 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (-31172)); label_BFC12258: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC12258: AC400000 sw $zero, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12258u); return; } g_debug_last_store_pc = 0xBFC12258u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -44873,6 +55238,9 @@ label_BFC12258: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1226Cu); return; } g_debug_last_store_pc = 0xBFC1226Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC12268) goto label_BFC12258; label_BFC12270: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC12270: 3C050000 lui $a1, 0x0 */ cpu->gpr[5] = 0x00000000u; @@ -44882,6 +55250,9 @@ label_BFC12270: cpu->gpr[31] = 0x0000277Cu; psx_dispatch(cpu, 0x00001420u); label_BFC1227C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1227C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1227Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -44896,6 +55267,9 @@ label_BFC1227C: void func_0000278C(CPUState* cpu) { debug_server_log_call_entry(0x0000278Cu); label_BFC1228C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1228C: 00047080 sll $t6, $a0, 2 */ cpu->gpr[14] = cpu->gpr[4] << 2u; @@ -44912,6 +55286,9 @@ label_BFC1228C: void func_000027A0(CPUState* cpu) { debug_server_log_call_entry(0x000027A0u); label_BFC122A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC122A0: 3C020001 lui $v0, 0x1 */ cpu->gpr[2] = 0x00010000u; @@ -44945,6 +55322,9 @@ void func_000027C0(CPUState* cpu) { } } label_BFC122C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(26u); +#endif psx_check_interrupts(cpu); /* 0xBFC122C0: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -45000,6 +55380,9 @@ label_BFC122C0: cpu->gpr[31] = 0x00002828u; psx_dispatch(cpu, 0x00002150u); label_BFC12328: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12328: 0C0010D8 jal 0xB0004360 */ /* 0xBFC1232C: 24040001 addiu $a0, $zero, 1 */ @@ -45007,6 +55390,9 @@ label_BFC12328: cpu->gpr[31] = 0x00002830u; psx_dispatch(cpu, 0x00004360u); label_BFC12330: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC12330: 8FA40020 lw $a0, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12330u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -45016,6 +55402,9 @@ label_BFC12330: cpu->gpr[31] = 0x0000283Cu; psx_dispatch(cpu, 0x00002870u); label_BFC1233C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1233C: 0C0010D8 jal 0xB0004360 */ /* 0xBFC12340: 24040002 addiu $a0, $zero, 2 */ @@ -45023,6 +55412,9 @@ label_BFC1233C: cpu->gpr[31] = 0x00002844u; psx_dispatch(cpu, 0x00004360u); label_BFC12344: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC12344: 3C010000 lui $at, 0x0 */ cpu->gpr[1] = 0x00000000u; @@ -45036,6 +55428,9 @@ label_BFC12344: cpu->gpr[31] = 0x00002858u; psx_dispatch(cpu, 0x00006AA0u); label_BFC12358: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12358: 0C001AAC jal 0xB0006AB0 */ /* 0xBFC1235C: 00000000 nop */ @@ -45043,6 +55438,9 @@ label_BFC12358: cpu->gpr[31] = 0x00002860u; psx_dispatch(cpu, 0x00006AB0u); label_BFC12360: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12360: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12360u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -45072,6 +55470,9 @@ void func_00002870(CPUState* cpu) { } } label_BFC12370: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC12370: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -45085,6 +55486,9 @@ label_BFC12370: cpu->gpr[31] = 0x00002884u; psx_dispatch(cpu, 0x00004360u); label_BFC12384: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC12384: 3C010001 lui $at, 0x1 */ cpu->gpr[1] = 0x00010000u; @@ -45102,6 +55506,9 @@ label_BFC12384: cpu->gpr[31] = 0x000028A0u; psx_dispatch(cpu, 0x00003CE0u); label_BFC123A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC123A0: 0C0010D8 jal 0xB0004360 */ /* 0xBFC123A4: 24040004 addiu $a0, $zero, 4 */ @@ -45109,6 +55516,9 @@ label_BFC123A0: cpu->gpr[31] = 0x000028A8u; psx_dispatch(cpu, 0x00004360u); label_BFC123A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC123A8: 8FA20018 lw $v0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC123A8u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -45121,6 +55531,9 @@ label_BFC123A8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC123B0) goto label_BFC123C8; label_BFC123B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC123B8: 10410007 beq $v0, $at, 0xBFC123D8 */ uint32_t psx_brA_BFC123B8 = cpu->gpr[2]; uint32_t psx_brB_BFC123B8 = cpu->gpr[1]; @@ -45129,6 +55542,9 @@ label_BFC123B8: /* nop */ if (psx_taken_BFC123B8) goto label_BFC123D8; label_BFC123C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC123C0: 1000000E beq $zero, $zero, 0xBFC123FC */ uint32_t psx_brA_BFC123C0 = cpu->gpr[0]; uint32_t psx_brB_BFC123C0 = cpu->gpr[0]; @@ -45137,6 +55553,9 @@ label_BFC123C0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC123C4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC123C0) goto label_BFC123FC; label_BFC123C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC123C8: 0C001AB0 jal 0xB0006AC0 */ /* 0xBFC123CC: 00000000 nop */ @@ -45144,6 +55563,9 @@ label_BFC123C8: cpu->gpr[31] = 0x000028D0u; psx_dispatch(cpu, 0x00006AC0u); label_BFC123D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC123D0: 10000003 beq $zero, $zero, 0xBFC123E0 */ uint32_t psx_brA_BFC123D0 = cpu->gpr[0]; uint32_t psx_brB_BFC123D0 = cpu->gpr[0]; @@ -45152,6 +55574,9 @@ label_BFC123D0: /* nop */ if (psx_taken_BFC123D0) goto label_BFC123E0; label_BFC123D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC123D8: 0C001AB4 jal 0xB0006AD0 */ /* 0xBFC123DC: 00000000 nop */ @@ -45159,6 +55584,9 @@ label_BFC123D8: cpu->gpr[31] = 0x000028E0u; psx_dispatch(cpu, 0x00006AD0u); label_BFC123E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC123E0: 0C0010D8 jal 0xB0004360 */ /* 0xBFC123E4: 24040005 addiu $a0, $zero, 5 */ @@ -45166,6 +55594,9 @@ label_BFC123E0: cpu->gpr[31] = 0x000028E8u; psx_dispatch(cpu, 0x00004360u); label_BFC123E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC123E8: 0C000A42 jal 0xB0002908 */ /* 0xBFC123EC: 00000000 nop */ @@ -45173,6 +55604,9 @@ label_BFC123E8: cpu->gpr[31] = 0x000028F0u; psx_dispatch(cpu, 0x00002908u); label_BFC123F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC123F0: 0C0010D8 jal 0xB0004360 */ /* 0xBFC123F4: 24040006 addiu $a0, $zero, 6 */ @@ -45180,10 +55614,16 @@ label_BFC123F0: cpu->gpr[31] = 0x000028F8u; psx_dispatch(cpu, 0x00004360u); label_BFC123F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC123F8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC123F8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC123FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC123FC: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -45207,6 +55647,9 @@ void func_00002908(CPUState* cpu) { } } label_BFC12408: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12408: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -45218,6 +55661,9 @@ label_BFC12408: cpu->gpr[31] = 0x00002918u; psx_dispatch(cpu, 0x00002E00u); label_BFC12418: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12418: 0C000B80 jal 0xB0002E00 */ /* 0xBFC1241C: 24040001 addiu $a0, $zero, 1 */ @@ -45225,6 +55671,9 @@ label_BFC12418: cpu->gpr[31] = 0x00002920u; psx_dispatch(cpu, 0x00002E00u); label_BFC12420: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12420: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -45236,6 +55685,9 @@ label_BFC12420: cpu->gpr[31] = 0x00002930u; psx_dispatch(cpu, 0x00002958u); label_BFC12430: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12430: 14400006 bne $v0, $zero, 0xBFC1244C */ uint32_t psx_brA_BFC12430 = cpu->gpr[2]; uint32_t psx_brB_BFC12430 = cpu->gpr[0]; @@ -45244,6 +55696,9 @@ label_BFC12430: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12434u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC12430) goto label_BFC1244C; label_BFC12438: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12438: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -45255,10 +55710,16 @@ label_BFC12438: cpu->gpr[31] = 0x00002948u; psx_dispatch(cpu, 0x00002958u); label_BFC12448: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC12448: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12448u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC1244C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1244C: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -45281,6 +55742,9 @@ void func_00002958(CPUState* cpu) { } } label_BFC12458: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC12458: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -45294,6 +55758,9 @@ label_BFC12458: cpu->gpr[31] = 0x0000296Cu; psx_dispatch(cpu, 0x00003060u); label_BFC1246C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1246C: 14400006 bne $v0, $zero, 0xBFC12488 */ uint32_t psx_brA_BFC1246C = cpu->gpr[2]; uint32_t psx_brB_BFC1246C = cpu->gpr[0]; @@ -45302,6 +55769,9 @@ label_BFC1246C: cpu->gpr[7] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC1246C) goto label_BFC12488; label_BFC12474: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC12474: 240E0018 addiu $t6, $zero, 24 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (24)); @@ -45316,6 +55786,9 @@ label_BFC12474: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC12480) goto label_BFC12554; label_BFC12488: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC12488: 8FA40038 lw $a0, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12488u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -45329,6 +55802,9 @@ label_BFC12488: cpu->gpr[31] = 0x0000299Cu; psx_dispatch(cpu, 0x000031E8u); label_BFC1249C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1249C: 8FA70034 lw $a3, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1249Cu); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } @@ -45341,6 +55817,9 @@ label_BFC1249C: cpu->gpr[5] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC124A4) goto label_BFC124C4; label_BFC124AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC124AC: 240F0013 addiu $t7, $zero, 19 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (19)); @@ -45357,6 +55836,9 @@ label_BFC124AC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC124BC) goto label_BFC12554; label_BFC124C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC124C4: 8FA6003C lw $a2, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC124C4u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -45396,6 +55878,9 @@ label_BFC124C4: cpu->gpr[31] = 0x00002A0Cu; psx_dispatch(cpu, cpu->gpr[11]); label_BFC1250C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1250C: 8FA70034 lw $a3, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1250Cu); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } @@ -45406,6 +55891,9 @@ label_BFC1250C: /* nop */ if (psx_taken_BFC12510) goto label_BFC12530; label_BFC12518: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC12518: 8CEC0018 lw $t4, 24($a3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[7] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12518u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -45422,6 +55910,9 @@ label_BFC12518: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC12528) goto label_BFC12554; label_BFC12530: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC12530: 3C0D0001 lui $t5, 0x1 */ cpu->gpr[13] = 0x00010000u; @@ -45442,6 +55933,9 @@ label_BFC12530: /* 0xBFC12550: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; label_BFC12554: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12554: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12554u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -45465,6 +55959,9 @@ void func_00002A64(CPUState* cpu) { } } label_BFC12564: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC12564: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -45478,6 +55975,9 @@ label_BFC12564: cpu->gpr[31] = 0x00002A78u; psx_dispatch(cpu, 0x000030C8u); label_BFC12578: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12578: 8FA40024 lw $a0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12578u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -45490,6 +55990,9 @@ label_BFC12578: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC12580) goto label_BFC12598; label_BFC12588: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12588: 8C4E0000 lw $t6, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12588u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -45502,6 +56005,9 @@ label_BFC12588: /* nop */ if (psx_taken_BFC12590) goto label_BFC125F8; label_BFC12598: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC12598: 240F0009 addiu $t7, $zero, 9 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); @@ -45516,6 +56022,9 @@ label_BFC12598: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC125A4) goto label_BFC12618; label_BFC125AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC125AC: 10000018 beq $zero, $zero, 0xBFC12610 */ uint32_t psx_brA_BFC125AC = cpu->gpr[0]; uint32_t psx_brB_BFC125AC = cpu->gpr[0]; @@ -45524,6 +56033,9 @@ label_BFC125AC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC125B0u); return; } g_debug_last_store_pc = 0xBFC125B0u; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC125AC) goto label_BFC12610; label_BFC125B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC125B4: 8C580010 lw $t8, 16($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC125B4u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -45538,6 +56050,9 @@ label_BFC125B4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC125C4u); return; } g_debug_last_store_pc = 0xBFC125C4u; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC125C0) goto label_BFC12610; label_BFC125C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC125C8: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -45549,6 +56064,9 @@ label_BFC125C8: cpu->gpr[31] = 0x00002AD8u; psx_dispatch(cpu, 0x00006AE0u); label_BFC125D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC125D8: 8FA3001C lw $v1, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC125D8u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -45569,6 +56087,9 @@ label_BFC125D8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC125F4u); return; } g_debug_last_store_pc = 0xBFC125F4u; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC125F0) goto label_BFC12618; label_BFC125F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC125F8: 10C0FFEC beq $a2, $zero, 0xBFC125AC */ uint32_t psx_brA_BFC125F8 = cpu->gpr[6]; uint32_t psx_brB_BFC125F8 = cpu->gpr[0]; @@ -45577,6 +56098,9 @@ label_BFC125F8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC125F8) goto label_BFC125AC; label_BFC12600: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12600: 10C1FFEC beq $a2, $at, 0xBFC125B4 */ uint32_t psx_brA_BFC12600 = cpu->gpr[6]; uint32_t psx_brB_BFC12600 = cpu->gpr[1]; @@ -45585,6 +56109,9 @@ label_BFC12600: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC12600) goto label_BFC125B4; label_BFC12608: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12608: 14C1FFEF bne $a2, $at, 0xBFC125C8 */ uint32_t psx_brA_BFC12608 = cpu->gpr[6]; uint32_t psx_brB_BFC12608 = cpu->gpr[1]; @@ -45593,12 +56120,18 @@ label_BFC12608: /* nop */ if (psx_taken_BFC12608) goto label_BFC125C8; label_BFC12610: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12610: 8C620010 lw $v0, 16($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12610u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } /* 0xBFC12614: 00000000 nop */ /* nop */ label_BFC12618: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12618: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12618u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -45625,6 +56158,9 @@ void func_00002B28(CPUState* cpu) { } } label_BFC12628: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC12628: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -45638,6 +56174,9 @@ label_BFC12628: cpu->gpr[31] = 0x00002B3Cu; psx_dispatch(cpu, 0x000030C8u); label_BFC1263C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1263C: 10400005 beq $v0, $zero, 0xBFC12654 */ uint32_t psx_brA_BFC1263C = cpu->gpr[2]; uint32_t psx_brB_BFC1263C = cpu->gpr[0]; @@ -45646,6 +56185,9 @@ label_BFC1263C: cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC1263C) goto label_BFC12654; label_BFC12644: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12644: 8C4E0000 lw $t6, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12644u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -45658,6 +56200,9 @@ label_BFC12644: /* nop */ if (psx_taken_BFC1264C) goto label_BFC12668; label_BFC12654: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC12654: 240F0009 addiu $t7, $zero, 9 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); @@ -45672,6 +56217,9 @@ label_BFC12654: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC12660) goto label_BFC12784; label_BFC12668: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12668: 0C000FA0 jal 0xB0003E80 */ /* 0xBFC1266C: AFA40024 sw $a0, 36($sp) */ @@ -45679,6 +56227,9 @@ label_BFC12668: cpu->gpr[31] = 0x00002B70u; psx_dispatch(cpu, 0x00003E80u); label_BFC12670: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC12670: 8FA40024 lw $a0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12670u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -45697,6 +56248,9 @@ label_BFC12670: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12688u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } if (psx_taken_BFC12684) goto label_BFC126B8; label_BFC1268C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1268C: AFA40024 sw $a0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1268Cu); return; } g_debug_last_store_pc = 0xBFC1268Cu; cpu->write_word(psx_addr, cpu->gpr[4]); } @@ -45714,6 +56268,9 @@ label_BFC1268C: cpu->gpr[31] = 0x00002BA8u; psx_dispatch(cpu, cpu->gpr[9]); label_BFC126A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC126A8: 8FA40024 lw $a0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC126A8u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -45724,10 +56281,16 @@ label_BFC126A8: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC126AC) goto label_BFC1276C; label_BFC126B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC126B4: 8FAA002C lw $t2, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC126B4u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } label_BFC126B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC126B8: 8C83001C lw $v1, 28($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC126B8u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -45752,6 +56315,9 @@ label_BFC126B8: /* nop */ if (psx_taken_BFC126D8) goto label_BFC1273C; label_BFC126E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC126E0: 8C620008 lw $v0, 8($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC126E0u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -45770,10 +56336,16 @@ label_BFC126E0: /* nop */ if (psx_taken_BFC126F4) goto label_BFC12700; label_BFC126FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC126FC: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC126FCu); return; label_BFC12700: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12700: 11E00006 beq $t7, $zero, 0xBFC1271C */ uint32_t psx_brA_BFC12700 = cpu->gpr[15]; uint32_t psx_brB_BFC12700 = cpu->gpr[0]; @@ -45782,6 +56354,9 @@ label_BFC12700: /* nop */ if (psx_taken_BFC12700) goto label_BFC1271C; label_BFC12708: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC12708: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -45791,6 +56366,9 @@ label_BFC12708: cpu->gpr[31] = 0x00002C14u; psx_dispatch(cpu, 0x00006AE0u); label_BFC12714: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12714: 1000001B beq $zero, $zero, 0xBFC12784 */ uint32_t psx_brA_BFC12714 = cpu->gpr[0]; uint32_t psx_brB_BFC12714 = cpu->gpr[0]; @@ -45799,6 +56377,9 @@ label_BFC12714: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC12714) goto label_BFC12784; label_BFC1271C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1271C: 8C98000C lw $t8, 12($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (12)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1271Cu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -45817,10 +56398,16 @@ label_BFC1271C: /* nop */ if (psx_taken_BFC12730) goto label_BFC1273C; label_BFC12738: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC12738: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC12738u); return; label_BFC1273C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1273C: AFA40024 sw $a0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1273Cu); return; } g_debug_last_store_pc = 0xBFC1273Cu; cpu->write_word(psx_addr, cpu->gpr[4]); } @@ -45834,6 +56421,9 @@ label_BFC1273C: cpu->gpr[31] = 0x00002C50u; psx_dispatch(cpu, cpu->gpr[8]); label_BFC12750: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC12750: 8FA40024 lw $a0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12750u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -45844,6 +56434,9 @@ label_BFC12750: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC12754) goto label_BFC1276C; label_BFC1275C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1275C: 8C890010 lw $t1, 16($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1275Cu); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -45854,6 +56447,9 @@ label_BFC1275C: /* 0xBFC12768: AC8A0010 sw $t2, 16($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12768u); return; } g_debug_last_store_pc = 0xBFC12768u; cpu->write_word(psx_addr, cpu->gpr[10]); } label_BFC1276C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1276C: 04410005 bgez $v0, 0xBFC12784 */ uint32_t psx_brA_BFC1276C = cpu->gpr[2]; @@ -45862,6 +56458,9 @@ label_BFC1276C: cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC1276C) goto label_BFC12784; label_BFC12774: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12774: 8C8B0018 lw $t3, 24($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12774u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -45872,6 +56471,9 @@ label_BFC12774: /* 0xBFC12780: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; label_BFC12784: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12784: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12784u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -45898,6 +56500,9 @@ void func_00002C94(CPUState* cpu) { } } label_BFC12794: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC12794: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -45911,6 +56516,9 @@ label_BFC12794: cpu->gpr[31] = 0x00002CA8u; psx_dispatch(cpu, 0x000030C8u); label_BFC127A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC127A8: 10400005 beq $v0, $zero, 0xBFC127C0 */ uint32_t psx_brA_BFC127A8 = cpu->gpr[2]; uint32_t psx_brB_BFC127A8 = cpu->gpr[0]; @@ -45919,6 +56527,9 @@ label_BFC127A8: cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC127A8) goto label_BFC127C0; label_BFC127B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC127B0: 8C4E0000 lw $t6, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC127B0u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -45931,6 +56542,9 @@ label_BFC127B0: /* nop */ if (psx_taken_BFC127B8) goto label_BFC127D4; label_BFC127C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC127C0: 240F0009 addiu $t7, $zero, 9 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); @@ -45945,6 +56559,9 @@ label_BFC127C0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC127CC) goto label_BFC128F0; label_BFC127D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC127D4: 0C000FA0 jal 0xB0003E80 */ /* 0xBFC127D8: AFA40024 sw $a0, 36($sp) */ @@ -45952,6 +56569,9 @@ label_BFC127D4: cpu->gpr[31] = 0x00002CDCu; psx_dispatch(cpu, 0x00003E80u); label_BFC127DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC127DC: 8FA40024 lw $a0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC127DCu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -45970,6 +56590,9 @@ label_BFC127DC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC127F4u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } if (psx_taken_BFC127F0) goto label_BFC12824; label_BFC127F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC127F8: AFA40024 sw $a0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC127F8u); return; } g_debug_last_store_pc = 0xBFC127F8u; cpu->write_word(psx_addr, cpu->gpr[4]); } @@ -45987,6 +56610,9 @@ label_BFC127F8: cpu->gpr[31] = 0x00002D14u; psx_dispatch(cpu, cpu->gpr[9]); label_BFC12814: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC12814: 8FA40024 lw $a0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12814u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -45997,10 +56623,16 @@ label_BFC12814: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC12818) goto label_BFC128D8; label_BFC12820: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC12820: 8FAA002C lw $t2, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12820u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } label_BFC12824: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC12824: 8C83001C lw $v1, 28($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12824u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -46025,6 +56657,9 @@ label_BFC12824: /* nop */ if (psx_taken_BFC12844) goto label_BFC128A8; label_BFC1284C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1284C: 8C620008 lw $v0, 8($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1284Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -46043,10 +56678,16 @@ label_BFC1284C: /* nop */ if (psx_taken_BFC12860) goto label_BFC1286C; label_BFC12868: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC12868: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC12868u); return; label_BFC1286C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1286C: 11E00006 beq $t7, $zero, 0xBFC12888 */ uint32_t psx_brA_BFC1286C = cpu->gpr[15]; uint32_t psx_brB_BFC1286C = cpu->gpr[0]; @@ -46055,6 +56696,9 @@ label_BFC1286C: /* nop */ if (psx_taken_BFC1286C) goto label_BFC12888; label_BFC12874: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC12874: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -46064,6 +56708,9 @@ label_BFC12874: cpu->gpr[31] = 0x00002D80u; psx_dispatch(cpu, 0x00006AE0u); label_BFC12880: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12880: 1000001B beq $zero, $zero, 0xBFC128F0 */ uint32_t psx_brA_BFC12880 = cpu->gpr[0]; uint32_t psx_brB_BFC12880 = cpu->gpr[0]; @@ -46072,6 +56719,9 @@ label_BFC12880: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC12880) goto label_BFC128F0; label_BFC12888: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC12888: 8C98000C lw $t8, 12($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (12)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12888u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -46090,10 +56740,16 @@ label_BFC12888: /* nop */ if (psx_taken_BFC1289C) goto label_BFC128A8; label_BFC128A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC128A4: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC128A4u); return; label_BFC128A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC128A8: AFA40024 sw $a0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC128A8u); return; } g_debug_last_store_pc = 0xBFC128A8u; cpu->write_word(psx_addr, cpu->gpr[4]); } @@ -46107,6 +56763,9 @@ label_BFC128A8: cpu->gpr[31] = 0x00002DBCu; psx_dispatch(cpu, cpu->gpr[8]); label_BFC128BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC128BC: 8FA40024 lw $a0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC128BCu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -46117,6 +56776,9 @@ label_BFC128BC: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC128C0) goto label_BFC128D8; label_BFC128C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC128C8: 8C890010 lw $t1, 16($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC128C8u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -46127,6 +56789,9 @@ label_BFC128C8: /* 0xBFC128D4: AC8A0010 sw $t2, 16($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC128D4u); return; } g_debug_last_store_pc = 0xBFC128D4u; cpu->write_word(psx_addr, cpu->gpr[10]); } label_BFC128D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC128D8: 04410005 bgez $v0, 0xBFC128F0 */ uint32_t psx_brA_BFC128D8 = cpu->gpr[2]; @@ -46135,6 +56800,9 @@ label_BFC128D8: cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC128D8) goto label_BFC128F0; label_BFC128E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC128E0: 8C8B0018 lw $t3, 24($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC128E0u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -46145,6 +56813,9 @@ label_BFC128E0: /* 0xBFC128EC: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; label_BFC128F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC128F0: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC128F0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -46168,6 +56839,9 @@ void func_00002E00(CPUState* cpu) { } } label_BFC12900: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC12900: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -46183,6 +56857,9 @@ label_BFC12900: cpu->gpr[31] = 0x00002E18u; psx_dispatch(cpu, 0x000030C8u); label_BFC12918: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12918: 10400005 beq $v0, $zero, 0xBFC12930 */ uint32_t psx_brA_BFC12918 = cpu->gpr[2]; uint32_t psx_brB_BFC12918 = cpu->gpr[0]; @@ -46191,6 +56868,9 @@ label_BFC12918: cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC12918) goto label_BFC12930; label_BFC12920: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12920: 8C4E0000 lw $t6, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12920u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -46203,6 +56883,9 @@ label_BFC12920: /* nop */ if (psx_taken_BFC12928) goto label_BFC12944; label_BFC12930: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC12930: 240F0009 addiu $t7, $zero, 9 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); @@ -46217,6 +56900,9 @@ label_BFC12930: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC1293C) goto label_BFC12988; label_BFC12944: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC12944: AFA40024 sw $a0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12944u); return; } g_debug_last_store_pc = 0xBFC12944u; cpu->write_word(psx_addr, cpu->gpr[4]); } @@ -46234,6 +56920,9 @@ label_BFC12944: cpu->gpr[31] = 0x00002E60u; psx_dispatch(cpu, cpu->gpr[25]); label_BFC12960: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC12960: 8FA40024 lw $a0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12960u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -46244,6 +56933,9 @@ label_BFC12960: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12968u); return; } g_debug_last_store_pc = 0xBFC12968u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC12964) goto label_BFC12980; label_BFC1296C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1296C: 8C880018 lw $t0, 24($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1296Cu); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -46258,12 +56950,18 @@ label_BFC1296C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-31168)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1297Cu); return; } g_debug_last_store_pc = 0xBFC1297Cu; cpu->write_word(psx_addr, cpu->gpr[8]); } if (psx_taken_BFC12978) goto label_BFC12988; label_BFC12980: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12980: 8FA20028 lw $v0, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12980u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } /* 0xBFC12984: 00000000 nop */ /* nop */ label_BFC12988: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12988: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12988u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -46286,6 +56984,9 @@ void func_00002E98(CPUState* cpu) { } } label_BFC12998: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12998: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -46297,6 +56998,9 @@ label_BFC12998: cpu->gpr[31] = 0x00002EA8u; psx_dispatch(cpu, 0x000030C8u); label_BFC129A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC129A8: 10400005 beq $v0, $zero, 0xBFC129C0 */ uint32_t psx_brA_BFC129A8 = cpu->gpr[2]; uint32_t psx_brB_BFC129A8 = cpu->gpr[0]; @@ -46305,6 +57009,9 @@ label_BFC129A8: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC129A8) goto label_BFC129C0; label_BFC129B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC129B0: 8C4E0000 lw $t6, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC129B0u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -46317,6 +57024,9 @@ label_BFC129B0: /* nop */ if (psx_taken_BFC129B8) goto label_BFC129D4; label_BFC129C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC129C0: 240F0009 addiu $t7, $zero, 9 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); @@ -46331,12 +57041,18 @@ label_BFC129C0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC129CC) goto label_BFC129DC; label_BFC129D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC129D4: 8C620018 lw $v0, 24($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC129D4u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } /* 0xBFC129D8: 00000000 nop */ /* nop */ label_BFC129DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC129DC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC129DCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -46351,6 +57067,9 @@ label_BFC129DC: void func_00002EEC(CPUState* cpu) { debug_server_log_call_entry(0x00002EECu); label_BFC129EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC129EC: 3C020001 lui $v0, 0x1 */ cpu->gpr[2] = 0x00010000u; @@ -46374,6 +57093,9 @@ void func_00002EFC(CPUState* cpu) { } } label_BFC129FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC129FC: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -46387,6 +57109,9 @@ label_BFC129FC: cpu->gpr[31] = 0x00002F10u; psx_dispatch(cpu, 0x000030C8u); label_BFC12A10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12A10: 8FA50024 lw $a1, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12A10u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -46399,6 +57124,9 @@ label_BFC12A10: cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC12A18) goto label_BFC12A30; label_BFC12A20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12A20: 8C430000 lw $v1, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12A20u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -46411,6 +57139,9 @@ label_BFC12A20: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (26113)); if (psx_taken_BFC12A28) goto label_BFC12A70; label_BFC12A30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC12A30: 240E0009 addiu $t6, $zero, 9 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); @@ -46425,6 +57156,9 @@ label_BFC12A30: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC12A3C) goto label_BFC12AB8; label_BFC12A44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12A44: 10C00005 beq $a2, $zero, 0xBFC12A5C */ uint32_t psx_brA_BFC12A44 = cpu->gpr[6]; uint32_t psx_brB_BFC12A44 = cpu->gpr[0]; @@ -46433,6 +57167,9 @@ label_BFC12A44: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-5)); if (psx_taken_BFC12A44) goto label_BFC12A5C; label_BFC12A4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC12A4C: 346F0004 ori $t7, $v1, 0x4 */ cpu->gpr[15] = cpu->gpr[3] | 0x4u; @@ -46443,16 +57180,25 @@ label_BFC12A4C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12A54u); return; } g_debug_last_store_pc = 0xBFC12A54u; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC12A50) goto label_BFC12A64; label_BFC12A58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC12A58: 2401FFFB addiu $at, $zero, -5 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-5)); label_BFC12A5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12A5C: 0061C024 and $t8, $v1, $at */ cpu->gpr[24] = cpu->gpr[3] & cpu->gpr[1]; /* 0xBFC12A60: AC580000 sw $t8, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12A60u); return; } g_debug_last_store_pc = 0xBFC12A60u; cpu->write_word(psx_addr, cpu->gpr[24]); } label_BFC12A64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12A64: 10000014 beq $zero, $zero, 0xBFC12AB8 */ uint32_t psx_brA_BFC12A64 = cpu->gpr[0]; uint32_t psx_brB_BFC12A64 = cpu->gpr[0]; @@ -46461,10 +57207,16 @@ label_BFC12A64: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC12A64) goto label_BFC12AB8; label_BFC12A6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC12A6C: 24016601 addiu $at, $zero, 26113 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (26113)); label_BFC12A70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12A70: 10A1FFF4 beq $a1, $at, 0xBFC12A44 */ uint32_t psx_brA_BFC12A70 = cpu->gpr[5]; uint32_t psx_brB_BFC12A70 = cpu->gpr[1]; @@ -46473,6 +57225,9 @@ label_BFC12A70: /* nop */ if (psx_taken_BFC12A70) goto label_BFC12A44; label_BFC12A78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC12A78: AFA4001C sw $a0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12A78u); return; } g_debug_last_store_pc = 0xBFC12A78u; cpu->write_word(psx_addr, cpu->gpr[4]); } @@ -46490,6 +57245,9 @@ label_BFC12A78: cpu->gpr[31] = 0x00002F94u; psx_dispatch(cpu, cpu->gpr[8]); label_BFC12A94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC12A94: 8FA4001C lw $a0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12A94u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -46500,6 +57258,9 @@ label_BFC12A94: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC12A98) goto label_BFC12AB8; label_BFC12AA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC12AA0: 8C890018 lw $t1, 24($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12AA0u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -46514,10 +57275,16 @@ label_BFC12AA0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-31168)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12AB0u); return; } g_debug_last_store_pc = 0xBFC12AB0u; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC12AAC) goto label_BFC12AB8; label_BFC12AB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC12AB4: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC12AB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12AB8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12AB8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -46541,6 +57308,9 @@ void func_00002FC8(CPUState* cpu) { } } label_BFC12AC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC12AC8: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -46560,6 +57330,9 @@ label_BFC12AC8: cpu->gpr[31] = 0x00002FE8u; psx_dispatch(cpu, 0x00006AE0u); label_BFC12AE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12AE8: 0C001ABC jal 0xB0006AF0 */ /* 0xBFC12AEC: 24040001 addiu $a0, $zero, 1 */ @@ -46567,6 +57340,9 @@ label_BFC12AE8: cpu->gpr[31] = 0x00002FF0u; psx_dispatch(cpu, 0x00006AF0u); label_BFC12AF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12AF0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12AF0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -46591,6 +57367,9 @@ void func_00003000(CPUState* cpu) { } } label_BFC12B00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC12B00: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -46607,6 +57386,9 @@ label_BFC12B00: /* 0xBFC12B18: 24110010 addiu $s1, $zero, 16 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); label_BFC12B1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12B1C: 0C000B80 jal 0xB0002E00 */ /* 0xBFC12B20: 02002021 addu $a0, $s0, $zero */ @@ -46614,6 +57396,9 @@ label_BFC12B1C: cpu->gpr[31] = 0x00003024u; psx_dispatch(cpu, 0x00002E00u); label_BFC12B24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC12B24: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -46624,6 +57409,9 @@ label_BFC12B24: /* nop */ if (psx_taken_BFC12B28) goto label_BFC12B1C; label_BFC12B30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12B30: 3C040001 lui $a0, 0x1 */ cpu->gpr[4] = 0x00010000u; @@ -46635,6 +57423,9 @@ label_BFC12B30: cpu->gpr[31] = 0x00003040u; psx_dispatch(cpu, 0x00002870u); label_BFC12B40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC12B40: 8FA40028 lw $a0, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12B40u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -46644,6 +57435,9 @@ label_BFC12B40: cpu->gpr[31] = 0x0000304Cu; psx_dispatch(cpu, 0x00006B00u); label_BFC12B4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC12B4C: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12B4Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -46668,6 +57462,9 @@ void func_00003060(CPUState* cpu) { } } label_BFC12B60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC12B60: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -46682,6 +57479,9 @@ label_BFC12B60: /* 0xBFC12B74: 24638648 addiu $v1, $v1, -31160 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (-31160)); label_BFC12B78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12B78: 8C6E0000 lw $t6, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12B78u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -46694,6 +57494,9 @@ label_BFC12B78: /* nop */ if (psx_taken_BFC12B80) goto label_BFC12B90; label_BFC12B88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12B88: 1000000B beq $zero, $zero, 0xBFC12BB8 */ uint32_t psx_brA_BFC12B88 = cpu->gpr[0]; uint32_t psx_brB_BFC12B88 = cpu->gpr[0]; @@ -46702,6 +57505,9 @@ label_BFC12B88: cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC12B88) goto label_BFC12BB8; label_BFC12B90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12B90: 2463002C addiu $v1, $v1, 44 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (44)); @@ -46714,6 +57520,9 @@ label_BFC12B90: /* nop */ if (psx_taken_BFC12B98) goto label_BFC12B78; label_BFC12BA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC12BA0: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -46727,10 +57536,16 @@ label_BFC12BA0: cpu->gpr[31] = 0x000030B4u; psx_dispatch(cpu, 0x00002FC8u); label_BFC12BB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC12BB4: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC12BB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12BB8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12BB8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -46745,6 +57560,9 @@ label_BFC12BB8: void func_000030C8(CPUState* cpu) { debug_server_log_call_entry(0x000030C8u); label_BFC12BC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12BC8: 04800003 bltz $a0, 0xBFC12BD8 */ uint32_t psx_brA_BFC12BC8 = cpu->gpr[4]; @@ -46753,6 +57571,9 @@ label_BFC12BC8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (16) ? 1 : 0); if (psx_taken_BFC12BC8) goto label_BFC12BD8; label_BFC12BD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12BD0: 14200004 bne $at, $zero, 0xBFC12BE4 */ uint32_t psx_brA_BFC12BD0 = cpu->gpr[1]; uint32_t psx_brB_BFC12BD0 = cpu->gpr[0]; @@ -46761,6 +57582,9 @@ label_BFC12BD0: cpu->gpr[14] = cpu->gpr[4] << 2u; if (psx_taken_BFC12BD0) { cpu->pc = 0xBFC12BE4u; return; } label_BFC12BD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12BD8: 03E00008 jr $ra */ /* 0xBFC12BDC: 00001021 addu $v0, $zero, $zero */ @@ -46771,6 +57595,9 @@ label_BFC12BD8: void func_000030E0(CPUState* cpu) { debug_server_log_call_entry(0x000030E0u); label_BFC12BE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC12BE0: 00047080 sll $t6, $a0, 2 */ cpu->gpr[14] = cpu->gpr[4] << 2u; @@ -46780,6 +57607,9 @@ label_BFC12BE0: void func_000030E4(CPUState* cpu) { debug_server_log_call_entry(0x000030E4u); label_BFC12BE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC12BE4: 01C47023 subu $t6, $t6, $a0 */ cpu->gpr[14] = cpu->gpr[14] - cpu->gpr[4]; @@ -46815,6 +57645,9 @@ void func_00003108(CPUState* cpu) { } } label_BFC12C08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC12C08: 3C0E0000 lui $t6, 0x0 */ cpu->gpr[14] = 0x00000000u; @@ -46857,6 +57690,9 @@ label_BFC12C08: cpu->gpr[16] = cpu->gpr[17] + cpu->gpr[0]; if (psx_taken_BFC12C4C) goto label_BFC12CA0; label_BFC12C54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12C54: 8E040000 lw $a0, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12C54u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -46869,6 +57705,9 @@ label_BFC12C54: /* nop */ if (psx_taken_BFC12C5C) goto label_BFC12C7C; label_BFC12C64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12C64: 0C001AC4 jal 0xB0006B10 */ /* 0xBFC12C68: 02402821 addu $a1, $s2, $zero */ @@ -46876,6 +57715,9 @@ label_BFC12C64: cpu->gpr[31] = 0x0000316Cu; psx_dispatch(cpu, 0x00006B10u); label_BFC12C6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12C6C: 14400003 bne $v0, $zero, 0xBFC12C7C */ uint32_t psx_brA_BFC12C6C = cpu->gpr[2]; uint32_t psx_brB_BFC12C6C = cpu->gpr[0]; @@ -46884,6 +57726,9 @@ label_BFC12C6C: /* nop */ if (psx_taken_BFC12C6C) goto label_BFC12C7C; label_BFC12C74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12C74: 10000016 beq $zero, $zero, 0xBFC12CD0 */ uint32_t psx_brA_BFC12C74 = cpu->gpr[0]; uint32_t psx_brB_BFC12C74 = cpu->gpr[0]; @@ -46892,6 +57737,9 @@ label_BFC12C74: cpu->gpr[2] = cpu->gpr[16] + cpu->gpr[0]; if (psx_taken_BFC12C74) goto label_BFC12CD0; label_BFC12C7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC12C7C: 3C080000 lui $t0, 0x0 */ cpu->gpr[8] = 0x00000000u; @@ -46913,11 +57761,17 @@ label_BFC12C7C: uint32_t psx_brA_BFC12C9C = cpu->gpr[1]; uint32_t psx_brB_BFC12C9C = cpu->gpr[0]; int psx_taken_BFC12C9C = (psx_brA_BFC12C9C != psx_brB_BFC12C9C); label_BFC12CA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC12CA0: 3C010001 lui $at, 0x1 */ cpu->gpr[1] = 0x00010000u; if (psx_taken_BFC12C9C) goto label_BFC12C54; label_BFC12CA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC12CA4: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -46931,6 +57785,9 @@ label_BFC12CA4: cpu->gpr[31] = 0x000031B8u; psx_dispatch(cpu, 0x00006AE0u); label_BFC12CB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC12CB8: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -46940,6 +57797,9 @@ label_BFC12CB8: cpu->gpr[31] = 0x000031C4u; psx_dispatch(cpu, 0x00006AE0u); label_BFC12CC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12CC4: 0C000F6B jal 0xB0003DAC */ /* 0xBFC12CC8: 00000000 nop */ @@ -46947,10 +57807,16 @@ label_BFC12CC4: cpu->gpr[31] = 0x000031CCu; psx_dispatch(cpu, 0x00003DACu); label_BFC12CCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC12CCC: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC12CD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC12CD0: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12CD0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -46978,6 +57844,9 @@ void func_000031E8(CPUState* cpu) { } } label_BFC12CE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC12CE8: 27BDFF90 addiu $sp, $sp, -112 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-112)); @@ -47002,6 +57871,9 @@ label_BFC12CE8: cpu->gpr[19] = cpu->gpr[6] + cpu->gpr[0]; if (psx_taken_BFC12D08) goto label_BFC12D20; label_BFC12D10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12D10: 808F0001 lb $t7, 1($a0) */ cpu->gpr[15] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (1))); @@ -47014,6 +57886,9 @@ label_BFC12D10: /* nop */ if (psx_taken_BFC12D18) goto label_BFC12D10; label_BFC12D20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC12D20: AE600000 sw $zero, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12D20u); return; } g_debug_last_store_pc = 0xBFC12D20u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -47032,6 +57907,9 @@ label_BFC12D20: cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC12D34) goto label_BFC12D70; label_BFC12D3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12D3C: 1040000D beq $v0, $zero, 0xBFC12D74 */ uint32_t psx_brA_BFC12D3C = cpu->gpr[2]; uint32_t psx_brB_BFC12D3C = cpu->gpr[0]; @@ -47040,6 +57918,9 @@ label_BFC12D3C: cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[29] + (112)); if (psx_taken_BFC12D3C) goto label_BFC12D74; label_BFC12D44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC12D44: 27B80070 addiu $t8, $sp, 112 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[29] + (112)); @@ -47048,6 +57929,9 @@ label_BFC12D44: /* 0xBFC12D4C: 00788021 addu $s0, $v1, $t8 */ cpu->gpr[16] = cpu->gpr[3] + cpu->gpr[24]; label_BFC12D50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC12D50: A202FFD4 sb $v0, -44($s0) */ g_debug_last_store_pc = 0xBFC12D50u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[16] + (-44)), (uint8_t)(cpu->gpr[2] & 0xFFu)); @@ -47064,6 +57948,9 @@ label_BFC12D50: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); if (psx_taken_BFC12D60) goto label_BFC12D70; label_BFC12D68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12D68: 1440FFF9 bne $v0, $zero, 0xBFC12D50 */ uint32_t psx_brA_BFC12D68 = cpu->gpr[2]; uint32_t psx_brB_BFC12D68 = cpu->gpr[0]; @@ -47072,10 +57959,16 @@ label_BFC12D68: /* nop */ if (psx_taken_BFC12D68) goto label_BFC12D50; label_BFC12D70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC12D70: 27B90070 addiu $t9, $sp, 112 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[29] + (112)); label_BFC12D74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC12D74: 00798021 addu $s0, $v1, $t9 */ cpu->gpr[16] = cpu->gpr[3] + cpu->gpr[25]; @@ -47092,6 +57985,9 @@ label_BFC12D74: /* nop */ if (psx_taken_BFC12D84) goto label_BFC12E6C; label_BFC12D8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC12D8C: AFB10030 sw $s1, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12D8Cu); return; } g_debug_last_store_pc = 0xBFC12D8Cu; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -47120,6 +58016,9 @@ label_BFC12D8C: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); if (psx_taken_BFC12DB4) goto label_BFC12DDC; label_BFC12DBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC12DBC: 920DFFD3 lbu $t5, -45($s0) */ cpu->gpr[13] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (-45))); @@ -47140,6 +58039,9 @@ label_BFC12DBC: /* nop */ if (psx_taken_BFC12DD4) goto label_BFC12DBC; label_BFC12DDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC12DDC: 24630001 addiu $v1, $v1, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1)); @@ -47160,6 +58062,9 @@ label_BFC12DDC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (104)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12DF8u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } if (psx_taken_BFC12DF4) goto label_BFC12E5C; label_BFC12DFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12DFC: 0C001AA4 jal 0xB0006A90 */ /* 0xBFC12E00: 00000000 nop */ @@ -47167,6 +58072,9 @@ label_BFC12DFC: cpu->gpr[31] = 0x00003304u; psx_dispatch(cpu, 0x00006A90u); label_BFC12E04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC12E04: 9209FFD4 lbu $t1, -44($s0) */ cpu->gpr[9] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (-44))); @@ -47187,6 +58095,9 @@ label_BFC12E04: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (55)); if (psx_taken_BFC12E1C) goto label_BFC12E30; label_BFC12E24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12E24: 10000002 beq $zero, $zero, 0xBFC12E30 */ uint32_t psx_brA_BFC12E24 = cpu->gpr[0]; uint32_t psx_brB_BFC12E24 = cpu->gpr[0]; @@ -47195,10 +58106,16 @@ label_BFC12E24: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (48)); if (psx_taken_BFC12E24) goto label_BFC12E30; label_BFC12E2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC12E2C: 24030037 addiu $v1, $zero, 55 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (55)); label_BFC12E30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC12E30: 8E6D0000 lw $t5, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12E30u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -47223,10 +58140,16 @@ label_BFC12E30: /* nop */ if (psx_taken_BFC12E50) goto label_BFC12DFC; label_BFC12E58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC12E58: 8FB90068 lw $t9, 104($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (104)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12E58u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } label_BFC12E5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12E5C: 00000000 nop */ /* nop */ @@ -47237,6 +58160,9 @@ label_BFC12E5C: /* 0xBFC12E68: 00000000 nop */ /* nop */ label_BFC12E6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12E6C: 0C000C42 jal 0xB0003108 */ /* 0xBFC12E70: 27A40044 addiu $a0, $sp, 68 */ @@ -47244,6 +58170,9 @@ label_BFC12E6C: cpu->gpr[31] = 0x00003374u; psx_dispatch(cpu, 0x00003108u); label_BFC12E74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC12E74: 8FA80074 lw $t0, 116($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (116)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12E74u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -47254,6 +58183,9 @@ label_BFC12E74: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[8] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12E7Cu); return; } g_debug_last_store_pc = 0xBFC12E7Cu; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC12E78) goto label_BFC12E88; label_BFC12E80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12E80: 10000002 beq $zero, $zero, 0xBFC12E8C */ uint32_t psx_brA_BFC12E80 = cpu->gpr[0]; uint32_t psx_brB_BFC12E80 = cpu->gpr[0]; @@ -47262,10 +58194,16 @@ label_BFC12E80: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC12E80) goto label_BFC12E8C; label_BFC12E88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC12E88: 02401021 addu $v0, $s2, $zero */ cpu->gpr[2] = cpu->gpr[18] + cpu->gpr[0]; label_BFC12E8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC12E8C: 8FBF002C lw $ra, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12E8Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -47292,6 +58230,9 @@ void func_000033A4(CPUState* cpu) { } } label_BFC12EA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC12EA4: 00803021 addu $a2, $a0, $zero */ cpu->gpr[6] = cpu->gpr[4] + cpu->gpr[0]; @@ -47308,6 +58249,9 @@ label_BFC12EA4: cpu->gpr[7] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC12EB4) goto label_BFC12EC8; label_BFC12EBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC12EBC: 2CE10010 sltiu $at, $a3, 16 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[7] < 0x00000010u ? 1 : 0); @@ -47318,6 +58262,9 @@ label_BFC12EBC: cpu->gpr[14] = cpu->gpr[7] << 2u; if (psx_taken_BFC12EC0) goto label_BFC12EF4; label_BFC12EC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC12EC8: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -47335,6 +58282,9 @@ label_BFC12EC8: cpu->gpr[31] = 0x000033E4u; psx_dispatch(cpu, 0x00002FC8u); label_BFC12EE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12EE4: 8FA60018 lw $a2, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12EE4u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -47345,6 +58295,9 @@ label_BFC12EE4: /* 0xBFC12EF0: 00077080 sll $t6, $a3, 2 */ cpu->gpr[14] = cpu->gpr[7] << 2u; label_BFC12EF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC12EF4: 00067880 sll $t7, $a2, 2 */ cpu->gpr[15] = cpu->gpr[6] << 2u; @@ -47385,6 +58338,9 @@ label_BFC12EF4: /* nop */ if (psx_taken_BFC12F34) goto label_BFC12F58; label_BFC12F3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC12F3C: 8C680004 lw $t0, 4($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12F3Cu); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -47399,6 +58355,9 @@ label_BFC12F3C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC12F48) goto label_BFC12F5C; label_BFC12F50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC12F50: 10000002 beq $zero, $zero, 0xBFC12F5C */ uint32_t psx_brA_BFC12F50 = cpu->gpr[0]; uint32_t psx_brB_BFC12F50 = cpu->gpr[0]; @@ -47407,10 +58366,16 @@ label_BFC12F50: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC12F50) goto label_BFC12F5C; label_BFC12F58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC12F58: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC12F5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12F5C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12F5Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -47433,6 +58398,9 @@ void func_0000346C(CPUState* cpu) { } } label_BFC12F6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12F6C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -47444,6 +58412,9 @@ label_BFC12F6C: cpu->gpr[31] = 0x0000347Cu; psx_dispatch(cpu, 0x000030C8u); label_BFC12F7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12F7C: 00401821 addu $v1, $v0, $zero */ cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; @@ -47456,6 +58427,9 @@ label_BFC12F7C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12F88u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC12F84) goto label_BFC12FA8; label_BFC12F8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC12F8C: 8C6E001C lw $t6, 28($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12F8Cu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -47472,6 +58446,9 @@ label_BFC12F8C: /* 0xBFC12FA4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12FA4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC12FA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC12FA8: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -47492,6 +58469,9 @@ void func_000034B4(CPUState* cpu) { } } label_BFC12FB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC12FB4: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -47512,6 +58492,9 @@ label_BFC12FB4: /* nop */ if (psx_taken_BFC12FCC) goto label_BFC12FF4; label_BFC12FD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12FD4: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -47523,6 +58506,9 @@ label_BFC12FD4: cpu->gpr[31] = 0x000034E4u; psx_dispatch(cpu, 0x00002FC8u); label_BFC12FE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC12FE4: 8FA30018 lw $v1, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC12FE4u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -47533,6 +58519,9 @@ label_BFC12FE4: /* 0xBFC12FF0: 00000000 nop */ /* nop */ label_BFC12FF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC12FF4: 80440000 lb $a0, 0($v0) */ cpu->gpr[4] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[2] + (0))); @@ -47553,12 +58542,18 @@ label_BFC12FF4: cpu->gpr[4] = cpu->gpr[4] & 0xFFu; if (psx_taken_BFC1300C) goto label_BFC1301C; label_BFC13014: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13014: 2468000C addiu $t0, $v1, 12 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[3] + (12)); /* 0xBFC13018: AC680008 sw $t0, 8($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13018u); return; } g_debug_last_store_pc = 0xBFC13018u; cpu->write_word(psx_addr, cpu->gpr[8]); } label_BFC1301C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1301C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1301Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -47573,6 +58568,9 @@ label_BFC1301C: void func_0000352C(CPUState* cpu) { debug_server_log_call_entry(0x0000352Cu); label_BFC1302C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1302C: 8CA20004 lw $v0, 4($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1302Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -47589,6 +58587,9 @@ label_BFC1302C: cpu->gpr[6] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC1303C) goto label_BFC1304C; label_BFC13044: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13044: 10000002 beq $zero, $zero, 0xBFC13050 */ uint32_t psx_brA_BFC13044 = cpu->gpr[0]; uint32_t psx_brB_BFC13044 = cpu->gpr[0]; @@ -47597,10 +58598,16 @@ label_BFC13044: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[5] + (12)); if (psx_taken_BFC13044) goto label_BFC13050; label_BFC1304C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1304C: 00602021 addu $a0, $v1, $zero */ cpu->gpr[4] = cpu->gpr[3] + cpu->gpr[0]; label_BFC13050: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13050: 8CAF0008 lw $t7, 8($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13050u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -47613,12 +58620,18 @@ label_BFC13050: /* nop */ if (psx_taken_BFC13058) goto label_BFC13068; label_BFC13060: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13060: A0460000 sb $a2, 0($v0) */ g_debug_last_store_pc = 0xBFC13060u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[2] + (0)), (uint8_t)(cpu->gpr[6] & 0xFFu)); /* 0xBFC13064: ACA40004 sw $a0, 4($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13064u); return; } g_debug_last_store_pc = 0xBFC13064u; cpu->write_word(psx_addr, cpu->gpr[4]); } label_BFC13068: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13068: 03E00008 jr $ra */ /* 0xBFC1306C: 00000000 nop */ @@ -47637,6 +58650,9 @@ void func_00003570(CPUState* cpu) { } } label_BFC13070: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC13070: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -47652,6 +58668,9 @@ label_BFC13070: cpu->gpr[31] = 0x00003588u; psx_dispatch(cpu, 0x00006AE0u); label_BFC13088: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC13088: 8FAF0020 lw $t7, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13088u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -47672,6 +58691,9 @@ label_BFC13088: void func_000035A4(CPUState* cpu) { debug_server_log_call_entry(0x000035A4u); label_BFC130A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC130A4: 03E00008 jr $ra */ /* 0xBFC130A8: 00001021 addu $v0, $zero, $zero */ @@ -47692,6 +58714,9 @@ void func_000035AC(CPUState* cpu) { } } label_BFC130AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC130AC: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -47703,6 +58728,9 @@ label_BFC130AC: cpu->gpr[31] = 0x000035BCu; psx_dispatch(cpu, 0x00003060u); label_BFC130BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC130BC: 14400006 bne $v0, $zero, 0xBFC130D8 */ uint32_t psx_brA_BFC130BC = cpu->gpr[2]; uint32_t psx_brB_BFC130BC = cpu->gpr[0]; @@ -47711,6 +58739,9 @@ label_BFC130BC: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC130BC) goto label_BFC130D8; label_BFC130C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC130C4: 240E0018 addiu $t6, $zero, 24 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (24)); @@ -47725,6 +58756,9 @@ label_BFC130C4: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC130D0) goto label_BFC13168; label_BFC130D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC130D8: 8FA40038 lw $a0, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC130D8u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -47738,6 +58772,9 @@ label_BFC130D8: cpu->gpr[31] = 0x000035ECu; psx_dispatch(cpu, 0x000031E8u); label_BFC130EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC130EC: 8FA30034 lw $v1, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC130ECu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -47750,6 +58787,9 @@ label_BFC130EC: cpu->gpr[5] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC130F4) goto label_BFC13114; label_BFC130FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC130FC: AC600000 sw $zero, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC130FCu); return; } g_debug_last_store_pc = 0xBFC130FCu; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -47766,6 +58806,9 @@ label_BFC130FC: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC1310C) goto label_BFC13168; label_BFC13114: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC13114: 8FB80024 lw $t8, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13114u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -47793,6 +58836,9 @@ label_BFC13114: cpu->gpr[31] = 0x00003644u; psx_dispatch(cpu, cpu->gpr[9]); label_BFC13144: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC13144: 8FA30034 lw $v1, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13144u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -47803,6 +58849,9 @@ label_BFC13144: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1314Cu); return; } g_debug_last_store_pc = 0xBFC1314Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC13148) goto label_BFC13164; label_BFC13150: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC13150: 8C6A0018 lw $t2, 24($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13150u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -47817,10 +58866,16 @@ label_BFC13150: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-31168)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13160u); return; } g_debug_last_store_pc = 0xBFC13160u; cpu->write_word(psx_addr, cpu->gpr[10]); } if (psx_taken_BFC1315C) goto label_BFC13168; label_BFC13164: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC13164: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC13168: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13168: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13168u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -47845,6 +58900,9 @@ void func_00003678(CPUState* cpu) { } } label_BFC13178: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13178: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -47856,6 +58914,9 @@ label_BFC13178: cpu->gpr[31] = 0x00003688u; psx_dispatch(cpu, 0x00003060u); label_BFC13188: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13188: 14400006 bne $v0, $zero, 0xBFC131A4 */ uint32_t psx_brA_BFC13188 = cpu->gpr[2]; uint32_t psx_brB_BFC13188 = cpu->gpr[0]; @@ -47864,6 +58925,9 @@ label_BFC13188: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC13188) goto label_BFC131A4; label_BFC13190: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC13190: 240E0018 addiu $t6, $zero, 24 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (24)); @@ -47878,6 +58942,9 @@ label_BFC13190: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC1319C) goto label_BFC13234; label_BFC131A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC131A4: 8FA40038 lw $a0, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC131A4u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -47891,6 +58958,9 @@ label_BFC131A4: cpu->gpr[31] = 0x000036B8u; psx_dispatch(cpu, 0x000031E8u); label_BFC131B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC131B8: 8FA30034 lw $v1, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC131B8u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -47903,6 +58973,9 @@ label_BFC131B8: cpu->gpr[5] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC131C0) goto label_BFC131E0; label_BFC131C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC131C8: AC600000 sw $zero, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC131C8u); return; } g_debug_last_store_pc = 0xBFC131C8u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -47919,6 +58992,9 @@ label_BFC131C8: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC131D8) goto label_BFC13234; label_BFC131E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC131E0: 8FB80024 lw $t8, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC131E0u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -47946,6 +59022,9 @@ label_BFC131E0: cpu->gpr[31] = 0x00003710u; psx_dispatch(cpu, cpu->gpr[9]); label_BFC13210: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC13210: 8FA30034 lw $v1, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13210u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -47956,6 +59035,9 @@ label_BFC13210: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13218u); return; } g_debug_last_store_pc = 0xBFC13218u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC13214) goto label_BFC13230; label_BFC1321C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1321C: 8C6A0018 lw $t2, 24($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1321Cu); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -47970,10 +59052,16 @@ label_BFC1321C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-31168)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1322Cu); return; } g_debug_last_store_pc = 0xBFC1322Cu; cpu->write_word(psx_addr, cpu->gpr[10]); } if (psx_taken_BFC13228) goto label_BFC13234; label_BFC13230: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC13230: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC13234: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13234: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13234u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -47998,6 +59086,9 @@ void func_00003744(CPUState* cpu) { } } label_BFC13244: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13244: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -48009,6 +59100,9 @@ label_BFC13244: cpu->gpr[31] = 0x00003754u; psx_dispatch(cpu, 0x00003060u); label_BFC13254: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13254: 14400006 bne $v0, $zero, 0xBFC13270 */ uint32_t psx_brA_BFC13254 = cpu->gpr[2]; uint32_t psx_brB_BFC13254 = cpu->gpr[0]; @@ -48017,6 +59111,9 @@ label_BFC13254: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC13254) goto label_BFC13270; label_BFC1325C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1325C: 240E0018 addiu $t6, $zero, 24 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (24)); @@ -48031,6 +59128,9 @@ label_BFC1325C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC13268) goto label_BFC13300; label_BFC13270: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC13270: 8FA40038 lw $a0, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13270u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -48044,6 +59144,9 @@ label_BFC13270: cpu->gpr[31] = 0x00003784u; psx_dispatch(cpu, 0x000031E8u); label_BFC13284: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13284: 8FA30034 lw $v1, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13284u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -48056,6 +59159,9 @@ label_BFC13284: cpu->gpr[5] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC1328C) goto label_BFC132AC; label_BFC13294: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC13294: AC600000 sw $zero, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13294u); return; } g_debug_last_store_pc = 0xBFC13294u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -48072,6 +59178,9 @@ label_BFC13294: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC132A4) goto label_BFC13300; label_BFC132AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC132AC: 8FB80024 lw $t8, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC132ACu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -48099,6 +59208,9 @@ label_BFC132AC: cpu->gpr[31] = 0x000037DCu; psx_dispatch(cpu, cpu->gpr[9]); label_BFC132DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC132DC: 8FA30034 lw $v1, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC132DCu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -48109,6 +59221,9 @@ label_BFC132DC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC132E4u); return; } g_debug_last_store_pc = 0xBFC132E4u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC132E0) goto label_BFC132FC; label_BFC132E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC132E8: 8C6A0018 lw $t2, 24($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC132E8u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -48123,10 +59238,16 @@ label_BFC132E8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-31168)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC132F8u); return; } g_debug_last_store_pc = 0xBFC132F8u; cpu->write_word(psx_addr, cpu->gpr[10]); } if (psx_taken_BFC132F4) goto label_BFC13300; label_BFC132FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC132FC: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC13300: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13300: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13300u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -48151,6 +59272,9 @@ void func_00003810(CPUState* cpu) { } } label_BFC13310: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13310: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -48162,6 +59286,9 @@ label_BFC13310: cpu->gpr[31] = 0x00003820u; psx_dispatch(cpu, 0x00003060u); label_BFC13320: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13320: 14400006 bne $v0, $zero, 0xBFC1333C */ uint32_t psx_brA_BFC13320 = cpu->gpr[2]; uint32_t psx_brB_BFC13320 = cpu->gpr[0]; @@ -48170,6 +59297,9 @@ label_BFC13320: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC13320) goto label_BFC1333C; label_BFC13328: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC13328: 240E0018 addiu $t6, $zero, 24 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (24)); @@ -48184,6 +59314,9 @@ label_BFC13328: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC13334) goto label_BFC133C8; label_BFC1333C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1333C: 8FA40038 lw $a0, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1333Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -48197,6 +59330,9 @@ label_BFC1333C: cpu->gpr[31] = 0x00003850u; psx_dispatch(cpu, 0x000031E8u); label_BFC13350: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13350: 8FA30034 lw $v1, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13350u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -48209,6 +59345,9 @@ label_BFC13350: cpu->gpr[5] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC13358) goto label_BFC13374; label_BFC13360: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC13360: 240F0013 addiu $t7, $zero, 19 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (19)); @@ -48223,6 +59362,9 @@ label_BFC13360: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC1336C) goto label_BFC133C8; label_BFC13374: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC13374: 8FB80024 lw $t8, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13374u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -48250,6 +59392,9 @@ label_BFC13374: cpu->gpr[31] = 0x000038A4u; psx_dispatch(cpu, cpu->gpr[9]); label_BFC133A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC133A4: 8FA30034 lw $v1, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC133A4u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -48260,6 +59405,9 @@ label_BFC133A4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC133ACu); return; } g_debug_last_store_pc = 0xBFC133ACu; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC133A8) goto label_BFC133C4; label_BFC133B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC133B0: 8C6A0018 lw $t2, 24($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC133B0u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -48274,10 +59422,16 @@ label_BFC133B0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-31168)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC133C0u); return; } g_debug_last_store_pc = 0xBFC133C0u; cpu->write_word(psx_addr, cpu->gpr[10]); } if (psx_taken_BFC133BC) goto label_BFC133C8; label_BFC133C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC133C4: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC133C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC133C8: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC133C8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -48302,6 +59456,9 @@ void func_000038D8(CPUState* cpu) { } } label_BFC133D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC133D8: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -48313,6 +59470,9 @@ label_BFC133D8: cpu->gpr[31] = 0x000038E8u; psx_dispatch(cpu, 0x00003060u); label_BFC133E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC133E8: 14400006 bne $v0, $zero, 0xBFC13404 */ uint32_t psx_brA_BFC133E8 = cpu->gpr[2]; uint32_t psx_brB_BFC133E8 = cpu->gpr[0]; @@ -48321,6 +59481,9 @@ label_BFC133E8: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC133E8) goto label_BFC13404; label_BFC133F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC133F0: 240E0018 addiu $t6, $zero, 24 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (24)); @@ -48335,6 +59498,9 @@ label_BFC133F0: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC133FC) goto label_BFC13494; label_BFC13404: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC13404: 8FA40038 lw $a0, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13404u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -48348,6 +59514,9 @@ label_BFC13404: cpu->gpr[31] = 0x00003918u; psx_dispatch(cpu, 0x000031E8u); label_BFC13418: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13418: 8FA30034 lw $v1, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13418u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -48360,6 +59529,9 @@ label_BFC13418: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13424u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } if (psx_taken_BFC13420) goto label_BFC13444; label_BFC13428: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC13428: 240F0013 addiu $t7, $zero, 19 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (19)); @@ -48376,10 +59548,16 @@ label_BFC13428: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC13438) goto label_BFC13494; label_BFC13440: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC13440: 8FB80024 lw $t8, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13440u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } label_BFC13444: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC13444: 00602021 addu $a0, $v1, $zero */ cpu->gpr[4] = cpu->gpr[3] + cpu->gpr[0]; @@ -48405,6 +59583,9 @@ label_BFC13444: cpu->gpr[31] = 0x00003970u; psx_dispatch(cpu, cpu->gpr[9]); label_BFC13470: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC13470: 8FA30034 lw $v1, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13470u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -48415,6 +59596,9 @@ label_BFC13470: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13478u); return; } g_debug_last_store_pc = 0xBFC13478u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC13474) goto label_BFC13490; label_BFC1347C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1347C: 8C6A0018 lw $t2, 24($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1347Cu); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -48429,10 +59613,16 @@ label_BFC1347C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-31168)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1348Cu); return; } g_debug_last_store_pc = 0xBFC1348Cu; cpu->write_word(psx_addr, cpu->gpr[10]); } if (psx_taken_BFC13488) goto label_BFC13494; label_BFC13490: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC13490: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC13494: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13494: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13494u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -48457,6 +59647,9 @@ void func_000039A4(CPUState* cpu) { } } label_BFC134A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC134A4: 3C030000 lui $v1, 0x0 */ cpu->gpr[3] = 0x00000000u; @@ -48475,6 +59668,9 @@ label_BFC134A4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC134BCu); return; } g_debug_last_store_pc = 0xBFC134BCu; cpu->write_word(psx_addr, cpu->gpr[5]); } if (psx_taken_BFC134B8) goto label_BFC134EC; label_BFC134C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC134C0: 0C000C18 jal 0xB0003060 */ /* 0xBFC134C4: 00000000 nop */ @@ -48482,6 +59678,9 @@ label_BFC134C0: cpu->gpr[31] = 0x000039C8u; psx_dispatch(cpu, 0x00003060u); label_BFC134C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC134C8: 00401821 addu $v1, $v0, $zero */ cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; @@ -48494,6 +59693,9 @@ label_BFC134C8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (29824)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC134D4u); return; } g_debug_last_store_pc = 0xBFC134D4u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC134D0) goto label_BFC134EC; label_BFC134D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC134D8: 240E0018 addiu $t6, $zero, 24 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (24)); @@ -48508,6 +59710,9 @@ label_BFC134D8: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC134E4) goto label_BFC13560; label_BFC134EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC134EC: 8FA40030 lw $a0, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC134ECu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -48519,6 +59724,9 @@ label_BFC134EC: cpu->gpr[31] = 0x000039FCu; psx_dispatch(cpu, 0x000031E8u); label_BFC134FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC134FC: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -48529,6 +59737,9 @@ label_BFC134FC: cpu->gpr[5] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC13500) goto label_BFC13528; label_BFC13508: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC13508: 3C030000 lui $v1, 0x0 */ cpu->gpr[3] = 0x00000000u; @@ -48549,6 +59760,9 @@ label_BFC13508: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13524u); return; } g_debug_last_store_pc = 0xBFC13524u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC13520) goto label_BFC13560; label_BFC13528: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC13528: 3C030000 lui $v1, 0x0 */ cpu->gpr[3] = 0x00000000u; @@ -48580,6 +59794,9 @@ label_BFC13528: cpu->gpr[31] = 0x00003A60u; psx_dispatch(cpu, cpu->gpr[9]); label_BFC13560: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13560: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13560u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -48602,6 +59819,9 @@ void func_00003A70(CPUState* cpu) { } } label_BFC13570: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC13570: 00802821 addu $a1, $a0, $zero */ cpu->gpr[5] = cpu->gpr[4] + cpu->gpr[0]; @@ -48627,6 +59847,9 @@ label_BFC13570: cpu->gpr[31] = 0x00003A9Cu; psx_dispatch(cpu, cpu->gpr[15]); label_BFC1359C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1359C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1359Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -48653,6 +59876,9 @@ void func_00003AAC(CPUState* cpu) { } } label_BFC135AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC135AC: 27BDFFB0 addiu $sp, $sp, -80 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-80)); @@ -48668,6 +59894,9 @@ label_BFC135AC: cpu->gpr[31] = 0x00003AC4u; psx_dispatch(cpu, 0x00003060u); label_BFC135C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC135C4: 14400006 bne $v0, $zero, 0xBFC135E0 */ uint32_t psx_brA_BFC135C4 = cpu->gpr[2]; uint32_t psx_brB_BFC135C4 = cpu->gpr[0]; @@ -48676,6 +59905,9 @@ label_BFC135C4: cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC135C4) goto label_BFC135E0; label_BFC135CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC135CC: 240E0018 addiu $t6, $zero, 24 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (24)); @@ -48690,6 +59922,9 @@ label_BFC135CC: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC135D8) goto label_BFC1371C; label_BFC135E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC135E0: 0C000C18 jal 0xB0003060 */ /* 0xBFC135E4: 00000000 nop */ @@ -48697,6 +59932,9 @@ label_BFC135E0: cpu->gpr[31] = 0x00003AE8u; psx_dispatch(cpu, 0x00003060u); label_BFC135E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC135E8: 14400007 bne $v0, $zero, 0xBFC13608 */ uint32_t psx_brA_BFC135E8 = cpu->gpr[2]; uint32_t psx_brB_BFC135E8 = cpu->gpr[0]; @@ -48705,6 +59943,9 @@ label_BFC135E8: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC135E8) goto label_BFC13608; label_BFC135F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC135F0: 240F0018 addiu $t7, $zero, 24 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (24)); @@ -48721,6 +59962,9 @@ label_BFC135F0: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC13600) goto label_BFC1371C; label_BFC13608: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC13608: 8FA40050 lw $a0, 80($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (80)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13608u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -48734,6 +59978,9 @@ label_BFC13608: cpu->gpr[31] = 0x00003B1Cu; psx_dispatch(cpu, 0x000031E8u); label_BFC1361C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1361C: 8FA30048 lw $v1, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1361Cu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -48746,6 +59993,9 @@ label_BFC1361C: cpu->gpr[8] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC13624) goto label_BFC1363C; label_BFC1362C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1362C: 24180013 addiu $t8, $zero, 19 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (19)); @@ -48758,6 +60008,9 @@ label_BFC1362C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-31168)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13638u); return; } g_debug_last_store_pc = 0xBFC13638u; cpu->write_word(psx_addr, cpu->gpr[24]); } if (psx_taken_BFC13634) goto label_BFC13710; label_BFC1363C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1363C: 8FA40054 lw $a0, 84($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (84)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1363Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -48773,6 +60026,9 @@ label_BFC1363C: cpu->gpr[31] = 0x00003B54u; psx_dispatch(cpu, 0x000031E8u); label_BFC13654: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC13654: 8FB9003C lw $t9, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13654u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -48789,6 +60045,9 @@ label_BFC13654: cpu->gpr[7] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC13664) goto label_BFC1367C; label_BFC1366C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1366C: 240A0012 addiu $t2, $zero, 18 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (18)); @@ -48801,6 +60060,9 @@ label_BFC1366C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-31168)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13678u); return; } g_debug_last_store_pc = 0xBFC13678u; cpu->write_word(psx_addr, cpu->gpr[10]); } if (psx_taken_BFC13674) goto label_BFC13710; label_BFC1367C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1367C: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -48811,6 +60073,9 @@ label_BFC1367C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13684u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } if (psx_taken_BFC13680) goto label_BFC1369C; label_BFC13688: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13688: 240B0013 addiu $t3, $zero, 19 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (19)); @@ -48823,10 +60088,16 @@ label_BFC13688: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-31168)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13694u); return; } g_debug_last_store_pc = 0xBFC13694u; cpu->write_word(psx_addr, cpu->gpr[11]); } if (psx_taken_BFC13690) goto label_BFC13710; label_BFC13698: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC13698: 8FAC0034 lw $t4, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13698u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } label_BFC1369C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC1369C: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -48864,6 +60135,9 @@ label_BFC1369C: cpu->gpr[31] = 0x00003BE0u; psx_dispatch(cpu, cpu->gpr[25]); label_BFC136E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC136E0: 8FA30048 lw $v1, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC136E0u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -48878,6 +60152,9 @@ label_BFC136E0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC136F0u); return; } g_debug_last_store_pc = 0xBFC136F0u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC136EC) goto label_BFC13708; label_BFC136F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC136F4: 8E090018 lw $t1, 24($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC136F4u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -48892,6 +60169,9 @@ label_BFC136F4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-31168)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13704u); return; } g_debug_last_store_pc = 0xBFC13704u; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC13700) goto label_BFC1371C; label_BFC13708: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13708: 10000004 beq $zero, $zero, 0xBFC1371C */ uint32_t psx_brA_BFC13708 = cpu->gpr[0]; uint32_t psx_brB_BFC13708 = cpu->gpr[0]; @@ -48900,6 +60180,9 @@ label_BFC13708: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC13708) goto label_BFC1371C; label_BFC13710: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC13710: AC600000 sw $zero, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13710u); return; } g_debug_last_store_pc = 0xBFC13710u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -48908,6 +60191,9 @@ label_BFC13710: /* 0xBFC13718: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC1371C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1371C: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1371Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -48922,6 +60208,9 @@ label_BFC1371C: void func_00003C2C(CPUState* cpu) { debug_server_log_call_entry(0x00003C2Cu); label_BFC1372C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC1372C: 3C0E0000 lui $t6, 0x0 */ cpu->gpr[14] = 0x00000000u; @@ -48972,6 +60261,9 @@ void func_00003C6C(CPUState* cpu) { } } label_BFC1376C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1376C: 8C790000 lw $t9, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1376Cu); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -48984,6 +60276,9 @@ label_BFC1376C: /* nop */ if (psx_taken_BFC13774) { cpu->pc = 0xBFC137BCu; return; } label_BFC1377C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1377C: 00602021 addu $a0, $v1, $zero */ cpu->gpr[4] = cpu->gpr[3] + cpu->gpr[0]; @@ -48997,6 +60292,9 @@ label_BFC1377C: cpu->gpr[31] = 0x00003C90u; psx_dispatch(cpu, 0x00006B20u); label_BFC13790: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC13790: 8FA3001C lw $v1, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13790u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -49006,6 +60304,9 @@ label_BFC13790: cpu->gpr[31] = 0x00003C9Cu; psx_dispatch(cpu, 0x00006A70u); label_BFC1379C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1379C: 8FA3001C lw $v1, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1379Cu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -49026,6 +60327,9 @@ label_BFC1379C: void func_00003CB4(CPUState* cpu) { debug_server_log_call_entry(0x00003CB4u); label_BFC137B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC137B4: 10000006 beq $zero, $zero, 0xBFC137D0 */ uint32_t psx_brA_BFC137B4 = cpu->gpr[0]; uint32_t psx_brB_BFC137B4 = cpu->gpr[0]; @@ -49047,6 +60351,9 @@ void func_00003CBC(CPUState* cpu) { } } label_BFC137BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC137BC: 24630050 addiu $v1, $v1, 80 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (80)); @@ -49059,6 +60366,9 @@ label_BFC137BC: /* nop */ if (psx_taken_BFC137C4) { cpu->pc = 0xBFC1376Cu; return; } label_BFC137CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC137CC: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; @@ -49068,6 +60378,9 @@ label_BFC137CC: void func_00003CD0(CPUState* cpu) { debug_server_log_call_entry(0x00003CD0u); label_BFC137D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC137D0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC137D0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -49091,6 +60404,9 @@ void func_00003CE0(CPUState* cpu) { } } label_BFC137E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC137E0: 3C0E0000 lui $t6, 0x0 */ cpu->gpr[14] = 0x00000000u; @@ -49133,6 +60449,9 @@ label_BFC137E0: cpu->gpr[16] = cpu->gpr[17] + cpu->gpr[0]; if (psx_taken_BFC13824) goto label_BFC13890; label_BFC1382C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1382C: 8E050000 lw $a1, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1382Cu); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -49145,6 +60464,9 @@ label_BFC1382C: /* nop */ if (psx_taken_BFC13834) goto label_BFC13868; label_BFC1383C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1383C: 0C001AC4 jal 0xB0006B10 */ /* 0xBFC13840: 02402021 addu $a0, $s2, $zero */ @@ -49152,6 +60474,9 @@ label_BFC1383C: cpu->gpr[31] = 0x00003D44u; psx_dispatch(cpu, 0x00006B10u); label_BFC13844: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13844: 14400008 bne $v0, $zero, 0xBFC13868 */ uint32_t psx_brA_BFC13844 = cpu->gpr[2]; uint32_t psx_brB_BFC13844 = cpu->gpr[0]; @@ -49160,6 +60485,9 @@ label_BFC13844: /* nop */ if (psx_taken_BFC13844) goto label_BFC13868; label_BFC1384C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1384C: 8E080048 lw $t0, 72($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1384Cu); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -49171,6 +60499,9 @@ label_BFC1384C: cpu->gpr[31] = 0x00003D5Cu; psx_dispatch(cpu, cpu->gpr[8]); label_BFC1385C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1385C: AE000000 sw $zero, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1385Cu); return; } g_debug_last_store_pc = 0xBFC1385Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -49181,6 +60512,9 @@ label_BFC1385C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC13860) goto label_BFC13894; label_BFC13868: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC13868: 3C090000 lui $t1, 0x0 */ cpu->gpr[9] = 0x00000000u; @@ -49205,10 +60539,16 @@ label_BFC13868: /* nop */ if (psx_taken_BFC13888) goto label_BFC1382C; label_BFC13890: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC13890: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC13894: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC13894: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13894u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -49235,6 +60575,9 @@ void func_00003DAC(CPUState* cpu) { } } label_BFC138AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC138AC: 3C0E0000 lui $t6, 0x0 */ cpu->gpr[14] = 0x00000000u; @@ -49271,6 +60614,9 @@ label_BFC138AC: cpu->gpr[16] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC138E4) goto label_BFC1394C; label_BFC138EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC138EC: AFB10020 sw $s1, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC138ECu); return; } g_debug_last_store_pc = 0xBFC138ECu; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -49279,6 +60625,9 @@ label_BFC138EC: /* 0xBFC138F4: 26316EC8 addiu $s1, $s1, 28360 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (28360)); label_BFC138F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC138F8: 8E050000 lw $a1, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC138F8u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -49291,6 +60640,9 @@ label_BFC138F8: /* nop */ if (psx_taken_BFC13900) goto label_BFC13934; label_BFC13908: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC13908: 8E06000C lw $a2, 12($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (12)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13908u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -49300,6 +60652,9 @@ label_BFC13908: cpu->gpr[31] = 0x00003E14u; psx_dispatch(cpu, 0x00006AE0u); label_BFC13914: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC13914: 3C190000 lui $t9, 0x0 */ cpu->gpr[25] = 0x00000000u; @@ -49318,6 +60673,9 @@ label_BFC13914: /* 0xBFC13930: 01091021 addu $v0, $t0, $t1 */ cpu->gpr[2] = cpu->gpr[8] + cpu->gpr[9]; label_BFC13934: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13934: 26100050 addiu $s0, $s0, 80 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (80)); @@ -49330,12 +60688,18 @@ label_BFC13934: /* nop */ if (psx_taken_BFC1393C) goto label_BFC138F8; label_BFC13944: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13944: 8FB10020 lw $s1, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13944u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } /* 0xBFC13948: 00000000 nop */ /* nop */ label_BFC1394C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1394C: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1394Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -49350,6 +60714,9 @@ label_BFC1394C: void func_00003E5C(CPUState* cpu) { debug_server_log_call_entry(0x00003E5Cu); label_BFC1395C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1395C: 3C010001 lui $at, 0x1 */ cpu->gpr[1] = 0x00010000u; @@ -49362,6 +60729,9 @@ label_BFC1395C: void func_00003E68(CPUState* cpu) { debug_server_log_call_entry(0x00003E68u); label_BFC13968: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13968: 3C020001 lui $v0, 0x1 */ cpu->gpr[2] = 0x00010000u; @@ -49384,6 +60754,9 @@ void func_00003E80(CPUState* cpu) { } } label_BFC13980: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC13980: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -49406,6 +60779,9 @@ label_BFC13980: /* 0xBFC139A4: 02408021 addu $s0, $s2, $zero */ cpu->gpr[16] = cpu->gpr[18] + cpu->gpr[0]; label_BFC139A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC139A8: 8E0E0000 lw $t6, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC139A8u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -49420,6 +60796,9 @@ label_BFC139A8: /* nop */ if (psx_taken_BFC139B4) goto label_BFC139DC; label_BFC139BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC139BC: 02122023 subu $a0, $s0, $s2 */ cpu->gpr[4] = cpu->gpr[16] - cpu->gpr[18]; @@ -49439,6 +60818,9 @@ label_BFC139BC: cpu->gpr[31] = 0x00003EDCu; psx_dispatch(cpu, 0x00002EFCu); label_BFC139DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC139DC: 2610002C addiu $s0, $s0, 44 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (44)); @@ -49451,6 +60833,9 @@ label_BFC139DC: /* nop */ if (psx_taken_BFC139E4) goto label_BFC139A8; label_BFC139EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC139EC: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC139ECu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -49478,6 +60863,9 @@ void func_00003F04(CPUState* cpu) { } } label_BFC13A04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC13A04: 00053600 sll $a2, $a1, 24 */ cpu->gpr[6] = cpu->gpr[5] << 24u; @@ -49494,6 +60882,9 @@ label_BFC13A04: cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC13A14) goto label_BFC13AC0; label_BFC13A1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC13A1C: 8C620000 lw $v0, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13A1Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -49508,6 +60899,9 @@ label_BFC13A1C: /* nop */ if (psx_taken_BFC13A28) goto label_BFC13AC0; label_BFC13A30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13A30: 30CF00FF andi $t7, $a2, 0xFF */ cpu->gpr[15] = cpu->gpr[6] & 0xFFu; @@ -49520,6 +60914,9 @@ label_BFC13A30: /* nop */ if (psx_taken_BFC13A38) goto label_BFC13A68; label_BFC13A40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC13A40: 30580004 andi $t8, $v0, 0x4 */ cpu->gpr[24] = cpu->gpr[2] & 0x4u; @@ -49530,6 +60927,9 @@ label_BFC13A40: cpu->gpr[2] = cpu->gpr[6] & 0x7Fu; if (psx_taken_BFC13A44) goto label_BFC13A6C; label_BFC13A4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13A4C: AFA30018 sw $v1, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13A4Cu); return; } g_debug_last_store_pc = 0xBFC13A4Cu; cpu->write_word(psx_addr, cpu->gpr[3]); } @@ -49541,6 +60941,9 @@ label_BFC13A4C: cpu->gpr[31] = 0x00003F5Cu; psx_dispatch(cpu, 0x00006AF0u); label_BFC13A5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC13A5C: 8FA30018 lw $v1, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13A5Cu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -49549,10 +60952,16 @@ label_BFC13A5C: /* 0xBFC13A64: 00000000 nop */ /* nop */ label_BFC13A68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC13A68: 30C2007F andi $v0, $a2, 0x7F */ cpu->gpr[2] = cpu->gpr[6] & 0x7Fu; label_BFC13A6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC13A6C: 24010013 addiu $at, $zero, 19 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (19)); @@ -49563,6 +60972,9 @@ label_BFC13A6C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (17)); if (psx_taken_BFC13A70) goto label_BFC13AA4; label_BFC13A78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC13A78: 3C190001 lui $t9, 0x1 */ cpu->gpr[25] = 0x00010000u; @@ -49577,6 +60989,9 @@ label_BFC13A78: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13A88u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC13A84) goto label_BFC13AE4; label_BFC13A8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC13A8C: 8C680000 lw $t0, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13A8Cu); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -49591,10 +61006,16 @@ label_BFC13A8C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13A9Cu); return; } g_debug_last_store_pc = 0xBFC13A9Cu; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC13A98) goto label_BFC13AE0; label_BFC13AA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC13AA0: 24010011 addiu $at, $zero, 17 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (17)); label_BFC13AA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13AA4: 14410006 bne $v0, $at, 0xBFC13AC0 */ uint32_t psx_brA_BFC13AA4 = cpu->gpr[2]; uint32_t psx_brB_BFC13AA4 = cpu->gpr[1]; @@ -49603,6 +61024,9 @@ label_BFC13AA4: /* nop */ if (psx_taken_BFC13AA4) goto label_BFC13AC0; label_BFC13AAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC13AAC: 8C6A0000 lw $t2, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13AACu); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -49617,6 +61041,9 @@ label_BFC13AAC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13ABCu); return; } g_debug_last_store_pc = 0xBFC13ABCu; cpu->write_word(psx_addr, cpu->gpr[11]); } if (psx_taken_BFC13AB8) goto label_BFC13AE0; label_BFC13AC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC13AC0: 8C6C0000 lw $t4, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13AC0u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -49631,6 +61058,9 @@ label_BFC13AC0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13AD0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC13ACC) goto label_BFC13AE4; label_BFC13AD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC13AD4: 00C02021 addu $a0, $a2, $zero */ cpu->gpr[4] = cpu->gpr[6] + cpu->gpr[0]; @@ -49640,10 +61070,16 @@ label_BFC13AD4: cpu->gpr[31] = 0x00003FE0u; psx_dispatch(cpu, 0x0000352Cu); label_BFC13AE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC13AE0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13AE0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC13AE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC13AE4: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -49664,6 +61100,9 @@ void func_00003FF0(CPUState* cpu) { } } label_BFC13AF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC13AF0: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -49679,6 +61118,9 @@ label_BFC13AF0: cpu->gpr[31] = 0x00004008u; psx_dispatch(cpu, 0x00002B28u); label_BFC13B08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC13B08: 83A2001C lb $v0, 28($sp) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (28))); @@ -49707,6 +61149,9 @@ void func_00004024(CPUState* cpu) { } } label_BFC13B24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC13B24: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -49720,6 +61165,9 @@ label_BFC13B24: cpu->gpr[31] = 0x00004038u; psx_dispatch(cpu, 0x00002B28u); label_BFC13B38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13B38: 1C400004 bgtz $v0, 0xBFC13B4C */ uint32_t psx_brA_BFC13B38 = cpu->gpr[2]; @@ -49728,6 +61176,9 @@ label_BFC13B38: cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (36))); if (psx_taken_BFC13B38) goto label_BFC13B4C; label_BFC13B40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13B40: 10000006 beq $zero, $zero, 0xBFC13B5C */ uint32_t psx_brA_BFC13B40 = cpu->gpr[0]; uint32_t psx_brB_BFC13B40 = cpu->gpr[0]; @@ -49736,10 +61187,16 @@ label_BFC13B40: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC13B40) goto label_BFC13B5C; label_BFC13B48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC13B48: 83A20024 lb $v0, 36($sp) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (36))); label_BFC13B4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13B4C: 00000000 nop */ /* nop */ @@ -49750,6 +61207,9 @@ label_BFC13B4C: /* 0xBFC13B58: 00021603 sra $v0, $v0, 24 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] >> 24u); label_BFC13B5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13B5C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13B5Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -49774,6 +61234,9 @@ void func_0000406C(CPUState* cpu) { } } label_BFC13B6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC13B6C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -49790,6 +61253,9 @@ label_BFC13B6C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13B80u); return; } g_debug_last_store_pc = 0xBFC13B80u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC13B7C) goto label_BFC13BA4; label_BFC13B84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC13B84: 2401000A addiu $at, $zero, 10 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); @@ -49800,6 +61266,9 @@ label_BFC13B84: cpu->gpr[25] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (24))); if (psx_taken_BFC13B88) goto label_BFC13BE4; label_BFC13B90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13B90: 0C00101B jal 0xB000406C */ /* 0xBFC13B94: 2404000D addiu $a0, $zero, 13 */ @@ -49807,6 +61276,9 @@ label_BFC13B90: cpu->gpr[31] = 0x00004098u; psx_dispatch(cpu, 0x0000406Cu); label_BFC13B98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC13B98: 3C010001 lui $at, 0x1 */ cpu->gpr[1] = 0x00010000u; @@ -49817,6 +61289,9 @@ label_BFC13B98: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-30448)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13BA0u); return; } g_debug_last_store_pc = 0xBFC13BA0u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC13B9C) goto label_BFC13C14; label_BFC13BA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13BA4: 0C00101B jal 0xB000406C */ /* 0xBFC13BA8: 24040020 addiu $a0, $zero, 32 */ @@ -49824,6 +61299,9 @@ label_BFC13BA4: cpu->gpr[31] = 0x000040ACu; psx_dispatch(cpu, 0x0000406Cu); label_BFC13BAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC13BAC: 3C0F0001 lui $t7, 0x1 */ cpu->gpr[15] = 0x00010000u; @@ -49840,6 +61318,9 @@ label_BFC13BAC: cpu->gpr[24] = cpu->gpr[15] & 0x7u; if (psx_taken_BFC13BBC) goto label_BFC13BD0; label_BFC13BC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13BC4: 13000002 beq $t8, $zero, 0xBFC13BD0 */ uint32_t psx_brA_BFC13BC4 = cpu->gpr[24]; uint32_t psx_brB_BFC13BC4 = cpu->gpr[0]; @@ -49848,10 +61329,16 @@ label_BFC13BC4: /* nop */ if (psx_taken_BFC13BC4) goto label_BFC13BD0; label_BFC13BCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC13BCC: 2718FFF8 addiu $t8, $t8, -8 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[24] + (-8)); label_BFC13BD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13BD0: 1700FFF4 bne $t8, $zero, 0xBFC13BA4 */ uint32_t psx_brA_BFC13BD0 = cpu->gpr[24]; uint32_t psx_brB_BFC13BD0 = cpu->gpr[0]; @@ -49860,6 +61347,9 @@ label_BFC13BD0: /* nop */ if (psx_taken_BFC13BD0) goto label_BFC13BA4; label_BFC13BD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13BD8: 10000013 beq $zero, $zero, 0xBFC13C28 */ uint32_t psx_brA_BFC13BD8 = cpu->gpr[0]; uint32_t psx_brB_BFC13BD8 = cpu->gpr[0]; @@ -49868,10 +61358,16 @@ label_BFC13BD8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13BDCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC13BD8) goto label_BFC13C28; label_BFC13BE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC13BE0: 93B90018 lbu $t9, 24($sp) */ cpu->gpr[25] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (24))); label_BFC13BE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC13BE4: 3C080000 lui $t0, 0x0 */ cpu->gpr[8] = 0x00000000u; @@ -49890,6 +61386,9 @@ label_BFC13BE4: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC13BF8) goto label_BFC13C18; label_BFC13C00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC13C00: 3C0A0001 lui $t2, 0x1 */ cpu->gpr[10] = 0x00010000u; @@ -49902,10 +61401,16 @@ label_BFC13C00: /* 0xBFC13C10: AC2B8910 sw $t3, -30448($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-30448)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13C10u); return; } g_debug_last_store_pc = 0xBFC13C10u; cpu->write_word(psx_addr, cpu->gpr[11]); } label_BFC13C14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC13C14: 24040001 addiu $a0, $zero, 1 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC13C18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC13C18: 27A50018 addiu $a1, $sp, 24 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -49915,10 +61420,16 @@ label_BFC13C18: cpu->gpr[31] = 0x00004124u; psx_dispatch(cpu, 0x00002C94u); label_BFC13C24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC13C24: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13C24u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC13C28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC13C28: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -49939,6 +61450,9 @@ void func_00004134(CPUState* cpu) { } } label_BFC13C34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC13C34: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -49958,6 +61472,9 @@ label_BFC13C34: cpu->gpr[31] = 0x00004154u; psx_dispatch(cpu, 0x00002C94u); label_BFC13C54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13C54: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13C54u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -49989,6 +61506,9 @@ void func_00004164(CPUState* cpu) { } } label_BFC13C64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC13C64: 27BDFFC0 addiu $sp, $sp, -64 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-64)); @@ -50029,6 +61549,9 @@ label_BFC13C64: /* 0xBFC13CAC: 241E007F addiu $fp, $zero, 127 */ cpu->gpr[30] = (uint32_t)((int32_t)cpu->gpr[0] + (127)); label_BFC13CB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13CB0: 0C000FFC jal 0xB0003FF0 */ /* 0xBFC13CB4: 00000000 nop */ @@ -50036,6 +61559,9 @@ label_BFC13CB0: cpu->gpr[31] = 0x000041B8u; psx_dispatch(cpu, 0x00003FF0u); label_BFC13CB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC13CB8: 00021E00 sll $v1, $v0, 24 */ cpu->gpr[3] = cpu->gpr[2] << 24u; @@ -50050,6 +61576,9 @@ label_BFC13CB8: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] >> 24u); if (psx_taken_BFC13CC4) goto label_BFC13D4C; label_BFC13CCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13CCC: 1074002B beq $v1, $s4, 0xBFC13D7C */ uint32_t psx_brA_BFC13CCC = cpu->gpr[3]; uint32_t psx_brB_BFC13CCC = cpu->gpr[20]; @@ -50058,6 +61587,9 @@ label_BFC13CCC: /* nop */ if (psx_taken_BFC13CCC) goto label_BFC13D7C; label_BFC13CD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13CD4: 10750018 beq $v1, $s5, 0xBFC13D38 */ uint32_t psx_brA_BFC13CD4 = cpu->gpr[3]; uint32_t psx_brB_BFC13CD4 = cpu->gpr[21]; @@ -50066,6 +61598,9 @@ label_BFC13CD4: /* nop */ if (psx_taken_BFC13CD4) goto label_BFC13D38; label_BFC13CDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13CDC: 10760016 beq $v1, $s6, 0xBFC13D38 */ uint32_t psx_brA_BFC13CDC = cpu->gpr[3]; uint32_t psx_brB_BFC13CDC = cpu->gpr[22]; @@ -50074,6 +61609,9 @@ label_BFC13CDC: /* nop */ if (psx_taken_BFC13CDC) goto label_BFC13D38; label_BFC13CE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13CE4: 10770005 beq $v1, $s7, 0xBFC13CFC */ uint32_t psx_brA_BFC13CE4 = cpu->gpr[3]; uint32_t psx_brB_BFC13CE4 = cpu->gpr[23]; @@ -50082,6 +61620,9 @@ label_BFC13CE4: /* nop */ if (psx_taken_BFC13CE4) goto label_BFC13CFC; label_BFC13CEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13CEC: 107E0018 beq $v1, $fp, 0xBFC13D50 */ uint32_t psx_brA_BFC13CEC = cpu->gpr[3]; uint32_t psx_brB_BFC13CEC = cpu->gpr[30]; @@ -50090,6 +61631,9 @@ label_BFC13CEC: cpu->gpr[1] = (uint32_t)(cpu->gpr[18] < cpu->gpr[17] ? 1 : 0); if (psx_taken_BFC13CEC) goto label_BFC13D50; label_BFC13CF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13CF4: 10000023 beq $zero, $zero, 0xBFC13D84 */ uint32_t psx_brA_BFC13CF4 = cpu->gpr[0]; uint32_t psx_brB_BFC13CF4 = cpu->gpr[0]; @@ -50098,6 +61642,9 @@ label_BFC13CF4: cpu->gpr[14] = cpu->gpr[4] & 0xFFu; if (psx_taken_BFC13CF4) goto label_BFC13D84; label_BFC13CFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13CFC: 0C000FFC jal 0xB0003FF0 */ /* 0xBFC13D00: 2650007D addiu $s0, $s2, 125 */ @@ -50105,6 +61652,9 @@ label_BFC13CFC: cpu->gpr[31] = 0x00004204u; psx_dispatch(cpu, 0x00003FF0u); label_BFC13D04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13D04: 00022600 sll $a0, $v0, 24 */ cpu->gpr[4] = cpu->gpr[2] << 24u; @@ -50117,6 +61667,9 @@ label_BFC13D04: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] >> 24u); if (psx_taken_BFC13D0C) goto label_BFC13D28; label_BFC13D14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC13D14: A2240000 sb $a0, 0($s1) */ g_debug_last_store_pc = 0xBFC13D14u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[17] + (0)), (uint8_t)(cpu->gpr[4] & 0xFFu)); @@ -50126,6 +61679,9 @@ label_BFC13D14: cpu->gpr[31] = 0x00004220u; psx_dispatch(cpu, 0x0000406Cu); label_BFC13D20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13D20: 1000FFE3 beq $zero, $zero, 0xBFC13CB0 */ uint32_t psx_brA_BFC13D20 = cpu->gpr[0]; uint32_t psx_brB_BFC13D20 = cpu->gpr[0]; @@ -50134,6 +61690,9 @@ label_BFC13D20: /* nop */ if (psx_taken_BFC13D20) goto label_BFC13CB0; label_BFC13D28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13D28: 0C00101B jal 0xB000406C */ /* 0xBFC13D2C: 24040007 addiu $a0, $zero, 7 */ @@ -50141,6 +61700,9 @@ label_BFC13D28: cpu->gpr[31] = 0x00004230u; psx_dispatch(cpu, 0x0000406Cu); label_BFC13D30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13D30: 1000FFDF beq $zero, $zero, 0xBFC13CB0 */ uint32_t psx_brA_BFC13D30 = cpu->gpr[0]; uint32_t psx_brB_BFC13D30 = cpu->gpr[0]; @@ -50149,6 +61711,9 @@ label_BFC13D30: /* nop */ if (psx_taken_BFC13D30) goto label_BFC13CB0; label_BFC13D38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13D38: 0C00101B jal 0xB000406C */ /* 0xBFC13D3C: 2404000A addiu $a0, $zero, 10 */ @@ -50156,6 +61721,9 @@ label_BFC13D38: cpu->gpr[31] = 0x00004240u; psx_dispatch(cpu, 0x0000406Cu); label_BFC13D40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC13D40: A2200000 sb $zero, 0($s1) */ g_debug_last_store_pc = 0xBFC13D40u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[17] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -50166,10 +61734,16 @@ label_BFC13D40: cpu->gpr[2] = cpu->gpr[18] + cpu->gpr[0]; if (psx_taken_BFC13D44) goto label_BFC13DD4; label_BFC13D4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC13D4C: 0251082B sltu $at, $s2, $s1 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[18] < cpu->gpr[17] ? 1 : 0); label_BFC13D50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13D50: 1020FFD7 beq $at, $zero, 0xBFC13CB0 */ uint32_t psx_brA_BFC13D50 = cpu->gpr[1]; uint32_t psx_brB_BFC13D50 = cpu->gpr[0]; @@ -50178,6 +61752,9 @@ label_BFC13D50: /* nop */ if (psx_taken_BFC13D50) goto label_BFC13CB0; label_BFC13D58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC13D58: 2631FFFF addiu $s1, $s1, -1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (-1)); @@ -50187,6 +61764,9 @@ label_BFC13D58: cpu->gpr[31] = 0x00004264u; psx_dispatch(cpu, 0x0000406Cu); label_BFC13D64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13D64: 0C00101B jal 0xB000406C */ /* 0xBFC13D68: 24040020 addiu $a0, $zero, 32 */ @@ -50194,6 +61774,9 @@ label_BFC13D64: cpu->gpr[31] = 0x0000426Cu; psx_dispatch(cpu, 0x0000406Cu); label_BFC13D6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13D6C: 0C00101B jal 0xB000406C */ /* 0xBFC13D70: 02602021 addu $a0, $s3, $zero */ @@ -50201,6 +61784,9 @@ label_BFC13D6C: cpu->gpr[31] = 0x00004274u; psx_dispatch(cpu, 0x0000406Cu); label_BFC13D74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13D74: 1000FFCE beq $zero, $zero, 0xBFC13CB0 */ uint32_t psx_brA_BFC13D74 = cpu->gpr[0]; uint32_t psx_brB_BFC13D74 = cpu->gpr[0]; @@ -50209,12 +61795,18 @@ label_BFC13D74: /* nop */ if (psx_taken_BFC13D74) goto label_BFC13CB0; label_BFC13D7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13D7C: 24040020 addiu $a0, $zero, 32 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (32)); /* 0xBFC13D80: 308E00FF andi $t6, $a0, 0xFF */ cpu->gpr[14] = cpu->gpr[4] & 0xFFu; label_BFC13D84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC13D84: 3C0F0000 lui $t7, 0x0 */ cpu->gpr[15] = 0x00000000u; @@ -50233,6 +61825,9 @@ label_BFC13D84: /* nop */ if (psx_taken_BFC13D98) goto label_BFC13DC4; label_BFC13DA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13DA0: 2659007D addiu $t9, $s2, 125 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[18] + (125)); @@ -50245,6 +61840,9 @@ label_BFC13DA0: /* nop */ if (psx_taken_BFC13DA8) goto label_BFC13DC4; label_BFC13DB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC13DB0: A2240000 sb $a0, 0($s1) */ g_debug_last_store_pc = 0xBFC13DB0u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[17] + (0)), (uint8_t)(cpu->gpr[4] & 0xFFu)); @@ -50254,6 +61852,9 @@ label_BFC13DB0: cpu->gpr[31] = 0x000042BCu; psx_dispatch(cpu, 0x0000406Cu); label_BFC13DBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13DBC: 1000FFBC beq $zero, $zero, 0xBFC13CB0 */ uint32_t psx_brA_BFC13DBC = cpu->gpr[0]; uint32_t psx_brB_BFC13DBC = cpu->gpr[0]; @@ -50262,6 +61863,9 @@ label_BFC13DBC: /* nop */ if (psx_taken_BFC13DBC) goto label_BFC13CB0; label_BFC13DC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13DC4: 0C00101B jal 0xB000406C */ /* 0xBFC13DC8: 24040007 addiu $a0, $zero, 7 */ @@ -50269,6 +61873,9 @@ label_BFC13DC4: cpu->gpr[31] = 0x000042CCu; psx_dispatch(cpu, 0x0000406Cu); label_BFC13DCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13DCC: 1000FFB8 beq $zero, $zero, 0xBFC13CB0 */ uint32_t psx_brA_BFC13DCC = cpu->gpr[0]; uint32_t psx_brB_BFC13DCC = cpu->gpr[0]; @@ -50277,6 +61884,9 @@ label_BFC13DCC: /* nop */ if (psx_taken_BFC13DCC) goto label_BFC13CB0; label_BFC13DD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC13DD4: 8FBF003C lw $ra, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13DD4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -50315,6 +61925,9 @@ void func_00004304(CPUState* cpu) { } } label_BFC13E04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC13E04: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -50331,12 +61944,18 @@ label_BFC13E04: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13E18u); return; } g_debug_last_store_pc = 0xBFC13E18u; cpu->write_word(psx_addr, cpu->gpr[16]); } if (psx_taken_BFC13E14) goto label_BFC13E24; label_BFC13E1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13E1C: 3C110000 lui $s1, 0x0 */ cpu->gpr[17] = 0x00000000u; /* 0xBFC13E20: 26317210 addiu $s1, $s1, 29200 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (29200)); label_BFC13E24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13E24: 82300000 lb $s0, 0($s1) */ cpu->gpr[16] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (0))); @@ -50349,6 +61968,9 @@ label_BFC13E24: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13E30u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC13E2C) goto label_BFC13E50; label_BFC13E34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13E34: 0C00101B jal 0xB000406C */ /* 0xBFC13E38: 02002021 addu $a0, $s0, $zero */ @@ -50356,6 +61978,9 @@ label_BFC13E34: cpu->gpr[31] = 0x0000433Cu; psx_dispatch(cpu, 0x0000406Cu); label_BFC13E3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13E3C: 82300000 lb $s0, 0($s1) */ cpu->gpr[16] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (0))); @@ -50368,10 +61993,16 @@ label_BFC13E3C: /* nop */ if (psx_taken_BFC13E44) goto label_BFC13E34; label_BFC13E4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC13E4C: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13E4Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC13E50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13E50: 8FB00014 lw $s0, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13E50u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -50394,6 +62025,9 @@ void func_00004360(CPUState* cpu) { } } label_BFC13E60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC13E60: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -50409,6 +62043,9 @@ label_BFC13E60: cpu->gpr[31] = 0x00004378u; psx_dispatch(cpu, 0x000027A0u); label_BFC13E78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13E78: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13E78u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -50423,6 +62060,9 @@ label_BFC13E78: void func_000043D0(CPUState* cpu) { debug_server_log_call_entry(0x000043D0u); label_BFC13ED0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC13ED0: 3C030001 lui $v1, 0x1 */ cpu->gpr[3] = 0x00010000u; @@ -50451,6 +62091,9 @@ void func_000043E8(CPUState* cpu) { } } label_BFC13EE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC13EE8: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -50482,6 +62125,9 @@ label_BFC13EE8: cpu->gpr[31] = 0x00004420u; psx_dispatch(cpu, 0x0000445Cu); label_BFC13F20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13F20: 24190002 addiu $t9, $zero, 2 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); @@ -50493,6 +62139,9 @@ label_BFC13F20: cpu->gpr[31] = 0x00004430u; psx_dispatch(cpu, 0x0000445Cu); label_BFC13F30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC13F30: 24082002 addiu $t0, $zero, 8194 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (8194)); @@ -50504,6 +62153,9 @@ label_BFC13F30: cpu->gpr[31] = 0x00004440u; psx_dispatch(cpu, 0x0000445Cu); label_BFC13F40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC13F40: A600000A sh $zero, 10($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (10)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13F40u); return; } g_debug_last_store_pc = 0xBFC13F40u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } @@ -50524,6 +62176,9 @@ label_BFC13F40: void func_0000445C(CPUState* cpu) { debug_server_log_call_entry(0x0000445Cu); label_BFC13F5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC13F5C: AFA40000 sw $a0, 0($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13F5Cu); return; } g_debug_last_store_pc = 0xBFC13F5Cu; cpu->write_word(psx_addr, cpu->gpr[4]); } @@ -50542,6 +62197,9 @@ label_BFC13F5C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13F74u); return; } g_debug_last_store_pc = 0xBFC13F74u; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC13F70) goto label_BFC13F90; label_BFC13F78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC13F78: 8FA20000 lw $v0, 0($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13F78u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -50558,6 +62216,9 @@ label_BFC13F78: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC13F8Cu); return; } g_debug_last_store_pc = 0xBFC13F8Cu; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC13F88) goto label_BFC13F78; label_BFC13F90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13F90: 03E00008 jr $ra */ /* 0xBFC13F94: 00000000 nop */ @@ -50583,6 +62244,9 @@ void func_00004498(CPUState* cpu) { } } label_BFC13F98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC13F98: 27BDFF98 addiu $sp, $sp, -104 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-104)); @@ -50623,6 +62287,9 @@ label_BFC13F98: g_debug_last_store_pc = 0xBFC13FDCu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[25] + (0)), (uint8_t)(cpu->gpr[24] & 0xFFu)); if (psx_taken_BFC13FD8) goto label_BFC13FE8; label_BFC13FE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC13FE0: 10000002 beq $zero, $zero, 0xBFC13FEC */ uint32_t psx_brA_BFC13FE0 = cpu->gpr[0]; uint32_t psx_brB_BFC13FE0 = cpu->gpr[0]; @@ -50631,10 +62298,16 @@ label_BFC13FE0: cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC13FE0) goto label_BFC13FEC; label_BFC13FE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC13FE8: 24102000 addiu $s0, $zero, 8192 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (8192)); label_BFC13FEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC13FEC: 3C110000 lui $s1, 0x0 */ cpu->gpr[17] = 0x00000000u; @@ -50667,6 +62340,9 @@ label_BFC13FEC: /* nop */ if (psx_taken_BFC1401C) goto label_BFC14030; label_BFC14024: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC14024: 12400002 beq $s2, $zero, 0xBFC14030 */ uint32_t psx_brA_BFC14024 = cpu->gpr[18]; uint32_t psx_brB_BFC14024 = cpu->gpr[0]; @@ -50675,10 +62351,16 @@ label_BFC14024: /* nop */ if (psx_taken_BFC14024) goto label_BFC14030; label_BFC1402C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1402C: 2415FFFF addiu $s5, $zero, -1 */ cpu->gpr[21] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); label_BFC14030: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC14030: 92200000 lbu $zero, 0($s1) */ (void)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (0))); @@ -50694,6 +62376,9 @@ label_BFC14030: cpu->gpr[31] = 0x00004548u; psx_dispatch(cpu, 0x0000445Cu); label_BFC14048: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC14048: 360C1003 ori $t4, $s0, 0x1003 */ cpu->gpr[12] = cpu->gpr[16] | 0x1003u; @@ -50716,6 +62401,9 @@ label_BFC14048: cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC14064) goto label_BFC14084; label_BFC1406C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1406C: 962F0004 lhu $t7, 4($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (4)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1406Cu); return; } cpu->gpr[15] = (uint32_t)cpu->read_half(psx_addr); } @@ -50730,10 +62418,16 @@ label_BFC1406C: /* nop */ if (psx_taken_BFC14078) goto label_BFC1406C; label_BFC14080: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC14080: 24190001 addiu $t9, $zero, 1 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC14084: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC14084: A2390000 sb $t9, 0($s1) */ g_debug_last_store_pc = 0xBFC14084u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[17] + (0)), (uint8_t)(cpu->gpr[25] & 0xFFu)); @@ -50743,6 +62437,9 @@ label_BFC14084: cpu->gpr[31] = 0x00004590u; psx_dispatch(cpu, 0x0000445Cu); label_BFC14090: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC14090: 9628000A lhu $t0, 10($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (10)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14090u); return; } cpu->gpr[8] = (uint32_t)cpu->read_half(psx_addr); } @@ -50773,6 +62470,9 @@ label_BFC14090: /* nop */ if (psx_taken_BFC140BC) goto label_BFC140D8; label_BFC140C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC140C4: 962C0004 lhu $t4, 4($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (4)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC140C4u); return; } cpu->gpr[12] = (uint32_t)cpu->read_half(psx_addr); } @@ -50787,6 +62487,9 @@ label_BFC140C4: /* nop */ if (psx_taken_BFC140D0) goto label_BFC140C4; label_BFC140D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC140D8: 92200000 lbu $zero, 0($s1) */ (void)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (0))); @@ -50796,6 +62499,9 @@ label_BFC140D8: cpu->gpr[31] = 0x000045E4u; psx_dispatch(cpu, 0x0000445Cu); label_BFC140E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC140E4: 8E0E0000 lw $t6, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC140E4u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -50810,10 +62516,16 @@ label_BFC140E4: cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (66)); if (psx_taken_BFC140F0) goto label_BFC1412C; label_BFC140F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC140F8: 8FA20048 lw $v0, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC140F8u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } label_BFC140FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC140FC: 8FB80048 lw $t8, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC140FCu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -50830,6 +62542,9 @@ label_BFC140FC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14110u); return; } g_debug_last_store_pc = 0xBFC14110u; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC1410C) goto label_BFC14450; label_BFC14114: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC14114: 8E080000 lw $t0, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14114u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -50844,10 +62559,16 @@ label_BFC14114: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14124u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } if (psx_taken_BFC14120) goto label_BFC140FC; label_BFC14128: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC14128: 240A0042 addiu $t2, $zero, 66 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (66)); label_BFC1412C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1412C: A22A0000 sb $t2, 0($s1) */ g_debug_last_store_pc = 0xBFC1412Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[17] + (0)), (uint8_t)(cpu->gpr[10] & 0xFFu)); @@ -50857,6 +62578,9 @@ label_BFC1412C: cpu->gpr[31] = 0x00004638u; psx_dispatch(cpu, 0x0000445Cu); label_BFC14138: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC14138: 962B000A lhu $t3, 10($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (10)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14138u); return; } cpu->gpr[11] = (uint32_t)cpu->read_half(psx_addr); } @@ -50883,6 +62607,9 @@ label_BFC14138: /* nop */ if (psx_taken_BFC1415C) goto label_BFC14178; label_BFC14164: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC14164: 962F0004 lhu $t7, 4($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (4)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14164u); return; } cpu->gpr[15] = (uint32_t)cpu->read_half(psx_addr); } @@ -50897,6 +62624,9 @@ label_BFC14164: /* nop */ if (psx_taken_BFC14170) goto label_BFC14164; label_BFC14178: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC14178: 92220000 lbu $v0, 0($s1) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (0))); @@ -50923,10 +62653,16 @@ label_BFC14178: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] >> 24u); if (psx_taken_BFC1419C) goto label_BFC141A8; label_BFC141A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC141A4: 24050010 addiu $a1, $zero, 16 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); label_BFC141A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC141A8: 8E090000 lw $t1, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC141A8u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -50941,10 +62677,16 @@ label_BFC141A8: /* nop */ if (psx_taken_BFC141B4) goto label_BFC141EC; label_BFC141BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC141BC: 8FA20048 lw $v0, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC141BCu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } label_BFC141C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC141C0: 8FAB0048 lw $t3, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC141C0u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -50961,6 +62703,9 @@ label_BFC141C0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC141D4u); return; } g_debug_last_store_pc = 0xBFC141D4u; cpu->write_word(psx_addr, cpu->gpr[12]); } if (psx_taken_BFC141D0) goto label_BFC14450; label_BFC141D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC141D8: 8E0D0000 lw $t5, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC141D8u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -50975,6 +62720,9 @@ label_BFC141D8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC141E8u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } if (psx_taken_BFC141E4) goto label_BFC141C0; label_BFC141EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC141EC: A2200000 sb $zero, 0($s1) */ g_debug_last_store_pc = 0xBFC141ECu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[17] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -50986,6 +62734,9 @@ label_BFC141EC: cpu->gpr[31] = 0x000046FCu; psx_dispatch(cpu, 0x0000445Cu); label_BFC141FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC141FC: 962F000A lhu $t7, 10($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (10)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC141FCu); return; } cpu->gpr[15] = (uint32_t)cpu->read_half(psx_addr); } @@ -51012,6 +62763,9 @@ label_BFC141FC: /* nop */ if (psx_taken_BFC14220) goto label_BFC1423C; label_BFC14228: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC14228: 96290004 lhu $t1, 4($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (4)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14228u); return; } cpu->gpr[9] = (uint32_t)cpu->read_half(psx_addr); } @@ -51026,6 +62780,9 @@ label_BFC14228: /* nop */ if (psx_taken_BFC14234) goto label_BFC14228; label_BFC1423C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1423C: 92220000 lbu $v0, 0($s1) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (0))); @@ -51042,6 +62799,9 @@ label_BFC1423C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14250u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } if (psx_taken_BFC1424C) goto label_BFC14454; label_BFC14254: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC14254: 18A00078 blez $a1, 0xBFC14438 */ uint32_t psx_brA_BFC14254 = cpu->gpr[5]; @@ -51050,6 +62810,9 @@ label_BFC14254: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14258u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } if (psx_taken_BFC14254) goto label_BFC14438; label_BFC1425C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1425C: 8E0B0000 lw $t3, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1425Cu); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -51064,10 +62827,16 @@ label_BFC1425C: /* nop */ if (psx_taken_BFC14268) goto label_BFC142A0; label_BFC14270: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC14270: 8FA20048 lw $v0, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14270u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } label_BFC14274: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC14274: 8FAD0048 lw $t5, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14274u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -51084,6 +62853,9 @@ label_BFC14274: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14288u); return; } g_debug_last_store_pc = 0xBFC14288u; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC14284) goto label_BFC14450; label_BFC1428C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1428C: 8E0F0000 lw $t7, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1428Cu); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -51098,6 +62870,9 @@ label_BFC1428C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1429Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } if (psx_taken_BFC14298) goto label_BFC14274; label_BFC142A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC142A0: 82420000 lb $v0, 0($s2) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[18] + (0))); @@ -51112,10 +62887,16 @@ label_BFC142A0: /* nop */ if (psx_taken_BFC142AC) goto label_BFC142B8; label_BFC142B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC142B4: 0015102B sltu $v0, $zero, $s5 */ cpu->gpr[2] = (uint32_t)(cpu->gpr[0] < cpu->gpr[21] ? 1 : 0); label_BFC142B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC142B8: A2220000 sb $v0, 0($s1) */ g_debug_last_store_pc = 0xBFC142B8u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[17] + (0)), (uint8_t)(cpu->gpr[2] & 0xFFu)); @@ -51127,6 +62908,9 @@ label_BFC142B8: cpu->gpr[31] = 0x000047C8u; psx_dispatch(cpu, 0x0000445Cu); label_BFC142C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC142C8: 9639000A lhu $t9, 10($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (10)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC142C8u); return; } cpu->gpr[25] = (uint32_t)cpu->read_half(psx_addr); } @@ -51153,6 +62937,9 @@ label_BFC142C8: /* nop */ if (psx_taken_BFC142EC) goto label_BFC14350; label_BFC142F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC142F4: 8E0B0000 lw $t3, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC142F4u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -51167,6 +62954,9 @@ label_BFC142F4: /* nop */ if (psx_taken_BFC14300) goto label_BFC1433C; label_BFC14308: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC14308: 962D0004 lhu $t5, 4($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (4)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14308u); return; } cpu->gpr[13] = (uint32_t)cpu->read_half(psx_addr); } @@ -51181,6 +62971,9 @@ label_BFC14308: /* nop */ if (psx_taken_BFC14314) goto label_BFC14330; label_BFC1431C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1431C: 962F0004 lhu $t7, 4($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (4)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1431Cu); return; } cpu->gpr[15] = (uint32_t)cpu->read_half(psx_addr); } @@ -51195,6 +62988,9 @@ label_BFC1431C: /* nop */ if (psx_taken_BFC14328) goto label_BFC1431C; label_BFC14330: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC14330: 92200000 lbu $zero, 0($s1) */ (void)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (0))); @@ -51205,6 +63001,9 @@ label_BFC14330: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14338u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } if (psx_taken_BFC14334) goto label_BFC14454; label_BFC1433C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1433C: 96390004 lhu $t9, 4($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (4)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1433Cu); return; } cpu->gpr[25] = (uint32_t)cpu->read_half(psx_addr); } @@ -51219,6 +63018,9 @@ label_BFC1433C: /* nop */ if (psx_taken_BFC14348) goto label_BFC142F4; label_BFC14350: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC14350: 92220000 lbu $v0, 0($s1) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (0))); @@ -51243,10 +63045,16 @@ label_BFC14350: /* nop */ if (psx_taken_BFC14370) goto label_BFC143A8; label_BFC14378: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC14378: 8FA20048 lw $v0, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14378u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } label_BFC1437C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1437C: 8FAB0048 lw $t3, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1437Cu); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -51263,6 +63071,9 @@ label_BFC1437C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14390u); return; } g_debug_last_store_pc = 0xBFC14390u; cpu->write_word(psx_addr, cpu->gpr[12]); } if (psx_taken_BFC1438C) goto label_BFC14450; label_BFC14394: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC14394: 8E0D0000 lw $t5, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14394u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -51277,6 +63088,9 @@ label_BFC14394: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC143A4u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } if (psx_taken_BFC143A0) goto label_BFC1437C; label_BFC143A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC143A8: 82420000 lb $v0, 0($s2) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[18] + (0))); @@ -51291,10 +63105,16 @@ label_BFC143A8: /* nop */ if (psx_taken_BFC143B4) goto label_BFC143C0; label_BFC143BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC143BC: 0015102B sltu $v0, $zero, $s5 */ cpu->gpr[2] = (uint32_t)(cpu->gpr[0] < cpu->gpr[21] ? 1 : 0); label_BFC143C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC143C0: A2220000 sb $v0, 0($s1) */ g_debug_last_store_pc = 0xBFC143C0u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[17] + (0)), (uint8_t)(cpu->gpr[2] & 0xFFu)); @@ -51306,6 +63126,9 @@ label_BFC143C0: cpu->gpr[31] = 0x000048D0u; psx_dispatch(cpu, 0x0000445Cu); label_BFC143D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC143D0: 962F000A lhu $t7, 10($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (10)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC143D0u); return; } cpu->gpr[15] = (uint32_t)cpu->read_half(psx_addr); } @@ -51332,6 +63155,9 @@ label_BFC143D0: /* nop */ if (psx_taken_BFC143F4) goto label_BFC14410; label_BFC143FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC143FC: 96290004 lhu $t1, 4($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (4)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC143FCu); return; } cpu->gpr[9] = (uint32_t)cpu->read_half(psx_addr); } @@ -51346,6 +63172,9 @@ label_BFC143FC: /* nop */ if (psx_taken_BFC14408) goto label_BFC143FC; label_BFC14410: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC14410: 92220000 lbu $v0, 0($s1) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (0))); @@ -51368,10 +63197,16 @@ label_BFC14410: cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (1)); if (psx_taken_BFC1442C) goto label_BFC1425C; label_BFC14434: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC14434: 8FAB0040 lw $t3, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14434u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } label_BFC14438: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC14438: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; @@ -51388,10 +63223,16 @@ label_BFC14438: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (10)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1444Cu); return; } g_debug_last_store_pc = 0xBFC1444Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } if (psx_taken_BFC14448) goto label_BFC14498; label_BFC14450: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC14450: 8FAE0040 lw $t6, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14450u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } label_BFC14454: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC14454: 240D00FF addiu $t5, $zero, 255 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (255)); @@ -51412,6 +63253,9 @@ label_BFC14454: cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (8194)); if (psx_taken_BFC1446C) goto label_BFC14484; label_BFC14474: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC14474: 24080002 addiu $t0, $zero, 2 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); @@ -51422,14 +63266,23 @@ label_BFC14474: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (10)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1447Cu); return; } g_debug_last_store_pc = 0xBFC1447Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[8] & 0xFFFFu)); } if (psx_taken_BFC14478) goto label_BFC14488; label_BFC14480: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC14480: 24092002 addiu $t1, $zero, 8194 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (8194)); label_BFC14484: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC14484: A629000A sh $t1, 10($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (10)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14484u); return; } g_debug_last_store_pc = 0xBFC14484u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[9] & 0xFFFFu)); } label_BFC14488: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC14488: 0C001117 jal 0xB000445C */ /* 0xBFC1448C: 2404000A addiu $a0, $zero, 10 */ @@ -51437,12 +63290,18 @@ label_BFC14488: cpu->gpr[31] = 0x00004990u; psx_dispatch(cpu, 0x0000445Cu); label_BFC14490: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC14490: A620000A sh $zero, 10($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (10)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14490u); return; } g_debug_last_store_pc = 0xBFC14490u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } /* 0xBFC14494: 3402FFFF ori $v0, $zero, 0xFFFF */ cpu->gpr[2] = cpu->gpr[0] | 0xFFFFu; label_BFC14498: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC14498: 8FBF0034 lw $ra, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14498u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -51478,6 +63337,9 @@ void func_000049BC(CPUState* cpu) { } } label_BFC144BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC144BC: 3C0E0000 lui $t6, 0x0 */ cpu->gpr[14] = 0x00000000u; @@ -51492,6 +63354,9 @@ label_BFC144BC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC144CCu); return; } g_debug_last_store_pc = 0xBFC144CCu; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC144C8) goto label_BFC144FC; label_BFC144D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC144D0: 0C001126 jal 0xB0004498 */ /* 0xBFC144D4: 00002021 addu $a0, $zero, $zero */ @@ -51499,6 +63364,9 @@ label_BFC144D0: cpu->gpr[31] = 0x000049D8u; psx_dispatch(cpu, 0x00004498u); label_BFC144D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC144D8: 0C001126 jal 0xB0004498 */ /* 0xBFC144DC: 24040001 addiu $a0, $zero, 1 */ @@ -51506,6 +63374,9 @@ label_BFC144D8: cpu->gpr[31] = 0x000049E0u; psx_dispatch(cpu, 0x00004498u); label_BFC144E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC144E0: 3C0F0000 lui $t7, 0x0 */ cpu->gpr[15] = 0x00000000u; @@ -51520,6 +63391,9 @@ label_BFC144E0: /* nop */ if (psx_taken_BFC144EC) goto label_BFC144FC; label_BFC144F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC144F4: 0C001871 jal 0xB00061C4 */ /* 0xBFC144F8: 00000000 nop */ @@ -51527,6 +63401,9 @@ label_BFC144F4: cpu->gpr[31] = 0x000049FCu; psx_dispatch(cpu, 0x000061C4u); label_BFC144FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC144FC: 3C180001 lui $t8, 0x1 */ cpu->gpr[24] = 0x00010000u; @@ -51541,6 +63418,9 @@ label_BFC144FC: /* nop */ if (psx_taken_BFC14508) goto label_BFC14520; label_BFC14510: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC14510: 3C080000 lui $t0, 0x0 */ cpu->gpr[8] = 0x00000000u; @@ -51551,6 +63431,9 @@ label_BFC14510: /* 0xBFC1451C: AD190000 sw $t9, 0($t0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[8] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1451Cu); return; } g_debug_last_store_pc = 0xBFC1451Cu; cpu->write_word(psx_addr, cpu->gpr[25]); } label_BFC14520: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC14520: 3C090000 lui $t1, 0x0 */ cpu->gpr[9] = 0x00000000u; @@ -51565,6 +63448,9 @@ label_BFC14520: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14530u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1452C) goto label_BFC14540; label_BFC14534: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC14534: 0C001400 jal 0xB0005000 */ /* 0xBFC14538: 00000000 nop */ @@ -51572,10 +63458,16 @@ label_BFC14534: cpu->gpr[31] = 0x00004A3Cu; psx_dispatch(cpu, 0x00005000u); label_BFC1453C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1453C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1453Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC14540: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC14540: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -51588,6 +63480,9 @@ label_BFC14540: void func_00004A4C(CPUState* cpu) { debug_server_log_call_entry(0x00004A4Cu); label_BFC1454C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1454C: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -51608,6 +63503,9 @@ label_BFC1454C: /* nop */ if (psx_taken_BFC14564) goto label_BFC14580; label_BFC1456C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1456C: 8C580000 lw $t8, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1456Cu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -51622,6 +63520,9 @@ label_BFC1456C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC14578) { cpu->pc = 0xBFC1458Cu; return; } label_BFC14580: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC14580: 03E00008 jr $ra */ /* 0xBFC14584: 00001021 addu $v0, $zero, $zero */ @@ -51640,10 +63541,16 @@ void func_00004A88(CPUState* cpu) { } } label_BFC14588: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC14588: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC1458C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1458C: 03E00008 jr $ra */ /* 0xBFC14590: 00000000 nop */ @@ -51654,6 +63561,9 @@ label_BFC1458C: void func_00004A94(CPUState* cpu) { debug_server_log_call_entry(0x00004A94u); label_BFC14594: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC14594: 3C0E0000 lui $t6, 0x0 */ cpu->gpr[14] = 0x00000000u; @@ -51700,6 +63610,9 @@ void func_00004AC8(CPUState* cpu) { } } label_BFC145C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC145C8: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -51725,6 +63638,9 @@ label_BFC145C8: cpu->gpr[31] = 0x00004AF4u; psx_dispatch(cpu, 0x00006AE0u); label_BFC145F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC145F4: 3C010000 lui $at, 0x0 */ cpu->gpr[1] = 0x00000000u; @@ -51734,6 +63650,9 @@ label_BFC145F4: cpu->gpr[31] = 0x00004B00u; psx_dispatch(cpu, 0x00004C64u); label_BFC14600: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC14600: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -51747,6 +63666,9 @@ label_BFC14600: cpu->gpr[31] = 0x00004B14u; psx_dispatch(cpu, 0x00004B70u); label_BFC14614: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC14614: 8FA40020 lw $a0, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14614u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -51772,6 +63694,9 @@ label_BFC14614: cpu->gpr[31] = 0x00004B40u; psx_dispatch(cpu, 0x00002150u); label_BFC14640: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC14640: 8FA40028 lw $a0, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14640u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -51783,6 +63708,9 @@ label_BFC14640: cpu->gpr[31] = 0x00004B50u; psx_dispatch(cpu, 0x00002150u); label_BFC14650: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC14650: 0C0012A5 jal 0xB0004A94 */ /* 0xBFC14654: 00000000 nop */ @@ -51790,6 +63718,9 @@ label_BFC14650: cpu->gpr[31] = 0x00004B58u; psx_dispatch(cpu, 0x00004A94u); label_BFC14658: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC14658: 0C001315 jal 0xB0004C54 */ /* 0xBFC1465C: 00000000 nop */ @@ -51797,6 +63728,9 @@ label_BFC14658: cpu->gpr[31] = 0x00004B60u; psx_dispatch(cpu, 0x00004C54u); label_BFC14660: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC14660: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14660u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -51811,6 +63745,9 @@ label_BFC14660: void func_00004B70(CPUState* cpu) { debug_server_log_call_entry(0x00004B70u); label_BFC14670: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC14670: 3C010000 lui $at, 0x0 */ cpu->gpr[1] = 0x00000000u; @@ -51847,6 +63784,9 @@ void func_00004B90(CPUState* cpu) { } } label_BFC14690: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC14690: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -51858,6 +63798,9 @@ label_BFC14690: cpu->gpr[31] = 0x00004BA0u; psx_dispatch(cpu, 0x000043E8u); label_BFC146A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC146A0: 0C001AE0 jal 0xB0006B80 */ /* 0xBFC146A4: 00000000 nop */ @@ -51865,6 +63808,9 @@ label_BFC146A0: cpu->gpr[31] = 0x00004BA8u; psx_dispatch(cpu, 0x00006B80u); label_BFC146A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC146A8: 3C050000 lui $a1, 0x0 */ cpu->gpr[5] = 0x00000000u; @@ -51876,6 +63822,9 @@ label_BFC146A8: cpu->gpr[31] = 0x00004BB8u; psx_dispatch(cpu, 0x00001444u); label_BFC146B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC146B8: 3C050000 lui $a1, 0x0 */ cpu->gpr[5] = 0x00000000u; @@ -51887,6 +63836,9 @@ label_BFC146B8: cpu->gpr[31] = 0x00004BC8u; psx_dispatch(cpu, 0x00001420u); label_BFC146C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC146C8: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -51908,6 +63860,9 @@ label_BFC146C8: cpu->gpr[31] = 0x00004BECu; psx_dispatch(cpu, 0x000043D0u); label_BFC146EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC146EC: 24040003 addiu $a0, $zero, 3 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); @@ -51917,6 +63872,9 @@ label_BFC146EC: cpu->gpr[31] = 0x00004BF8u; psx_dispatch(cpu, 0x000015D8u); label_BFC146F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC146F8: 0C001AE4 jal 0xB0006B90 */ /* 0xBFC146FC: 00000000 nop */ @@ -51924,6 +63882,9 @@ label_BFC146F8: cpu->gpr[31] = 0x00004C00u; psx_dispatch(cpu, 0x00006B90u); label_BFC14700: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC14700: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14700u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -51949,6 +63910,9 @@ void func_00004C10(CPUState* cpu) { } } label_BFC14710: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC14710: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -51960,6 +63924,9 @@ label_BFC14710: cpu->gpr[31] = 0x00004C20u; psx_dispatch(cpu, 0x00006B80u); label_BFC14720: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC14720: 24040003 addiu $a0, $zero, 3 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); @@ -51969,6 +63936,9 @@ label_BFC14720: cpu->gpr[31] = 0x00004C2Cu; psx_dispatch(cpu, 0x000015D8u); label_BFC1472C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1472C: 3C050000 lui $a1, 0x0 */ cpu->gpr[5] = 0x00000000u; @@ -51980,6 +63950,9 @@ label_BFC1472C: cpu->gpr[31] = 0x00004C3Cu; psx_dispatch(cpu, 0x00001444u); label_BFC1473C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1473C: 0C001AE4 jal 0xB0006B90 */ /* 0xBFC14740: 00000000 nop */ @@ -51987,6 +63960,9 @@ label_BFC1473C: cpu->gpr[31] = 0x00004C44u; psx_dispatch(cpu, 0x00006B90u); label_BFC14744: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC14744: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14744u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -52001,6 +63977,9 @@ label_BFC14744: void func_00004C54(CPUState* cpu) { debug_server_log_call_entry(0x00004C54u); label_BFC14754: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC14754: 240E0001 addiu $t6, $zero, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -52015,6 +63994,9 @@ label_BFC14754: void func_00004C64(CPUState* cpu) { debug_server_log_call_entry(0x00004C64u); label_BFC14764: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC14764: 3C010000 lui $at, 0x0 */ cpu->gpr[1] = 0x00000000u; @@ -52041,6 +64023,9 @@ void func_00004C70(CPUState* cpu) { } } label_BFC14770: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC14770: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -52052,6 +64037,9 @@ label_BFC14770: cpu->gpr[31] = 0x00004C80u; psx_dispatch(cpu, 0x000043E8u); label_BFC14780: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC14780: 0C001AE0 jal 0xB0006B80 */ /* 0xBFC14784: 00000000 nop */ @@ -52059,6 +64047,9 @@ label_BFC14780: cpu->gpr[31] = 0x00004C88u; psx_dispatch(cpu, 0x00006B80u); label_BFC14788: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC14788: 3C050000 lui $a1, 0x0 */ cpu->gpr[5] = 0x00000000u; @@ -52070,6 +64061,9 @@ label_BFC14788: cpu->gpr[31] = 0x00004C98u; psx_dispatch(cpu, 0x00001444u); label_BFC14798: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC14798: 3C050000 lui $a1, 0x0 */ cpu->gpr[5] = 0x00000000u; @@ -52081,6 +64075,9 @@ label_BFC14798: cpu->gpr[31] = 0x00004CA8u; psx_dispatch(cpu, 0x00001420u); label_BFC147A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC147A8: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -52100,6 +64097,9 @@ label_BFC147A8: cpu->gpr[31] = 0x00004CC8u; psx_dispatch(cpu, 0x000043D0u); label_BFC147C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC147C8: 24040003 addiu $a0, $zero, 3 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); @@ -52109,6 +64109,9 @@ label_BFC147C8: cpu->gpr[31] = 0x00004CD4u; psx_dispatch(cpu, 0x000015D8u); label_BFC147D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC147D4: 24180001 addiu $t8, $zero, 1 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -52120,6 +64123,9 @@ label_BFC147D4: cpu->gpr[31] = 0x00004CE4u; psx_dispatch(cpu, 0x00006B90u); label_BFC147E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC147E4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC147E4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -52145,6 +64151,9 @@ void func_00004CF4(CPUState* cpu) { } } label_BFC147F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC147F4: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -52156,6 +64165,9 @@ label_BFC147F4: cpu->gpr[31] = 0x00004D04u; psx_dispatch(cpu, 0x00006B80u); label_BFC14804: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC14804: 24040003 addiu $a0, $zero, 3 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); @@ -52165,6 +64177,9 @@ label_BFC14804: cpu->gpr[31] = 0x00004D10u; psx_dispatch(cpu, 0x000015D8u); label_BFC14810: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC14810: 3C050000 lui $a1, 0x0 */ cpu->gpr[5] = 0x00000000u; @@ -52176,6 +64191,9 @@ label_BFC14810: cpu->gpr[31] = 0x00004D20u; psx_dispatch(cpu, 0x00001444u); label_BFC14820: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC14820: 3C010000 lui $at, 0x0 */ cpu->gpr[1] = 0x00000000u; @@ -52185,6 +64203,9 @@ label_BFC14820: cpu->gpr[31] = 0x00004D2Cu; psx_dispatch(cpu, 0x00006B90u); label_BFC1482C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1482C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1482Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -52199,6 +64220,9 @@ label_BFC1482C: void func_00004D3C(CPUState* cpu) { debug_server_log_call_entry(0x00004D3Cu); label_BFC1483C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1483C: 240E0001 addiu $t6, $zero, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -52213,6 +64237,9 @@ label_BFC1483C: void func_00004D4C(CPUState* cpu) { debug_server_log_call_entry(0x00004D4Cu); label_BFC1484C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1484C: 3C030000 lui $v1, 0x0 */ cpu->gpr[3] = 0x00000000u; @@ -52231,6 +64258,9 @@ label_BFC1484C: void func_00004D64(CPUState* cpu) { debug_server_log_call_entry(0x00004D64u); label_BFC14864: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC14864: 03E00008 jr $ra */ /* 0xBFC14868: 00000000 nop */ @@ -52255,6 +64285,9 @@ void func_00004D6C(CPUState* cpu) { } } label_BFC1486C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1486C: 3C0E0000 lui $t6, 0x0 */ cpu->gpr[14] = 0x00000000u; @@ -52269,6 +64302,9 @@ label_BFC1486C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1487Cu); return; } g_debug_last_store_pc = 0xBFC1487Cu; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC14878) goto label_BFC14888; label_BFC14880: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC14880: 10000002 beq $zero, $zero, 0xBFC1488C */ uint32_t psx_brA_BFC14880 = cpu->gpr[0]; uint32_t psx_brB_BFC14880 = cpu->gpr[0]; @@ -52277,10 +64313,16 @@ label_BFC14880: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC14880) goto label_BFC1488C; label_BFC14888: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC14888: 24022000 addiu $v0, $zero, 8192 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (8192)); label_BFC1488C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC1488C: 3C030000 lui $v1, 0x0 */ cpu->gpr[3] = 0x00000000u; @@ -52324,6 +64366,9 @@ label_BFC1488C: cpu->gpr[31] = 0x00004DDCu; psx_dispatch(cpu, cpu->gpr[12]); label_BFC148DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC148DC: 10000004 beq $zero, $zero, 0xBFC148F0 */ uint32_t psx_brA_BFC148DC = cpu->gpr[0]; uint32_t psx_brB_BFC148DC = cpu->gpr[0]; @@ -52332,6 +64377,9 @@ label_BFC148DC: /* nop */ if (psx_taken_BFC148DC) goto label_BFC148F0; label_BFC148E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC148E4: 3C010000 lui $at, 0x0 */ cpu->gpr[1] = 0x00000000u; @@ -52342,6 +64390,9 @@ label_BFC148E4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (29860)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC148ECu); return; } g_debug_last_store_pc = 0xBFC148ECu; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC148E8) goto label_BFC149E0; label_BFC148F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC148F0: 10400007 beq $v0, $zero, 0xBFC14910 */ uint32_t psx_brA_BFC148F0 = cpu->gpr[2]; uint32_t psx_brB_BFC148F0 = cpu->gpr[0]; @@ -52350,6 +64401,9 @@ label_BFC148F0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC148F0) goto label_BFC14910; label_BFC148F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC148F8: 1041FFFA beq $v0, $at, 0xBFC148E4 */ uint32_t psx_brA_BFC148F8 = cpu->gpr[2]; uint32_t psx_brB_BFC148F8 = cpu->gpr[1]; @@ -52358,6 +64412,9 @@ label_BFC148F8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC148F8) goto label_BFC148E4; label_BFC14900: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC14900: 1041000C beq $v0, $at, 0xBFC14934 */ uint32_t psx_brA_BFC14900 = cpu->gpr[2]; uint32_t psx_brB_BFC14900 = cpu->gpr[1]; @@ -52366,6 +64423,9 @@ label_BFC14900: /* nop */ if (psx_taken_BFC14900) goto label_BFC14934; label_BFC14908: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC14908: 1000000A beq $zero, $zero, 0xBFC14934 */ uint32_t psx_brA_BFC14908 = cpu->gpr[0]; uint32_t psx_brB_BFC14908 = cpu->gpr[0]; @@ -52374,6 +64434,9 @@ label_BFC14908: /* nop */ if (psx_taken_BFC14908) goto label_BFC14934; label_BFC14910: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC14910: 3C030000 lui $v1, 0x0 */ cpu->gpr[3] = 0x00000000u; @@ -52396,6 +64459,9 @@ label_BFC14910: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14930u); return; } g_debug_last_store_pc = 0xBFC14930u; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC1492C) goto label_BFC14A80; label_BFC14934: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC14934: 3C030000 lui $v1, 0x0 */ cpu->gpr[3] = 0x00000000u; @@ -52420,6 +64486,9 @@ label_BFC14934: cpu->gpr[1] = 0x00000000u; if (psx_taken_BFC14954) goto label_BFC1499C; label_BFC1495C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC1495C: 3C190000 lui $t9, 0x0 */ cpu->gpr[25] = 0x00000000u; @@ -52447,6 +64516,9 @@ label_BFC1495C: cpu->gpr[31] = 0x00004E8Cu; psx_dispatch(cpu, 0x00006B40u); label_BFC1498C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1498C: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -52458,6 +64530,9 @@ label_BFC1498C: cpu->gpr[31] = 0x00004E9Cu; psx_dispatch(cpu, 0x00001B44u); label_BFC1499C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1499C: 3C010000 lui $at, 0x0 */ cpu->gpr[1] = 0x00000000u; @@ -52477,6 +64552,9 @@ label_BFC1499C: cpu->gpr[31] = 0x00004EBCu; psx_dispatch(cpu, 0x00001444u); label_BFC149BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC149BC: 3C030000 lui $v1, 0x0 */ cpu->gpr[3] = 0x00000000u; @@ -52499,6 +64577,9 @@ label_BFC149BC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC149DCu); return; } g_debug_last_store_pc = 0xBFC149DCu; cpu->write_word(psx_addr, cpu->gpr[10]); } if (psx_taken_BFC149D8) goto label_BFC14A80; label_BFC149E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC149E0: 3C030000 lui $v1, 0x0 */ cpu->gpr[3] = 0x00000000u; @@ -52524,6 +64605,9 @@ label_BFC149E0: cpu->gpr[31] = 0x00004F0Cu; psx_dispatch(cpu, 0x00001444u); label_BFC14A0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC14A0C: 3C030000 lui $v1, 0x0 */ cpu->gpr[3] = 0x00000000u; @@ -52552,6 +64636,9 @@ label_BFC14A0C: cpu->gpr[1] = 0x00000000u; if (psx_taken_BFC14A34) goto label_BFC14A7C; label_BFC14A3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC14A3C: 3C0F0000 lui $t7, 0x0 */ cpu->gpr[15] = 0x00000000u; @@ -52579,6 +64666,9 @@ label_BFC14A3C: cpu->gpr[31] = 0x00004F6Cu; psx_dispatch(cpu, 0x00006B30u); label_BFC14A6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC14A6C: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -52590,10 +64680,16 @@ label_BFC14A6C: cpu->gpr[31] = 0x00004F7Cu; psx_dispatch(cpu, 0x00001B44u); label_BFC14A7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC14A7C: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC14A80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC14A80: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14A80u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -52616,6 +64712,9 @@ void func_00004F90(CPUState* cpu) { } } label_BFC14A90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC14A90: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -52638,6 +64737,9 @@ label_BFC14A90: /* nop */ if (psx_taken_BFC14AAC) goto label_BFC14AC8; label_BFC14AB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC14AB4: 8C580000 lw $t8, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14AB4u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -52652,6 +64754,9 @@ label_BFC14AB4: /* nop */ if (psx_taken_BFC14AC0) goto label_BFC14AD0; label_BFC14AC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC14AC8: 10000009 beq $zero, $zero, 0xBFC14AF0 */ uint32_t psx_brA_BFC14AC8 = cpu->gpr[0]; uint32_t psx_brB_BFC14AC8 = cpu->gpr[0]; @@ -52660,6 +64765,9 @@ label_BFC14AC8: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC14AC8) goto label_BFC14AF0; label_BFC14AD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC14AD0: 0C0018FE jal 0xB00063F8 */ /* 0xBFC14AD4: 00000000 nop */ @@ -52667,6 +64775,9 @@ label_BFC14AD0: cpu->gpr[31] = 0x00004FD8u; psx_dispatch(cpu, 0x000063F8u); label_BFC14AD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC14AD8: 30480001 andi $t0, $v0, 0x1 */ cpu->gpr[8] = cpu->gpr[2] & 0x1u; @@ -52677,6 +64788,9 @@ label_BFC14AD8: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC14ADC) goto label_BFC14AF0; label_BFC14AE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC14AE4: 10000002 beq $zero, $zero, 0xBFC14AF0 */ uint32_t psx_brA_BFC14AE4 = cpu->gpr[0]; uint32_t psx_brB_BFC14AE4 = cpu->gpr[0]; @@ -52685,10 +64799,16 @@ label_BFC14AE4: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC14AE4) goto label_BFC14AF0; label_BFC14AEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC14AEC: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC14AF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC14AF0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14AF0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -52722,6 +64842,9 @@ void func_00005000(CPUState* cpu) { } } label_BFC14B00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC14B00: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -52737,6 +64860,9 @@ label_BFC14B00: cpu->gpr[31] = 0x00005018u; psx_dispatch(cpu, 0x00001C5Cu); label_BFC14B18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC14B18: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -52748,6 +64874,9 @@ label_BFC14B18: cpu->gpr[31] = 0x00005028u; psx_dispatch(cpu, 0x00001C5Cu); label_BFC14B28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC14B28: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -52759,6 +64888,9 @@ label_BFC14B28: cpu->gpr[31] = 0x00005038u; psx_dispatch(cpu, 0x00001C5Cu); label_BFC14B38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC14B38: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -52770,6 +64902,9 @@ label_BFC14B38: cpu->gpr[31] = 0x00005048u; psx_dispatch(cpu, 0x00001C5Cu); label_BFC14B48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC14B48: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -52781,6 +64916,9 @@ label_BFC14B48: cpu->gpr[31] = 0x00005058u; psx_dispatch(cpu, 0x00001C5Cu); label_BFC14B58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC14B58: 3C0E0000 lui $t6, 0x0 */ cpu->gpr[14] = 0x00000000u; @@ -52795,6 +64933,9 @@ label_BFC14B58: cpu->gpr[1] = 0x00000000u; if (psx_taken_BFC14B64) goto label_BFC14C28; label_BFC14B6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(29u); +#endif psx_check_interrupts(cpu); /* 0xBFC14B6C: A020755A sb $zero, 30042($at) */ g_debug_last_store_pc = 0xBFC14B6Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[1] + (30042)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -52856,6 +64997,9 @@ label_BFC14B6C: cpu->gpr[31] = 0x000050E0u; psx_dispatch(cpu, 0x00006B50u); label_BFC14BE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC14BE0: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -52867,6 +65011,9 @@ label_BFC14BE0: cpu->gpr[31] = 0x000050F0u; psx_dispatch(cpu, 0x00001B44u); label_BFC14BF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC14BF0: 3C050000 lui $a1, 0x0 */ cpu->gpr[5] = 0x00000000u; @@ -52878,6 +65025,9 @@ label_BFC14BF0: cpu->gpr[31] = 0x00005100u; psx_dispatch(cpu, 0x00001444u); label_BFC14C00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC14C00: 3C030000 lui $v1, 0x0 */ cpu->gpr[3] = 0x00000000u; @@ -52902,6 +65052,9 @@ label_BFC14C00: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (10)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14C24u); return; } g_debug_last_store_pc = 0xBFC14C24u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } if (psx_taken_BFC14C20) goto label_BFC14CE4; label_BFC14C28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC14C28: 3C0E0000 lui $t6, 0x0 */ cpu->gpr[14] = 0x00000000u; @@ -52938,6 +65091,9 @@ label_BFC14C28: /* nop */ if (psx_taken_BFC14C60) goto label_BFC14C70; label_BFC14C68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC14C68: 1000001E beq $zero, $zero, 0xBFC14CE4 */ uint32_t psx_brA_BFC14C68 = cpu->gpr[0]; uint32_t psx_brB_BFC14C68 = cpu->gpr[0]; @@ -52946,6 +65102,9 @@ label_BFC14C68: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC14C68) goto label_BFC14CE4; label_BFC14C70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC14C70: 3C0B0000 lui $t3, 0x0 */ cpu->gpr[11] = 0x00000000u; @@ -52981,6 +65140,9 @@ label_BFC14C70: cpu->gpr[31] = 0x000051B0u; psx_dispatch(cpu, 0x00006390u); label_BFC14CB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC14CB0: 3C050000 lui $a1, 0x0 */ cpu->gpr[5] = 0x00000000u; @@ -52992,6 +65154,9 @@ label_BFC14CB0: cpu->gpr[31] = 0x000051C0u; psx_dispatch(cpu, 0x00001444u); label_BFC14CC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC14CC0: 3C050000 lui $a1, 0x0 */ cpu->gpr[5] = 0x00000000u; @@ -53003,6 +65168,9 @@ label_BFC14CC0: cpu->gpr[31] = 0x000051D0u; psx_dispatch(cpu, 0x00001420u); label_BFC14CD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC14CD0: 3C010000 lui $at, 0x0 */ cpu->gpr[1] = 0x00000000u; @@ -53016,6 +65184,9 @@ label_BFC14CD0: cpu->gpr[31] = 0x000051E4u; psx_dispatch(cpu, 0x00004D6Cu); label_BFC14CE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC14CE4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14CE4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -53042,6 +65213,9 @@ void func_000051F4(CPUState* cpu) { } } label_BFC14CF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC14CF4: 3C060000 lui $a2, 0x0 */ cpu->gpr[6] = 0x00000000u; @@ -53072,6 +65246,9 @@ label_BFC14CF4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14D24u); return; } g_debug_last_store_pc = 0xBFC14D24u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC14D20) goto label_BFC1516C; label_BFC14D28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC14D28: 000F7880 sll $t7, $t7, 2 */ cpu->gpr[15] = cpu->gpr[15] << 2u; @@ -53088,6 +65265,9 @@ label_BFC14D28: /* nop */ cpu->pc = cpu->gpr[15]; return; label_BFC14D44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC14D44: 14C00004 bne $a2, $zero, 0xBFC14D58 */ uint32_t psx_brA_BFC14D44 = cpu->gpr[6]; uint32_t psx_brB_BFC14D44 = cpu->gpr[0]; @@ -53096,6 +65276,9 @@ label_BFC14D44: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (8192)); if (psx_taken_BFC14D44) goto label_BFC14D58; label_BFC14D4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC14D4C: 10000002 beq $zero, $zero, 0xBFC14D58 */ uint32_t psx_brA_BFC14D4C = cpu->gpr[0]; uint32_t psx_brB_BFC14D4C = cpu->gpr[0]; @@ -53104,10 +65287,16 @@ label_BFC14D4C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC14D4C) goto label_BFC14D58; label_BFC14D54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC14D54: 24022000 addiu $v0, $zero, 8192 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (8192)); label_BFC14D58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(27u); +#endif psx_check_interrupts(cpu); /* 0xBFC14D58: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -53166,6 +65355,9 @@ label_BFC14D58: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (29856)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14DC0u); return; } g_debug_last_store_pc = 0xBFC14DC0u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC14DBC) goto label_BFC15174; label_BFC14DC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC14DC4: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -53196,6 +65388,9 @@ label_BFC14DC4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[12] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14DF4u); return; } g_debug_last_store_pc = 0xBFC14DF4u; cpu->write_word(psx_addr, cpu->gpr[11]); } if (psx_taken_BFC14DF0) goto label_BFC15174; label_BFC14DF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC14DF8: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -53236,6 +65431,9 @@ label_BFC14DF8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (29944)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14E3Cu); return; } g_debug_last_store_pc = 0xBFC14E3Cu; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC14E38) goto label_BFC15174; label_BFC14E40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC14E40: 30690008 andi $t1, $v1, 0x8 */ cpu->gpr[9] = cpu->gpr[3] & 0x8u; @@ -53246,6 +65444,9 @@ label_BFC14E40: cpu->gpr[1] = 0x00000000u; if (psx_taken_BFC14E44) goto label_BFC15174; label_BFC14E4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC14E4C: AC2074C0 sw $zero, 29888($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (29888)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14E4Cu); return; } g_debug_last_store_pc = 0xBFC14E4Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -53269,6 +65470,9 @@ label_BFC14E4C: cpu->gpr[31] = 0x00005374u; psx_dispatch(cpu, 0x00006B60u); label_BFC14E74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC14E74: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -53280,6 +65484,9 @@ label_BFC14E74: cpu->gpr[31] = 0x00005384u; psx_dispatch(cpu, 0x00001B44u); label_BFC14E84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC14E84: 240C0001 addiu $t4, $zero, 1 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -53294,6 +65501,9 @@ label_BFC14E84: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC14E90) goto label_BFC15178; label_BFC14E98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC14E98: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -53324,6 +65534,9 @@ label_BFC14E98: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[24] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14EC8u); return; } g_debug_last_store_pc = 0xBFC14EC8u; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC14EC4) goto label_BFC15174; label_BFC14ECC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC14ECC: 100000AA beq $zero, $zero, 0xBFC15178 */ uint32_t psx_brA_BFC14ECC = cpu->gpr[0]; uint32_t psx_brB_BFC14ECC = cpu->gpr[0]; @@ -53332,6 +65545,9 @@ label_BFC14ECC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC14ECC) goto label_BFC15178; label_BFC14ED4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC14ED4: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -53366,6 +65582,9 @@ label_BFC14ED4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[10] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14F0Cu); return; } g_debug_last_store_pc = 0xBFC14F0Cu; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC14F08) goto label_BFC14F18; label_BFC14F10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC14F10: 10000099 beq $zero, $zero, 0xBFC15178 */ uint32_t psx_brA_BFC14F10 = cpu->gpr[0]; uint32_t psx_brB_BFC14F10 = cpu->gpr[0]; @@ -53374,6 +65593,9 @@ label_BFC14F10: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC14F10) goto label_BFC15178; label_BFC14F18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC14F18: 00065880 sll $t3, $a2, 2 */ cpu->gpr[11] = cpu->gpr[6] << 2u; @@ -53388,6 +65610,9 @@ label_BFC14F18: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (30048)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14F28u); return; } g_debug_last_store_pc = 0xBFC14F28u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC14F24) goto label_BFC15174; label_BFC14F2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(21u); +#endif psx_check_interrupts(cpu); /* 0xBFC14F2C: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -53433,6 +65658,9 @@ label_BFC14F2C: cpu->gpr[31] = 0x00005480u; psx_dispatch(cpu, 0x00006380u); label_BFC14F80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC14F80: 1000007D beq $zero, $zero, 0xBFC15178 */ uint32_t psx_brA_BFC14F80 = cpu->gpr[0]; uint32_t psx_brB_BFC14F80 = cpu->gpr[0]; @@ -53441,6 +65669,9 @@ label_BFC14F80: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC14F80) goto label_BFC15178; label_BFC14F88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC14F88: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -53479,6 +65710,9 @@ label_BFC14F88: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[15] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14FC8u); return; } g_debug_last_store_pc = 0xBFC14FC8u; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC14FC4) goto label_BFC15174; label_BFC14FCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC14FCC: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -53507,6 +65741,9 @@ label_BFC14FCC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC14FF8u); return; } g_debug_last_store_pc = 0xBFC14FF8u; cpu->write_word(psx_addr, cpu->gpr[8]); } if (psx_taken_BFC14FF4) goto label_BFC15174; label_BFC14FFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC14FFC: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -53537,6 +65774,9 @@ label_BFC14FFC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[13] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1502Cu); return; } g_debug_last_store_pc = 0xBFC1502Cu; cpu->write_word(psx_addr, cpu->gpr[12]); } if (psx_taken_BFC15028) goto label_BFC15174; label_BFC15030: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15030: 10000051 beq $zero, $zero, 0xBFC15178 */ uint32_t psx_brA_BFC15030 = cpu->gpr[0]; uint32_t psx_brB_BFC15030 = cpu->gpr[0]; @@ -53545,6 +65785,9 @@ label_BFC15030: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC15030) goto label_BFC15178; label_BFC15038: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC15038: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -53575,6 +65818,9 @@ label_BFC15038: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[25] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15068u); return; } g_debug_last_store_pc = 0xBFC15068u; cpu->write_word(psx_addr, cpu->gpr[24]); } if (psx_taken_BFC15064) goto label_BFC15074; label_BFC1506C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1506C: 10000042 beq $zero, $zero, 0xBFC15178 */ uint32_t psx_brA_BFC1506C = cpu->gpr[0]; uint32_t psx_brB_BFC1506C = cpu->gpr[0]; @@ -53583,6 +65829,9 @@ label_BFC1506C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC1506C) goto label_BFC15178; label_BFC15074: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC15074: 94880004 lhu $t0, 4($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (4)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15074u); return; } cpu->gpr[8] = (uint32_t)cpu->read_half(psx_addr); } @@ -53597,6 +65846,9 @@ label_BFC15074: /* nop */ if (psx_taken_BFC15080) goto label_BFC1509C; label_BFC15088: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC15088: 948A0004 lhu $t2, 4($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (4)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15088u); return; } cpu->gpr[10] = (uint32_t)cpu->read_half(psx_addr); } @@ -53611,6 +65863,9 @@ label_BFC15088: /* nop */ if (psx_taken_BFC15094) goto label_BFC15088; label_BFC1509C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1509C: 3C0C0000 lui $t4, 0x0 */ cpu->gpr[12] = 0x00000000u; @@ -53625,6 +65880,9 @@ label_BFC1509C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (71)); if (psx_taken_BFC150A8) goto label_BFC1512C; label_BFC150B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC150B0: 00066880 sll $t5, $a2, 2 */ cpu->gpr[13] = cpu->gpr[6] << 2u; @@ -53645,6 +65903,9 @@ label_BFC150B0: cpu->gpr[1] = 0x00000000u; if (psx_taken_BFC150C8) goto label_BFC15128; label_BFC150D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC150D0: 3C0F0000 lui $t7, 0x0 */ cpu->gpr[15] = 0x00000000u; @@ -53674,6 +65935,9 @@ label_BFC150D0: cpu->gpr[31] = 0x00005604u; psx_dispatch(cpu, 0x00006B70u); label_BFC15104: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC15104: 93A30018 lbu $v1, 24($sp) */ cpu->gpr[3] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (24))); @@ -53687,6 +65951,9 @@ label_BFC15104: cpu->gpr[31] = 0x00005618u; psx_dispatch(cpu, 0x00001B44u); label_BFC15118: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC15118: 24080001 addiu $t0, $zero, 1 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -53697,10 +65964,16 @@ label_BFC15118: /* 0xBFC15124: AC287520 sw $t0, 29984($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (29984)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15124u); return; } g_debug_last_store_pc = 0xBFC15124u; cpu->write_word(psx_addr, cpu->gpr[8]); } label_BFC15128: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC15128: 24010047 addiu $at, $zero, 71 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (71)); label_BFC1512C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1512C: 10610007 beq $v1, $at, 0xBFC1514C */ uint32_t psx_brA_BFC1512C = cpu->gpr[3]; uint32_t psx_brB_BFC1512C = cpu->gpr[1]; @@ -53709,6 +65982,9 @@ label_BFC1512C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (78)); if (psx_taken_BFC1512C) goto label_BFC1514C; label_BFC15134: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15134: 10610007 beq $v1, $at, 0xBFC15154 */ uint32_t psx_brA_BFC15134 = cpu->gpr[3]; uint32_t psx_brB_BFC15134 = cpu->gpr[1]; @@ -53717,6 +65993,9 @@ label_BFC15134: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (255)); if (psx_taken_BFC15134) goto label_BFC15154; label_BFC1513C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1513C: 10610007 beq $v1, $at, 0xBFC1515C */ uint32_t psx_brA_BFC1513C = cpu->gpr[3]; uint32_t psx_brB_BFC1513C = cpu->gpr[1]; @@ -53725,6 +66004,9 @@ label_BFC1513C: /* nop */ if (psx_taken_BFC1513C) goto label_BFC1515C; label_BFC15144: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15144: 10000007 beq $zero, $zero, 0xBFC15164 */ uint32_t psx_brA_BFC15144 = cpu->gpr[0]; uint32_t psx_brB_BFC15144 = cpu->gpr[0]; @@ -53733,6 +66015,9 @@ label_BFC15144: /* nop */ if (psx_taken_BFC15144) goto label_BFC15164; label_BFC1514C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1514C: 1000000A beq $zero, $zero, 0xBFC15178 */ uint32_t psx_brA_BFC1514C = cpu->gpr[0]; uint32_t psx_brB_BFC1514C = cpu->gpr[0]; @@ -53741,6 +66026,9 @@ label_BFC1514C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC1514C) goto label_BFC15178; label_BFC15154: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15154: 10000008 beq $zero, $zero, 0xBFC15178 */ uint32_t psx_brA_BFC15154 = cpu->gpr[0]; uint32_t psx_brB_BFC15154 = cpu->gpr[0]; @@ -53749,6 +66037,9 @@ label_BFC15154: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC15154) goto label_BFC15178; label_BFC1515C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1515C: 10000006 beq $zero, $zero, 0xBFC15178 */ uint32_t psx_brA_BFC1515C = cpu->gpr[0]; uint32_t psx_brB_BFC1515C = cpu->gpr[0]; @@ -53757,6 +66048,9 @@ label_BFC1515C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC1515C) goto label_BFC15178; label_BFC15164: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15164: 10000004 beq $zero, $zero, 0xBFC15178 */ uint32_t psx_brA_BFC15164 = cpu->gpr[0]; uint32_t psx_brB_BFC15164 = cpu->gpr[0]; @@ -53765,6 +66059,9 @@ label_BFC15164: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC15164) goto label_BFC15178; label_BFC1516C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1516C: 10000002 beq $zero, $zero, 0xBFC15178 */ uint32_t psx_brA_BFC1516C = cpu->gpr[0]; uint32_t psx_brB_BFC1516C = cpu->gpr[0]; @@ -53773,10 +66070,16 @@ label_BFC1516C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC1516C) goto label_BFC15178; label_BFC15174: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC15174: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC15178: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC15178: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15178u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -53791,6 +66094,9 @@ label_BFC15178: void func_00005688(CPUState* cpu) { debug_server_log_call_entry(0x00005688u); label_BFC15188: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC15188: 3C070000 lui $a3, 0x0 */ cpu->gpr[7] = 0x00000000u; @@ -53829,6 +66135,9 @@ label_BFC15188: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC151C8u); return; } g_debug_last_store_pc = 0xBFC151C8u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC151C4) { cpu->pc = 0xBFC15648u; return; } label_BFC151CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC151CC: 0018C080 sll $t8, $t8, 2 */ cpu->gpr[24] = cpu->gpr[24] << 2u; @@ -53849,6 +66158,9 @@ label_BFC151CC: void func_000056E8(CPUState* cpu) { debug_server_log_call_entry(0x000056E8u); label_BFC151E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC151E8: 14E00004 bne $a3, $zero, 0xBFC151FC */ uint32_t psx_brA_BFC151E8 = cpu->gpr[7]; uint32_t psx_brB_BFC151E8 = cpu->gpr[0]; @@ -53857,6 +66169,9 @@ label_BFC151E8: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (8192)); if (psx_taken_BFC151E8) goto label_BFC151FC; label_BFC151F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC151F0: 10000002 beq $zero, $zero, 0xBFC151FC */ uint32_t psx_brA_BFC151F0 = cpu->gpr[0]; uint32_t psx_brB_BFC151F0 = cpu->gpr[0]; @@ -53865,10 +66180,16 @@ label_BFC151F0: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC151F0) goto label_BFC151FC; label_BFC151F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC151F8: 24022000 addiu $v0, $zero, 8192 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (8192)); label_BFC151FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(27u); +#endif psx_check_interrupts(cpu); /* 0xBFC151FC: 3C030000 lui $v1, 0x0 */ cpu->gpr[3] = 0x00000000u; @@ -53932,6 +66253,9 @@ label_BFC151FC: void func_00005768(CPUState* cpu) { debug_server_log_call_entry(0x00005768u); label_BFC15268: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC15268: 3C030000 lui $v1, 0x0 */ cpu->gpr[3] = 0x00000000u; @@ -53976,6 +66300,9 @@ void func_0000579C(CPUState* cpu) { } } label_BFC1529C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC1529C: 3C030000 lui $v1, 0x0 */ cpu->gpr[3] = 0x00000000u; @@ -54012,6 +66339,9 @@ label_BFC1529C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC152D4) { cpu->pc = 0xBFC15654u; return; } label_BFC152DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC152DC: 30890008 andi $t1, $a0, 0x8 */ cpu->gpr[9] = cpu->gpr[4] & 0x8u; @@ -54022,6 +66352,9 @@ label_BFC152DC: cpu->gpr[1] = 0x00000000u; if (psx_taken_BFC152E0) { cpu->pc = 0xBFC15650u; return; } label_BFC152E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC152E8: AC2074C0 sw $zero, 29888($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (29888)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC152E8u); return; } g_debug_last_store_pc = 0xBFC152E8u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -54045,6 +66378,9 @@ label_BFC152E8: cpu->gpr[31] = 0x00005810u; psx_dispatch(cpu, 0x00006B60u); label_BFC15310: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC15310: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -54056,6 +66392,9 @@ label_BFC15310: cpu->gpr[31] = 0x00005820u; psx_dispatch(cpu, 0x00001B44u); label_BFC15320: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC15320: 240C0001 addiu $t4, $zero, 1 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -54075,6 +66414,9 @@ label_BFC15320: void func_00005834(CPUState* cpu) { debug_server_log_call_entry(0x00005834u); label_BFC15334: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC15334: 3C030000 lui $v1, 0x0 */ cpu->gpr[3] = 0x00000000u; @@ -54105,6 +66447,9 @@ label_BFC15334: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[24] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15364u); return; } g_debug_last_store_pc = 0xBFC15364u; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC15360) { cpu->pc = 0xBFC15650u; return; } label_BFC15368: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15368: 100000BA beq $zero, $zero, 0xBFC15654 */ uint32_t psx_brA_BFC15368 = cpu->gpr[0]; uint32_t psx_brB_BFC15368 = cpu->gpr[0]; @@ -54118,6 +66463,9 @@ label_BFC15368: void func_00005870(CPUState* cpu) { debug_server_log_call_entry(0x00005870u); label_BFC15370: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC15370: 3C030000 lui $v1, 0x0 */ cpu->gpr[3] = 0x00000000u; @@ -54152,6 +66500,9 @@ label_BFC15370: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[12] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC153A8u); return; } g_debug_last_store_pc = 0xBFC153A8u; cpu->write_word(psx_addr, cpu->gpr[11]); } if (psx_taken_BFC153A4) { cpu->pc = 0xBFC15650u; return; } label_BFC153AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC153AC: 100000A9 beq $zero, $zero, 0xBFC15654 */ uint32_t psx_brA_BFC153AC = cpu->gpr[0]; uint32_t psx_brB_BFC153AC = cpu->gpr[0]; @@ -54165,6 +66516,9 @@ label_BFC153AC: void func_000058B4(CPUState* cpu) { debug_server_log_call_entry(0x000058B4u); label_BFC153B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC153B4: 3C030000 lui $v1, 0x0 */ cpu->gpr[3] = 0x00000000u; @@ -54200,6 +66554,9 @@ label_BFC153B4: void func_000058E8(CPUState* cpu) { debug_server_log_call_entry(0x000058E8u); label_BFC153E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC153E8: 3C030000 lui $v1, 0x0 */ cpu->gpr[3] = 0x00000000u; @@ -54233,6 +66590,9 @@ label_BFC153E8: void func_00005918(CPUState* cpu) { debug_server_log_call_entry(0x00005918u); label_BFC15418: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC15418: 3C030000 lui $v1, 0x0 */ cpu->gpr[3] = 0x00000000u; @@ -54263,6 +66623,9 @@ label_BFC15418: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[15] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15448u); return; } g_debug_last_store_pc = 0xBFC15448u; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC15444) { cpu->pc = 0xBFC15650u; return; } label_BFC1544C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1544C: 10000081 beq $zero, $zero, 0xBFC15654 */ uint32_t psx_brA_BFC1544C = cpu->gpr[0]; uint32_t psx_brB_BFC1544C = cpu->gpr[0]; @@ -54276,6 +66639,9 @@ label_BFC1544C: void func_00005954(CPUState* cpu) { debug_server_log_call_entry(0x00005954u); label_BFC15454: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC15454: 3C030000 lui $v1, 0x0 */ cpu->gpr[3] = 0x00000000u; @@ -54306,6 +66672,9 @@ label_BFC15454: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15484u); return; } g_debug_last_store_pc = 0xBFC15484u; cpu->write_word(psx_addr, cpu->gpr[8]); } if (psx_taken_BFC15480) { cpu->pc = 0xBFC15650u; return; } label_BFC15488: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15488: 10000072 beq $zero, $zero, 0xBFC15654 */ uint32_t psx_brA_BFC15488 = cpu->gpr[0]; uint32_t psx_brB_BFC15488 = cpu->gpr[0]; @@ -54319,6 +66688,9 @@ label_BFC15488: void func_00005990(CPUState* cpu) { debug_server_log_call_entry(0x00005990u); label_BFC15490: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC15490: 3C030000 lui $v1, 0x0 */ cpu->gpr[3] = 0x00000000u; @@ -54351,6 +66723,9 @@ label_BFC15490: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[13] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC154C4u); return; } g_debug_last_store_pc = 0xBFC154C4u; cpu->write_word(psx_addr, cpu->gpr[12]); } if (psx_taken_BFC154C0) { cpu->pc = 0xBFC154D0u; return; } label_BFC154C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC154C8: 10000062 beq $zero, $zero, 0xBFC15654 */ uint32_t psx_brA_BFC154C8 = cpu->gpr[0]; uint32_t psx_brB_BFC154C8 = cpu->gpr[0]; @@ -54372,10 +66747,16 @@ void func_000059CC(CPUState* cpu) { } } label_BFC154CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC154CC: 2402FFFF addiu $v0, $zero, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); label_BFC154D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC154D0: 30CE00FF andi $t6, $a2, 0xFF */ cpu->gpr[14] = cpu->gpr[6] & 0xFFu; @@ -54409,6 +66790,9 @@ label_BFC154D0: void func_00005A00(CPUState* cpu) { debug_server_log_call_entry(0x00005A00u); label_BFC15500: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15500: 3C030000 lui $v1, 0x0 */ cpu->gpr[3] = 0x00000000u; @@ -54420,6 +66804,9 @@ label_BFC15500: void func_00005A08(CPUState* cpu) { debug_server_log_call_entry(0x00005A08u); label_BFC15508: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC15508: 8C637258 lw $v1, 29272($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (29272)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15508u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -54452,6 +66839,9 @@ label_BFC15508: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[13] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1553Cu); return; } g_debug_last_store_pc = 0xBFC1553Cu; cpu->write_word(psx_addr, cpu->gpr[12]); } if (psx_taken_BFC15538) { cpu->pc = 0xBFC15548u; return; } label_BFC15540: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC15540: 10000044 beq $zero, $zero, 0xBFC15654 */ uint32_t psx_brA_BFC15540 = cpu->gpr[0]; uint32_t psx_brB_BFC15540 = cpu->gpr[0]; @@ -54474,10 +66864,16 @@ void func_00005A44(CPUState* cpu) { } } label_BFC15544: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC15544: 2402FFFF addiu $v0, $zero, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); label_BFC15548: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15548: 0C0018E0 jal 0xB0006380 */ /* 0xBFC1554C: 00000000 nop */ @@ -54485,6 +66881,9 @@ label_BFC15548: cpu->gpr[31] = 0x00005A50u; psx_dispatch(cpu, 0x00006380u); label_BFC15550: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15550: 10000040 beq $zero, $zero, 0xBFC15654 */ uint32_t psx_brA_BFC15550 = cpu->gpr[0]; uint32_t psx_brB_BFC15550 = cpu->gpr[0]; @@ -54498,6 +66897,9 @@ label_BFC15550: void func_00005A58(CPUState* cpu) { debug_server_log_call_entry(0x00005A58u); label_BFC15558: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC15558: 3C030000 lui $v1, 0x0 */ cpu->gpr[3] = 0x00000000u; @@ -54525,6 +66927,9 @@ label_BFC15558: void func_00005A80(CPUState* cpu) { debug_server_log_call_entry(0x00005A80u); label_BFC15580: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC15580: 3C0A0000 lui $t2, 0x0 */ cpu->gpr[10] = 0x00000000u; @@ -54558,6 +66963,9 @@ label_BFC15580: void func_00005AB0(CPUState* cpu) { debug_server_log_call_entry(0x00005AB0u); label_BFC155B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC155B0: 3C030000 lui $v1, 0x0 */ cpu->gpr[3] = 0x00000000u; @@ -54571,6 +66979,9 @@ label_BFC155B0: void func_00005ABC(CPUState* cpu) { debug_server_log_call_entry(0x00005ABCu); label_BFC155BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC155BC: 90640000 lbu $a0, 0($v1) */ cpu->gpr[4] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[3] + (0))); @@ -54618,6 +67029,9 @@ void func_00005AF8(CPUState* cpu) { } } label_BFC155F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC155F8: 10000016 beq $zero, $zero, 0xBFC15654 */ uint32_t psx_brA_BFC155F8 = cpu->gpr[0]; uint32_t psx_brB_BFC155F8 = cpu->gpr[0]; @@ -54626,6 +67040,9 @@ label_BFC155F8: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC155F8) { cpu->pc = 0xBFC15654u; return; } label_BFC15600: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC15600: 946A0004 lhu $t2, 4($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15600u); return; } cpu->gpr[10] = (uint32_t)cpu->read_half(psx_addr); } @@ -54640,6 +67057,9 @@ label_BFC15600: /* nop */ if (psx_taken_BFC1560C) goto label_BFC15628; label_BFC15614: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC15614: 946C0004 lhu $t4, 4($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15614u); return; } cpu->gpr[12] = (uint32_t)cpu->read_half(psx_addr); } @@ -54654,6 +67074,9 @@ label_BFC15614: /* nop */ if (psx_taken_BFC15620) goto label_BFC15614; label_BFC15628: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC15628: 90640000 lbu $a0, 0($v1) */ cpu->gpr[4] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[3] + (0))); @@ -54680,6 +67103,9 @@ void func_00005B34(CPUState* cpu) { } } label_BFC15634: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC15634: 00000000 nop */ /* nop */ @@ -54690,6 +67116,9 @@ label_BFC15634: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC15638) { cpu->pc = 0xBFC15654u; return; } label_BFC15640: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15640: 10000004 beq $zero, $zero, 0xBFC15654 */ uint32_t psx_brA_BFC15640 = cpu->gpr[0]; uint32_t psx_brB_BFC15640 = cpu->gpr[0]; @@ -54698,6 +67127,9 @@ label_BFC15640: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC15640) { cpu->pc = 0xBFC15654u; return; } label_BFC15648: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15648: 10000002 beq $zero, $zero, 0xBFC15654 */ uint32_t psx_brA_BFC15648 = cpu->gpr[0]; uint32_t psx_brB_BFC15648 = cpu->gpr[0]; @@ -54711,6 +67143,9 @@ label_BFC15648: void func_00005B50(CPUState* cpu) { debug_server_log_call_entry(0x00005B50u); label_BFC15650: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC15650: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; @@ -54720,6 +67155,9 @@ label_BFC15650: void func_00005B54(CPUState* cpu) { debug_server_log_call_entry(0x00005B54u); label_BFC15654: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC15654: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15654u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -54734,6 +67172,9 @@ label_BFC15654: void func_00005B64(CPUState* cpu) { debug_server_log_call_entry(0x00005B64u); label_BFC15664: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC15664: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -54756,6 +67197,9 @@ label_BFC15664: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15684u); return; } g_debug_last_store_pc = 0xBFC15684u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC15680) { cpu->pc = 0xBFC1588Cu; return; } label_BFC15688: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC15688: 000E7080 sll $t6, $t6, 2 */ cpu->gpr[14] = cpu->gpr[14] << 2u; @@ -54776,6 +67220,9 @@ label_BFC15688: void func_00005BA4(CPUState* cpu) { debug_server_log_call_entry(0x00005BA4u); label_BFC156A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC156A4: 14800004 bne $a0, $zero, 0xBFC156B8 */ uint32_t psx_brA_BFC156A4 = cpu->gpr[4]; uint32_t psx_brB_BFC156A4 = cpu->gpr[0]; @@ -54784,6 +67231,9 @@ label_BFC156A4: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (8192)); if (psx_taken_BFC156A4) goto label_BFC156B8; label_BFC156AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC156AC: 10000002 beq $zero, $zero, 0xBFC156B8 */ uint32_t psx_brA_BFC156AC = cpu->gpr[0]; uint32_t psx_brB_BFC156AC = cpu->gpr[0]; @@ -54792,10 +67242,16 @@ label_BFC156AC: cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC156AC) goto label_BFC156B8; label_BFC156B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC156B4: 24032000 addiu $v1, $zero, 8192 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (8192)); label_BFC156B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(27u); +#endif psx_check_interrupts(cpu); /* 0xBFC156B8: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -54859,6 +67315,9 @@ label_BFC156B8: void func_00005C24(CPUState* cpu) { debug_server_log_call_entry(0x00005C24u); label_BFC15724: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC15724: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -54905,6 +67364,9 @@ void func_00005C58(CPUState* cpu) { } } label_BFC15758: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC15758: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -54941,6 +67403,9 @@ label_BFC15758: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC15790) { cpu->pc = 0xBFC15898u; return; } label_BFC15798: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC15798: 30790004 andi $t9, $v1, 0x4 */ cpu->gpr[25] = cpu->gpr[3] & 0x4u; @@ -54951,6 +67416,9 @@ label_BFC15798: cpu->gpr[1] = 0x00000000u; if (psx_taken_BFC1579C) goto label_BFC157F0; label_BFC157A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC157A4: AC2074C0 sw $zero, 29888($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (29888)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC157A4u); return; } g_debug_last_store_pc = 0xBFC157A4u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -54974,6 +67442,9 @@ label_BFC157A4: cpu->gpr[31] = 0x00005CCCu; psx_dispatch(cpu, 0x00006B40u); label_BFC157CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC157CC: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -54985,6 +67456,9 @@ label_BFC157CC: cpu->gpr[31] = 0x00005CDCu; psx_dispatch(cpu, 0x00001B44u); label_BFC157DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC157DC: 240A0001 addiu $t2, $zero, 1 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -54999,6 +67473,9 @@ label_BFC157DC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC157E8) { cpu->pc = 0xBFC15898u; return; } label_BFC157F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC157F0: 306B0008 andi $t3, $v1, 0x8 */ cpu->gpr[11] = cpu->gpr[3] & 0x8u; @@ -55009,6 +67486,9 @@ label_BFC157F0: cpu->gpr[1] = 0x00000000u; if (psx_taken_BFC157F4) { cpu->pc = 0xBFC15894u; return; } label_BFC157FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC157FC: AC2074C0 sw $zero, 29888($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (29888)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC157FCu); return; } g_debug_last_store_pc = 0xBFC157FCu; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -55032,6 +67512,9 @@ label_BFC157FC: cpu->gpr[31] = 0x00005D24u; psx_dispatch(cpu, 0x00006B60u); label_BFC15824: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC15824: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -55043,6 +67526,9 @@ label_BFC15824: cpu->gpr[31] = 0x00005D34u; psx_dispatch(cpu, 0x00001B44u); label_BFC15834: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC15834: 240E0001 addiu $t6, $zero, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -55070,6 +67556,9 @@ void func_00005D48(CPUState* cpu) { } } label_BFC15848: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC15848: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -55100,6 +67589,9 @@ label_BFC15848: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[8] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15878u); return; } g_debug_last_store_pc = 0xBFC15878u; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC15874) goto label_BFC15884; label_BFC1587C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1587C: 10000006 beq $zero, $zero, 0xBFC15898 */ uint32_t psx_brA_BFC1587C = cpu->gpr[0]; uint32_t psx_brB_BFC1587C = cpu->gpr[0]; @@ -55108,6 +67600,9 @@ label_BFC1587C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC1587C) { cpu->pc = 0xBFC15898u; return; } label_BFC15884: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15884: 10000004 beq $zero, $zero, 0xBFC15898 */ uint32_t psx_brA_BFC15884 = cpu->gpr[0]; uint32_t psx_brB_BFC15884 = cpu->gpr[0]; @@ -55116,6 +67611,9 @@ label_BFC15884: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC15884) { cpu->pc = 0xBFC15898u; return; } label_BFC1588C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1588C: 10000002 beq $zero, $zero, 0xBFC15898 */ uint32_t psx_brA_BFC1588C = cpu->gpr[0]; uint32_t psx_brB_BFC1588C = cpu->gpr[0]; @@ -55129,6 +67627,9 @@ label_BFC1588C: void func_00005D94(CPUState* cpu) { debug_server_log_call_entry(0x00005D94u); label_BFC15894: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC15894: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; @@ -55138,6 +67639,9 @@ label_BFC15894: void func_00005D98(CPUState* cpu) { debug_server_log_call_entry(0x00005D98u); label_BFC15898: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC15898: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15898u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -55162,6 +67666,9 @@ void func_00005DA8(CPUState* cpu) { } } label_BFC158A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC158A8: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -55173,6 +67680,9 @@ label_BFC158A8: cpu->gpr[31] = 0x00005DB8u; psx_dispatch(cpu, 0x00004A94u); label_BFC158B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC158B8: 3C010000 lui $at, 0x0 */ cpu->gpr[1] = 0x00000000u; @@ -55220,6 +67730,9 @@ label_BFC158B8: cpu->gpr[31] = 0x00005E10u; psx_dispatch(cpu, 0x000063BCu); label_BFC15910: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15910: 0C001353 jal 0xB0004D4C */ /* 0xBFC15914: 24040001 addiu $a0, $zero, 1 */ @@ -55227,6 +67740,9 @@ label_BFC15910: cpu->gpr[31] = 0x00005E18u; psx_dispatch(cpu, 0x00004D4Cu); label_BFC15918: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC15918: 8FA80020 lw $t0, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15918u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -55245,6 +67761,9 @@ label_BFC15918: void func_00005E30(CPUState* cpu) { debug_server_log_call_entry(0x00005E30u); label_BFC15930: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC15930: 3C0E0000 lui $t6, 0x0 */ cpu->gpr[14] = 0x00000000u; @@ -55267,6 +67786,9 @@ label_BFC15930: void func_00005E50(CPUState* cpu) { debug_server_log_call_entry(0x00005E50u); label_BFC15950: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC15950: 3C0E0000 lui $t6, 0x0 */ cpu->gpr[14] = 0x00000000u; @@ -55279,10 +67801,16 @@ label_BFC15950: cpu->gpr[1] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC15958) goto label_BFC15964; label_BFC15960: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC15960: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC15964: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC15964: 00011903 sra $v1, $at, 4 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -55301,6 +67829,9 @@ label_BFC15964: /* nop */ if (psx_taken_BFC15978) goto label_BFC15990; label_BFC15980: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15980: 04A00003 bltz $a1, 0xBFC15990 */ uint32_t psx_brA_BFC15980 = cpu->gpr[5]; @@ -55309,6 +67840,9 @@ label_BFC15980: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[5] < (1025) ? 1 : 0); if (psx_taken_BFC15980) goto label_BFC15990; label_BFC15988: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15988: 14200003 bne $at, $zero, 0xBFC15998 */ uint32_t psx_brA_BFC15988 = cpu->gpr[1]; uint32_t psx_brB_BFC15988 = cpu->gpr[0]; @@ -55317,6 +67851,9 @@ label_BFC15988: /* nop */ if (psx_taken_BFC15988) { cpu->pc = 0xBFC15998u; return; } label_BFC15990: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15990: 03E00008 jr $ra */ /* 0xBFC15994: 00001021 addu $v0, $zero, $zero */ @@ -55327,6 +67864,9 @@ label_BFC15990: void func_00005E98(CPUState* cpu) { debug_server_log_call_entry(0x00005E98u); label_BFC15998: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(27u); +#endif psx_check_interrupts(cpu); /* 0xBFC15998: 3C010000 lui $at, 0x0 */ cpu->gpr[1] = 0x00000000u; @@ -55387,6 +67927,9 @@ label_BFC15998: void func_00005F04(CPUState* cpu) { debug_server_log_call_entry(0x00005F04u); label_BFC15A04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC15A04: 3C0E0000 lui $t6, 0x0 */ cpu->gpr[14] = 0x00000000u; @@ -55399,10 +67942,16 @@ label_BFC15A04: cpu->gpr[1] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC15A0C) goto label_BFC15A18; label_BFC15A14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC15A14: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC15A18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC15A18: 00011903 sra $v1, $at, 4 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -55421,6 +67970,9 @@ label_BFC15A18: /* nop */ if (psx_taken_BFC15A2C) goto label_BFC15A44; label_BFC15A34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15A34: 04A00003 bltz $a1, 0xBFC15A44 */ uint32_t psx_brA_BFC15A34 = cpu->gpr[5]; @@ -55429,6 +67981,9 @@ label_BFC15A34: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[5] < (1025) ? 1 : 0); if (psx_taken_BFC15A34) goto label_BFC15A44; label_BFC15A3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15A3C: 14200003 bne $at, $zero, 0xBFC15A4C */ uint32_t psx_brA_BFC15A3C = cpu->gpr[1]; uint32_t psx_brB_BFC15A3C = cpu->gpr[0]; @@ -55437,6 +67992,9 @@ label_BFC15A3C: /* nop */ if (psx_taken_BFC15A3C) { cpu->pc = 0xBFC15A4Cu; return; } label_BFC15A44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15A44: 03E00008 jr $ra */ /* 0xBFC15A48: 00001021 addu $v0, $zero, $zero */ @@ -55447,6 +68005,9 @@ label_BFC15A44: void func_00005F4C(CPUState* cpu) { debug_server_log_call_entry(0x00005F4Cu); label_BFC15A4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(27u); +#endif psx_check_interrupts(cpu); /* 0xBFC15A4C: 3C010000 lui $at, 0x0 */ cpu->gpr[1] = 0x00000000u; @@ -55507,6 +68068,9 @@ label_BFC15A4C: void func_00005FB8(CPUState* cpu) { debug_server_log_call_entry(0x00005FB8u); label_BFC15AB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC15AB8: 3C0E0000 lui $t6, 0x0 */ cpu->gpr[14] = 0x00000000u; @@ -55519,10 +68083,16 @@ label_BFC15AB8: cpu->gpr[1] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC15AC0) goto label_BFC15ACC; label_BFC15AC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC15AC8: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC15ACC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC15ACC: 00011903 sra $v1, $at, 4 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -55541,6 +68111,9 @@ label_BFC15ACC: /* nop */ if (psx_taken_BFC15AE0) { cpu->pc = 0xBFC15AF0u; return; } label_BFC15AE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15AE8: 03E00008 jr $ra */ /* 0xBFC15AEC: 00001021 addu $v0, $zero, $zero */ @@ -55551,6 +68124,9 @@ label_BFC15AE8: void func_00005FF0(CPUState* cpu) { debug_server_log_call_entry(0x00005FF0u); label_BFC15AF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(27u); +#endif psx_check_interrupts(cpu); /* 0xBFC15AF0: 3C010000 lui $at, 0x0 */ cpu->gpr[1] = 0x00000000u; @@ -55611,6 +68187,9 @@ label_BFC15AF0: void func_0000605C(CPUState* cpu) { debug_server_log_call_entry(0x0000605Cu); label_BFC15B5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC15B5C: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -55627,6 +68206,9 @@ label_BFC15B5C: void func_00006070(CPUState* cpu) { debug_server_log_call_entry(0x00006070u); label_BFC15B70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC15B70: 3C0E0000 lui $t6, 0x0 */ cpu->gpr[14] = 0x00000000u; @@ -55635,6 +68217,9 @@ label_BFC15B70: /* 0xBFC15B78: 008E1821 addu $v1, $a0, $t6 */ cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[14]; label_BFC15B7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC15B7C: 90620000 lbu $v0, 0($v1) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[3] + (0))); @@ -55649,6 +68234,9 @@ label_BFC15B7C: /* nop */ if (psx_taken_BFC15B88) goto label_BFC15B7C; label_BFC15B90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC15B90: 90620000 lbu $v0, 0($v1) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[3] + (0))); @@ -55673,6 +68261,9 @@ void func_0000609C(CPUState* cpu) { } } label_BFC15B9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC15B9C: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -55693,6 +68284,9 @@ label_BFC15B9C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15BB8u); return; } g_debug_last_store_pc = 0xBFC15BB8u; cpu->write_word(psx_addr, cpu->gpr[7]); } if (psx_taken_BFC15BB4) goto label_BFC15BD0; label_BFC15BBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC15BBC: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -55702,6 +68296,9 @@ label_BFC15BBC: cpu->gpr[31] = 0x000060C8u; psx_dispatch(cpu, 0x00006AE0u); label_BFC15BC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15BC8: 1000003A beq $zero, $zero, 0xBFC15CB4 */ uint32_t psx_brA_BFC15BC8 = cpu->gpr[0]; uint32_t psx_brB_BFC15BC8 = cpu->gpr[0]; @@ -55710,6 +68307,9 @@ label_BFC15BC8: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC15BC8) goto label_BFC15CB4; label_BFC15BD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC15BD0: 3C012000 lui $at, 0x2000 */ cpu->gpr[1] = 0x20000000u; @@ -55720,6 +68320,9 @@ label_BFC15BD0: cpu->gpr[1] = 0x20000000u; if (psx_taken_BFC15BD4) goto label_BFC15BE8; label_BFC15BDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC15BDC: 34210001 ori $at, $at, 0x1 */ cpu->gpr[1] = cpu->gpr[1] | 0x1u; @@ -55730,6 +68333,9 @@ label_BFC15BDC: /* nop */ if (psx_taken_BFC15BE0) goto label_BFC15CA4; label_BFC15BE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC15BE8: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -55739,6 +68345,9 @@ label_BFC15BE8: cpu->gpr[31] = 0x000060F4u; psx_dispatch(cpu, 0x00006AE0u); label_BFC15BF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC15BF4: 240E00FF addiu $t6, $zero, 255 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (255)); @@ -55781,6 +68390,9 @@ label_BFC15BF4: /* 0xBFC15C40: A0397571 sb $t9, 30065($at) */ g_debug_last_store_pc = 0xBFC15C40u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[1] + (30065)), (uint8_t)(cpu->gpr[25] & 0xFFu)); label_BFC15C44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC15C44: A0820000 sb $v0, 0($a0) */ g_debug_last_store_pc = 0xBFC15C44u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (0)), (uint8_t)(cpu->gpr[2] & 0xFFu)); @@ -55807,6 +68419,9 @@ label_BFC15C44: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (4)); if (psx_taken_BFC15C68) goto label_BFC15C44; label_BFC15C70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC15C70: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -55824,6 +68439,9 @@ label_BFC15C70: cpu->gpr[31] = 0x0000618Cu; psx_dispatch(cpu, 0x00004AC8u); label_BFC15C8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC15C8C: 8FA80024 lw $t0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15C8Cu); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -55835,6 +68453,9 @@ label_BFC15C8C: cpu->gpr[31] = 0x0000619Cu; psx_dispatch(cpu, 0x00004B90u); label_BFC15C9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15C9C: 10000005 beq $zero, $zero, 0xBFC15CB4 */ uint32_t psx_brA_BFC15C9C = cpu->gpr[0]; uint32_t psx_brB_BFC15C9C = cpu->gpr[0]; @@ -55843,6 +68464,9 @@ label_BFC15C9C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC15C9C) goto label_BFC15CB4; label_BFC15CA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC15CA4: 3C040000 lui $a0, 0x0 */ cpu->gpr[4] = 0x00000000u; @@ -55852,10 +68476,16 @@ label_BFC15CA4: cpu->gpr[31] = 0x000061B0u; psx_dispatch(cpu, 0x00006AE0u); label_BFC15CB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC15CB0: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC15CB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC15CB4: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15CB4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -55870,6 +68500,9 @@ label_BFC15CB4: void func_000061C4(CPUState* cpu) { debug_server_log_call_entry(0x000061C4u); label_BFC15CC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC15CC4: 3C030000 lui $v1, 0x0 */ cpu->gpr[3] = 0x00000000u; @@ -55892,6 +68525,9 @@ label_BFC15CC4: /* nop */ if (psx_taken_BFC15CE0) goto label_BFC15CF0; label_BFC15CE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15CE8: 1000002F beq $zero, $zero, 0xBFC15DA8 */ uint32_t psx_brA_BFC15CE8 = cpu->gpr[0]; uint32_t psx_brB_BFC15CE8 = cpu->gpr[0]; @@ -55900,6 +68536,9 @@ label_BFC15CE8: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (35)); if (psx_taken_BFC15CE8) goto label_BFC15DA8; label_BFC15CF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC15CF0: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -55914,6 +68553,9 @@ label_BFC15CF0: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (35)); if (psx_taken_BFC15CFC) goto label_BFC15D10; label_BFC15D04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15D04: 10000004 beq $zero, $zero, 0xBFC15D18 */ uint32_t psx_brA_BFC15D04 = cpu->gpr[0]; uint32_t psx_brB_BFC15D04 = cpu->gpr[0]; @@ -55922,10 +68564,16 @@ label_BFC15D04: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (35)); if (psx_taken_BFC15D04) goto label_BFC15D18; label_BFC15D0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC15D0C: 24040023 addiu $a0, $zero, 35 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (35)); label_BFC15D10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15D10: 14440025 bne $v0, $a0, 0xBFC15DA8 */ uint32_t psx_brA_BFC15D10 = cpu->gpr[2]; uint32_t psx_brB_BFC15D10 = cpu->gpr[4]; @@ -55934,6 +68582,9 @@ label_BFC15D10: /* nop */ if (psx_taken_BFC15D10) goto label_BFC15DA8; label_BFC15D18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC15D18: 3C180000 lui $t8, 0x0 */ cpu->gpr[24] = 0x00000000u; @@ -55964,6 +68615,9 @@ label_BFC15D18: /* nop */ if (psx_taken_BFC15D44) goto label_BFC15DA8; label_BFC15D4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC15D4C: 946C0000 lhu $t4, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15D4Cu); return; } cpu->gpr[12] = (uint32_t)cpu->read_half(psx_addr); } @@ -55986,6 +68640,9 @@ label_BFC15D4C: /* nop */ if (psx_taken_BFC15D68) goto label_BFC15D80; label_BFC15D70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC15D70: 946F0000 lhu $t7, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15D70u); return; } cpu->gpr[15] = (uint32_t)cpu->read_half(psx_addr); } @@ -55996,6 +68653,9 @@ label_BFC15D70: /* 0xBFC15D7C: A4780000 sh $t8, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15D7Cu); return; } g_debug_last_store_pc = 0xBFC15D7Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[24] & 0xFFFFu)); } label_BFC15D80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC15D80: 3C080000 lui $t0, 0x0 */ cpu->gpr[8] = 0x00000000u; @@ -56012,6 +68672,9 @@ label_BFC15D80: /* nop */ if (psx_taken_BFC15D90) goto label_BFC15DA8; label_BFC15D98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC15D98: 94790000 lhu $t9, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15D98u); return; } cpu->gpr[25] = (uint32_t)cpu->read_half(psx_addr); } @@ -56022,6 +68685,9 @@ label_BFC15D98: /* 0xBFC15DA4: A4690000 sh $t1, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15DA4u); return; } g_debug_last_store_pc = 0xBFC15DA4u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[9] & 0xFFFFu)); } label_BFC15DA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC15DA8: 3C0A0000 lui $t2, 0x0 */ cpu->gpr[10] = 0x00000000u; @@ -56036,6 +68702,9 @@ label_BFC15DA8: /* nop */ if (psx_taken_BFC15DB4) goto label_BFC15E68; label_BFC15DBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC15DBC: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -56050,6 +68719,9 @@ label_BFC15DBC: /* nop */ if (psx_taken_BFC15DC8) goto label_BFC15DD8; label_BFC15DD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15DD0: 14440025 bne $v0, $a0, 0xBFC15E68 */ uint32_t psx_brA_BFC15DD0 = cpu->gpr[2]; uint32_t psx_brB_BFC15DD0 = cpu->gpr[4]; @@ -56058,6 +68730,9 @@ label_BFC15DD0: /* nop */ if (psx_taken_BFC15DD0) goto label_BFC15E68; label_BFC15DD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC15DD8: 3C0B0000 lui $t3, 0x0 */ cpu->gpr[11] = 0x00000000u; @@ -56088,6 +68763,9 @@ label_BFC15DD8: /* nop */ if (psx_taken_BFC15E04) goto label_BFC15E68; label_BFC15E0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC15E0C: 94680002 lhu $t0, 2($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15E0Cu); return; } cpu->gpr[8] = (uint32_t)cpu->read_half(psx_addr); } @@ -56110,6 +68788,9 @@ label_BFC15E0C: /* nop */ if (psx_taken_BFC15E28) goto label_BFC15E40; label_BFC15E30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC15E30: 946A0002 lhu $t2, 2($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15E30u); return; } cpu->gpr[10] = (uint32_t)cpu->read_half(psx_addr); } @@ -56120,6 +68801,9 @@ label_BFC15E30: /* 0xBFC15E3C: A46B0002 sh $t3, 2($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15E3Cu); return; } g_debug_last_store_pc = 0xBFC15E3Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[11] & 0xFFFFu)); } label_BFC15E40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC15E40: 3C0D0000 lui $t5, 0x0 */ cpu->gpr[13] = 0x00000000u; @@ -56136,6 +68820,9 @@ label_BFC15E40: /* nop */ if (psx_taken_BFC15E50) goto label_BFC15E68; label_BFC15E58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC15E58: 946C0002 lhu $t4, 2($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15E58u); return; } cpu->gpr[12] = (uint32_t)cpu->read_half(psx_addr); } @@ -56146,6 +68833,9 @@ label_BFC15E58: /* 0xBFC15E64: A46E0002 sh $t6, 2($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15E64u); return; } g_debug_last_store_pc = 0xBFC15E64u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[14] & 0xFFFFu)); } label_BFC15E68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC15E68: 8C620000 lw $v0, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15E68u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -56158,6 +68848,9 @@ label_BFC15E68: void func_00006380(CPUState* cpu) { debug_server_log_call_entry(0x00006380u); label_BFC15E80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC15E80: 240E0001 addiu $t6, $zero, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -56172,6 +68865,9 @@ label_BFC15E80: void func_00006390(CPUState* cpu) { debug_server_log_call_entry(0x00006390u); label_BFC15E90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC15E90: 3C010000 lui $at, 0x0 */ cpu->gpr[1] = 0x00000000u; @@ -56200,6 +68896,9 @@ label_BFC15E90: void func_000063BC(CPUState* cpu) { debug_server_log_call_entry(0x000063BCu); label_BFC15EBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC15EBC: 3C010000 lui $at, 0x0 */ cpu->gpr[1] = 0x00000000u; @@ -56218,6 +68917,9 @@ label_BFC15EBC: /* 0xBFC15ED8: 277B6418 addiu $k1, $k1, 25624 */ cpu->gpr[27] = (uint32_t)((int32_t)cpu->gpr[27] + (25624)); label_BFC15EDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC15EDC: 8F430000 lw $v1, 0($k0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[26] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15EDCu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -56232,6 +68934,9 @@ label_BFC15EDC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15EECu); return; } g_debug_last_store_pc = 0xBFC15EECu; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC15EE8) goto label_BFC15EDC; label_BFC15EF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15EF0: 08001A9C j 0xB0006A70 */ /* 0xBFC15EF4: 00000000 nop */ @@ -56242,6 +68947,9 @@ label_BFC15EF0: void func_000063F8(CPUState* cpu) { debug_server_log_call_entry(0x000063F8u); label_BFC15EF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC15EF8: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -56264,6 +68972,9 @@ void func_00006408(CPUState* cpu) { } } label_BFC15F08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC15F08: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -56275,6 +68986,9 @@ label_BFC15F08: cpu->gpr[31] = 0x00006418u; psx_dispatch(cpu, cpu->gpr[2]); label_BFC15F18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC15F18: 00000000 nop */ /* nop */ @@ -56291,6 +69005,9 @@ label_BFC15F18: /* nop */ if (psx_taken_BFC15F28) goto label_BFC16094; label_BFC15F30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC15F30: 8C621070 lw $v0, 4208($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (4208)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15F30u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -56305,6 +69022,9 @@ label_BFC15F30: /* nop */ if (psx_taken_BFC15F3C) goto label_BFC16094; label_BFC15F44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC15F44: 8C621074 lw $v0, 4212($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (4212)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15F44u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -56319,6 +69039,9 @@ label_BFC15F44: /* nop */ if (psx_taken_BFC15F50) goto label_BFC16094; label_BFC15F58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC15F58: 3C020000 lui $v0, 0x0 */ cpu->gpr[2] = 0x00000000u; @@ -56337,6 +69060,9 @@ label_BFC15F58: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC15F6C) goto label_BFC1600C; label_BFC15F74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(29u); +#endif psx_check_interrupts(cpu); /* 0xBFC15F74: 3C1A0000 lui $k0, 0x0 */ cpu->gpr[26] = 0x00000000u; @@ -56399,16 +69125,25 @@ label_BFC15F74: cpu->gpr[1] = 0x00000000u; if (psx_taken_BFC15FE0) goto label_BFC15FEC; label_BFC15FE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC15FE8: A42075C0 sh $zero, 30144($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (30144)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC15FE8u); return; } g_debug_last_store_pc = 0xBFC15FE8u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } label_BFC15FEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC15FEC: 08001967 j 0xB000659C */ /* 0xBFC15FF0: 00000000 nop */ /* nop */ cpu->pc = 0x0000659Cu; return; label_BFC1600C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1600C: 14410021 bne $v0, $at, 0xBFC16094 */ uint32_t psx_brA_BFC1600C = cpu->gpr[2]; uint32_t psx_brB_BFC1600C = cpu->gpr[1]; @@ -56417,6 +69152,9 @@ label_BFC1600C: /* nop */ if (psx_taken_BFC1600C) goto label_BFC16094; label_BFC16014: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(29u); +#endif psx_check_interrupts(cpu); /* 0xBFC16014: 3C1A0000 lui $k0, 0x0 */ cpu->gpr[26] = 0x00000000u; @@ -56479,16 +69217,25 @@ label_BFC16014: cpu->gpr[1] = 0x00000000u; if (psx_taken_BFC16080) goto label_BFC1608C; label_BFC16088: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC16088: A42075C0 sh $zero, 30144($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (30144)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC16088u); return; } g_debug_last_store_pc = 0xBFC16088u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } label_BFC1608C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1608C: 08001967 j 0xB000659C */ /* 0xBFC16090: 00000000 nop */ /* nop */ cpu->pc = 0x0000659Cu; return; label_BFC16094: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC16094: 03E00008 jr $ra */ /* 0xBFC16098: 00000000 nop */ @@ -56499,6 +69246,9 @@ label_BFC16094: void func_0000659C(CPUState* cpu) { debug_server_log_call_entry(0x0000659Cu); label_BFC1609C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC1609C: 241A0100 addiu $k0, $zero, 256 */ cpu->gpr[26] = (uint32_t)((int32_t)cpu->gpr[0] + (256)); @@ -56541,6 +69291,9 @@ void func_00006670(CPUState* cpu) { } } label_BFC16170: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC16170: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -56558,6 +69311,9 @@ label_BFC16170: cpu->gpr[31] = 0x0000668Cu; psx_dispatch(cpu, 0x00002114u); label_BFC1618C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1618C: 93A50021 lbu $a1, 33($sp) */ cpu->gpr[5] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (33))); @@ -56576,6 +69332,9 @@ label_BFC1618C: /* nop */ if (psx_taken_BFC161A0) goto label_BFC164E0; label_BFC161A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC161A8: 000E7080 sll $t6, $t6, 2 */ cpu->gpr[14] = cpu->gpr[14] << 2u; @@ -56592,6 +69351,9 @@ label_BFC161A8: /* nop */ cpu->pc = cpu->gpr[14]; return; label_BFC161C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC161C4: 93A20020 lbu $v0, 32($sp) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (32))); @@ -56606,6 +69368,9 @@ label_BFC161C4: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000007Fu ? 1 : 0); if (psx_taken_BFC161D0) goto label_BFC161E8; label_BFC161D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC161D8: 10200004 beq $at, $zero, 0xBFC161EC */ uint32_t psx_brA_BFC161D8 = cpu->gpr[1]; uint32_t psx_brB_BFC161D8 = cpu->gpr[0]; @@ -56614,6 +69379,9 @@ label_BFC161D8: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000080u ? 1 : 0); if (psx_taken_BFC161D8) goto label_BFC161EC; label_BFC161E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC161E0: 1000002B beq $zero, $zero, 0xBFC16290 */ uint32_t psx_brA_BFC161E0 = cpu->gpr[0]; uint32_t psx_brB_BFC161E0 = cpu->gpr[0]; @@ -56622,10 +69390,16 @@ label_BFC161E0: cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC161E0) goto label_BFC16290; label_BFC161E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC161E8: 2C410080 sltiu $at, $v0, 128 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000080u ? 1 : 0); label_BFC161EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC161EC: 14200005 bne $at, $zero, 0xBFC16204 */ uint32_t psx_brA_BFC161EC = cpu->gpr[1]; uint32_t psx_brB_BFC161EC = cpu->gpr[0]; @@ -56634,6 +69408,9 @@ label_BFC161EC: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000ADu ? 1 : 0); if (psx_taken_BFC161EC) goto label_BFC16204; label_BFC161F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC161F4: 10200004 beq $at, $zero, 0xBFC16208 */ uint32_t psx_brA_BFC161F4 = cpu->gpr[1]; uint32_t psx_brB_BFC161F4 = cpu->gpr[0]; @@ -56642,6 +69419,9 @@ label_BFC161F4: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000B8u ? 1 : 0); if (psx_taken_BFC161F4) goto label_BFC16208; label_BFC161FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC161FC: 10000024 beq $zero, $zero, 0xBFC16290 */ uint32_t psx_brA_BFC161FC = cpu->gpr[0]; uint32_t psx_brB_BFC161FC = cpu->gpr[0]; @@ -56650,10 +69430,16 @@ label_BFC161FC: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC161FC) goto label_BFC16290; label_BFC16204: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC16204: 2C4100B8 sltiu $at, $v0, 184 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000B8u ? 1 : 0); label_BFC16208: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC16208: 14200005 bne $at, $zero, 0xBFC16220 */ uint32_t psx_brA_BFC16208 = cpu->gpr[1]; uint32_t psx_brB_BFC16208 = cpu->gpr[0]; @@ -56662,6 +69448,9 @@ label_BFC16208: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000C0u ? 1 : 0); if (psx_taken_BFC16208) goto label_BFC16220; label_BFC16210: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC16210: 10200004 beq $at, $zero, 0xBFC16224 */ uint32_t psx_brA_BFC16210 = cpu->gpr[1]; uint32_t psx_brB_BFC16210 = cpu->gpr[0]; @@ -56670,6 +69459,9 @@ label_BFC16210: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000C8u ? 1 : 0); if (psx_taken_BFC16210) goto label_BFC16224; label_BFC16218: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC16218: 1000001D beq $zero, $zero, 0xBFC16290 */ uint32_t psx_brA_BFC16218 = cpu->gpr[0]; uint32_t psx_brB_BFC16218 = cpu->gpr[0]; @@ -56678,10 +69470,16 @@ label_BFC16218: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC16218) goto label_BFC16290; label_BFC16220: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC16220: 2C4100C8 sltiu $at, $v0, 200 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000C8u ? 1 : 0); label_BFC16224: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC16224: 14200005 bne $at, $zero, 0xBFC1623C */ uint32_t psx_brA_BFC16224 = cpu->gpr[1]; uint32_t psx_brB_BFC16224 = cpu->gpr[0]; @@ -56690,6 +69488,9 @@ label_BFC16224: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000CFu ? 1 : 0); if (psx_taken_BFC16224) goto label_BFC1623C; label_BFC1622C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1622C: 10200004 beq $at, $zero, 0xBFC16240 */ uint32_t psx_brA_BFC1622C = cpu->gpr[1]; uint32_t psx_brB_BFC1622C = cpu->gpr[0]; @@ -56698,6 +69499,9 @@ label_BFC1622C: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000DAu ? 1 : 0); if (psx_taken_BFC1622C) goto label_BFC16240; label_BFC16234: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC16234: 10000016 beq $zero, $zero, 0xBFC16290 */ uint32_t psx_brA_BFC16234 = cpu->gpr[0]; uint32_t psx_brB_BFC16234 = cpu->gpr[0]; @@ -56706,10 +69510,16 @@ label_BFC16234: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); if (psx_taken_BFC16234) goto label_BFC16290; label_BFC1623C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1623C: 2C4100DA sltiu $at, $v0, 218 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000DAu ? 1 : 0); label_BFC16240: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC16240: 14200005 bne $at, $zero, 0xBFC16258 */ uint32_t psx_brA_BFC16240 = cpu->gpr[1]; uint32_t psx_brB_BFC16240 = cpu->gpr[0]; @@ -56718,6 +69528,9 @@ label_BFC16240: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000E9u ? 1 : 0); if (psx_taken_BFC16240) goto label_BFC16258; label_BFC16248: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC16248: 10200004 beq $at, $zero, 0xBFC1625C */ uint32_t psx_brA_BFC16248 = cpu->gpr[1]; uint32_t psx_brB_BFC16248 = cpu->gpr[0]; @@ -56726,6 +69539,9 @@ label_BFC16248: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000F0u ? 1 : 0); if (psx_taken_BFC16248) goto label_BFC1625C; label_BFC16250: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC16250: 1000000F beq $zero, $zero, 0xBFC16290 */ uint32_t psx_brA_BFC16250 = cpu->gpr[0]; uint32_t psx_brB_BFC16250 = cpu->gpr[0]; @@ -56734,10 +69550,16 @@ label_BFC16250: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); if (psx_taken_BFC16250) goto label_BFC16290; label_BFC16258: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC16258: 2C4100F0 sltiu $at, $v0, 240 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000F0u ? 1 : 0); label_BFC1625C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1625C: 14200005 bne $at, $zero, 0xBFC16274 */ uint32_t psx_brA_BFC1625C = cpu->gpr[1]; uint32_t psx_brB_BFC1625C = cpu->gpr[0]; @@ -56746,6 +69568,9 @@ label_BFC1625C: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000F8u ? 1 : 0); if (psx_taken_BFC1625C) goto label_BFC16274; label_BFC16264: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC16264: 10200004 beq $at, $zero, 0xBFC16278 */ uint32_t psx_brA_BFC16264 = cpu->gpr[1]; uint32_t psx_brB_BFC16264 = cpu->gpr[0]; @@ -56754,6 +69579,9 @@ label_BFC16264: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (252)); if (psx_taken_BFC16264) goto label_BFC16278; label_BFC1626C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1626C: 10000008 beq $zero, $zero, 0xBFC16290 */ uint32_t psx_brA_BFC1626C = cpu->gpr[0]; uint32_t psx_brB_BFC1626C = cpu->gpr[0]; @@ -56762,10 +69590,16 @@ label_BFC1626C: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); if (psx_taken_BFC1626C) goto label_BFC16290; label_BFC16274: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC16274: 240100FC addiu $at, $zero, 252 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (252)); label_BFC16278: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC16278: 10410005 beq $v0, $at, 0xBFC16290 */ uint32_t psx_brA_BFC16278 = cpu->gpr[2]; uint32_t psx_brB_BFC16278 = cpu->gpr[1]; @@ -56774,6 +69608,9 @@ label_BFC16278: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (6)); if (psx_taken_BFC16278) goto label_BFC16290; label_BFC16280: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC16280: 93A3001C lbu $v1, 28($sp) */ cpu->gpr[3] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (28))); @@ -56784,10 +69621,16 @@ label_BFC16280: /* nop */ if (psx_taken_BFC16284) goto label_BFC16290; label_BFC1628C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1628C: 24030006 addiu $v1, $zero, 6 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (6)); label_BFC16290: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC16290: 3C180000 lui $t8, 0x0 */ cpu->gpr[24] = 0x00000000u; @@ -56812,6 +69655,9 @@ label_BFC16290: cpu->gpr[4] = cpu->gpr[9] + cpu->gpr[10]; if (psx_taken_BFC162B0) goto label_BFC16538; label_BFC162B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC162B8: 93A20020 lbu $v0, 32($sp) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (32))); @@ -56826,6 +69672,9 @@ label_BFC162B8: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000059u ? 1 : 0); if (psx_taken_BFC162C4) goto label_BFC162DC; label_BFC162CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC162CC: 10200004 beq $at, $zero, 0xBFC162E0 */ uint32_t psx_brA_BFC162CC = cpu->gpr[1]; uint32_t psx_brB_BFC162CC = cpu->gpr[0]; @@ -56834,6 +69683,9 @@ label_BFC162CC: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000060u ? 1 : 0); if (psx_taken_BFC162CC) goto label_BFC162E0; label_BFC162D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC162D4: 1000001C beq $zero, $zero, 0xBFC16348 */ uint32_t psx_brA_BFC162D4 = cpu->gpr[0]; uint32_t psx_brB_BFC162D4 = cpu->gpr[0]; @@ -56842,10 +69694,16 @@ label_BFC162D4: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (7)); if (psx_taken_BFC162D4) goto label_BFC16348; label_BFC162DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC162DC: 2C410060 sltiu $at, $v0, 96 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000060u ? 1 : 0); label_BFC162E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC162E0: 14200005 bne $at, $zero, 0xBFC162F8 */ uint32_t psx_brA_BFC162E0 = cpu->gpr[1]; uint32_t psx_brB_BFC162E0 = cpu->gpr[0]; @@ -56854,6 +69712,9 @@ label_BFC162E0: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000007Au ? 1 : 0); if (psx_taken_BFC162E0) goto label_BFC162F8; label_BFC162E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC162E8: 10200004 beq $at, $zero, 0xBFC162FC */ uint32_t psx_brA_BFC162E8 = cpu->gpr[1]; uint32_t psx_brB_BFC162E8 = cpu->gpr[0]; @@ -56862,6 +69723,9 @@ label_BFC162E8: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000081u ? 1 : 0); if (psx_taken_BFC162E8) goto label_BFC162FC; label_BFC162F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC162F0: 10000015 beq $zero, $zero, 0xBFC16348 */ uint32_t psx_brA_BFC162F0 = cpu->gpr[0]; uint32_t psx_brB_BFC162F0 = cpu->gpr[0]; @@ -56870,10 +69734,16 @@ label_BFC162F0: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (8)); if (psx_taken_BFC162F0) goto label_BFC16348; label_BFC162F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC162F8: 2C410081 sltiu $at, $v0, 129 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000081u ? 1 : 0); label_BFC162FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC162FC: 14200005 bne $at, $zero, 0xBFC16314 */ uint32_t psx_brA_BFC162FC = cpu->gpr[1]; uint32_t psx_brB_BFC162FC = cpu->gpr[0]; @@ -56882,6 +69752,9 @@ label_BFC162FC: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000009Bu ? 1 : 0); if (psx_taken_BFC162FC) goto label_BFC16314; label_BFC16304: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC16304: 10200004 beq $at, $zero, 0xBFC16318 */ uint32_t psx_brA_BFC16304 = cpu->gpr[1]; uint32_t psx_brB_BFC16304 = cpu->gpr[0]; @@ -56890,6 +69763,9 @@ label_BFC16304: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000009Fu ? 1 : 0); if (psx_taken_BFC16304) goto label_BFC16318; label_BFC1630C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1630C: 1000000E beq $zero, $zero, 0xBFC16348 */ uint32_t psx_brA_BFC1630C = cpu->gpr[0]; uint32_t psx_brB_BFC1630C = cpu->gpr[0]; @@ -56898,10 +69774,16 @@ label_BFC1630C: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); if (psx_taken_BFC1630C) goto label_BFC16348; label_BFC16314: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC16314: 2C41009F sltiu $at, $v0, 159 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000009Fu ? 1 : 0); label_BFC16318: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC16318: 10200005 beq $at, $zero, 0xBFC16330 */ uint32_t psx_brA_BFC16318 = cpu->gpr[1]; uint32_t psx_brB_BFC16318 = cpu->gpr[0]; @@ -56910,6 +69792,9 @@ label_BFC16318: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000F2u ? 1 : 0); if (psx_taken_BFC16318) goto label_BFC16330; label_BFC16320: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC16320: 93A3001C lbu $v1, 28($sp) */ cpu->gpr[3] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (28))); @@ -56920,10 +69805,16 @@ label_BFC16320: /* nop */ if (psx_taken_BFC16324) goto label_BFC16348; label_BFC1632C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1632C: 2C4100F2 sltiu $at, $v0, 242 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000F2u ? 1 : 0); label_BFC16330: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC16330: 14200005 bne $at, $zero, 0xBFC16348 */ uint32_t psx_brA_BFC16330 = cpu->gpr[1]; uint32_t psx_brB_BFC16330 = cpu->gpr[0]; @@ -56932,6 +69823,9 @@ label_BFC16330: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); if (psx_taken_BFC16330) goto label_BFC16348; label_BFC16338: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC16338: 93A3001C lbu $v1, 28($sp) */ cpu->gpr[3] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (28))); @@ -56942,10 +69836,16 @@ label_BFC16338: /* nop */ if (psx_taken_BFC1633C) goto label_BFC16348; label_BFC16344: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC16344: 2403000A addiu $v1, $zero, 10 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); label_BFC16348: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC16348: 3C0C0000 lui $t4, 0x0 */ cpu->gpr[12] = 0x00000000u; @@ -56970,6 +69870,9 @@ label_BFC16348: cpu->gpr[4] = cpu->gpr[15] + cpu->gpr[24]; if (psx_taken_BFC16368) goto label_BFC16538; label_BFC16370: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC16370: 93A20020 lbu $v0, 32($sp) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (32))); @@ -56984,6 +69887,9 @@ label_BFC16370: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000007Fu ? 1 : 0); if (psx_taken_BFC1637C) goto label_BFC16394; label_BFC16384: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC16384: 10200004 beq $at, $zero, 0xBFC16398 */ uint32_t psx_brA_BFC16384 = cpu->gpr[1]; uint32_t psx_brB_BFC16384 = cpu->gpr[0]; @@ -56992,6 +69898,9 @@ label_BFC16384: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000080u ? 1 : 0); if (psx_taken_BFC16384) goto label_BFC16398; label_BFC1638C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1638C: 1000001C beq $zero, $zero, 0xBFC16400 */ uint32_t psx_brA_BFC1638C = cpu->gpr[0]; uint32_t psx_brB_BFC1638C = cpu->gpr[0]; @@ -57000,10 +69909,16 @@ label_BFC1638C: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (11)); if (psx_taken_BFC1638C) goto label_BFC16400; label_BFC16394: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC16394: 2C410080 sltiu $at, $v0, 128 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000080u ? 1 : 0); label_BFC16398: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC16398: 14200005 bne $at, $zero, 0xBFC163B0 */ uint32_t psx_brA_BFC16398 = cpu->gpr[1]; uint32_t psx_brB_BFC16398 = cpu->gpr[0]; @@ -57012,6 +69927,9 @@ label_BFC16398: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000097u ? 1 : 0); if (psx_taken_BFC16398) goto label_BFC163B0; label_BFC163A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC163A0: 10200004 beq $at, $zero, 0xBFC163B4 */ uint32_t psx_brA_BFC163A0 = cpu->gpr[1]; uint32_t psx_brB_BFC163A0 = cpu->gpr[0]; @@ -57020,6 +69938,9 @@ label_BFC163A0: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000009Fu ? 1 : 0); if (psx_taken_BFC163A0) goto label_BFC163B4; label_BFC163A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC163A8: 10000015 beq $zero, $zero, 0xBFC16400 */ uint32_t psx_brA_BFC163A8 = cpu->gpr[0]; uint32_t psx_brB_BFC163A8 = cpu->gpr[0]; @@ -57028,10 +69949,16 @@ label_BFC163A8: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (12)); if (psx_taken_BFC163A8) goto label_BFC16400; label_BFC163B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC163B0: 2C41009F sltiu $at, $v0, 159 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000009Fu ? 1 : 0); label_BFC163B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC163B4: 14200005 bne $at, $zero, 0xBFC163CC */ uint32_t psx_brA_BFC163B4 = cpu->gpr[1]; uint32_t psx_brB_BFC163B4 = cpu->gpr[0]; @@ -57040,6 +69967,9 @@ label_BFC163B4: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000B7u ? 1 : 0); if (psx_taken_BFC163B4) goto label_BFC163CC; label_BFC163BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC163BC: 10200004 beq $at, $zero, 0xBFC163D0 */ uint32_t psx_brA_BFC163BC = cpu->gpr[1]; uint32_t psx_brB_BFC163BC = cpu->gpr[0]; @@ -57048,6 +69978,9 @@ label_BFC163BC: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000BFu ? 1 : 0); if (psx_taken_BFC163BC) goto label_BFC163D0; label_BFC163C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC163C4: 1000000E beq $zero, $zero, 0xBFC16400 */ uint32_t psx_brA_BFC163C4 = cpu->gpr[0]; uint32_t psx_brB_BFC163C4 = cpu->gpr[0]; @@ -57056,10 +69989,16 @@ label_BFC163C4: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (13)); if (psx_taken_BFC163C4) goto label_BFC16400; label_BFC163CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC163CC: 2C4100BF sltiu $at, $v0, 191 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000BFu ? 1 : 0); label_BFC163D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC163D0: 10200005 beq $at, $zero, 0xBFC163E8 */ uint32_t psx_brA_BFC163D0 = cpu->gpr[1]; uint32_t psx_brB_BFC163D0 = cpu->gpr[0]; @@ -57068,6 +70007,9 @@ label_BFC163D0: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000D7u ? 1 : 0); if (psx_taken_BFC163D0) goto label_BFC163E8; label_BFC163D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC163D8: 93A3001C lbu $v1, 28($sp) */ cpu->gpr[3] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (28))); @@ -57078,10 +70020,16 @@ label_BFC163D8: /* nop */ if (psx_taken_BFC163DC) goto label_BFC16400; label_BFC163E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC163E4: 2C4100D7 sltiu $at, $v0, 215 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000D7u ? 1 : 0); label_BFC163E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC163E8: 14200005 bne $at, $zero, 0xBFC16400 */ uint32_t psx_brA_BFC163E8 = cpu->gpr[1]; uint32_t psx_brB_BFC163E8 = cpu->gpr[0]; @@ -57090,6 +70038,9 @@ label_BFC163E8: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (14)); if (psx_taken_BFC163E8) goto label_BFC16400; label_BFC163F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC163F0: 93A3001C lbu $v1, 28($sp) */ cpu->gpr[3] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (28))); @@ -57100,10 +70051,16 @@ label_BFC163F0: /* nop */ if (psx_taken_BFC163F4) goto label_BFC16400; label_BFC163FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC163FC: 2403000E addiu $v1, $zero, 14 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (14)); label_BFC16400: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC16400: 3C080000 lui $t0, 0x0 */ cpu->gpr[8] = 0x00000000u; @@ -57128,6 +70085,9 @@ label_BFC16400: cpu->gpr[4] = cpu->gpr[11] + cpu->gpr[12]; if (psx_taken_BFC16420) goto label_BFC16538; label_BFC16428: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC16428: 93A20020 lbu $v0, 32($sp) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (32))); @@ -57142,6 +70102,9 @@ label_BFC16428: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000061u ? 1 : 0); if (psx_taken_BFC16434) goto label_BFC1644C; label_BFC1643C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1643C: 10200004 beq $at, $zero, 0xBFC16450 */ uint32_t psx_brA_BFC1643C = cpu->gpr[1]; uint32_t psx_brB_BFC1643C = cpu->gpr[0]; @@ -57150,6 +70113,9 @@ label_BFC1643C: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000070u ? 1 : 0); if (psx_taken_BFC1643C) goto label_BFC16450; label_BFC16444: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC16444: 1000001C beq $zero, $zero, 0xBFC164B8 */ uint32_t psx_brA_BFC16444 = cpu->gpr[0]; uint32_t psx_brB_BFC16444 = cpu->gpr[0]; @@ -57158,10 +70124,16 @@ label_BFC16444: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (15)); if (psx_taken_BFC16444) goto label_BFC164B8; label_BFC1644C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1644C: 2C410070 sltiu $at, $v0, 112 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000070u ? 1 : 0); label_BFC16450: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC16450: 14200005 bne $at, $zero, 0xBFC16468 */ uint32_t psx_brA_BFC16450 = cpu->gpr[1]; uint32_t psx_brB_BFC16450 = cpu->gpr[0]; @@ -57170,6 +70142,9 @@ label_BFC16450: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000007Fu ? 1 : 0); if (psx_taken_BFC16450) goto label_BFC16468; label_BFC16458: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC16458: 10200004 beq $at, $zero, 0xBFC1646C */ uint32_t psx_brA_BFC16458 = cpu->gpr[1]; uint32_t psx_brB_BFC16458 = cpu->gpr[0]; @@ -57178,6 +70153,9 @@ label_BFC16458: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000080u ? 1 : 0); if (psx_taken_BFC16458) goto label_BFC1646C; label_BFC16460: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC16460: 10000015 beq $zero, $zero, 0xBFC164B8 */ uint32_t psx_brA_BFC16460 = cpu->gpr[0]; uint32_t psx_brB_BFC16460 = cpu->gpr[0]; @@ -57186,10 +70164,16 @@ label_BFC16460: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); if (psx_taken_BFC16460) goto label_BFC164B8; label_BFC16468: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC16468: 2C410080 sltiu $at, $v0, 128 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000080u ? 1 : 0); label_BFC1646C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1646C: 14200005 bne $at, $zero, 0xBFC16484 */ uint32_t psx_brA_BFC1646C = cpu->gpr[1]; uint32_t psx_brB_BFC1646C = cpu->gpr[0]; @@ -57198,6 +70182,9 @@ label_BFC1646C: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000092u ? 1 : 0); if (psx_taken_BFC1646C) goto label_BFC16484; label_BFC16474: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC16474: 10200004 beq $at, $zero, 0xBFC16488 */ uint32_t psx_brA_BFC16474 = cpu->gpr[1]; uint32_t psx_brB_BFC16474 = cpu->gpr[0]; @@ -57206,6 +70193,9 @@ label_BFC16474: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000009Fu ? 1 : 0); if (psx_taken_BFC16474) goto label_BFC16488; label_BFC1647C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1647C: 1000000E beq $zero, $zero, 0xBFC164B8 */ uint32_t psx_brA_BFC1647C = cpu->gpr[0]; uint32_t psx_brB_BFC1647C = cpu->gpr[0]; @@ -57214,10 +70204,16 @@ label_BFC1647C: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (17)); if (psx_taken_BFC1647C) goto label_BFC164B8; label_BFC16484: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC16484: 2C41009F sltiu $at, $v0, 159 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000009Fu ? 1 : 0); label_BFC16488: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC16488: 10200005 beq $at, $zero, 0xBFC164A0 */ uint32_t psx_brA_BFC16488 = cpu->gpr[1]; uint32_t psx_brB_BFC16488 = cpu->gpr[0]; @@ -57226,6 +70222,9 @@ label_BFC16488: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000BFu ? 1 : 0); if (psx_taken_BFC16488) goto label_BFC164A0; label_BFC16490: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC16490: 93A3001C lbu $v1, 28($sp) */ cpu->gpr[3] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (28))); @@ -57236,10 +70235,16 @@ label_BFC16490: /* nop */ if (psx_taken_BFC16494) goto label_BFC164B8; label_BFC1649C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1649C: 2C4100BF sltiu $at, $v0, 191 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000BFu ? 1 : 0); label_BFC164A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC164A0: 14200005 bne $at, $zero, 0xBFC164B8 */ uint32_t psx_brA_BFC164A0 = cpu->gpr[1]; uint32_t psx_brB_BFC164A0 = cpu->gpr[0]; @@ -57248,6 +70253,9 @@ label_BFC164A0: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (18)); if (psx_taken_BFC164A0) goto label_BFC164B8; label_BFC164A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC164A8: 93A3001C lbu $v1, 28($sp) */ cpu->gpr[3] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (28))); @@ -57258,10 +70266,16 @@ label_BFC164A8: /* nop */ if (psx_taken_BFC164AC) goto label_BFC164B8; label_BFC164B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC164B4: 24030012 addiu $v1, $zero, 18 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (18)); label_BFC164B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC164B8: 3C0E0000 lui $t6, 0x0 */ cpu->gpr[14] = 0x00000000u; @@ -57286,6 +70300,9 @@ label_BFC164B8: cpu->gpr[4] = cpu->gpr[25] + cpu->gpr[8]; if (psx_taken_BFC164D8) goto label_BFC16538; label_BFC164E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC164E0: 93A20020 lbu $v0, 32($sp) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (32))); @@ -57300,6 +70317,9 @@ label_BFC164E0: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC164EC) goto label_BFC16500; label_BFC164F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC164F4: 10000002 beq $zero, $zero, 0xBFC16500 */ uint32_t psx_brA_BFC164F4 = cpu->gpr[0]; uint32_t psx_brB_BFC164F4 = cpu->gpr[0]; @@ -57308,10 +70328,16 @@ label_BFC164F4: cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC164F4) goto label_BFC16500; label_BFC164FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC164FC: 24030001 addiu $v1, $zero, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC16500: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC16500: 00054840 sll $t1, $a1, 1 */ cpu->gpr[9] = cpu->gpr[5] << 1u; @@ -57344,6 +70370,9 @@ label_BFC16500: cpu->gpr[4] = cpu->gpr[25] + cpu->gpr[8]; if (psx_taken_BFC16530) goto label_BFC16538; label_BFC16538: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC16538: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC16538u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -57358,6 +70387,9 @@ label_BFC16538: void func_00006A70(CPUState* cpu) { debug_server_log_call_entry(0x00006A70u); label_BFC16570: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC16570: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -57370,6 +70402,9 @@ label_BFC16570: void func_00006A80(CPUState* cpu) { debug_server_log_call_entry(0x00006A80u); label_BFC16580: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC16580: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -57382,6 +70417,9 @@ label_BFC16580: void func_00006A90(CPUState* cpu) { debug_server_log_call_entry(0x00006A90u); label_BFC16590: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC16590: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -57394,6 +70432,9 @@ label_BFC16590: void func_00006AA0(CPUState* cpu) { debug_server_log_call_entry(0x00006AA0u); label_BFC165A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC165A0: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -57406,6 +70447,9 @@ label_BFC165A0: void func_00006AB0(CPUState* cpu) { debug_server_log_call_entry(0x00006AB0u); label_BFC165B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC165B0: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -57418,6 +70462,9 @@ label_BFC165B0: void func_00006AC0(CPUState* cpu) { debug_server_log_call_entry(0x00006AC0u); label_BFC165C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC165C0: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -57430,6 +70477,9 @@ label_BFC165C0: void func_00006AD0(CPUState* cpu) { debug_server_log_call_entry(0x00006AD0u); label_BFC165D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC165D0: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -57442,6 +70492,9 @@ label_BFC165D0: void func_00006AE0(CPUState* cpu) { debug_server_log_call_entry(0x00006AE0u); label_BFC165E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC165E0: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -57454,6 +70507,9 @@ label_BFC165E0: void func_00006AF0(CPUState* cpu) { debug_server_log_call_entry(0x00006AF0u); label_BFC165F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC165F0: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -57466,6 +70522,9 @@ label_BFC165F0: void func_00006B00(CPUState* cpu) { debug_server_log_call_entry(0x00006B00u); label_BFC16600: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC16600: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -57478,6 +70537,9 @@ label_BFC16600: void func_00006B10(CPUState* cpu) { debug_server_log_call_entry(0x00006B10u); label_BFC16610: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC16610: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -57490,6 +70552,9 @@ label_BFC16610: void func_00006B20(CPUState* cpu) { debug_server_log_call_entry(0x00006B20u); label_BFC16620: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC16620: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -57502,6 +70567,9 @@ label_BFC16620: void func_00006B30(CPUState* cpu) { debug_server_log_call_entry(0x00006B30u); label_BFC16630: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC16630: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -57514,6 +70582,9 @@ label_BFC16630: void func_00006B40(CPUState* cpu) { debug_server_log_call_entry(0x00006B40u); label_BFC16640: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC16640: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -57526,6 +70597,9 @@ label_BFC16640: void func_00006B50(CPUState* cpu) { debug_server_log_call_entry(0x00006B50u); label_BFC16650: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC16650: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -57538,6 +70612,9 @@ label_BFC16650: void func_00006B60(CPUState* cpu) { debug_server_log_call_entry(0x00006B60u); label_BFC16660: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC16660: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -57550,6 +70627,9 @@ label_BFC16660: void func_00006B70(CPUState* cpu) { debug_server_log_call_entry(0x00006B70u); label_BFC16670: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC16670: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -57562,6 +70642,9 @@ label_BFC16670: void func_00006B80(CPUState* cpu) { debug_server_log_call_entry(0x00006B80u); label_BFC16680: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC16680: 24040001 addiu $a0, $zero, 1 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -57576,6 +70659,9 @@ label_BFC16680: void func_00006B90(CPUState* cpu) { debug_server_log_call_entry(0x00006B90u); label_BFC16690: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC16690: 24040002 addiu $a0, $zero, 2 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); @@ -57590,6 +70676,9 @@ label_BFC16690: void func_00006BA0(CPUState* cpu) { debug_server_log_call_entry(0x00006BA0u); label_BFC166A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC166A0: 240A00C0 addiu $t2, $zero, 192 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (192)); @@ -57602,6 +70691,9 @@ label_BFC166A0: void func_00006BB0(CPUState* cpu) { debug_server_log_call_entry(0x00006BB0u); label_BFC166B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC166B0: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -57614,6 +70706,9 @@ label_BFC166B0: void func_00006BC0(CPUState* cpu) { debug_server_log_call_entry(0x00006BC0u); label_BFC166C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC166C0: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -57626,6 +70721,9 @@ label_BFC166C0: void func_00006BD0(CPUState* cpu) { debug_server_log_call_entry(0x00006BD0u); label_BFC166D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC166D0: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -57638,6 +70736,9 @@ label_BFC166D0: void func_00006BE0(CPUState* cpu) { debug_server_log_call_entry(0x00006BE0u); label_BFC166E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC166E0: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -57650,6 +70751,9 @@ label_BFC166E0: void func_00006BF0(CPUState* cpu) { debug_server_log_call_entry(0x00006BF0u); label_BFC166F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC166F0: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -57662,6 +70766,9 @@ label_BFC166F0: void func_00006C00(CPUState* cpu) { debug_server_log_call_entry(0x00006C00u); label_BFC16700: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC16700: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -57674,6 +70781,9 @@ label_BFC16700: void func_00006C10(CPUState* cpu) { debug_server_log_call_entry(0x00006C10u); label_BFC16710: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC16710: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -57686,6 +70796,9 @@ label_BFC16710: void func_00006C20(CPUState* cpu) { debug_server_log_call_entry(0x00006C20u); label_BFC16720: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC16720: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -57735,6 +70848,9 @@ void func_1FC18000(CPUState* cpu) { } } label_BFC18000: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC18000: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -57746,6 +70862,9 @@ label_BFC18000: cpu->gpr[31] = 0x80030010u; psx_dispatch(cpu, 0x8005A8D0u); label_BFC18010: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC18010: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -57763,6 +70882,9 @@ label_BFC18010: cpu->gpr[31] = 0x8003002Cu; psx_dispatch(cpu, 0x8005A8E0u); label_BFC1802C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1802C: 0C00C1E6 jal 0xB0030798 */ /* 0xBFC18030: 00000000 nop */ @@ -57770,6 +70892,9 @@ label_BFC1802C: cpu->gpr[31] = 0x80030034u; psx_dispatch(cpu, 0x80030798u); label_BFC18034: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC18034: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -57795,6 +70920,9 @@ label_BFC18034: cpu->gpr[31] = 0x80030060u; psx_dispatch(cpu, 0x800403F0u); label_BFC18060: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18060: 0C013BE4 jal 0xB004EF90 */ /* 0xBFC18064: 00002021 addu $a0, $zero, $zero */ @@ -57802,6 +70930,9 @@ label_BFC18060: cpu->gpr[31] = 0x80030068u; psx_dispatch(cpu, 0x8004EF90u); label_BFC18068: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18068: 0C00FF6C jal 0xB003FDB0 */ /* 0xBFC1806C: 24040001 addiu $a0, $zero, 1 */ @@ -57809,6 +70940,9 @@ label_BFC18068: cpu->gpr[31] = 0x80030070u; psx_dispatch(cpu, 0x8003FDB0u); label_BFC18070: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18070: 0C00FFA2 jal 0xB003FE88 */ /* 0xBFC18074: 00000000 nop */ @@ -57816,6 +70950,9 @@ label_BFC18070: cpu->gpr[31] = 0x80030078u; psx_dispatch(cpu, 0x8003FE88u); label_BFC18078: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC18078: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -57827,6 +70964,9 @@ label_BFC18078: cpu->gpr[31] = 0x80030088u; psx_dispatch(cpu, 0x8003F910u); label_BFC18088: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18088: 0C010124 jal 0xB0040490 */ /* 0xBFC1808C: 00002021 addu $a0, $zero, $zero */ @@ -57834,6 +70974,9 @@ label_BFC18088: cpu->gpr[31] = 0x80030090u; psx_dispatch(cpu, 0x80040490u); label_BFC18090: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18090: 0C00C1E2 jal 0xB0030788 */ /* 0xBFC18094: 00002021 addu $a0, $zero, $zero */ @@ -57841,6 +70984,9 @@ label_BFC18090: cpu->gpr[31] = 0x80030098u; psx_dispatch(cpu, 0x80030788u); label_BFC18098: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18098: 0C016720 jal 0xB0059C80 */ /* 0xBFC1809C: 00002021 addu $a0, $zero, $zero */ @@ -57848,6 +70994,9 @@ label_BFC18098: cpu->gpr[31] = 0x800300A0u; psx_dispatch(cpu, 0x80059C80u); label_BFC180A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC180A0: 0C013B47 jal 0xB004ED1C */ /* 0xBFC180A4: 24040003 addiu $a0, $zero, 3 */ @@ -57855,6 +71004,9 @@ label_BFC180A0: cpu->gpr[31] = 0x800300A8u; psx_dispatch(cpu, 0x8004ED1Cu); label_BFC180A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC180A8: 0C00D6FD jal 0xB0035BF4 */ /* 0xBFC180AC: 00000000 nop */ @@ -57862,6 +71014,9 @@ label_BFC180A8: cpu->gpr[31] = 0x800300B0u; psx_dispatch(cpu, 0x80035BF4u); label_BFC180B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC180B0: 0C00C1E2 jal 0xB0030788 */ /* 0xBFC180B4: 24040001 addiu $a0, $zero, 1 */ @@ -57869,6 +71024,9 @@ label_BFC180B0: cpu->gpr[31] = 0x800300B8u; psx_dispatch(cpu, 0x80030788u); label_BFC180B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC180B8: 0C00D776 jal 0xB0035DD8 */ /* 0xBFC180BC: 00000000 nop */ @@ -57876,6 +71034,9 @@ label_BFC180B8: cpu->gpr[31] = 0x800300C0u; psx_dispatch(cpu, 0x80035DD8u); label_BFC180C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC180C0: 240F0001 addiu $t7, $zero, 1 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -57909,6 +71070,9 @@ label_BFC180C0: cpu->gpr[31] = 0x800300FCu; psx_dispatch(cpu, 0x80035F50u); label_BFC180FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC180FC: 04410003 bgez $v0, 0xBFC1810C */ uint32_t psx_brA_BFC180FC = cpu->gpr[2]; @@ -57917,6 +71081,9 @@ label_BFC180FC: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC180FC) goto label_BFC1810C; label_BFC18104: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18104: 10000004 beq $zero, $zero, 0xBFC18118 */ uint32_t psx_brA_BFC18104 = cpu->gpr[0]; uint32_t psx_brB_BFC18104 = cpu->gpr[0]; @@ -57925,6 +71092,9 @@ label_BFC18104: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25104)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18108u); return; } g_debug_last_store_pc = 0xBFC18108u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC18104) goto label_BFC18118; label_BFC1810C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1810C: 24190001 addiu $t9, $zero, 1 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -57933,6 +71103,9 @@ label_BFC1810C: /* 0xBFC18114: AC399DF0 sw $t9, -25104($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25104)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18114u); return; } g_debug_last_store_pc = 0xBFC18114u; cpu->write_word(psx_addr, cpu->gpr[25]); } label_BFC18118: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18118: 0C00C1E2 jal 0xB0030788 */ /* 0xBFC1811C: 24040002 addiu $a0, $zero, 2 */ @@ -57940,6 +71113,9 @@ label_BFC18118: cpu->gpr[31] = 0x80030120u; psx_dispatch(cpu, 0x80030788u); label_BFC18120: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18120: 0C00D671 jal 0xB00359C4 */ /* 0xBFC18124: 24040001 addiu $a0, $zero, 1 */ @@ -57947,6 +71123,9 @@ label_BFC18120: cpu->gpr[31] = 0x80030128u; psx_dispatch(cpu, 0x800359C4u); label_BFC18128: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18128: 0440002F bltz $v0, 0xBFC181E8 */ uint32_t psx_brA_BFC18128 = cpu->gpr[2]; @@ -57955,6 +71134,9 @@ label_BFC18128: cpu->gpr[13] = 0x02000000u; if (psx_taken_BFC18128) goto label_BFC181E8; label_BFC18130: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18130: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -57969,6 +71151,9 @@ label_BFC18130: cpu->gpr[13] = 0x02000000u; if (psx_taken_BFC1813C) goto label_BFC181E8; label_BFC18144: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18144: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -57983,6 +71168,9 @@ label_BFC18144: /* nop */ if (psx_taken_BFC18150) goto label_BFC18160; label_BFC18158: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18158: 0C015BFC jal 0xB0056FF0 */ /* 0xBFC1815C: 00000000 nop */ @@ -57990,6 +71178,9 @@ label_BFC18158: cpu->gpr[31] = 0x80030160u; psx_dispatch(cpu, 0x80056FF0u); label_BFC18160: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18160: 0C00D671 jal 0xB00359C4 */ /* 0xBFC18164: 24040001 addiu $a0, $zero, 1 */ @@ -57997,6 +71188,9 @@ label_BFC18160: cpu->gpr[31] = 0x80030168u; psx_dispatch(cpu, 0x800359C4u); label_BFC18168: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18168: 0440001F bltz $v0, 0xBFC181E8 */ uint32_t psx_brA_BFC18168 = cpu->gpr[2]; @@ -58005,6 +71199,9 @@ label_BFC18168: cpu->gpr[13] = 0x02000000u; if (psx_taken_BFC18168) goto label_BFC181E8; label_BFC18170: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18170: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -58019,6 +71216,9 @@ label_BFC18170: cpu->gpr[13] = 0x02000000u; if (psx_taken_BFC1817C) goto label_BFC181E8; label_BFC18184: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18184: 0C00FEC9 jal 0xB003FB24 */ /* 0xBFC18188: 00000000 nop */ @@ -58026,6 +71226,9 @@ label_BFC18184: cpu->gpr[31] = 0x8003018Cu; psx_dispatch(cpu, 0x8003FB24u); label_BFC1818C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1818C: 0C00C1A1 jal 0xB0030684 */ /* 0xBFC18190: 24040001 addiu $a0, $zero, 1 */ @@ -58033,6 +71236,9 @@ label_BFC1818C: cpu->gpr[31] = 0x80030194u; psx_dispatch(cpu, 0x80030684u); label_BFC18194: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18194: 0441000B bgez $v0, 0xBFC181C4 */ uint32_t psx_brA_BFC18194 = cpu->gpr[2]; @@ -58041,6 +71247,9 @@ label_BFC18194: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC18194) goto label_BFC181C4; label_BFC1819C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC1819C: AC209DFC sw $zero, -25092($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25092)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1819Cu); return; } g_debug_last_store_pc = 0xBFC1819Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -58065,6 +71274,9 @@ label_BFC1819C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25088)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC181C0u); return; } g_debug_last_store_pc = 0xBFC181C0u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC181BC) goto label_BFC181E4; label_BFC181C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC181C4: 0C00D831 jal 0xB00360C4 */ /* 0xBFC181C8: 00000000 nop */ @@ -58072,6 +71284,9 @@ label_BFC181C4: cpu->gpr[31] = 0x800301CCu; psx_dispatch(cpu, 0x800360C4u); label_BFC181CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC181CC: 0C00C1E2 jal 0xB0030788 */ /* 0xBFC181D0: 24040005 addiu $a0, $zero, 5 */ @@ -58079,6 +71294,9 @@ label_BFC181CC: cpu->gpr[31] = 0x800301D4u; psx_dispatch(cpu, 0x80030788u); label_BFC181D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC181D4: 0C00F556 jal 0xB003D558 */ /* 0xBFC181D8: 00000000 nop */ @@ -58086,6 +71304,9 @@ label_BFC181D4: cpu->gpr[31] = 0x800301DCu; psx_dispatch(cpu, 0x8003D558u); label_BFC181DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC181DC: 1000001A beq $zero, $zero, 0xBFC18248 */ uint32_t psx_brA_BFC181DC = cpu->gpr[0]; uint32_t psx_brB_BFC181DC = cpu->gpr[0]; @@ -58094,10 +71315,16 @@ label_BFC181DC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC181E0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC181DC) goto label_BFC18248; label_BFC181E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC181E4: 3C0D0200 lui $t5, 0x200 */ cpu->gpr[13] = 0x02000000u; label_BFC181E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC181E8: 35AD0200 ori $t5, $t5, 0x200 */ cpu->gpr[13] = cpu->gpr[13] | 0x200u; @@ -58117,6 +71344,9 @@ label_BFC181E8: cpu->gpr[31] = 0x80030208u; psx_dispatch(cpu, 0x8003DE8Cu); label_BFC18208: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18208: 3C04F200 lui $a0, 0xF200 */ cpu->gpr[4] = 0xF2000000u; @@ -58130,6 +71360,9 @@ label_BFC18208: cpu->gpr[31] = 0x8003021Cu; psx_dispatch(cpu, 0x80059E30u); label_BFC1821C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1821C: 3C04F200 lui $a0, 0xF200 */ cpu->gpr[4] = 0xF2000000u; @@ -58139,6 +71372,9 @@ label_BFC1821C: cpu->gpr[31] = 0x80030228u; psx_dispatch(cpu, 0x80059F10u); label_BFC18228: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18228: 0C012DBC jal 0xB004B6F0 */ /* 0xBFC1822C: 00000000 nop */ @@ -58146,6 +71382,9 @@ label_BFC18228: cpu->gpr[31] = 0x80030230u; psx_dispatch(cpu, 0x8004B6F0u); label_BFC18230: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18230: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -58159,10 +71398,16 @@ label_BFC18230: cpu->gpr[31] = 0x80030244u; psx_dispatch(cpu, 0x80030254u); label_BFC18244: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC18244: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18244u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC18248: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC18248: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -58213,6 +71458,9 @@ void func_1FC18254(CPUState* cpu) { } } label_BFC18254: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC18254: 27BDFFB8 addiu $sp, $sp, -72 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-72)); @@ -58228,6 +71476,9 @@ label_BFC18254: cpu->gpr[31] = 0x8003026Cu; psx_dispatch(cpu, 0x80043F1Cu); label_BFC1826C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1826C: 3C11F200 lui $s1, 0xF200 */ cpu->gpr[17] = 0xF2000000u; @@ -58239,6 +71490,9 @@ label_BFC1826C: cpu->gpr[31] = 0x8003027Cu; psx_dispatch(cpu, 0x80059ED8u); label_BFC1827C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1827C: 10400006 beq $v0, $zero, 0xBFC18298 */ uint32_t psx_brA_BFC1827C = cpu->gpr[2]; uint32_t psx_brB_BFC1827C = cpu->gpr[0]; @@ -58247,6 +71501,9 @@ label_BFC1827C: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[2] + (-1)); if (psx_taken_BFC1827C) goto label_BFC18298; label_BFC18284: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18284: 0C016A3C jal 0xB005A8F0 */ /* 0xBFC18288: 00000000 nop */ @@ -58254,6 +71511,9 @@ label_BFC18284: cpu->gpr[31] = 0x8003028Cu; psx_dispatch(cpu, 0x8005A8F0u); label_BFC1828C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1828C: 02001021 addu $v0, $s0, $zero */ cpu->gpr[2] = cpu->gpr[16] + cpu->gpr[0]; @@ -58264,6 +71524,9 @@ label_BFC1828C: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); if (psx_taken_BFC18290) goto label_BFC18284; label_BFC18298: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC18298: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -58275,6 +71538,9 @@ label_BFC18298: cpu->gpr[31] = 0x800302A8u; psx_dispatch(cpu, 0x80059E30u); label_BFC182A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC182A8: 0C0167D5 jal 0xB0059F54 */ /* 0xBFC182AC: 02202021 addu $a0, $s1, $zero */ @@ -58282,6 +71548,9 @@ label_BFC182A8: cpu->gpr[31] = 0x800302B0u; psx_dispatch(cpu, 0x80059F54u); label_BFC182B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC182B0: 3C15800F lui $s5, 0x800F */ cpu->gpr[21] = 0x800F0000u; @@ -58293,6 +71562,9 @@ label_BFC182B0: cpu->gpr[31] = 0x800302C0u; psx_dispatch(cpu, 0x80030D10u); label_BFC182C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC182C0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -58307,6 +71579,9 @@ label_BFC182C0: /* nop */ if (psx_taken_BFC182CC) goto label_BFC182E8; label_BFC182D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC182D4: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -58321,6 +71596,9 @@ label_BFC182D4: /* nop */ if (psx_taken_BFC182E0) goto label_BFC1831C; label_BFC182E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC182E8: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -58335,10 +71613,16 @@ label_BFC182E8: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC182F4) goto label_BFC18300; label_BFC182FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC182FC: AC209E04 sw $zero, -25084($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25084)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC182FCu); return; } g_debug_last_store_pc = 0xBFC182FCu; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC18300: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC18300: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -58357,6 +71641,9 @@ label_BFC18300: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-22656)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18318u); return; } g_debug_last_store_pc = 0xBFC18318u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC18314) goto label_BFC183D4; label_BFC1831C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1831C: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -58371,6 +71658,9 @@ label_BFC1831C: /* nop */ if (psx_taken_BFC18328) goto label_BFC18360; label_BFC18330: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18330: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -58385,6 +71675,9 @@ label_BFC18330: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC1833C) goto label_BFC18360; label_BFC18344: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC18344: AC20FF70 sw $zero, -144($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-144)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18344u); return; } g_debug_last_store_pc = 0xBFC18344u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -58403,6 +71696,9 @@ label_BFC18344: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-22656)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1835Cu); return; } g_debug_last_store_pc = 0xBFC1835Cu; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC18358) goto label_BFC183D4; label_BFC18360: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18360: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -58417,6 +71713,9 @@ label_BFC18360: /* nop */ if (psx_taken_BFC1836C) goto label_BFC183BC; label_BFC18374: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18374: 0C00DDDE jal 0xB0037778 */ /* 0xBFC18378: 00000000 nop */ @@ -58424,6 +71723,9 @@ label_BFC18374: cpu->gpr[31] = 0x8003037Cu; psx_dispatch(cpu, 0x80037778u); label_BFC1837C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1837C: 10400008 beq $v0, $zero, 0xBFC183A0 */ uint32_t psx_brA_BFC1837C = cpu->gpr[2]; uint32_t psx_brB_BFC1837C = cpu->gpr[0]; @@ -58432,6 +71734,9 @@ label_BFC1837C: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC1837C) goto label_BFC183A0; label_BFC18384: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC18384: AC20FF70 sw $zero, -144($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-144)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18384u); return; } g_debug_last_store_pc = 0xBFC18384u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -58450,6 +71755,9 @@ label_BFC18384: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-22656)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1839Cu); return; } g_debug_last_store_pc = 0xBFC1839Cu; cpu->write_word(psx_addr, cpu->gpr[11]); } if (psx_taken_BFC18398) goto label_BFC183D4; label_BFC183A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC183A0: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -58468,6 +71776,9 @@ label_BFC183A0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-22656)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC183B8u); return; } g_debug_last_store_pc = 0xBFC183B8u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC183B4) goto label_BFC183D4; label_BFC183BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC183BC: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -58482,6 +71793,9 @@ label_BFC183BC: /* 0xBFC183D0: AC20A780 sw $zero, -22656($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-22656)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC183D0u); return; } g_debug_last_store_pc = 0xBFC183D0u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC183D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC183D4: 0C00FEC9 jal 0xB003FB24 */ /* 0xBFC183D8: 00000000 nop */ @@ -58489,6 +71803,9 @@ label_BFC183D4: cpu->gpr[31] = 0x800303DCu; psx_dispatch(cpu, 0x8003FB24u); label_BFC183DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC183DC: 0C00FF9A jal 0xB003FE68 */ /* 0xBFC183E0: 00000000 nop */ @@ -58496,6 +71813,9 @@ label_BFC183DC: cpu->gpr[31] = 0x800303E4u; psx_dispatch(cpu, 0x8003FE68u); label_BFC183E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC183E4: 0C013C0A jal 0xB004F028 */ /* 0xBFC183E8: 24040001 addiu $a0, $zero, 1 */ @@ -58503,6 +71823,9 @@ label_BFC183E4: cpu->gpr[31] = 0x800303ECu; psx_dispatch(cpu, 0x8004F028u); label_BFC183EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC183EC: 0C00F52C jal 0xB003D4B0 */ /* 0xBFC183F0: 00000000 nop */ @@ -58510,6 +71833,9 @@ label_BFC183EC: cpu->gpr[31] = 0x800303F4u; psx_dispatch(cpu, 0x8003D4B0u); label_BFC183F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC183F4: 0C00C23C jal 0xB00308F0 */ /* 0xBFC183F8: 00000000 nop */ @@ -58517,6 +71843,9 @@ label_BFC183F4: cpu->gpr[31] = 0x800303FCu; psx_dispatch(cpu, 0x800308F0u); label_BFC183FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC183FC: 1440009C bne $v0, $zero, 0xBFC18670 */ uint32_t psx_brA_BFC183FC = cpu->gpr[2]; uint32_t psx_brB_BFC183FC = cpu->gpr[0]; @@ -58525,6 +71854,9 @@ label_BFC183FC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18400u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC183FC) goto label_BFC18670; label_BFC18404: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18404: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -58539,6 +71871,9 @@ label_BFC18404: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18414u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC18410) goto label_BFC18670; label_BFC18418: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC18418: AFB20034 sw $s2, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18418u); return; } g_debug_last_store_pc = 0xBFC18418u; cpu->write_word(psx_addr, cpu->gpr[18]); } @@ -58561,6 +71896,9 @@ label_BFC18418: /* 0xBFC1843C: 241103FE addiu $s1, $zero, 1022 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[0] + (1022)); label_BFC18440: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18440: 3C0D800F lui $t5, 0x800F */ cpu->gpr[13] = 0x800F0000u; @@ -58575,6 +71913,9 @@ label_BFC18440: /* nop */ if (psx_taken_BFC1844C) goto label_BFC184D0; label_BFC18454: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18454: 0C00F998 jal 0xB003E660 */ /* 0xBFC18458: 00000000 nop */ @@ -58582,6 +71923,9 @@ label_BFC18454: cpu->gpr[31] = 0x8003045Cu; psx_dispatch(cpu, 0x8003E660u); label_BFC1845C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1845C: 1440001C bne $v0, $zero, 0xBFC184D0 */ uint32_t psx_brA_BFC1845C = cpu->gpr[2]; uint32_t psx_brB_BFC1845C = cpu->gpr[0]; @@ -58590,6 +71934,9 @@ label_BFC1845C: /* nop */ if (psx_taken_BFC1845C) goto label_BFC184D0; label_BFC18464: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC18464: 02A02021 addu $a0, $s5, $zero */ cpu->gpr[4] = cpu->gpr[21] + cpu->gpr[0]; @@ -58601,6 +71948,9 @@ label_BFC18464: cpu->gpr[31] = 0x80030474u; psx_dispatch(cpu, 0x800313C0u); label_BFC18474: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC18474: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -58612,6 +71962,9 @@ label_BFC18474: cpu->gpr[31] = 0x80030484u; psx_dispatch(cpu, 0x8003152Cu); label_BFC18484: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC18484: 02A02021 addu $a0, $s5, $zero */ cpu->gpr[4] = cpu->gpr[21] + cpu->gpr[0]; @@ -58623,6 +71976,9 @@ label_BFC18484: cpu->gpr[31] = 0x80030494u; psx_dispatch(cpu, 0x800313C0u); label_BFC18494: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC18494: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -58634,6 +71990,9 @@ label_BFC18494: cpu->gpr[31] = 0x800304A4u; psx_dispatch(cpu, 0x8003152Cu); label_BFC184A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC184A4: 3C04800F lui $a0, 0x800F */ cpu->gpr[4] = 0x800F0000u; @@ -58645,6 +72004,9 @@ label_BFC184A4: cpu->gpr[31] = 0x800304B4u; psx_dispatch(cpu, 0x80031A58u); label_BFC184B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC184B4: 240EFFFF addiu $t6, $zero, -1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -58658,6 +72020,9 @@ label_BFC184B4: cpu->gpr[31] = 0x800304C8u; psx_dispatch(cpu, 0x80040064u); label_BFC184C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC184C8: 1000005B beq $zero, $zero, 0xBFC18638 */ uint32_t psx_brA_BFC184C8 = cpu->gpr[0]; uint32_t psx_brB_BFC184C8 = cpu->gpr[0]; @@ -58666,6 +72031,9 @@ label_BFC184C8: /* nop */ if (psx_taken_BFC184C8) goto label_BFC18638; label_BFC184D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC184D0: 3C0F800F lui $t7, 0x800F */ cpu->gpr[15] = 0x800F0000u; @@ -58680,6 +72048,9 @@ label_BFC184D0: /* nop */ if (psx_taken_BFC184DC) goto label_BFC1850C; label_BFC184E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC184E4: 0C00F998 jal 0xB003E660 */ /* 0xBFC184E8: 00000000 nop */ @@ -58687,6 +72058,9 @@ label_BFC184E4: cpu->gpr[31] = 0x800304ECu; psx_dispatch(cpu, 0x8003E660u); label_BFC184EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC184EC: 14400007 bne $v0, $zero, 0xBFC1850C */ uint32_t psx_brA_BFC184EC = cpu->gpr[2]; uint32_t psx_brB_BFC184EC = cpu->gpr[0]; @@ -58695,6 +72069,9 @@ label_BFC184EC: /* nop */ if (psx_taken_BFC184EC) goto label_BFC1850C; label_BFC184F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC184F4: 0C00C696 jal 0xB0031A58 */ /* 0xBFC184F8: 24040001 addiu $a0, $zero, 1 */ @@ -58702,6 +72079,9 @@ label_BFC184F4: cpu->gpr[31] = 0x800304FCu; psx_dispatch(cpu, 0x80031A58u); label_BFC184FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC184FC: 2418FFFF addiu $t8, $zero, -1 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -58714,6 +72094,9 @@ label_BFC184FC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-22656)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18508u); return; } g_debug_last_store_pc = 0xBFC18508u; cpu->write_word(psx_addr, cpu->gpr[24]); } if (psx_taken_BFC18504) goto label_BFC18638; label_BFC1850C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1850C: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -58725,6 +72108,9 @@ label_BFC1850C: cpu->gpr[31] = 0x8003051Cu; psx_dispatch(cpu, 0x8003E6B0u); label_BFC1851C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1851C: 02A02021 addu $a0, $s5, $zero */ cpu->gpr[4] = cpu->gpr[21] + cpu->gpr[0]; @@ -58736,6 +72122,9 @@ label_BFC1851C: cpu->gpr[31] = 0x8003052Cu; psx_dispatch(cpu, 0x800313C0u); label_BFC1852C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1852C: 0C00D8F3 jal 0xB00363CC */ /* 0xBFC18530: 00000000 nop */ @@ -58743,6 +72132,9 @@ label_BFC1852C: cpu->gpr[31] = 0x80030534u; psx_dispatch(cpu, 0x800363CCu); label_BFC18534: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18534: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -58757,6 +72149,9 @@ label_BFC18534: /* nop */ if (psx_taken_BFC18540) goto label_BFC18568; label_BFC18548: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC18548: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -58772,6 +72167,9 @@ label_BFC18548: cpu->gpr[31] = 0x80030560u; psx_dispatch(cpu, 0x800394B0u); label_BFC18560: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18560: 0C00F0A2 jal 0xB003C288 */ /* 0xBFC18564: 00000000 nop */ @@ -58779,6 +72177,9 @@ label_BFC18560: cpu->gpr[31] = 0x80030568u; psx_dispatch(cpu, 0x8003C288u); label_BFC18568: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC18568: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -58790,6 +72191,9 @@ label_BFC18568: cpu->gpr[31] = 0x80030578u; psx_dispatch(cpu, 0x800450E0u); label_BFC18578: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18578: 3C08800E lui $t0, 0x800E */ cpu->gpr[8] = 0x800E0000u; @@ -58804,6 +72208,9 @@ label_BFC18578: /* nop */ if (psx_taken_BFC18584) goto label_BFC18618; label_BFC1858C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1858C: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -58814,6 +72221,9 @@ label_BFC1858C: /* 0xBFC18598: 000248C0 sll $t1, $v0, 3 */ cpu->gpr[9] = cpu->gpr[2] << 3u; label_BFC1859C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC1859C: 01224823 subu $t1, $t1, $v0 */ cpu->gpr[9] = cpu->gpr[9] - cpu->gpr[2]; @@ -58840,6 +72250,9 @@ label_BFC1859C: /* nop */ if (psx_taken_BFC185C0) goto label_BFC18600; label_BFC185C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC185C8: 000270C0 sll $t6, $v0, 3 */ cpu->gpr[14] = cpu->gpr[2] << 3u; @@ -58865,6 +72278,9 @@ label_BFC185C8: cpu->gpr[31] = 0x800305F4u; psx_dispatch(cpu, 0x80044B80u); label_BFC185F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC185F4: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -58873,6 +72289,9 @@ label_BFC185F4: /* 0xBFC185FC: 00000000 nop */ /* nop */ label_BFC18600: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC18600: 3C19800E lui $t9, 0x800E */ cpu->gpr[25] = 0x800E0000u; @@ -58889,6 +72308,9 @@ label_BFC18600: cpu->gpr[9] = cpu->gpr[2] << 3u; if (psx_taken_BFC18610) goto label_BFC1859C; label_BFC18618: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC18618: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -58900,6 +72322,9 @@ label_BFC18618: cpu->gpr[31] = 0x80030628u; psx_dispatch(cpu, 0x8003E8ECu); label_BFC18628: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC18628: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -58911,6 +72336,9 @@ label_BFC18628: cpu->gpr[31] = 0x80030638u; psx_dispatch(cpu, 0x8003152Cu); label_BFC18638: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18638: 0C00C23C jal 0xB00308F0 */ /* 0xBFC1863C: 00000000 nop */ @@ -58918,6 +72346,9 @@ label_BFC18638: cpu->gpr[31] = 0x80030640u; psx_dispatch(cpu, 0x800308F0u); label_BFC18640: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18640: 14400006 bne $v0, $zero, 0xBFC1865C */ uint32_t psx_brA_BFC18640 = cpu->gpr[2]; uint32_t psx_brB_BFC18640 = cpu->gpr[0]; @@ -58926,6 +72357,9 @@ label_BFC18640: /* nop */ if (psx_taken_BFC18640) goto label_BFC1865C; label_BFC18648: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18648: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -58940,6 +72374,9 @@ label_BFC18648: /* nop */ if (psx_taken_BFC18654) goto label_BFC18440; label_BFC1865C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1865C: 8FB20034 lw $s2, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1865Cu); return; } cpu->gpr[18] = cpu->read_word(psx_addr); } @@ -58952,6 +72389,9 @@ label_BFC1865C: /* 0xBFC1866C: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1866Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC18670: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18670: 8FB00018 lw $s0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18670u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -58990,6 +72430,9 @@ void func_1FC18684(CPUState* cpu) { } } label_BFC18684: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC18684: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -59007,6 +72450,9 @@ label_BFC18684: cpu->gpr[31] = 0x800306A0u; psx_dispatch(cpu, 0x8003EC10u); label_BFC186A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC186A0: 04410003 bgez $v0, 0xBFC186B0 */ uint32_t psx_brA_BFC186A0 = cpu->gpr[2]; @@ -59015,6 +72461,9 @@ label_BFC186A0: /* nop */ if (psx_taken_BFC186A0) goto label_BFC186B0; label_BFC186A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC186A8: 10000033 beq $zero, $zero, 0xBFC18778 */ uint32_t psx_brA_BFC186A8 = cpu->gpr[0]; uint32_t psx_brB_BFC186A8 = cpu->gpr[0]; @@ -59023,6 +72472,9 @@ label_BFC186A8: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC186A8) goto label_BFC18778; label_BFC186B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC186B0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -59037,6 +72489,9 @@ label_BFC186B0: /* nop */ if (psx_taken_BFC186BC) goto label_BFC186F8; label_BFC186C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC186C4: 3C04800F lui $a0, 0x800F */ cpu->gpr[4] = 0x800F0000u; @@ -59050,6 +72505,9 @@ label_BFC186C4: cpu->gpr[31] = 0x800306D8u; psx_dispatch(cpu, 0x8005A900u); label_BFC186D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC186D8: 14400005 bne $v0, $zero, 0xBFC186F0 */ uint32_t psx_brA_BFC186D8 = cpu->gpr[2]; uint32_t psx_brB_BFC186D8 = cpu->gpr[0]; @@ -59058,6 +72516,9 @@ label_BFC186D8: /* nop */ if (psx_taken_BFC186D8) goto label_BFC186F0; label_BFC186E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC186E0: 0C00FCF9 jal 0xB003F3E4 */ /* 0xBFC186E4: 24040001 addiu $a0, $zero, 1 */ @@ -59065,6 +72526,9 @@ label_BFC186E0: cpu->gpr[31] = 0x800306E8u; psx_dispatch(cpu, 0x8003F3E4u); label_BFC186E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC186E8: 10000005 beq $zero, $zero, 0xBFC18700 */ uint32_t psx_brA_BFC186E8 = cpu->gpr[0]; uint32_t psx_brB_BFC186E8 = cpu->gpr[0]; @@ -59073,6 +72537,9 @@ label_BFC186E8: /* nop */ if (psx_taken_BFC186E8) goto label_BFC18700; label_BFC186F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC186F0: 10000021 beq $zero, $zero, 0xBFC18778 */ uint32_t psx_brA_BFC186F0 = cpu->gpr[0]; uint32_t psx_brB_BFC186F0 = cpu->gpr[0]; @@ -59081,6 +72548,9 @@ label_BFC186F0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC186F0) goto label_BFC18778; label_BFC186F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC186F8: 0C00FCF9 jal 0xB003F3E4 */ /* 0xBFC186FC: 24040001 addiu $a0, $zero, 1 */ @@ -59088,6 +72558,9 @@ label_BFC186F8: cpu->gpr[31] = 0x80030700u; psx_dispatch(cpu, 0x8003F3E4u); label_BFC18700: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18700: 0C00F556 jal 0xB003D558 */ /* 0xBFC18704: 00000000 nop */ @@ -59095,6 +72568,9 @@ label_BFC18700: cpu->gpr[31] = 0x80030708u; psx_dispatch(cpu, 0x8003D558u); label_BFC18708: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18708: 0C013BE4 jal 0xB004EF90 */ /* 0xBFC1870C: 24040001 addiu $a0, $zero, 1 */ @@ -59102,6 +72578,9 @@ label_BFC18708: cpu->gpr[31] = 0x80030710u; psx_dispatch(cpu, 0x8004EF90u); label_BFC18710: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18710: 16000005 bne $s0, $zero, 0xBFC18728 */ uint32_t psx_brA_BFC18710 = cpu->gpr[16]; uint32_t psx_brB_BFC18710 = cpu->gpr[0]; @@ -59110,6 +72589,9 @@ label_BFC18710: /* nop */ if (psx_taken_BFC18710) goto label_BFC18728; label_BFC18718: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18718: 0C00FF6C jal 0xB003FDB0 */ /* 0xBFC1871C: 00002021 addu $a0, $zero, $zero */ @@ -59117,6 +72599,9 @@ label_BFC18718: cpu->gpr[31] = 0x80030720u; psx_dispatch(cpu, 0x8003FDB0u); label_BFC18720: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18720: 0C010019 jal 0xB0040064 */ /* 0xBFC18724: 2404005E addiu $a0, $zero, 94 */ @@ -59124,6 +72609,9 @@ label_BFC18720: cpu->gpr[31] = 0x80030728u; psx_dispatch(cpu, 0x80040064u); label_BFC18728: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18728: 0C0106B8 jal 0xB0041AE0 */ /* 0xBFC1872C: 02002021 addu $a0, $s0, $zero */ @@ -59131,6 +72619,9 @@ label_BFC18728: cpu->gpr[31] = 0x80030730u; psx_dispatch(cpu, 0x80041AE0u); label_BFC18730: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18730: 0C00FC64 jal 0xB003F190 */ /* 0xBFC18734: 00000000 nop */ @@ -59138,6 +72629,9 @@ label_BFC18730: cpu->gpr[31] = 0x80030738u; psx_dispatch(cpu, 0x8003F190u); label_BFC18738: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18738: 0C00FEF7 jal 0xB003FBDC */ /* 0xBFC1873C: 00000000 nop */ @@ -59145,6 +72639,9 @@ label_BFC18738: cpu->gpr[31] = 0x80030740u; psx_dispatch(cpu, 0x8003FBDCu); label_BFC18740: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC18740: 24100001 addiu $s0, $zero, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -59155,6 +72652,9 @@ label_BFC18740: /* nop */ if (psx_taken_BFC18744) goto label_BFC18764; label_BFC1874C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1874C: 0C016720 jal 0xB0059C80 */ /* 0xBFC18750: 00002021 addu $a0, $zero, $zero */ @@ -59162,6 +72662,9 @@ label_BFC1874C: cpu->gpr[31] = 0x80030754u; psx_dispatch(cpu, 0x80059C80u); label_BFC18754: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18754: 0C00FEF7 jal 0xB003FBDC */ /* 0xBFC18758: 00000000 nop */ @@ -59169,6 +72672,9 @@ label_BFC18754: cpu->gpr[31] = 0x8003075Cu; psx_dispatch(cpu, 0x8003FBDCu); label_BFC1875C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1875C: 1050FFFB beq $v0, $s0, 0xBFC1874C */ uint32_t psx_brA_BFC1875C = cpu->gpr[2]; uint32_t psx_brB_BFC1875C = cpu->gpr[16]; @@ -59177,6 +72683,9 @@ label_BFC1875C: /* nop */ if (psx_taken_BFC1875C) goto label_BFC1874C; label_BFC18764: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18764: 0C016720 jal 0xB0059C80 */ /* 0xBFC18768: 00002021 addu $a0, $zero, $zero */ @@ -59184,6 +72693,9 @@ label_BFC18764: cpu->gpr[31] = 0x8003076Cu; psx_dispatch(cpu, 0x80059C80u); label_BFC1876C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1876C: 0C013B47 jal 0xB004ED1C */ /* 0xBFC18770: 24040003 addiu $a0, $zero, 3 */ @@ -59191,10 +72703,16 @@ label_BFC1876C: cpu->gpr[31] = 0x80030774u; psx_dispatch(cpu, 0x8004ED1Cu); label_BFC18774: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC18774: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC18778: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC18778: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18778u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -59209,6 +72727,9 @@ label_BFC18778: void func_1FC18788(CPUState* cpu) { debug_server_log_call_entry(0x1FC18788u); label_BFC18788: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC18788: 308400FF andi $a0, $a0, 0xFF */ cpu->gpr[4] = cpu->gpr[4] & 0xFFu; @@ -59237,6 +72758,9 @@ void func_1FC18798(CPUState* cpu) { } } label_BFC18798: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC18798: 27BDFF50 addiu $sp, $sp, -176 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-176)); @@ -59256,6 +72780,9 @@ label_BFC18798: cpu->gpr[31] = 0x800307B8u; psx_dispatch(cpu, 0x8004322Cu); label_BFC187B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC187B8: 8FA600AC lw $a2, 172($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC187B8u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -59267,6 +72794,9 @@ label_BFC187B8: cpu->gpr[31] = 0x800307C8u; psx_dispatch(cpu, 0x8004322Cu); label_BFC187C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC187C8: 8FA600AC lw $a2, 172($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC187C8u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -59275,6 +72805,9 @@ label_BFC187C8: /* 0xBFC187D0: 27A300B0 addiu $v1, $sp, 176 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[29] + (176)); label_BFC187D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC187D4: 90C20000 lbu $v0, 0($a2) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[6] + (0))); @@ -59287,6 +72820,9 @@ label_BFC187D4: /* nop */ if (psx_taken_BFC187DC) goto label_BFC187F8; label_BFC187E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC187E4: A062FFBC sb $v0, -68($v1) */ g_debug_last_store_pc = 0xBFC187E4u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[3] + (-68)), (uint8_t)(cpu->gpr[2] & 0xFFu)); @@ -59301,6 +72837,9 @@ label_BFC187E4: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1)); if (psx_taken_BFC187F0) goto label_BFC187D4; label_BFC187F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC187F8: A060FFBC sb $zero, -68($v1) */ g_debug_last_store_pc = 0xBFC187F8u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[3] + (-68)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -59311,6 +72850,9 @@ label_BFC187F8: /* 0xBFC18804: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; label_BFC18808: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC18808: 90C20000 lbu $v0, 0($a2) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[6] + (0))); @@ -59323,6 +72865,9 @@ label_BFC18808: /* nop */ if (psx_taken_BFC18810) goto label_BFC18828; label_BFC18818: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC18818: A062FF7C sb $v0, -132($v1) */ g_debug_last_store_pc = 0xBFC18818u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[3] + (-132)), (uint8_t)(cpu->gpr[2] & 0xFFu)); @@ -59335,6 +72880,9 @@ label_BFC18818: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1)); if (psx_taken_BFC18820) goto label_BFC18808; label_BFC18828: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18828: A060FF7C sb $zero, -132($v1) */ g_debug_last_store_pc = 0xBFC18828u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[3] + (-132)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -59349,6 +72897,9 @@ label_BFC18828: /* nop */ if (psx_taken_BFC18834) goto label_BFC1885C; label_BFC1883C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1883C: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -59358,6 +72909,9 @@ label_BFC1883C: cpu->gpr[31] = 0x80030848u; psx_dispatch(cpu, 0x8005A910u); label_BFC18848: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC18848: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -59367,6 +72921,9 @@ label_BFC18848: cpu->gpr[31] = 0x80030854u; psx_dispatch(cpu, 0x8005A910u); label_BFC18854: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18854: 10000009 beq $zero, $zero, 0xBFC1887C */ uint32_t psx_brA_BFC18854 = cpu->gpr[0]; uint32_t psx_brB_BFC18854 = cpu->gpr[0]; @@ -59375,6 +72932,9 @@ label_BFC18854: /* nop */ if (psx_taken_BFC18854) goto label_BFC1887C; label_BFC1885C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1885C: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -59386,6 +72946,9 @@ label_BFC1885C: cpu->gpr[31] = 0x8003086Cu; psx_dispatch(cpu, 0x8005A910u); label_BFC1886C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1886C: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -59397,6 +72960,9 @@ label_BFC1886C: cpu->gpr[31] = 0x8003087Cu; psx_dispatch(cpu, 0x8005A910u); label_BFC1887C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1887C: 0C016A48 jal 0xB005A920 */ /* 0xBFC18880: 27A4006C addiu $a0, $sp, 108 */ @@ -59404,6 +72970,9 @@ label_BFC1887C: cpu->gpr[31] = 0x80030884u; psx_dispatch(cpu, 0x8005A920u); label_BFC18884: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18884: 03A27821 addu $t7, $sp, $v0 */ cpu->gpr[15] = cpu->gpr[29] + cpu->gpr[2]; @@ -59418,6 +72987,9 @@ label_BFC18884: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC18890) goto label_BFC188A4; label_BFC18898: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18898: 10000002 beq $zero, $zero, 0xBFC188A4 */ uint32_t psx_brA_BFC18898 = cpu->gpr[0]; uint32_t psx_brB_BFC18898 = cpu->gpr[0]; @@ -59426,10 +72998,16 @@ label_BFC18898: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC18898) goto label_BFC188A4; label_BFC188A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC188A0: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC188A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC188A4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC188A4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -59444,6 +73022,9 @@ label_BFC188A4: void func_1FC188B4(CPUState* cpu) { debug_server_log_call_entry(0x1FC188B4u); label_BFC188B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC188B4: 00C01021 addu $v0, $a2, $zero */ cpu->gpr[2] = cpu->gpr[6] + cpu->gpr[0]; @@ -59454,6 +73035,9 @@ label_BFC188B4: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (-1)); if (psx_taken_BFC188B8) goto label_BFC188DC; label_BFC188C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC188C0: 80AE0000 lb $t6, 0($a1) */ cpu->gpr[14] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (0))); @@ -59472,6 +73056,9 @@ label_BFC188C0: g_debug_last_store_pc = 0xBFC188D8u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (-1)), (uint8_t)(cpu->gpr[14] & 0xFFu)); if (psx_taken_BFC188D4) goto label_BFC188C0; label_BFC188DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC188DC: 03E00008 jr $ra */ /* 0xBFC188E0: 00000000 nop */ @@ -59492,6 +73079,9 @@ void func_1FC188F0(CPUState* cpu) { } } label_BFC188F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC188F0: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -59503,6 +73093,9 @@ label_BFC188F0: cpu->gpr[31] = 0x80030900u; psx_dispatch(cpu, 0x80030990u); label_BFC18900: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC18900: 3C038006 lui $v1, 0x8006 */ cpu->gpr[3] = 0x80060000u; @@ -59521,6 +73114,9 @@ label_BFC18900: /* nop */ if (psx_taken_BFC18914) goto label_BFC18958; label_BFC1891C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1891C: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -59535,6 +73131,9 @@ label_BFC1891C: cpu->gpr[1] = 0x50000000u; if (psx_taken_BFC18928) goto label_BFC18974; label_BFC18930: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC18930: 34215000 ori $at, $at, 0x5000 */ cpu->gpr[1] = cpu->gpr[1] | 0x5000u; @@ -59547,6 +73146,9 @@ label_BFC18930: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1893Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC18938) goto label_BFC18978; label_BFC18940: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18940: 0C0119AE jal 0xB00466B8 */ /* 0xBFC18944: 00002021 addu $a0, $zero, $zero */ @@ -59554,6 +73156,9 @@ label_BFC18940: cpu->gpr[31] = 0x80030948u; psx_dispatch(cpu, 0x800466B8u); label_BFC18948: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC18948: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -59566,6 +73171,9 @@ label_BFC18948: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18954u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC18950) goto label_BFC18978; label_BFC18958: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18958: 14600007 bne $v1, $zero, 0xBFC18978 */ uint32_t psx_brA_BFC18958 = cpu->gpr[3]; uint32_t psx_brB_BFC18958 = cpu->gpr[0]; @@ -59574,6 +73182,9 @@ label_BFC18958: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1895Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC18958) goto label_BFC18978; label_BFC18960: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18960: 0C0119AE jal 0xB00466B8 */ /* 0xBFC18964: 00000000 nop */ @@ -59581,6 +73192,9 @@ label_BFC18960: cpu->gpr[31] = 0x80030968u; psx_dispatch(cpu, 0x800466B8u); label_BFC18968: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC18968: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -59589,10 +73203,16 @@ label_BFC18968: /* 0xBFC18970: 00000000 nop */ /* nop */ label_BFC18974: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC18974: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18974u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC18978: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC18978: 00801821 addu $v1, $a0, $zero */ cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[0]; @@ -59636,6 +73256,9 @@ void func_1FC18990(CPUState* cpu) { } } label_BFC18990: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18990: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -59650,6 +73273,9 @@ label_BFC18990: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC189A0u); return; } g_debug_last_store_pc = 0xBFC189A0u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC1899C) goto label_BFC189B0; label_BFC189A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC189A4: 24010003 addiu $at, $zero, 3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); @@ -59660,6 +73286,9 @@ label_BFC189A4: /* nop */ if (psx_taken_BFC189A8) goto label_BFC18C7C; label_BFC189B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC189B0: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -59680,6 +73309,9 @@ label_BFC189B0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25036)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC189CCu); return; } g_debug_last_store_pc = 0xBFC189CCu; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC189C8) goto label_BFC18C7C; label_BFC189D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC189D0: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -59694,6 +73326,9 @@ label_BFC189D0: /* nop */ if (psx_taken_BFC189DC) goto label_BFC18A00; label_BFC189E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC189E4: 3C188006 lui $t8, 0x8006 */ cpu->gpr[24] = 0x80060000u; @@ -59708,6 +73343,9 @@ label_BFC189E4: cpu->gpr[1] = 0x80060000u; if (psx_taken_BFC189F0) goto label_BFC18A00; label_BFC189F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC189F8: 100000C1 beq $zero, $zero, 0xBFC18D00 */ uint32_t psx_brA_BFC189F8 = cpu->gpr[0]; uint32_t psx_brB_BFC189F8 = cpu->gpr[0]; @@ -59716,6 +73354,9 @@ label_BFC189F8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-20780)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC189FCu); return; } g_debug_last_store_pc = 0xBFC189FCu; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC189F8) goto label_BFC18D00; label_BFC18A00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18A00: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; @@ -59729,6 +73370,9 @@ label_BFC18A00: cpu->gpr[31] = 0x80030A14u; psx_dispatch(cpu, 0x800359C4u); label_BFC18A14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18A14: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -59743,6 +73387,9 @@ label_BFC18A14: /* nop */ if (psx_taken_BFC18A20) goto label_BFC18A5C; label_BFC18A28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18A28: 3C088006 lui $t0, 0x8006 */ cpu->gpr[8] = 0x80060000u; @@ -59757,6 +73404,9 @@ label_BFC18A28: /* nop */ if (psx_taken_BFC18A34) goto label_BFC18A5C; label_BFC18A3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18A3C: 0C00D2BC jal 0xB0034AF0 */ /* 0xBFC18A40: 00000000 nop */ @@ -59764,6 +73414,9 @@ label_BFC18A3C: cpu->gpr[31] = 0x80030A44u; psx_dispatch(cpu, 0x80034AF0u); label_BFC18A44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC18A44: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -59780,6 +73433,9 @@ label_BFC18A44: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-20780)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18A58u); return; } g_debug_last_store_pc = 0xBFC18A58u; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC18A54) goto label_BFC18A7C; label_BFC18A5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18A5C: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -59794,6 +73450,9 @@ label_BFC18A5C: cpu->gpr[1] = 0x80060000u; if (psx_taken_BFC18A68) goto label_BFC18A7C; label_BFC18A70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC18A70: AC20AED4 sw $zero, -20780($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-20780)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18A70u); return; } g_debug_last_store_pc = 0xBFC18A70u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -59803,6 +73462,9 @@ label_BFC18A70: cpu->gpr[31] = 0x80030A7Cu; psx_dispatch(cpu, 0x800359C4u); label_BFC18A7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18A7C: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -59817,6 +73479,9 @@ label_BFC18A7C: /* nop */ if (psx_taken_BFC18A88) goto label_BFC18C7C; label_BFC18A90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18A90: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -59831,6 +73496,9 @@ label_BFC18A90: /* nop */ if (psx_taken_BFC18A9C) goto label_BFC18C7C; label_BFC18AA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18AA4: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -59845,6 +73513,9 @@ label_BFC18AA4: /* nop */ if (psx_taken_BFC18AB0) goto label_BFC18C7C; label_BFC18AB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18AB8: 0C00D671 jal 0xB00359C4 */ /* 0xBFC18ABC: 24040001 addiu $a0, $zero, 1 */ @@ -59852,6 +73523,9 @@ label_BFC18AB8: cpu->gpr[31] = 0x80030AC0u; psx_dispatch(cpu, 0x800359C4u); label_BFC18AC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18AC0: 1840006E blez $v0, 0xBFC18C7C */ uint32_t psx_brA_BFC18AC0 = cpu->gpr[2]; @@ -59860,6 +73534,9 @@ label_BFC18AC0: /* nop */ if (psx_taken_BFC18AC0) goto label_BFC18C7C; label_BFC18AC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18AC8: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -59874,6 +73551,9 @@ label_BFC18AC8: /* nop */ if (psx_taken_BFC18AD4) goto label_BFC18C3C; label_BFC18ADC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18ADC: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -59888,6 +73568,9 @@ label_BFC18ADC: /* nop */ if (psx_taken_BFC18AE8) goto label_BFC18BA4; label_BFC18AF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18AF0: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -59902,6 +73585,9 @@ label_BFC18AF0: /* nop */ if (psx_taken_BFC18AFC) goto label_BFC18B0C; label_BFC18B04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18B04: 0C015BFC jal 0xB0056FF0 */ /* 0xBFC18B08: 00000000 nop */ @@ -59909,6 +73595,9 @@ label_BFC18B04: cpu->gpr[31] = 0x80030B0Cu; psx_dispatch(cpu, 0x80056FF0u); label_BFC18B0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18B0C: 0C00D671 jal 0xB00359C4 */ /* 0xBFC18B10: 24040001 addiu $a0, $zero, 1 */ @@ -59916,6 +73605,9 @@ label_BFC18B0C: cpu->gpr[31] = 0x80030B14u; psx_dispatch(cpu, 0x800359C4u); label_BFC18B14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18B14: 18400059 blez $v0, 0xBFC18C7C */ uint32_t psx_brA_BFC18B14 = cpu->gpr[2]; @@ -59924,6 +73616,9 @@ label_BFC18B14: /* nop */ if (psx_taken_BFC18B14) goto label_BFC18C7C; label_BFC18B1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18B1C: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -59938,6 +73633,9 @@ label_BFC18B1C: /* nop */ if (psx_taken_BFC18B28) goto label_BFC18C7C; label_BFC18B30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18B30: 0C016720 jal 0xB0059C80 */ /* 0xBFC18B34: 00002021 addu $a0, $zero, $zero */ @@ -59945,6 +73643,9 @@ label_BFC18B30: cpu->gpr[31] = 0x80030B38u; psx_dispatch(cpu, 0x80059C80u); label_BFC18B38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18B38: 0C013B47 jal 0xB004ED1C */ /* 0xBFC18B3C: 24040003 addiu $a0, $zero, 3 */ @@ -59952,6 +73653,9 @@ label_BFC18B38: cpu->gpr[31] = 0x80030B40u; psx_dispatch(cpu, 0x8004ED1Cu); label_BFC18B40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18B40: 0C00C1A1 jal 0xB0030684 */ /* 0xBFC18B44: 00002021 addu $a0, $zero, $zero */ @@ -59959,6 +73663,9 @@ label_BFC18B40: cpu->gpr[31] = 0x80030B48u; psx_dispatch(cpu, 0x80030684u); label_BFC18B48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18B48: 1840004C blez $v0, 0xBFC18C7C */ uint32_t psx_brA_BFC18B48 = cpu->gpr[2]; @@ -59967,6 +73674,9 @@ label_BFC18B48: /* nop */ if (psx_taken_BFC18B48) goto label_BFC18C7C; label_BFC18B50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18B50: 0C01680F jal 0xB005A03C */ /* 0xBFC18B54: 00000000 nop */ @@ -59974,6 +73684,9 @@ label_BFC18B50: cpu->gpr[31] = 0x80030B58u; psx_dispatch(cpu, 0x8005A03Cu); label_BFC18B58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC18B58: 24080001 addiu $t0, $zero, 1 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -59995,6 +73708,9 @@ label_BFC18B58: cpu->gpr[31] = 0x80030B7Cu; psx_dispatch(cpu, 0x80059C80u); label_BFC18B7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18B7C: 0C013B47 jal 0xB004ED1C */ /* 0xBFC18B80: 24040003 addiu $a0, $zero, 3 */ @@ -60002,6 +73718,9 @@ label_BFC18B7C: cpu->gpr[31] = 0x80030B84u; psx_dispatch(cpu, 0x8004ED1Cu); label_BFC18B84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18B84: 0C00D831 jal 0xB00360C4 */ /* 0xBFC18B88: 00000000 nop */ @@ -60009,6 +73728,9 @@ label_BFC18B84: cpu->gpr[31] = 0x80030B8Cu; psx_dispatch(cpu, 0x800360C4u); label_BFC18B8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18B8C: 0C00F556 jal 0xB003D558 */ /* 0xBFC18B90: 00000000 nop */ @@ -60016,6 +73738,9 @@ label_BFC18B8C: cpu->gpr[31] = 0x80030B94u; psx_dispatch(cpu, 0x8003D558u); label_BFC18B94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC18B94: 24090001 addiu $t1, $zero, 1 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -60028,6 +73753,9 @@ label_BFC18B94: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25048)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18BA0u); return; } g_debug_last_store_pc = 0xBFC18BA0u; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC18B9C) goto label_BFC18D00; label_BFC18BA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18BA4: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -60042,6 +73770,9 @@ label_BFC18BA4: /* nop */ if (psx_taken_BFC18BB0) goto label_BFC18BDC; label_BFC18BB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18BB8: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -60056,6 +73787,9 @@ label_BFC18BB8: /* nop */ if (psx_taken_BFC18BC4) goto label_BFC18BDC; label_BFC18BCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC18BCC: 240C0004 addiu $t4, $zero, 4 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); @@ -60068,6 +73802,9 @@ label_BFC18BCC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-22656)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18BD8u); return; } g_debug_last_store_pc = 0xBFC18BD8u; cpu->write_word(psx_addr, cpu->gpr[12]); } if (psx_taken_BFC18BD4) goto label_BFC18D00; label_BFC18BDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18BDC: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -60082,6 +73819,9 @@ label_BFC18BDC: /* nop */ if (psx_taken_BFC18BE8) goto label_BFC18C7C; label_BFC18BF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18BF0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -60096,6 +73836,9 @@ label_BFC18BF0: /* nop */ if (psx_taken_BFC18BFC) goto label_BFC18C7C; label_BFC18C04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18C04: 0C00DDDE jal 0xB0037778 */ /* 0xBFC18C08: 00000000 nop */ @@ -60103,6 +73846,9 @@ label_BFC18C04: cpu->gpr[31] = 0x80030C0Cu; psx_dispatch(cpu, 0x80037778u); label_BFC18C0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18C0C: 1040001B beq $v0, $zero, 0xBFC18C7C */ uint32_t psx_brA_BFC18C0C = cpu->gpr[2]; uint32_t psx_brB_BFC18C0C = cpu->gpr[0]; @@ -60111,6 +73857,9 @@ label_BFC18C0C: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC18C0C) goto label_BFC18C7C; label_BFC18C14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC18C14: AC209E04 sw $zero, -25084($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25084)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18C14u); return; } g_debug_last_store_pc = 0xBFC18C14u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -60126,6 +73875,9 @@ label_BFC18C14: cpu->gpr[31] = 0x80030C2Cu; psx_dispatch(cpu, 0x80033D3Cu); label_BFC18C2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC18C2C: 24180001 addiu $t8, $zero, 1 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -60138,6 +73890,9 @@ label_BFC18C2C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25040)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18C38u); return; } g_debug_last_store_pc = 0xBFC18C38u; cpu->write_word(psx_addr, cpu->gpr[24]); } if (psx_taken_BFC18C34) goto label_BFC18D00; label_BFC18C3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18C3C: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -60152,6 +73907,9 @@ label_BFC18C3C: /* nop */ if (psx_taken_BFC18C48) goto label_BFC18C7C; label_BFC18C50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18C50: 0C00DDDE jal 0xB0037778 */ /* 0xBFC18C54: 00000000 nop */ @@ -60159,6 +73917,9 @@ label_BFC18C50: cpu->gpr[31] = 0x80030C58u; psx_dispatch(cpu, 0x80037778u); label_BFC18C58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18C58: 10400008 beq $v0, $zero, 0xBFC18C7C */ uint32_t psx_brA_BFC18C58 = cpu->gpr[2]; uint32_t psx_brB_BFC18C58 = cpu->gpr[0]; @@ -60167,6 +73928,9 @@ label_BFC18C58: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC18C58) goto label_BFC18C7C; label_BFC18C60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC18C60: AC209E04 sw $zero, -25084($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25084)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18C60u); return; } g_debug_last_store_pc = 0xBFC18C60u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -60176,6 +73940,9 @@ label_BFC18C60: cpu->gpr[31] = 0x80030C6Cu; psx_dispatch(cpu, 0x80033D3Cu); label_BFC18C6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC18C6C: 24080001 addiu $t0, $zero, 1 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -60188,6 +73955,9 @@ label_BFC18C6C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25040)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18C78u); return; } g_debug_last_store_pc = 0xBFC18C78u; cpu->write_word(psx_addr, cpu->gpr[8]); } if (psx_taken_BFC18C74) goto label_BFC18D00; label_BFC18C7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18C7C: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -60202,6 +73972,9 @@ label_BFC18C7C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18C8Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC18C88) goto label_BFC18D04; label_BFC18C90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18C90: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -60216,6 +73989,9 @@ label_BFC18C90: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18CA0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC18C9C) goto label_BFC18D04; label_BFC18CA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18CA4: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -60230,6 +74006,9 @@ label_BFC18CA4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18CB4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC18CB0) goto label_BFC18D04; label_BFC18CB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18CB8: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -60244,6 +74023,9 @@ label_BFC18CB8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18CC8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC18CC4) goto label_BFC18D04; label_BFC18CCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18CCC: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -60258,6 +74040,9 @@ label_BFC18CCC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18CDCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC18CD8) goto label_BFC18D04; label_BFC18CE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18CE0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -60272,6 +74057,9 @@ label_BFC18CE0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18CF0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC18CEC) goto label_BFC18D04; label_BFC18CF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC18CF4: 240F0004 addiu $t7, $zero, 4 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); @@ -60280,10 +74068,16 @@ label_BFC18CF4: /* 0xBFC18CFC: AC2FA780 sw $t7, -22656($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-22656)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18CFCu); return; } g_debug_last_store_pc = 0xBFC18CFCu; cpu->write_word(psx_addr, cpu->gpr[15]); } label_BFC18D00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC18D00: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18D00u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC18D04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC18D04: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -60338,6 +74132,9 @@ void func_1FC18D10(CPUState* cpu) { } } label_BFC18D10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC18D10: 27BDFFA0 addiu $sp, $sp, -96 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-96)); @@ -60355,6 +74152,9 @@ label_BFC18D10: cpu->gpr[31] = 0x80030D2Cu; psx_dispatch(cpu, 0x8004BFB4u); label_BFC18D2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18D2C: 0C012FF3 jal 0xB004BFCC */ /* 0xBFC18D30: 24040200 addiu $a0, $zero, 512 */ @@ -60362,6 +74162,9 @@ label_BFC18D2C: cpu->gpr[31] = 0x80030D34u; psx_dispatch(cpu, 0x8004BFCCu); label_BFC18D34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC18D34: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -60373,6 +74176,9 @@ label_BFC18D34: cpu->gpr[31] = 0x80030D44u; psx_dispatch(cpu, 0x8004BF00u); label_BFC18D44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC18D44: 24040080 addiu $a0, $zero, 128 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (128)); @@ -60384,6 +74190,9 @@ label_BFC18D44: cpu->gpr[31] = 0x80030D54u; psx_dispatch(cpu, 0x8004BF20u); label_BFC18D54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18D54: 0C010FC4 jal 0xB0043F10 */ /* 0xBFC18D58: 24040001 addiu $a0, $zero, 1 */ @@ -60391,6 +74200,9 @@ label_BFC18D54: cpu->gpr[31] = 0x80030D5Cu; psx_dispatch(cpu, 0x80043F10u); label_BFC18D5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC18D5C: 240E01E0 addiu $t6, $zero, 480 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (480)); @@ -60408,6 +74220,9 @@ label_BFC18D5C: cpu->gpr[31] = 0x80030D78u; psx_dispatch(cpu, 0x8005154Cu); label_BFC18D78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC18D78: 26041420 addiu $a0, $s0, 5152 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[16] + (5152)); @@ -60427,6 +74242,9 @@ label_BFC18D78: cpu->gpr[31] = 0x80030D98u; psx_dispatch(cpu, 0x8005154Cu); label_BFC18D98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC18D98: 2604005C addiu $a0, $s0, 92 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[16] + (92)); @@ -60446,6 +74264,9 @@ label_BFC18D98: cpu->gpr[31] = 0x80030DB8u; psx_dispatch(cpu, 0x800515ECu); label_BFC18DB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC18DB8: 2604147C addiu $a0, $s0, 5244 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[16] + (5244)); @@ -60465,6 +74286,9 @@ label_BFC18DB8: cpu->gpr[31] = 0x80030DD8u; psx_dispatch(cpu, 0x800515ECu); label_BFC18DD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC18DD8: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -60479,6 +74303,9 @@ label_BFC18DD8: /* nop */ if (psx_taken_BFC18DE4) goto label_BFC18DF4; label_BFC18DEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC18DEC: 1000000C beq $zero, $zero, 0xBFC18E20 */ uint32_t psx_brA_BFC18DEC = cpu->gpr[0]; uint32_t psx_brB_BFC18DEC = cpu->gpr[0]; @@ -60487,6 +74314,9 @@ label_BFC18DEC: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC18DEC) goto label_BFC18E20; label_BFC18DF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC18DF4: A6001488 sh $zero, 5256($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (5256)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18DF4u); return; } g_debug_last_store_pc = 0xBFC18DF4u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } @@ -60511,6 +74341,9 @@ label_BFC18DF4: /* 0xBFC18E1C: A205006E sb $a1, 110($s0) */ g_debug_last_store_pc = 0xBFC18E1Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[16] + (110)), (uint8_t)(cpu->gpr[5] & 0xFFu)); label_BFC18E20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC18E20: A2051437 sb $a1, 5175($s0) */ g_debug_last_store_pc = 0xBFC18E20u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[16] + (5175)), (uint8_t)(cpu->gpr[5] & 0xFFu)); @@ -60528,6 +74361,9 @@ label_BFC18E20: cpu->gpr[31] = 0x80030E3Cu; psx_dispatch(cpu, 0x8004F434u); label_BFC18E3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC18E3C: 8FA40050 lw $a0, 80($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (80)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18E3Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -60537,6 +74373,9 @@ label_BFC18E3C: cpu->gpr[31] = 0x80030E48u; psx_dispatch(cpu, 0x8004F434u); label_BFC18E48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC18E48: 8FA4004C lw $a0, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18E48u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -60546,6 +74385,9 @@ label_BFC18E48: cpu->gpr[31] = 0x80030E54u; psx_dispatch(cpu, 0x8004F4ECu); label_BFC18E54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC18E54: 8FA40048 lw $a0, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC18E54u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -60555,6 +74397,9 @@ label_BFC18E54: cpu->gpr[31] = 0x80030E60u; psx_dispatch(cpu, 0x8004F4ECu); label_BFC18E60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC18E60: 3C04801A lui $a0, 0x801A */ cpu->gpr[4] = 0x801A0000u; @@ -60570,6 +74415,9 @@ label_BFC18E60: cpu->gpr[31] = 0x80030E78u; psx_dispatch(cpu, 0x80048DF0u); label_BFC18E78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC18E78: 3C04801A lui $a0, 0x801A */ cpu->gpr[4] = 0x801A0000u; @@ -60585,6 +74433,9 @@ label_BFC18E78: cpu->gpr[31] = 0x80030E90u; psx_dispatch(cpu, 0x80048DF0u); label_BFC18E90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC18E90: 3C04801A lui $a0, 0x801A */ cpu->gpr[4] = 0x801A0000u; @@ -60600,6 +74451,9 @@ label_BFC18E90: cpu->gpr[31] = 0x80030EA8u; psx_dispatch(cpu, 0x80048DF0u); label_BFC18EA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC18EA8: 3C04801A lui $a0, 0x801A */ cpu->gpr[4] = 0x801A0000u; @@ -60615,6 +74469,9 @@ label_BFC18EA8: cpu->gpr[31] = 0x80030EC0u; psx_dispatch(cpu, 0x80048DF0u); label_BFC18EC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC18EC0: 3C04801B lui $a0, 0x801B */ cpu->gpr[4] = 0x801B0000u; @@ -60630,6 +74487,9 @@ label_BFC18EC0: cpu->gpr[31] = 0x80030ED8u; psx_dispatch(cpu, 0x80048DF0u); label_BFC18ED8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC18ED8: 3C04801B lui $a0, 0x801B */ cpu->gpr[4] = 0x801B0000u; @@ -60645,6 +74505,9 @@ label_BFC18ED8: cpu->gpr[31] = 0x80030EF0u; psx_dispatch(cpu, 0x80048DF0u); label_BFC18EF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC18EF0: 3C0E8006 lui $t6, 0x8006 */ cpu->gpr[14] = 0x80060000u; @@ -60692,6 +74555,9 @@ label_BFC18EF0: cpu->gpr[31] = 0x80030F48u; psx_dispatch(cpu, 0x80049194u); label_BFC18F48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(32u); +#endif psx_check_interrupts(cpu); /* 0xBFC18F48: 24180001 addiu $t8, $zero, 1 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -60759,6 +74625,9 @@ label_BFC18F48: cpu->gpr[31] = 0x80030FC8u; psx_dispatch(cpu, 0x80049194u); label_BFC18FC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(34u); +#endif psx_check_interrupts(cpu); /* 0xBFC18FC8: 240A0001 addiu $t2, $zero, 1 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -60830,6 +74699,9 @@ label_BFC18FC8: cpu->gpr[31] = 0x80031050u; psx_dispatch(cpu, 0x80049194u); label_BFC19050: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(32u); +#endif psx_check_interrupts(cpu); /* 0xBFC19050: 240C002D addiu $t4, $zero, 45 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[0] + (45)); @@ -60897,6 +74769,9 @@ label_BFC19050: cpu->gpr[31] = 0x800310D0u; psx_dispatch(cpu, 0x80049194u); label_BFC190D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(32u); +#endif psx_check_interrupts(cpu); /* 0xBFC190D0: 240F002D addiu $t7, $zero, 45 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (45)); @@ -60964,6 +74839,9 @@ label_BFC190D0: cpu->gpr[31] = 0x80031150u; psx_dispatch(cpu, 0x80049194u); label_BFC19150: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(32u); +#endif psx_check_interrupts(cpu); /* 0xBFC19150: 2408002D addiu $t0, $zero, 45 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (45)); @@ -61031,6 +74909,9 @@ label_BFC19150: cpu->gpr[31] = 0x800311D0u; psx_dispatch(cpu, 0x80049194u); label_BFC191D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(32u); +#endif psx_check_interrupts(cpu); /* 0xBFC191D0: 240B0017 addiu $t3, $zero, 23 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (23)); @@ -61098,6 +74979,9 @@ label_BFC191D0: cpu->gpr[31] = 0x80031250u; psx_dispatch(cpu, 0x80049194u); label_BFC19250: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC19250: 240E003E addiu $t6, $zero, 62 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (62)); @@ -61125,6 +75009,9 @@ label_BFC19250: cpu->gpr[31] = 0x80031280u; psx_dispatch(cpu, 0x80048960u); label_BFC19280: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19280: 0C00C4B9 jal 0xB00312E4 */ /* 0xBFC19284: 02002021 addu $a0, $s0, $zero */ @@ -61132,6 +75019,9 @@ label_BFC19280: cpu->gpr[31] = 0x80031288u; psx_dispatch(cpu, 0x800312E4u); label_BFC19288: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC19288: 8FA40050 lw $a0, 80($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (80)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19288u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -61141,6 +75031,9 @@ label_BFC19288: cpu->gpr[31] = 0x80031294u; psx_dispatch(cpu, 0x800312E4u); label_BFC19294: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19294: 0C013D0D jal 0xB004F434 */ /* 0xBFC19298: 02002021 addu $a0, $s0, $zero */ @@ -61148,6 +75041,9 @@ label_BFC19294: cpu->gpr[31] = 0x8003129Cu; psx_dispatch(cpu, 0x8004F434u); label_BFC1929C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1929C: 0C013CDA jal 0xB004F368 */ /* 0xBFC192A0: 26041070 addiu $a0, $s0, 4208 */ @@ -61155,6 +75051,9 @@ label_BFC1929C: cpu->gpr[31] = 0x800312A4u; psx_dispatch(cpu, 0x8004F368u); label_BFC192A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC192A4: 8FA40050 lw $a0, 80($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (80)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC192A4u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -61164,6 +75063,9 @@ label_BFC192A4: cpu->gpr[31] = 0x800312B0u; psx_dispatch(cpu, 0x8004F434u); label_BFC192B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC192B0: 0C013CDA jal 0xB004F368 */ /* 0xBFC192B4: 26042490 addiu $a0, $s0, 9360 */ @@ -61171,6 +75073,9 @@ label_BFC192B0: cpu->gpr[31] = 0x800312B8u; psx_dispatch(cpu, 0x8004F368u); label_BFC192B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC192B8: A2001437 sb $zero, 5175($s0) */ g_debug_last_store_pc = 0xBFC192B8u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[16] + (5175)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -61182,6 +75087,9 @@ label_BFC192B8: cpu->gpr[31] = 0x800312C8u; psx_dispatch(cpu, 0x8004F434u); label_BFC192C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC192C8: 8FA40050 lw $a0, 80($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (80)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC192C8u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -61191,6 +75099,9 @@ label_BFC192C8: cpu->gpr[31] = 0x800312D4u; psx_dispatch(cpu, 0x8004F434u); label_BFC192D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC192D4: 8FBF0044 lw $ra, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC192D4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -61214,6 +75125,9 @@ void func_1FC192E4(CPUState* cpu) { } } label_BFC192E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC192E4: 27BDFFD0 addiu $sp, $sp, -48 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-48)); @@ -61229,6 +75143,9 @@ label_BFC192E4: cpu->gpr[31] = 0x800312FCu; psx_dispatch(cpu, 0x800519ECu); label_BFC192FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(42u); +#endif psx_check_interrupts(cpu); /* 0xBFC192FC: 8FA30030 lw $v1, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC192FCu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -61316,6 +75233,9 @@ label_BFC192FC: cpu->gpr[31] = 0x800313A4u; psx_dispatch(cpu, 0x80049448u); label_BFC193A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC193A4: 8FBF002C lw $ra, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC193A4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -61341,6 +75261,9 @@ void func_1FC193C0(CPUState* cpu) { } } label_BFC193C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC193C0: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -61365,6 +75288,9 @@ label_BFC193C0: /* nop */ if (psx_taken_BFC193E0) goto label_BFC193FC; label_BFC193E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC193E8: 248F1420 addiu $t7, $a0, 5152 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[4] + (5152)); @@ -61379,6 +75305,9 @@ label_BFC193E8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25052)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC193F8u); return; } g_debug_last_store_pc = 0xBFC193F8u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC193F4) goto label_BFC19408; label_BFC193FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC193FC: AE840000 sw $a0, 0($s4) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[20] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC193FCu); return; } g_debug_last_store_pc = 0xBFC193FCu; cpu->write_word(psx_addr, cpu->gpr[4]); } @@ -61387,6 +75316,9 @@ label_BFC193FC: /* 0xBFC19404: AC209E24 sw $zero, -25052($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25052)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19404u); return; } g_debug_last_store_pc = 0xBFC19404u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC19408: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC19408: 8E840000 lw $a0, 0($s4) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[20] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19408u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -61398,6 +75330,9 @@ label_BFC19408: cpu->gpr[31] = 0x80031418u; psx_dispatch(cpu, 0x8004F334u); label_BFC19418: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC19418: 8E900000 lw $s0, 0($s4) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[20] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19418u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -61411,6 +75346,9 @@ label_BFC19418: cpu->gpr[31] = 0x8003142Cu; psx_dispatch(cpu, 0x80051804u); label_BFC1942C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1942C: 8E900000 lw $s0, 0($s4) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[20] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1942Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -61424,6 +75362,9 @@ label_BFC1942C: cpu->gpr[31] = 0x80031440u; psx_dispatch(cpu, 0x80049380u); label_BFC19440: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC19440: 3C18800F lui $t8, 0x800F */ cpu->gpr[24] = 0x800F0000u; @@ -61438,6 +75379,9 @@ label_BFC19440: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19450u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1944C) goto label_BFC1951C; label_BFC19454: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC19454: 3C19800E lui $t9, 0x800E */ cpu->gpr[25] = 0x800E0000u; @@ -61452,6 +75396,9 @@ label_BFC19454: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19464u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC19460) goto label_BFC1951C; label_BFC19468: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC19468: AFB20028 sw $s2, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19468u); return; } g_debug_last_store_pc = 0xBFC19468u; cpu->write_word(psx_addr, cpu->gpr[18]); } @@ -61470,6 +75417,9 @@ label_BFC19468: /* 0xBFC19484: 26736F78 addiu $s3, $s3, 28536 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (28536)); label_BFC19488: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC19488: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -61502,6 +75452,9 @@ label_BFC19488: /* nop */ if (psx_taken_BFC194B8) goto label_BFC194F0; label_BFC194C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC194C0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -61529,6 +75482,9 @@ label_BFC194C0: cpu->gpr[31] = 0x800314F0u; psx_dispatch(cpu, 0x80044B80u); label_BFC194F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC194F0: 3C08800E lui $t0, 0x800E */ cpu->gpr[8] = 0x800E0000u; @@ -61545,6 +75501,9 @@ label_BFC194F0: /* nop */ if (psx_taken_BFC19500) goto label_BFC19488; label_BFC19508: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC19508: 8FB1002C lw $s1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19508u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -61557,6 +75516,9 @@ label_BFC19508: /* 0xBFC19518: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19518u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC1951C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1951C: 8FB00014 lw $s0, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1951Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -61580,6 +75542,9 @@ void func_1FC1952C(CPUState* cpu) { } } label_BFC1952C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1952C: 27BDFF80 addiu $sp, $sp, -128 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-128)); @@ -61595,6 +75560,9 @@ label_BFC1952C: cpu->gpr[31] = 0x80031544u; psx_dispatch(cpu, 0x8003D6D8u); label_BFC19544: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC19544: 8FA30080 lw $v1, 128($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (128)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19544u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -61607,6 +75575,9 @@ label_BFC19544: /* 0xBFC19554: 2464106C addiu $a0, $v1, 4204 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[3] + (4204)); label_BFC19558: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC19558: 8DE10000 lw $at, 0($t7) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[15] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19558u); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -61629,6 +75600,9 @@ label_BFC19558: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[24] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19578u); return; } g_debug_last_store_pc = 0xBFC19578u; cpu->write_word(psx_addr, cpu->gpr[1]); } if (psx_taken_BFC19574) goto label_BFC19558; label_BFC1957C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1957C: 8DE10000 lw $at, 0($t7) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[15] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1957Cu); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -61645,6 +75619,9 @@ label_BFC1957C: /* 0xBFC19594: AF0E0008 sw $t6, 8($t8) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[24] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19594u); return; } g_debug_last_store_pc = 0xBFC19594u; cpu->write_word(psx_addr, cpu->gpr[14]); } label_BFC19598: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC19598: 8901005F lwl $at, 95($t0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[8] + (95)); uint32_t psx_aligned = psx_addr & ~3u; uint32_t psx_byte_offset = psx_addr & 3u; uint32_t psx_shift_left = (3u - psx_byte_offset) * 8u; uint32_t psx_keep_mask = (1u << psx_shift_left) - 1u; uint32_t psx_word = cpu->read_word(psx_aligned); uint32_t psx_old_rt = cpu->gpr[1]; cpu->gpr[1] = (psx_old_rt & psx_keep_mask) | (psx_word << psx_shift_left); } @@ -61681,6 +75658,9 @@ label_BFC19598: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (92)); uint32_t psx_aligned = psx_addr & ~3u; uint32_t psx_shift_bytes = psx_addr & 3u; uint32_t psx_shift_bits = psx_shift_bytes * 8u; uint32_t psx_keep_mask = 0xFFFFFF00u << ((3u - psx_shift_bytes) * 8u); uint32_t psx_mem = cpu->read_word(psx_aligned); uint32_t psx_new = (psx_mem & psx_keep_mask) | (cpu->gpr[1] << psx_shift_bits); g_debug_last_store_pc = 0xBFC195D4u; cpu->write_word(psx_aligned, psx_new); } if (psx_taken_BFC195D0) goto label_BFC19598; label_BFC195D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC195D8: 8901005F lwl $at, 95($t0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[8] + (95)); uint32_t psx_aligned = psx_addr & ~3u; uint32_t psx_byte_offset = psx_addr & 3u; uint32_t psx_shift_left = (3u - psx_byte_offset) * 8u; uint32_t psx_keep_mask = (1u << psx_shift_left) - 1u; uint32_t psx_word = cpu->read_word(psx_aligned); uint32_t psx_old_rt = cpu->gpr[1]; cpu->gpr[1] = (psx_old_rt & psx_keep_mask) | (psx_word << psx_shift_left); } @@ -61714,6 +75694,9 @@ label_BFC195D8: cpu->gpr[31] = 0x80031614u; psx_dispatch(cpu, 0x8003D5A0u); label_BFC19614: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC19614: 8FBF007C lw $ra, 124($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (124)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19614u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -61739,6 +75722,9 @@ void func_1FC19630(CPUState* cpu) { } } label_BFC19630: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC19630: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -61759,6 +75745,9 @@ label_BFC19630: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1964Cu); return; } g_debug_last_store_pc = 0xBFC1964Cu; cpu->write_word(psx_addr, cpu->gpr[5]); } if (psx_taken_BFC19648) goto label_BFC196B8; label_BFC19650: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19650: 0C011934 jal 0xB00464D0 */ /* 0xBFC19654: 00000000 nop */ @@ -61766,6 +75755,9 @@ label_BFC19650: cpu->gpr[31] = 0x80031658u; psx_dispatch(cpu, 0x800464D0u); label_BFC19658: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19658: 0C011997 jal 0xB004665C */ /* 0xBFC1965C: 00402021 addu $a0, $v0, $zero */ @@ -61773,6 +75765,9 @@ label_BFC19658: cpu->gpr[31] = 0x80031660u; psx_dispatch(cpu, 0x8004665Cu); label_BFC19660: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC19660: 8FA40024 lw $a0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19660u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -61795,10 +75790,16 @@ label_BFC19660: cpu->gpr[1] = cpu->gpr[24] + cpu->gpr[0]; if (psx_taken_BFC1967C) goto label_BFC19688; label_BFC19684: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC19684: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC19688: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC19688: 0001C843 sra $t9, $at, 1 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -61811,10 +75812,16 @@ label_BFC19688: cpu->gpr[1] = cpu->gpr[10] + cpu->gpr[0]; if (psx_taken_BFC19690) goto label_BFC1969C; label_BFC19698: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC19698: 24210003 addiu $at, $at, 3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (3)); label_BFC1969C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1969C: 00015883 sra $t3, $at, 2 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[1] >> 2u); @@ -61824,6 +75831,9 @@ label_BFC1969C: cpu->gpr[31] = 0x800316A8u; psx_dispatch(cpu, 0x800447F4u); label_BFC196A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC196A8: 8FA40020 lw $a0, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC196A8u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -61835,6 +75845,9 @@ label_BFC196A8: cpu->gpr[31] = 0x800316B8u; psx_dispatch(cpu, 0x80044B80u); label_BFC196B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC196B8: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC196B8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -61849,6 +75862,9 @@ label_BFC196B8: void func_1FC196C8(CPUState* cpu) { debug_server_log_call_entry(0x1FC196C8u); label_BFC196C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC196C8: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -61877,6 +75893,9 @@ void func_1FC196D4(CPUState* cpu) { } } label_BFC196D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC196D4: 27BDFFB8 addiu $sp, $sp, -72 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-72)); @@ -61897,6 +75916,9 @@ label_BFC196D4: /* nop */ if (psx_taken_BFC196EC) goto label_BFC1970C; label_BFC196F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC196F4: 84AF0012 lh $t7, 18($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (18)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC196F4u); return; } cpu->gpr[15] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -61909,6 +75931,9 @@ label_BFC196F4: /* nop */ if (psx_taken_BFC196FC) goto label_BFC1970C; label_BFC19704: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19704: 100000D0 beq $zero, $zero, 0xBFC19A48 */ uint32_t psx_brA_BFC19704 = cpu->gpr[0]; uint32_t psx_brB_BFC19704 = cpu->gpr[0]; @@ -61917,6 +75942,9 @@ label_BFC19704: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC19704) goto label_BFC19A48; label_BFC1970C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1970C: 8CAC0034 lw $t4, 52($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1970Cu); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -61936,6 +75964,9 @@ label_BFC1970C: cpu->gpr[31] = 0x8003172Cu; psx_dispatch(cpu, 0x8005A930u); label_BFC1972C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1972C: 8FAA0028 lw $t2, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1972Cu); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -61948,6 +75979,9 @@ label_BFC1972C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19738u); return; } g_debug_last_store_pc = 0xBFC19738u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC19734) goto label_BFC19760; label_BFC1973C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1973C: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -61963,6 +75997,9 @@ label_BFC1973C: cpu->gpr[31] = 0x80031754u; psx_dispatch(cpu, 0x8005A910u); label_BFC19754: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC19754: 8FAA0028 lw $t2, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19754u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -61971,6 +76008,9 @@ label_BFC19754: /* 0xBFC1975C: 00000000 nop */ /* nop */ label_BFC19760: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC19760: AFAA0028 sw $t2, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19760u); return; } g_debug_last_store_pc = 0xBFC19760u; cpu->write_word(psx_addr, cpu->gpr[10]); } @@ -61982,6 +76022,9 @@ label_BFC19760: cpu->gpr[31] = 0x80031770u; psx_dispatch(cpu, 0x8005A930u); label_BFC19770: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC19770: 8FAA0028 lw $t2, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19770u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -61994,6 +76037,9 @@ label_BFC19770: cpu->gpr[11] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC19778) goto label_BFC197AC; label_BFC19780: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC19780: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -62011,6 +76057,9 @@ label_BFC19780: cpu->gpr[31] = 0x8003179Cu; psx_dispatch(cpu, 0x8005A910u); label_BFC1979C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1979C: 8FAA0028 lw $t2, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1979Cu); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -62021,6 +76070,9 @@ label_BFC1979C: /* 0xBFC197A8: 00000000 nop */ /* nop */ label_BFC197AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC197AC: 8FB80050 lw $t8, 80($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (80)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC197ACu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -62033,6 +76085,9 @@ label_BFC197AC: /* nop */ if (psx_taken_BFC197B4) goto label_BFC19944; label_BFC197BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC197BC: 00004021 addu $t0, $zero, $zero */ cpu->gpr[8] = cpu->gpr[0] + cpu->gpr[0]; @@ -62043,10 +76098,16 @@ label_BFC197BC: cpu->gpr[1] = cpu->gpr[12] + cpu->gpr[0]; if (psx_taken_BFC197C0) goto label_BFC197CC; label_BFC197C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC197C8: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC197CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC197CC: 00014843 sra $t1, $at, 1 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -62057,6 +76118,9 @@ label_BFC197CC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC197D4u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } if (psx_taken_BFC197D0) goto label_BFC199E8; label_BFC197D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC197D8: 31230003 andi $v1, $t1, 0x3 */ cpu->gpr[3] = cpu->gpr[9] & 0x3u; @@ -62067,6 +76131,9 @@ label_BFC197D8: cpu->gpr[25] = cpu->gpr[8] << 1u; if (psx_taken_BFC197DC) goto label_BFC19840; label_BFC197E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC197E4: 0008C840 sll $t9, $t0, 1 */ cpu->gpr[25] = cpu->gpr[8] << 1u; @@ -62075,6 +76142,9 @@ label_BFC197E4: /* 0xBFC197EC: 01483821 addu $a3, $t2, $t0 */ cpu->gpr[7] = cpu->gpr[10] + cpu->gpr[8]; label_BFC197F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC197F0: 80E20000 lb $v0, 0($a3) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[7] + (0))); @@ -62113,6 +76183,9 @@ label_BFC197F0: cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[7] + (1)); if (psx_taken_BFC1982C) goto label_BFC197F0; label_BFC19834: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19834: 1109006C beq $t0, $t1, 0xBFC199E8 */ uint32_t psx_brA_BFC19834 = cpu->gpr[8]; uint32_t psx_brB_BFC19834 = cpu->gpr[9]; @@ -62121,16 +76194,25 @@ label_BFC19834: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19838u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } if (psx_taken_BFC19834) goto label_BFC199E8; label_BFC1983C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1983C: 0008C840 sll $t9, $t0, 1 */ cpu->gpr[25] = cpu->gpr[8] << 1u; label_BFC19840: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19840: 01793021 addu $a2, $t3, $t9 */ cpu->gpr[6] = cpu->gpr[11] + cpu->gpr[25]; /* 0xBFC19844: 01483821 addu $a3, $t2, $t0 */ cpu->gpr[7] = cpu->gpr[10] + cpu->gpr[8]; label_BFC19848: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(61u); +#endif psx_check_interrupts(cpu); /* 0xBFC19848: 80E20000 lb $v0, 0($a3) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[7] + (0))); @@ -62257,6 +76339,9 @@ label_BFC19848: g_debug_last_store_pc = 0xBFC19938u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[6] + (-1)), (uint8_t)(cpu->gpr[25] & 0xFFu)); if (psx_taken_BFC19934) goto label_BFC19848; label_BFC1993C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1993C: 1000002A beq $zero, $zero, 0xBFC199E8 */ uint32_t psx_brA_BFC1993C = cpu->gpr[0]; uint32_t psx_brB_BFC1993C = cpu->gpr[0]; @@ -62265,6 +76350,9 @@ label_BFC1993C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19940u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } if (psx_taken_BFC1993C) goto label_BFC199E8; label_BFC19944: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC19944: 81420000 lb $v0, 0($t2) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[10] + (0))); @@ -62279,12 +76367,18 @@ label_BFC19944: cpu->gpr[8] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC19950) goto label_BFC19960; label_BFC19958: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19958: 24020010 addiu $v0, $zero, 16 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); /* 0xBFC1995C: 00004021 addu $t0, $zero, $zero */ cpu->gpr[8] = cpu->gpr[0] + cpu->gpr[0]; label_BFC19960: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19960: 19800020 blez $t4, 0xBFC199E4 */ uint32_t psx_brA_BFC19960 = cpu->gpr[12]; @@ -62293,12 +76387,18 @@ label_BFC19960: cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC19960) goto label_BFC199E4; label_BFC19968: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19968: 01403821 addu $a3, $t2, $zero */ cpu->gpr[7] = cpu->gpr[10] + cpu->gpr[0]; /* 0xBFC1996C: 01601821 addu $v1, $t3, $zero */ cpu->gpr[3] = cpu->gpr[11] + cpu->gpr[0]; label_BFC19970: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC19970: 80ED0000 lb $t5, 0($a3) */ cpu->gpr[13] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[7] + (0))); @@ -62313,6 +76413,9 @@ label_BFC19970: g_debug_last_store_pc = 0xBFC19980u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[3] + (0)), (uint8_t)(cpu->gpr[15] & 0xFFu)); if (psx_taken_BFC1997C) goto label_BFC1999C; label_BFC19984: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC19984: 80E20001 lb $v0, 1($a3) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[7] + (1))); @@ -62327,10 +76430,16 @@ label_BFC19984: /* nop */ if (psx_taken_BFC19990) goto label_BFC1999C; label_BFC19998: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC19998: 24020010 addiu $v0, $zero, 16 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); label_BFC1999C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC1999C: 80F80000 lb $t8, 0($a3) */ cpu->gpr[24] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[7] + (0))); @@ -62355,6 +76464,9 @@ label_BFC1999C: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1)); if (psx_taken_BFC199BC) goto label_BFC199DC; label_BFC199C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC199C4: 80E20001 lb $v0, 1($a3) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[7] + (1))); @@ -62369,10 +76481,16 @@ label_BFC199C4: /* nop */ if (psx_taken_BFC199D0) goto label_BFC199DC; label_BFC199D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC199D8: 24020010 addiu $v0, $zero, 16 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); label_BFC199DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC199DC: 148CFFE4 bne $a0, $t4, 0xBFC19970 */ uint32_t psx_brA_BFC199DC = cpu->gpr[4]; uint32_t psx_brB_BFC199DC = cpu->gpr[12]; @@ -62381,10 +76499,16 @@ label_BFC199DC: /* nop */ if (psx_taken_BFC199DC) goto label_BFC19970; label_BFC199E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC199E4: 8FA4004C lw $a0, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC199E4u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } label_BFC199E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC199E8: 8FA50034 lw $a1, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC199E8u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -62398,6 +76522,9 @@ label_BFC199E8: cpu->gpr[31] = 0x800319FCu; psx_dispatch(cpu, 0x800431FCu); label_BFC199FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC199FC: 8FAB002C lw $t3, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC199FCu); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -62415,6 +76542,9 @@ label_BFC199FC: cpu->gpr[31] = 0x80031A18u; psx_dispatch(cpu, 0x800431FCu); label_BFC19A18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC19A18: 8FAB002C lw $t3, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19A18u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -62428,6 +76558,9 @@ label_BFC19A18: cpu->gpr[31] = 0x80031A2Cu; psx_dispatch(cpu, 0x800442F0u); label_BFC19A2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC19A2C: 8FAB002C lw $t3, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19A2Cu); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -62437,6 +76570,9 @@ label_BFC19A2C: cpu->gpr[31] = 0x80031A38u; psx_dispatch(cpu, 0x8005A940u); label_BFC19A38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC19A38: 8FA40034 lw $a0, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19A38u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -62446,10 +76582,16 @@ label_BFC19A38: cpu->gpr[31] = 0x80031A44u; psx_dispatch(cpu, 0x8005A940u); label_BFC19A44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC19A44: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC19A48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC19A48: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19A48u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -62496,6 +76638,9 @@ void func_1FC19A58(CPUState* cpu) { } } label_BFC19A58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC19A58: 27BDFF28 addiu $sp, $sp, -216 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-216)); @@ -62513,6 +76658,9 @@ label_BFC19A58: cpu->gpr[31] = 0x80031A74u; psx_dispatch(cpu, 0x8003E44Cu); label_BFC19A74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC19A74: 8FA200D8 lw $v0, 216($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (216)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19A74u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -62544,6 +76692,9 @@ label_BFC19A74: cpu->gpr[31] = 0x80031AACu; psx_dispatch(cpu, 0x800497D0u); label_BFC19AAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19AAC: 0C011304 jal 0xB0044C10 */ /* 0xBFC19AB0: 00000000 nop */ @@ -62551,6 +76702,9 @@ label_BFC19AAC: cpu->gpr[31] = 0x80031AB4u; psx_dispatch(cpu, 0x80044C10u); label_BFC19AB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC19AB4: 8FA800D8 lw $t0, 216($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (216)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19AB4u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -62563,6 +76717,9 @@ label_BFC19AB4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (216)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19AC0u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } if (psx_taken_BFC19ABC) goto label_BFC19AE4; label_BFC19AC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC19AC4: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -62576,6 +76733,9 @@ label_BFC19AC4: cpu->gpr[31] = 0x80031AD8u; psx_dispatch(cpu, 0x800316D4u); label_BFC19AD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19AD8: 10000021 beq $zero, $zero, 0xBFC19B60 */ uint32_t psx_brA_BFC19AD8 = cpu->gpr[0]; uint32_t psx_brB_BFC19AD8 = cpu->gpr[0]; @@ -62584,10 +76744,16 @@ label_BFC19AD8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (216)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19ADCu); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } if (psx_taken_BFC19AD8) goto label_BFC19B60; label_BFC19AE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC19AE0: 8FA900D8 lw $t1, 216($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (216)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19AE0u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } label_BFC19AE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC19AE4: 24010003 addiu $at, $zero, 3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); @@ -62598,6 +76764,9 @@ label_BFC19AE4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (216)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19AECu); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } if (psx_taken_BFC19AE8) goto label_BFC19B10; label_BFC19AF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC19AF0: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -62611,6 +76780,9 @@ label_BFC19AF0: cpu->gpr[31] = 0x80031B04u; psx_dispatch(cpu, 0x800316D4u); label_BFC19B04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19B04: 10000016 beq $zero, $zero, 0xBFC19B60 */ uint32_t psx_brA_BFC19B04 = cpu->gpr[0]; uint32_t psx_brB_BFC19B04 = cpu->gpr[0]; @@ -62619,10 +76791,16 @@ label_BFC19B04: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (216)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19B08u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } if (psx_taken_BFC19B04) goto label_BFC19B60; label_BFC19B0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC19B0C: 8FAA00D8 lw $t2, 216($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (216)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19B0Cu); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } label_BFC19B10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC19B10: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -62633,6 +76811,9 @@ label_BFC19B10: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (216)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19B18u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } if (psx_taken_BFC19B14) goto label_BFC19B3C; label_BFC19B1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC19B1C: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -62646,6 +76827,9 @@ label_BFC19B1C: cpu->gpr[31] = 0x80031B30u; psx_dispatch(cpu, 0x800316D4u); label_BFC19B30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19B30: 1000000B beq $zero, $zero, 0xBFC19B60 */ uint32_t psx_brA_BFC19B30 = cpu->gpr[0]; uint32_t psx_brB_BFC19B30 = cpu->gpr[0]; @@ -62654,10 +76838,16 @@ label_BFC19B30: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (216)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19B34u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } if (psx_taken_BFC19B30) goto label_BFC19B60; label_BFC19B38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC19B38: 8FAB00D8 lw $t3, 216($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (216)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19B38u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } label_BFC19B3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC19B3C: 24010004 addiu $at, $zero, 4 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); @@ -62668,6 +76858,9 @@ label_BFC19B3C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (216)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19B44u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } if (psx_taken_BFC19B40) goto label_BFC19B60; label_BFC19B48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC19B48: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -62681,10 +76874,16 @@ label_BFC19B48: cpu->gpr[31] = 0x80031B5Cu; psx_dispatch(cpu, 0x800316D4u); label_BFC19B5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC19B5C: 8FAC00D8 lw $t4, 216($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (216)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19B5Cu); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } label_BFC19B60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC19B60: 3C0E8006 lui $t6, 0x8006 */ cpu->gpr[14] = 0x80060000u; @@ -62713,10 +76912,16 @@ label_BFC19B60: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (216)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19B8Cu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } if (psx_taken_BFC19B88) goto label_BFC19CE8; label_BFC19B90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC19B90: 00408021 addu $s0, $v0, $zero */ cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; label_BFC19B94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC19B94: AFA00048 sw $zero, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19B94u); return; } g_debug_last_store_pc = 0xBFC19B94u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -62765,10 +76970,16 @@ label_BFC19B94: cpu->gpr[1] = cpu->gpr[10] + cpu->gpr[0]; if (psx_taken_BFC19BE4) goto label_BFC19BF0; label_BFC19BEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC19BEC: 24210003 addiu $at, $at, 3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (3)); label_BFC19BF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC19BF0: 00015883 sra $t3, $at, 2 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[1] >> 2u); @@ -62804,6 +77015,9 @@ label_BFC19BF0: cpu->gpr[31] = 0x80031C30u; psx_dispatch(cpu, 0x80044E08u); label_BFC19C30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC19C30: 00116100 sll $t4, $s1, 4 */ cpu->gpr[12] = cpu->gpr[17] << 4u; @@ -62826,6 +77040,9 @@ label_BFC19C30: /* nop */ if (psx_taken_BFC19C4C) goto label_BFC19CD4; label_BFC19C54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC19C54: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -62845,6 +77062,9 @@ label_BFC19C54: cpu->gpr[31] = 0x80031C74u; psx_dispatch(cpu, 0x8004665Cu); label_BFC19C74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC19C74: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -62854,6 +77074,9 @@ label_BFC19C74: cpu->gpr[31] = 0x80031C80u; psx_dispatch(cpu, 0x80044A50u); label_BFC19C80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC19C80: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -62883,6 +77106,9 @@ label_BFC19C80: cpu->gpr[31] = 0x80031CB4u; psx_dispatch(cpu, 0x8004665Cu); label_BFC19CB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC19CB4: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -62892,6 +77118,9 @@ label_BFC19CB4: cpu->gpr[31] = 0x80031CC0u; psx_dispatch(cpu, 0x80044A50u); label_BFC19CC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC19CC0: 00116100 sll $t4, $s1, 4 */ cpu->gpr[12] = cpu->gpr[17] << 4u; @@ -62904,6 +77133,9 @@ label_BFC19CC0: /* 0xBFC19CD0: 016C8021 addu $s0, $t3, $t4 */ cpu->gpr[16] = cpu->gpr[11] + cpu->gpr[12]; label_BFC19CD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC19CD4: 8E0D0040 lw $t5, 64($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19CD4u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -62916,10 +77148,16 @@ label_BFC19CD4: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (60)); if (psx_taken_BFC19CDC) goto label_BFC19B94; label_BFC19CE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC19CE4: 8FAE00D8 lw $t6, 216($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (216)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19CE4u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } label_BFC19CE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC19CE8: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -62930,6 +77168,9 @@ label_BFC19CE8: /* nop */ if (psx_taken_BFC19CEC) goto label_BFC19D0C; label_BFC19CF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19CF4: 0C00EA36 jal 0xB003A8D8 */ /* 0xBFC19CF8: 00002021 addu $a0, $zero, $zero */ @@ -62937,6 +77178,9 @@ label_BFC19CF4: cpu->gpr[31] = 0x80031CFCu; psx_dispatch(cpu, 0x8003A8D8u); label_BFC19CFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19CFC: 0C00EA36 jal 0xB003A8D8 */ /* 0xBFC19D00: 24040001 addiu $a0, $zero, 1 */ @@ -62944,6 +77188,9 @@ label_BFC19CFC: cpu->gpr[31] = 0x80031D04u; psx_dispatch(cpu, 0x8003A8D8u); label_BFC19D04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19D04: 0C00F928 jal 0xB003E4A0 */ /* 0xBFC19D08: 00000000 nop */ @@ -62951,6 +77198,9 @@ label_BFC19D04: cpu->gpr[31] = 0x80031D0Cu; psx_dispatch(cpu, 0x8003E4A0u); label_BFC19D0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC19D0C: 8E440010 lw $a0, 16($s2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[18] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19D0Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -62960,6 +77210,9 @@ label_BFC19D0C: cpu->gpr[31] = 0x80031D18u; psx_dispatch(cpu, 0x8004644Cu); label_BFC19D18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19D18: 0C011934 jal 0xB00464D0 */ /* 0xBFC19D1C: 00000000 nop */ @@ -62967,6 +77220,9 @@ label_BFC19D18: cpu->gpr[31] = 0x80031D20u; psx_dispatch(cpu, 0x800464D0u); label_BFC19D20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19D20: 0C011997 jal 0xB004665C */ /* 0xBFC19D24: 00402021 addu $a0, $v0, $zero */ @@ -62974,6 +77230,9 @@ label_BFC19D20: cpu->gpr[31] = 0x80031D28u; psx_dispatch(cpu, 0x8004665Cu); label_BFC19D28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC19D28: 84440042 lh $a0, 66($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (66)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19D28u); return; } cpu->gpr[4] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -62987,6 +77246,9 @@ label_BFC19D28: cpu->gpr[31] = 0x80031D3Cu; psx_dispatch(cpu, 0x8003D92Cu); label_BFC19D3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC19D3C: 8FAF00D8 lw $t7, 216($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (216)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19D3Cu); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -63003,12 +77265,18 @@ label_BFC19D3C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25044)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19D50u); return; } g_debug_last_store_pc = 0xBFC19D50u; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC19D4C) goto label_BFC19D5C; label_BFC19D54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19D54: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; /* 0xBFC19D58: AC209E78 sw $zero, -24968($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24968)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19D58u); return; } g_debug_last_store_pc = 0xBFC19D58u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC19D5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC19D5C: 8E440004 lw $a0, 4($s2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[18] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19D5Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -63024,6 +77292,9 @@ label_BFC19D5C: cpu->gpr[31] = 0x80031D74u; psx_dispatch(cpu, 0x80031DF4u); label_BFC19D74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC19D74: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -63043,6 +77314,9 @@ label_BFC19D74: cpu->gpr[31] = 0x80031D94u; psx_dispatch(cpu, 0x80031DF4u); label_BFC19D94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC19D94: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -63066,6 +77340,9 @@ label_BFC19D94: cpu->gpr[31] = 0x80031DBCu; psx_dispatch(cpu, 0x80031DF4u); label_BFC19DBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC19DBC: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -63075,6 +77352,9 @@ label_BFC19DBC: cpu->gpr[31] = 0x80031DC8u; psx_dispatch(cpu, 0x80044A9Cu); label_BFC19DC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC19DC8: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -63084,6 +77364,9 @@ label_BFC19DC8: cpu->gpr[31] = 0x80031DD4u; psx_dispatch(cpu, 0x80044A9Cu); label_BFC19DD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19DD4: 0C00F763 jal 0xB003DD8C */ /* 0xBFC19DD8: 00000000 nop */ @@ -63091,6 +77374,9 @@ label_BFC19DD4: cpu->gpr[31] = 0x80031DDCu; psx_dispatch(cpu, 0x8003DD8Cu); label_BFC19DDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC19DDC: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19DDCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -63125,6 +77411,9 @@ void func_1FC19DF4(CPUState* cpu) { } } label_BFC19DF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC19DF4: 27BDFFA0 addiu $sp, $sp, -96 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-96)); @@ -63153,6 +77442,9 @@ label_BFC19DF4: cpu->gpr[20] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC19E1C) goto label_BFC19F8C; label_BFC19E24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC19E24: AFB0003C sw $s0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19E24u); return; } g_debug_last_store_pc = 0xBFC19E24u; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -63175,6 +77467,9 @@ label_BFC19E24: /* 0xBFC19E48: 00808021 addu $s0, $a0, $zero */ cpu->gpr[16] = cpu->gpr[4] + cpu->gpr[0]; label_BFC19E4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC19E4C: 8E020010 lw $v0, 16($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19E4Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -63187,6 +77482,9 @@ label_BFC19E4C: cpu->gpr[15] = cpu->gpr[2] << 3u; if (psx_taken_BFC19E54) goto label_BFC19E78; label_BFC19E5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC19E5C: 8E050000 lw $a1, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19E5Cu); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -63198,6 +77496,9 @@ label_BFC19E5C: cpu->gpr[31] = 0x80031E6Cu; psx_dispatch(cpu, 0x800442F0u); label_BFC19E6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19E6C: 10000009 beq $zero, $zero, 0xBFC19E94 */ uint32_t psx_brA_BFC19E6C = cpu->gpr[0]; uint32_t psx_brB_BFC19E6C = cpu->gpr[0]; @@ -63206,10 +77507,16 @@ label_BFC19E6C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19E70u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } if (psx_taken_BFC19E6C) goto label_BFC19E94; label_BFC19E74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC19E74: 000278C0 sll $t7, $v0, 3 */ cpu->gpr[15] = cpu->gpr[2] << 3u; label_BFC19E78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC19E78: 01E27823 subu $t7, $t7, $v0 */ cpu->gpr[15] = cpu->gpr[15] - cpu->gpr[2]; @@ -63225,10 +77532,16 @@ label_BFC19E78: cpu->gpr[31] = 0x80031E90u; psx_dispatch(cpu, 0x8005A950u); label_BFC19E90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC19E90: 8E050004 lw $a1, 4($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19E90u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } label_BFC19E94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC19E94: 8E060008 lw $a2, 8($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19E94u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -63238,6 +77551,9 @@ label_BFC19E94: cpu->gpr[31] = 0x80031EA0u; psx_dispatch(cpu, 0x800447F4u); label_BFC19EA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC19EA0: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -63247,6 +77563,9 @@ label_BFC19EA0: cpu->gpr[31] = 0x80031EACu; psx_dispatch(cpu, 0x80044A9Cu); label_BFC19EAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC19EAC: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -63256,6 +77575,9 @@ label_BFC19EAC: cpu->gpr[31] = 0x80031EB8u; psx_dispatch(cpu, 0x80044AE0u); label_BFC19EB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC19EB8: 8E020014 lw $v0, 20($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19EB8u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -63268,6 +77590,9 @@ label_BFC19EB8: /* nop */ if (psx_taken_BFC19EC0) goto label_BFC19EDC; label_BFC19EC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC19EC8: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -63277,12 +77602,18 @@ label_BFC19EC8: cpu->gpr[31] = 0x80031ED4u; psx_dispatch(cpu, 0x80044A9Cu); label_BFC19ED4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19ED4: 8E020014 lw $v0, 20($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19ED4u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } /* 0xBFC19ED8: 00000000 nop */ /* nop */ label_BFC19EDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19EDC: 14400005 bne $v0, $zero, 0xBFC19EF4 */ uint32_t psx_brA_BFC19EDC = cpu->gpr[2]; uint32_t psx_brB_BFC19EDC = cpu->gpr[0]; @@ -63291,6 +77622,9 @@ label_BFC19EDC: /* nop */ if (psx_taken_BFC19EDC) goto label_BFC19EF4; label_BFC19EE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC19EE4: 8E180018 lw $t8, 24($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19EE4u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -63303,6 +77637,9 @@ label_BFC19EE4: /* nop */ if (psx_taken_BFC19EEC) goto label_BFC19F04; label_BFC19EF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC19EF4: 8E050018 lw $a1, 24($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19EF4u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -63314,6 +77651,9 @@ label_BFC19EF4: cpu->gpr[31] = 0x80031F04u; psx_dispatch(cpu, 0x80044988u); label_BFC19F04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC19F04: 8E19000C lw $t9, 12($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (12)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19F04u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -63324,6 +77664,9 @@ label_BFC19F04: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (108)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19F0Cu); return; } g_debug_last_store_pc = 0xBFC19F0Cu; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC19F08) goto label_BFC19F28; label_BFC19F10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC19F10: 8E080020 lw $t0, 32($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19F10u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -63336,12 +77679,18 @@ label_BFC19F10: /* nop */ if (psx_taken_BFC19F18) goto label_BFC19F28; label_BFC19F20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19F20: 0280A821 addu $s5, $s4, $zero */ cpu->gpr[21] = cpu->gpr[20] + cpu->gpr[0]; /* 0xBFC19F24: 24130001 addiu $s3, $zero, 1 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC19F28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19F28: 12600009 beq $s3, $zero, 0xBFC19F50 */ uint32_t psx_brA_BFC19F28 = cpu->gpr[19]; uint32_t psx_brB_BFC19F28 = cpu->gpr[0]; @@ -63350,6 +77699,9 @@ label_BFC19F28: cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; if (psx_taken_BFC19F28) goto label_BFC19F50; label_BFC19F30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC19F30: 8E090020 lw $t1, 32($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19F30u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -63367,10 +77719,16 @@ label_BFC19F30: cpu->gpr[31] = 0x80031F4Cu; psx_dispatch(cpu, 0x80044F54u); label_BFC19F4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC19F4C: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; label_BFC19F50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC19F50: 02402821 addu $a1, $s2, $zero */ cpu->gpr[5] = cpu->gpr[18] + cpu->gpr[0]; @@ -63380,6 +77738,9 @@ label_BFC19F50: cpu->gpr[31] = 0x80031F5Cu; psx_dispatch(cpu, 0x800431FCu); label_BFC19F5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC19F5C: 8E0A0024 lw $t2, 36($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19F5Cu); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -63396,6 +77757,9 @@ label_BFC19F5C: cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (112)); if (psx_taken_BFC19F6C) goto label_BFC19E4C; label_BFC19F74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC19F74: 8FB0003C lw $s0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19F74u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -63410,6 +77774,9 @@ label_BFC19F74: /* 0xBFC19F88: 00000000 nop */ /* nop */ label_BFC19F8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC19F8C: 3C01800F lui $at, 0x800F */ cpu->gpr[1] = 0x800F0000u; @@ -63426,6 +77793,9 @@ label_BFC19F8C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-22660)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19FA0u); return; } g_debug_last_store_pc = 0xBFC19FA0u; cpu->write_word(psx_addr, cpu->gpr[11]); } if (psx_taken_BFC19F9C) goto label_BFC19FAC; label_BFC19FA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC19FA4: 10000002 beq $zero, $zero, 0xBFC19FB0 */ uint32_t psx_brA_BFC19FA4 = cpu->gpr[0]; uint32_t psx_brB_BFC19FA4 = cpu->gpr[0]; @@ -63434,10 +77804,16 @@ label_BFC19FA4: cpu->gpr[3] = cpu->gpr[21] + cpu->gpr[0]; if (psx_taken_BFC19FA4) goto label_BFC19FB0; label_BFC19FAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC19FAC: 02801821 addu $v1, $s4, $zero */ cpu->gpr[3] = cpu->gpr[20] + cpu->gpr[0]; label_BFC19FB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC19FB0: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19FB0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -63472,6 +77848,9 @@ void func_1FC19FD0(CPUState* cpu) { } } label_BFC19FD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC19FD0: 3C0100F0 lui $at, 0xF0 */ cpu->gpr[1] = 0x00F00000u; @@ -63488,6 +77867,9 @@ label_BFC19FD0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC19FE4u); return; } g_debug_last_store_pc = 0xBFC19FE4u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC19FE0) goto label_BFC1A040; label_BFC19FE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC19FE8: 240F0003 addiu $t7, $zero, 3 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); @@ -63510,6 +77892,9 @@ label_BFC19FE8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-22656)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A008u); return; } g_debug_last_store_pc = 0xBFC1A008u; cpu->write_word(psx_addr, cpu->gpr[24]); } if (psx_taken_BFC1A004) goto label_BFC1A040; label_BFC1A00C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A00C: 0C016A58 jal 0xB005A960 */ /* 0xBFC1A010: 24040001 addiu $a0, $zero, 1 */ @@ -63517,6 +77902,9 @@ label_BFC1A00C: cpu->gpr[31] = 0x80032014u; psx_dispatch(cpu, 0x8005A960u); label_BFC1A014: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A014: 0C016A5C jal 0xB005A970 */ /* 0xBFC1A018: 00000000 nop */ @@ -63524,6 +77912,9 @@ label_BFC1A014: cpu->gpr[31] = 0x8003201Cu; psx_dispatch(cpu, 0x8005A970u); label_BFC1A01C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A01C: 0C016A60 jal 0xB005A980 */ /* 0xBFC1A020: 00002021 addu $a0, $zero, $zero */ @@ -63531,6 +77922,9 @@ label_BFC1A01C: cpu->gpr[31] = 0x80032024u; psx_dispatch(cpu, 0x8005A980u); label_BFC1A024: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A024: 0C016A64 jal 0xB005A990 */ /* 0xBFC1A028: 00000000 nop */ @@ -63538,6 +77932,9 @@ label_BFC1A024: cpu->gpr[31] = 0x8003202Cu; psx_dispatch(cpu, 0x8005A990u); label_BFC1A02C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A02C: 0C016A68 jal 0xB005A9A0 */ /* 0xBFC1A030: 24040001 addiu $a0, $zero, 1 */ @@ -63545,6 +77942,9 @@ label_BFC1A02C: cpu->gpr[31] = 0x80032034u; psx_dispatch(cpu, 0x8005A9A0u); label_BFC1A034: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A034: 24080001 addiu $t0, $zero, 1 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -63553,6 +77953,9 @@ label_BFC1A034: /* 0xBFC1A03C: AC2866F8 sw $t0, 26360($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26360)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A03Cu); return; } g_debug_last_store_pc = 0xBFC1A03Cu; cpu->write_word(psx_addr, cpu->gpr[8]); } label_BFC1A040: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A040: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A040u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -63577,6 +77980,9 @@ void func_1FC1A050(CPUState* cpu) { } } label_BFC1A050: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A050: 3C0100F0 lui $at, 0xF0 */ cpu->gpr[1] = 0x00F00000u; @@ -63593,6 +77999,9 @@ label_BFC1A050: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A064u); return; } g_debug_last_store_pc = 0xBFC1A064u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC1A060) goto label_BFC1A10C; label_BFC1A068: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A068: 0C00D671 jal 0xB00359C4 */ /* 0xBFC1A06C: 24040001 addiu $a0, $zero, 1 */ @@ -63600,6 +78009,9 @@ label_BFC1A068: cpu->gpr[31] = 0x80032070u; psx_dispatch(cpu, 0x800359C4u); label_BFC1A070: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A070: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -63614,6 +78026,9 @@ label_BFC1A070: /* nop */ if (psx_taken_BFC1A07C) goto label_BFC1A0BC; label_BFC1A084: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A084: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -63628,6 +78043,9 @@ label_BFC1A084: /* nop */ if (psx_taken_BFC1A090) goto label_BFC1A0D4; label_BFC1A098: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A098: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -63642,6 +78060,9 @@ label_BFC1A098: /* nop */ if (psx_taken_BFC1A0A4) goto label_BFC1A0D4; label_BFC1A0AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A0AC: 0C00DDDE jal 0xB0037778 */ /* 0xBFC1A0B0: 00000000 nop */ @@ -63649,6 +78070,9 @@ label_BFC1A0AC: cpu->gpr[31] = 0x800320B4u; psx_dispatch(cpu, 0x80037778u); label_BFC1A0B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A0B4: 10000007 beq $zero, $zero, 0xBFC1A0D4 */ uint32_t psx_brA_BFC1A0B4 = cpu->gpr[0]; uint32_t psx_brB_BFC1A0B4 = cpu->gpr[0]; @@ -63657,6 +78081,9 @@ label_BFC1A0B4: /* nop */ if (psx_taken_BFC1A0B4) goto label_BFC1A0D4; label_BFC1A0BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A0BC: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -63671,6 +78098,9 @@ label_BFC1A0BC: /* 0xBFC1A0D0: AC209E50 sw $zero, -25008($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25008)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A0D0u); return; } g_debug_last_store_pc = 0xBFC1A0D0u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC1A0D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A0D4: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -63690,6 +78120,9 @@ label_BFC1A0D4: cpu->gpr[31] = 0x800320F4u; psx_dispatch(cpu, 0x800323B8u); label_BFC1A0F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A0F4: 240900CB addiu $t1, $zero, 203 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (203)); @@ -63704,6 +78137,9 @@ label_BFC1A0F4: /* 0xBFC1A108: AC2AA780 sw $t2, -22656($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-22656)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A108u); return; } g_debug_last_store_pc = 0xBFC1A108u; cpu->write_word(psx_addr, cpu->gpr[10]); } label_BFC1A10C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A10C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A10Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -63726,6 +78162,9 @@ void func_1FC1A11C(CPUState* cpu) { } } label_BFC1A11C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A11C: 3C0100F0 lui $at, 0xF0 */ cpu->gpr[1] = 0x00F00000u; @@ -63742,6 +78181,9 @@ label_BFC1A11C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A130u); return; } g_debug_last_store_pc = 0xBFC1A130u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC1A12C) goto label_BFC1A14C; label_BFC1A134: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A134: 240F0002 addiu $t7, $zero, 2 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); @@ -63757,6 +78199,9 @@ label_BFC1A134: cpu->gpr[31] = 0x8003214Cu; psx_dispatch(cpu, 0x8003D314u); label_BFC1A14C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A14C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A14Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -63779,6 +78224,9 @@ void func_1FC1A15C(CPUState* cpu) { } } label_BFC1A15C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A15C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -63790,6 +78238,9 @@ label_BFC1A15C: cpu->gpr[31] = 0x8003216Cu; psx_dispatch(cpu, 0x8003C640u); label_BFC1A16C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A16C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A16Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -63812,6 +78263,9 @@ void func_1FC1A17C(CPUState* cpu) { } } label_BFC1A17C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A17C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -63823,6 +78277,9 @@ label_BFC1A17C: cpu->gpr[31] = 0x8003218Cu; psx_dispatch(cpu, 0x8003CA48u); label_BFC1A18C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A18C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A18Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -63845,6 +78302,9 @@ void func_1FC1A19C(CPUState* cpu) { } } label_BFC1A19C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A19C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -63856,6 +78316,9 @@ label_BFC1A19C: cpu->gpr[31] = 0x800321ACu; psx_dispatch(cpu, 0x8003C418u); label_BFC1A1AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A1AC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A1ACu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -63870,6 +78333,9 @@ label_BFC1A1AC: void func_1FC1A3B8(CPUState* cpu) { debug_server_log_call_entry(0x1FC1A3B8u); label_BFC1A3B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A3B8: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -63910,6 +78376,9 @@ label_BFC1A3B8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24980)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A3FCu); return; } g_debug_last_store_pc = 0xBFC1A3FCu; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC1A3F8) goto label_BFC1A40C; label_BFC1A400: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A400: 24180032 addiu $t8, $zero, 50 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (50)); @@ -63918,6 +78387,9 @@ label_BFC1A400: /* 0xBFC1A408: AC386948 sw $t8, 26952($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26952)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A408u); return; } g_debug_last_store_pc = 0xBFC1A408u; cpu->write_word(psx_addr, cpu->gpr[24]); } label_BFC1A40C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A40C: 03E00008 jr $ra */ /* 0xBFC1A410: 00000000 nop */ @@ -63928,6 +78400,9 @@ label_BFC1A40C: void func_1FC1A414(CPUState* cpu) { debug_server_log_call_entry(0x1FC1A414u); label_BFC1A414: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A414: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -63940,6 +78415,9 @@ label_BFC1A414: void func_1FC1A420(CPUState* cpu) { debug_server_log_call_entry(0x1FC1A420u); label_BFC1A420: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A420: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -63977,6 +78455,9 @@ void func_1FC1A430(CPUState* cpu) { } } label_BFC1A430: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A430: 27BDFFC0 addiu $sp, $sp, -64 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-64)); @@ -63997,6 +78478,9 @@ label_BFC1A430: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A44Cu); return; } g_debug_last_store_pc = 0xBFC1A44Cu; cpu->write_word(psx_addr, cpu->gpr[16]); } if (psx_taken_BFC1A448) goto label_BFC1A45C; label_BFC1A450: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A450: 240100CC addiu $at, $zero, 204 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (204)); @@ -64007,10 +78491,16 @@ label_BFC1A450: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A458u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1A454) goto label_BFC1A5A0; label_BFC1A45C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A45C: 241000C9 addiu $s0, $zero, 201 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (201)); label_BFC1A460: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A460: 1211000E beq $s0, $s1, 0xBFC1A49C */ uint32_t psx_brA_BFC1A460 = cpu->gpr[16]; uint32_t psx_brB_BFC1A460 = cpu->gpr[17]; @@ -64019,6 +78509,9 @@ label_BFC1A460: /* nop */ if (psx_taken_BFC1A460) goto label_BFC1A49C; label_BFC1A468: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A468: 0C011997 jal 0xB004665C */ /* 0xBFC1A46C: 02002021 addu $a0, $s0, $zero */ @@ -64026,6 +78519,9 @@ label_BFC1A468: cpu->gpr[31] = 0x80032470u; psx_dispatch(cpu, 0x8004665Cu); label_BFC1A470: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A470: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -64039,6 +78535,9 @@ label_BFC1A470: cpu->gpr[31] = 0x80032484u; psx_dispatch(cpu, 0x80044A58u); label_BFC1A484: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A484: 0C011997 jal 0xB004665C */ /* 0xBFC1A488: 26040064 addiu $a0, $s0, 100 */ @@ -64046,6 +78545,9 @@ label_BFC1A484: cpu->gpr[31] = 0x8003248Cu; psx_dispatch(cpu, 0x8004665Cu); label_BFC1A48C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A48C: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -64057,6 +78559,9 @@ label_BFC1A48C: cpu->gpr[31] = 0x8003249Cu; psx_dispatch(cpu, 0x80044988u); label_BFC1A49C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A49C: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -64069,6 +78574,9 @@ label_BFC1A49C: /* nop */ if (psx_taken_BFC1A4A4) goto label_BFC1A460; label_BFC1A4AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A4AC: 0C011997 jal 0xB004665C */ /* 0xBFC1A4B0: 02202021 addu $a0, $s1, $zero */ @@ -64076,6 +78584,9 @@ label_BFC1A4AC: cpu->gpr[31] = 0x800324B4u; psx_dispatch(cpu, 0x8004665Cu); label_BFC1A4B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A4B4: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -64089,6 +78600,9 @@ label_BFC1A4B4: cpu->gpr[31] = 0x800324C8u; psx_dispatch(cpu, 0x80044A58u); label_BFC1A4C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A4C8: 26240064 addiu $a0, $s1, 100 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[17] + (100)); @@ -64098,6 +78612,9 @@ label_BFC1A4C8: cpu->gpr[31] = 0x800324D4u; psx_dispatch(cpu, 0x8004665Cu); label_BFC1A4D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A4D4: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -64109,6 +78626,9 @@ label_BFC1A4D4: cpu->gpr[31] = 0x800324E4u; psx_dispatch(cpu, 0x80044988u); label_BFC1A4E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A4E4: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -64123,6 +78643,9 @@ label_BFC1A4E4: /* 0xBFC1A4F8: 241000C9 addiu $s0, $zero, 201 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (201)); label_BFC1A4FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A4FC: 1211000E beq $s0, $s1, 0xBFC1A538 */ uint32_t psx_brA_BFC1A4FC = cpu->gpr[16]; uint32_t psx_brB_BFC1A4FC = cpu->gpr[17]; @@ -64131,6 +78654,9 @@ label_BFC1A4FC: /* nop */ if (psx_taken_BFC1A4FC) goto label_BFC1A538; label_BFC1A504: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A504: 0C011997 jal 0xB004665C */ /* 0xBFC1A508: 02002021 addu $a0, $s0, $zero */ @@ -64138,6 +78664,9 @@ label_BFC1A504: cpu->gpr[31] = 0x8003250Cu; psx_dispatch(cpu, 0x8004665Cu); label_BFC1A50C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A50C: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -64151,6 +78680,9 @@ label_BFC1A50C: cpu->gpr[31] = 0x80032520u; psx_dispatch(cpu, 0x80044A58u); label_BFC1A520: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A520: 0C011997 jal 0xB004665C */ /* 0xBFC1A524: 26040064 addiu $a0, $s0, 100 */ @@ -64158,6 +78690,9 @@ label_BFC1A520: cpu->gpr[31] = 0x80032528u; psx_dispatch(cpu, 0x8004665Cu); label_BFC1A528: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A528: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -64169,6 +78704,9 @@ label_BFC1A528: cpu->gpr[31] = 0x80032538u; psx_dispatch(cpu, 0x80044988u); label_BFC1A538: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A538: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -64181,6 +78719,9 @@ label_BFC1A538: /* nop */ if (psx_taken_BFC1A540) goto label_BFC1A4FC; label_BFC1A548: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A548: 0C011997 jal 0xB004665C */ /* 0xBFC1A54C: 02202021 addu $a0, $s1, $zero */ @@ -64188,6 +78729,9 @@ label_BFC1A548: cpu->gpr[31] = 0x80032550u; psx_dispatch(cpu, 0x8004665Cu); label_BFC1A550: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A550: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -64201,6 +78745,9 @@ label_BFC1A550: cpu->gpr[31] = 0x80032564u; psx_dispatch(cpu, 0x80044A58u); label_BFC1A564: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A564: 8FA4002C lw $a0, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A564u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -64210,6 +78757,9 @@ label_BFC1A564: cpu->gpr[31] = 0x80032570u; psx_dispatch(cpu, 0x8004665Cu); label_BFC1A570: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A570: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -64221,6 +78771,9 @@ label_BFC1A570: cpu->gpr[31] = 0x80032580u; psx_dispatch(cpu, 0x80044988u); label_BFC1A580: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A580: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -64239,6 +78792,9 @@ label_BFC1A580: /* 0xBFC1A59C: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A59Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC1A5A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A5A0: 8FB0001C lw $s0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A5A0u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -64270,6 +78826,9 @@ void func_1FC1A5B0(CPUState* cpu) { } } label_BFC1A5B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A5B0: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -64285,6 +78844,9 @@ label_BFC1A5B0: cpu->gpr[31] = 0x800325C8u; psx_dispatch(cpu, 0x800349B4u); label_BFC1A5C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A5C8: 8FAE0028 lw $t6, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A5C8u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -64301,6 +78863,9 @@ label_BFC1A5C8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A5DCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1A5D8) goto label_BFC1A6E0; label_BFC1A5E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A5E0: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -64315,6 +78880,9 @@ label_BFC1A5E0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A5F0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1A5EC) goto label_BFC1A6E0; label_BFC1A5F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A5F4: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -64329,6 +78897,9 @@ label_BFC1A5F4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A604u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1A600) goto label_BFC1A6E0; label_BFC1A608: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A608: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -64343,6 +78914,9 @@ label_BFC1A608: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A618u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1A614) goto label_BFC1A6E0; label_BFC1A61C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A61C: 0C011934 jal 0xB00464D0 */ /* 0xBFC1A620: 00000000 nop */ @@ -64350,6 +78924,9 @@ label_BFC1A61C: cpu->gpr[31] = 0x80032624u; psx_dispatch(cpu, 0x800464D0u); label_BFC1A624: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A624: AFA20024 sw $v0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A624u); return; } g_debug_last_store_pc = 0xBFC1A624u; cpu->write_word(psx_addr, cpu->gpr[2]); } @@ -64359,6 +78936,9 @@ label_BFC1A624: cpu->gpr[31] = 0x80032630u; psx_dispatch(cpu, 0x80032430u); label_BFC1A630: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A630: 8FA20024 lw $v0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A630u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -64379,6 +78959,9 @@ label_BFC1A630: /* nop */ if (psx_taken_BFC1A648) goto label_BFC1A6DC; label_BFC1A650: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A650: 00094880 sll $t1, $t1, 2 */ cpu->gpr[9] = cpu->gpr[9] << 2u; @@ -64405,6 +78988,9 @@ label_BFC1A650: default: cpu->pc = cpu->gpr[9]; return; } label_BFC1A66C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A66C: 0C00E1A7 jal 0xB003869C */ /* 0xBFC1A670: 00000000 nop */ @@ -64412,6 +78998,9 @@ label_BFC1A66C: cpu->gpr[31] = 0x80032674u; psx_dispatch(cpu, 0x8003869Cu); label_BFC1A674: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A674: 1000001A beq $zero, $zero, 0xBFC1A6E0 */ uint32_t psx_brA_BFC1A674 = cpu->gpr[0]; uint32_t psx_brB_BFC1A674 = cpu->gpr[0]; @@ -64420,6 +79009,9 @@ label_BFC1A674: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A678u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1A674) goto label_BFC1A6E0; label_BFC1A67C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A67C: 0C00E2D8 jal 0xB0038B60 */ /* 0xBFC1A680: 00000000 nop */ @@ -64427,6 +79019,9 @@ label_BFC1A67C: cpu->gpr[31] = 0x80032684u; psx_dispatch(cpu, 0x80038B60u); label_BFC1A684: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A684: 10000016 beq $zero, $zero, 0xBFC1A6E0 */ uint32_t psx_brA_BFC1A684 = cpu->gpr[0]; uint32_t psx_brB_BFC1A684 = cpu->gpr[0]; @@ -64435,6 +79030,9 @@ label_BFC1A684: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A688u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1A684) goto label_BFC1A6E0; label_BFC1A68C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A68C: 0C00DFEA jal 0xB0037FA8 */ /* 0xBFC1A690: 00002021 addu $a0, $zero, $zero */ @@ -64442,6 +79040,9 @@ label_BFC1A68C: cpu->gpr[31] = 0x80032694u; psx_dispatch(cpu, 0x80037FA8u); label_BFC1A694: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A694: 10000012 beq $zero, $zero, 0xBFC1A6E0 */ uint32_t psx_brA_BFC1A694 = cpu->gpr[0]; uint32_t psx_brB_BFC1A694 = cpu->gpr[0]; @@ -64450,6 +79051,9 @@ label_BFC1A694: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A698u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1A694) goto label_BFC1A6E0; label_BFC1A69C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A69C: 0C00DF32 jal 0xB0037CC8 */ /* 0xBFC1A6A0: 00000000 nop */ @@ -64457,6 +79061,9 @@ label_BFC1A69C: cpu->gpr[31] = 0x800326A4u; psx_dispatch(cpu, 0x80037CC8u); label_BFC1A6A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A6A4: 1000000E beq $zero, $zero, 0xBFC1A6E0 */ uint32_t psx_brA_BFC1A6A4 = cpu->gpr[0]; uint32_t psx_brB_BFC1A6A4 = cpu->gpr[0]; @@ -64465,6 +79072,9 @@ label_BFC1A6A4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A6A8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1A6A4) goto label_BFC1A6E0; label_BFC1A6AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A6AC: 0C00DE60 jal 0xB0037980 */ /* 0xBFC1A6B0: 00000000 nop */ @@ -64472,6 +79082,9 @@ label_BFC1A6AC: cpu->gpr[31] = 0x800326B4u; psx_dispatch(cpu, 0x80037980u); label_BFC1A6B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A6B4: 1000000A beq $zero, $zero, 0xBFC1A6E0 */ uint32_t psx_brA_BFC1A6B4 = cpu->gpr[0]; uint32_t psx_brB_BFC1A6B4 = cpu->gpr[0]; @@ -64480,6 +79093,9 @@ label_BFC1A6B4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A6B8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1A6B4) goto label_BFC1A6E0; label_BFC1A6BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A6BC: 0C00E2E7 jal 0xB0038B9C */ /* 0xBFC1A6C0: 00000000 nop */ @@ -64487,6 +79103,9 @@ label_BFC1A6BC: cpu->gpr[31] = 0x800326C4u; psx_dispatch(cpu, 0x80038B9Cu); label_BFC1A6C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A6C4: 10000006 beq $zero, $zero, 0xBFC1A6E0 */ uint32_t psx_brA_BFC1A6C4 = cpu->gpr[0]; uint32_t psx_brB_BFC1A6C4 = cpu->gpr[0]; @@ -64495,6 +79114,9 @@ label_BFC1A6C4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A6C8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1A6C4) goto label_BFC1A6E0; label_BFC1A6CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A6CC: 0C00E0CE jal 0xB0038338 */ /* 0xBFC1A6D0: 00000000 nop */ @@ -64502,6 +79124,9 @@ label_BFC1A6CC: cpu->gpr[31] = 0x800326D4u; psx_dispatch(cpu, 0x80038338u); label_BFC1A6D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A6D4: 10000002 beq $zero, $zero, 0xBFC1A6E0 */ uint32_t psx_brA_BFC1A6D4 = cpu->gpr[0]; uint32_t psx_brB_BFC1A6D4 = cpu->gpr[0]; @@ -64510,10 +79135,16 @@ label_BFC1A6D4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A6D8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1A6D4) goto label_BFC1A6E0; label_BFC1A6DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A6DC: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A6DCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC1A6E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A6E0: 27BD0028 addiu $sp, $sp, 40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (40)); @@ -64552,6 +79183,9 @@ void func_1FC1A6EC(CPUState* cpu) { } } label_BFC1A6EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A6EC: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -64579,6 +79213,9 @@ label_BFC1A6EC: cpu->gpr[31] = 0x8003271Cu; psx_dispatch(cpu, 0x800465C0u); label_BFC1A71C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A71C: 8FA30030 lw $v1, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A71Cu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -64588,6 +79225,9 @@ label_BFC1A71C: cpu->gpr[31] = 0x80032728u; psx_dispatch(cpu, 0x80046CD8u); label_BFC1A728: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A728: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -64611,6 +79251,9 @@ label_BFC1A728: cpu->gpr[31] = 0x80032750u; psx_dispatch(cpu, 0x800465C0u); label_BFC1A750: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A750: 8FA30030 lw $v1, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A750u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -64622,6 +79265,9 @@ label_BFC1A750: cpu->gpr[31] = 0x80032760u; psx_dispatch(cpu, 0x80046CD8u); label_BFC1A760: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A760: 8FA30030 lw $v1, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A760u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -64636,6 +79282,9 @@ label_BFC1A760: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A770u); return; } g_debug_last_store_pc = 0xBFC1A770u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC1A76C) goto label_BFC1A7DC; label_BFC1A774: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A774: 2861002F slti $at, $v1, 47 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[3] < (47) ? 1 : 0); @@ -64646,6 +79295,9 @@ label_BFC1A774: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A77Cu); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } if (psx_taken_BFC1A778) goto label_BFC1A7E0; label_BFC1A780: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A780: 3C098006 lui $t1, 0x8006 */ cpu->gpr[9] = 0x80060000u; @@ -64660,6 +79312,9 @@ label_BFC1A780: /* nop */ if (psx_taken_BFC1A78C) goto label_BFC1A7A8; label_BFC1A794: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A794: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -64674,6 +79329,9 @@ label_BFC1A794: cpu->gpr[4] = cpu->gpr[8] + cpu->gpr[0]; if (psx_taken_BFC1A7A0) goto label_BFC1A7C0; label_BFC1A7A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A7A8: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -64688,10 +79346,16 @@ label_BFC1A7A8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A7B8u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } if (psx_taken_BFC1A7B4) goto label_BFC1A7E0; label_BFC1A7BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A7BC: 01002021 addu $a0, $t0, $zero */ cpu->gpr[4] = cpu->gpr[8] + cpu->gpr[0]; label_BFC1A7C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A7C0: 0C011294 jal 0xB0044A50 */ /* 0xBFC1A7C4: 240503FE addiu $a1, $zero, 1022 */ @@ -64699,6 +79363,9 @@ label_BFC1A7C0: cpu->gpr[31] = 0x800327C8u; psx_dispatch(cpu, 0x80044A50u); label_BFC1A7C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A7C8: 8FA40028 lw $a0, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A7C8u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -64708,6 +79375,9 @@ label_BFC1A7C8: cpu->gpr[31] = 0x800327D4u; psx_dispatch(cpu, 0x80044A50u); label_BFC1A7D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A7D4: 100000AB beq $zero, $zero, 0xBFC1AA84 */ uint32_t psx_brA_BFC1A7D4 = cpu->gpr[0]; uint32_t psx_brB_BFC1A7D4 = cpu->gpr[0]; @@ -64716,10 +79386,16 @@ label_BFC1A7D4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A7D8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1A7D4) goto label_BFC1AA84; label_BFC1A7DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A7DC: 8FAC0034 lw $t4, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A7DCu); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } label_BFC1A7E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A7E0: 00000000 nop */ /* nop */ @@ -64730,6 +79406,9 @@ label_BFC1A7E0: /* nop */ if (psx_taken_BFC1A7E4) goto label_BFC1A7F4; label_BFC1A7EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A7EC: 10000014 beq $zero, $zero, 0xBFC1A840 */ uint32_t psx_brA_BFC1A7EC = cpu->gpr[0]; uint32_t psx_brB_BFC1A7EC = cpu->gpr[0]; @@ -64738,6 +79417,9 @@ label_BFC1A7EC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC1A7EC) goto label_BFC1A840; label_BFC1A7F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A7F4: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -64754,6 +79436,9 @@ label_BFC1A7F4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A808u); return; } g_debug_last_store_pc = 0xBFC1A808u; cpu->write_word(psx_addr, cpu->gpr[13]); } if (psx_taken_BFC1A804) goto label_BFC1A814; label_BFC1A80C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A80C: 24010029 addiu $at, $zero, 41 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (41)); @@ -64761,11 +79446,17 @@ label_BFC1A80C: uint32_t psx_brA_BFC1A810 = cpu->gpr[3]; uint32_t psx_brB_BFC1A810 = cpu->gpr[1]; int psx_taken_BFC1A810 = (psx_brA_BFC1A810 == psx_brB_BFC1A810); label_BFC1A814: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A814: 2401002B addiu $at, $zero, 43 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (43)); if (psx_taken_BFC1A810) goto label_BFC1A820; label_BFC1A818: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A818: 14610009 bne $v1, $at, 0xBFC1A840 */ uint32_t psx_brA_BFC1A818 = cpu->gpr[3]; uint32_t psx_brB_BFC1A818 = cpu->gpr[1]; @@ -64774,6 +79465,9 @@ label_BFC1A818: /* nop */ if (psx_taken_BFC1A818) goto label_BFC1A840; label_BFC1A820: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A820: 01002021 addu $a0, $t0, $zero */ cpu->gpr[4] = cpu->gpr[8] + cpu->gpr[0]; @@ -64783,6 +79477,9 @@ label_BFC1A820: cpu->gpr[31] = 0x8003282Cu; psx_dispatch(cpu, 0x80044A50u); label_BFC1A82C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A82C: 8FA40028 lw $a0, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A82Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -64792,6 +79489,9 @@ label_BFC1A82C: cpu->gpr[31] = 0x80032838u; psx_dispatch(cpu, 0x80044A50u); label_BFC1A838: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A838: 10000092 beq $zero, $zero, 0xBFC1AA84 */ uint32_t psx_brA_BFC1A838 = cpu->gpr[0]; uint32_t psx_brB_BFC1A838 = cpu->gpr[0]; @@ -64800,6 +79500,9 @@ label_BFC1A838: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A83Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1A838) goto label_BFC1AA84; label_BFC1A840: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A840: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -64814,6 +79517,9 @@ label_BFC1A840: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (41)); if (psx_taken_BFC1A84C) goto label_BFC1A884; label_BFC1A854: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A854: 10610003 beq $v1, $at, 0xBFC1A864 */ uint32_t psx_brA_BFC1A854 = cpu->gpr[3]; uint32_t psx_brB_BFC1A854 = cpu->gpr[1]; @@ -64822,6 +79528,9 @@ label_BFC1A854: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (42)); if (psx_taken_BFC1A854) goto label_BFC1A864; label_BFC1A85C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A85C: 14610009 bne $v1, $at, 0xBFC1A884 */ uint32_t psx_brA_BFC1A85C = cpu->gpr[3]; uint32_t psx_brB_BFC1A85C = cpu->gpr[1]; @@ -64830,6 +79539,9 @@ label_BFC1A85C: /* nop */ if (psx_taken_BFC1A85C) goto label_BFC1A884; label_BFC1A864: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A864: 01002021 addu $a0, $t0, $zero */ cpu->gpr[4] = cpu->gpr[8] + cpu->gpr[0]; @@ -64839,6 +79551,9 @@ label_BFC1A864: cpu->gpr[31] = 0x80032870u; psx_dispatch(cpu, 0x80044A50u); label_BFC1A870: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A870: 8FA40028 lw $a0, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A870u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -64848,6 +79563,9 @@ label_BFC1A870: cpu->gpr[31] = 0x8003287Cu; psx_dispatch(cpu, 0x80044A50u); label_BFC1A87C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A87C: 10000081 beq $zero, $zero, 0xBFC1AA84 */ uint32_t psx_brA_BFC1A87C = cpu->gpr[0]; uint32_t psx_brB_BFC1A87C = cpu->gpr[0]; @@ -64856,6 +79574,9 @@ label_BFC1A87C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A880u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1A87C) goto label_BFC1AA84; label_BFC1A884: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A884: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -64870,6 +79591,9 @@ label_BFC1A884: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A894u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } if (psx_taken_BFC1A890) goto label_BFC1A8D8; label_BFC1A898: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A898: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -64884,6 +79608,9 @@ label_BFC1A898: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (42)); if (psx_taken_BFC1A8A4) goto label_BFC1A8D4; label_BFC1A8AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A8AC: 1461000A bne $v1, $at, 0xBFC1A8D8 */ uint32_t psx_brA_BFC1A8AC = cpu->gpr[3]; uint32_t psx_brB_BFC1A8AC = cpu->gpr[1]; @@ -64892,6 +79619,9 @@ label_BFC1A8AC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A8B0u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } if (psx_taken_BFC1A8AC) goto label_BFC1A8D8; label_BFC1A8B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A8B4: 01002021 addu $a0, $t0, $zero */ cpu->gpr[4] = cpu->gpr[8] + cpu->gpr[0]; @@ -64901,6 +79631,9 @@ label_BFC1A8B4: cpu->gpr[31] = 0x800328C0u; psx_dispatch(cpu, 0x80044A50u); label_BFC1A8C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A8C0: 8FA40028 lw $a0, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A8C0u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -64910,6 +79643,9 @@ label_BFC1A8C0: cpu->gpr[31] = 0x800328CCu; psx_dispatch(cpu, 0x80044A50u); label_BFC1A8CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A8CC: 1000006D beq $zero, $zero, 0xBFC1AA84 */ uint32_t psx_brA_BFC1A8CC = cpu->gpr[0]; uint32_t psx_brB_BFC1A8CC = cpu->gpr[0]; @@ -64918,10 +79654,16 @@ label_BFC1A8CC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A8D0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1A8CC) goto label_BFC1AA84; label_BFC1A8D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A8D4: 8FA40034 lw $a0, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A8D4u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } label_BFC1A8D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A8D8: 0C011997 jal 0xB004665C */ /* 0xBFC1A8DC: AFA8002C sw $t0, 44($sp) */ @@ -64929,6 +79671,9 @@ label_BFC1A8D8: cpu->gpr[31] = 0x800328E0u; psx_dispatch(cpu, 0x8004665Cu); label_BFC1A8E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A8E0: 8FA8002C lw $t0, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A8E0u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -64945,6 +79690,9 @@ label_BFC1A8E0: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[2] + (4)); if (psx_taken_BFC1A8F0) goto label_BFC1A974; label_BFC1A8F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A8F8: 24430018 addiu $v1, $v0, 24 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[2] + (24)); @@ -64955,6 +79703,9 @@ label_BFC1A8F8: /* 0xBFC1A904: 01006021 addu $t4, $t0, $zero */ cpu->gpr[12] = cpu->gpr[8] + cpu->gpr[0]; label_BFC1A908: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A908: 8D610000 lw $at, 0($t3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[11] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A908u); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -64977,6 +79728,9 @@ label_BFC1A908: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[12] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A928u); return; } g_debug_last_store_pc = 0xBFC1A928u; cpu->write_word(psx_addr, cpu->gpr[1]); } if (psx_taken_BFC1A924) goto label_BFC1A908; label_BFC1A92C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A92C: 8D610000 lw $at, 0($t3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[11] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A92Cu); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -64989,6 +79743,9 @@ label_BFC1A92C: /* 0xBFC1A93C: 25EE0024 addiu $t6, $t7, 36 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[15] + (36)); label_BFC1A940: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A940: 8DE10000 lw $at, 0($t7) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[15] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A940u); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -65011,6 +79768,9 @@ label_BFC1A940: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[13] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A960u); return; } g_debug_last_store_pc = 0xBFC1A960u; cpu->write_word(psx_addr, cpu->gpr[1]); } if (psx_taken_BFC1A95C) goto label_BFC1A940; label_BFC1A964: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A964: 8DE10000 lw $at, 0($t7) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[15] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A964u); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -65021,10 +79781,16 @@ label_BFC1A964: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[13] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A96Cu); return; } g_debug_last_store_pc = 0xBFC1A96Cu; cpu->write_word(psx_addr, cpu->gpr[1]); } if (psx_taken_BFC1A968) goto label_BFC1AA00; label_BFC1A970: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A970: 24430004 addiu $v1, $v0, 4 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[2] + (4)); label_BFC1A974: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A974: 0060C821 addu $t9, $v1, $zero */ cpu->gpr[25] = cpu->gpr[3] + cpu->gpr[0]; @@ -65033,6 +79799,9 @@ label_BFC1A974: /* 0xBFC1A97C: 01004821 addu $t1, $t0, $zero */ cpu->gpr[9] = cpu->gpr[8] + cpu->gpr[0]; label_BFC1A980: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A980: 8F210000 lw $at, 0($t9) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[25] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A980u); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -65055,6 +79824,9 @@ label_BFC1A980: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A9A0u); return; } g_debug_last_store_pc = 0xBFC1A9A0u; cpu->write_word(psx_addr, cpu->gpr[1]); } if (psx_taken_BFC1A99C) goto label_BFC1A980; label_BFC1A9A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A9A4: 8F210000 lw $at, 0($t9) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[25] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A9A4u); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -65073,6 +79845,9 @@ label_BFC1A9A4: /* 0xBFC1A9C0: 00000000 nop */ /* nop */ label_BFC1A9C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A9C4: 8D810000 lw $at, 0($t4) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[12] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A9C4u); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -65095,6 +79870,9 @@ label_BFC1A9C4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[10] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A9E4u); return; } g_debug_last_store_pc = 0xBFC1A9E4u; cpu->write_word(psx_addr, cpu->gpr[1]); } if (psx_taken_BFC1A9E0) goto label_BFC1A9C4; label_BFC1A9E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1A9E8: 8D810000 lw $at, 0($t4) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[12] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A9E8u); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -65109,6 +79887,9 @@ label_BFC1A9E8: /* 0xBFC1A9FC: AD4B0008 sw $t3, 8($t2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[10] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1A9FCu); return; } g_debug_last_store_pc = 0xBFC1A9FCu; cpu->write_word(psx_addr, cpu->gpr[11]); } label_BFC1AA00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AA00: 84E50046 lh $a1, 70($a3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[7] + (70)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1AA00u); return; } cpu->gpr[5] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -65124,6 +79905,9 @@ label_BFC1AA00: cpu->gpr[31] = 0x80032A18u; psx_dispatch(cpu, 0x80044988u); label_BFC1AA18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AA18: 8FA8002C lw $t0, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1AA18u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -65139,6 +79923,9 @@ label_BFC1AA18: cpu->gpr[31] = 0x80032A30u; psx_dispatch(cpu, 0x800447F4u); label_BFC1AA30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AA30: 8FA8002C lw $t0, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1AA30u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -65152,6 +79939,9 @@ label_BFC1AA30: cpu->gpr[31] = 0x80032A44u; psx_dispatch(cpu, 0x80044A50u); label_BFC1AA44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AA44: 8FA70024 lw $a3, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1AA44u); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } @@ -65167,6 +79957,9 @@ label_BFC1AA44: cpu->gpr[31] = 0x80032A5Cu; psx_dispatch(cpu, 0x80044988u); label_BFC1AA5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AA5C: 8FA40028 lw $a0, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1AA5Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -65182,6 +79975,9 @@ label_BFC1AA5C: cpu->gpr[31] = 0x80032A74u; psx_dispatch(cpu, 0x800447F4u); label_BFC1AA74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AA74: 8FA40028 lw $a0, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1AA74u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -65191,10 +79987,16 @@ label_BFC1AA74: cpu->gpr[31] = 0x80032A80u; psx_dispatch(cpu, 0x80044A50u); label_BFC1AA80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AA80: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1AA80u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC1AA84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AA84: 27BD0030 addiu $sp, $sp, 48 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (48)); @@ -65224,6 +80026,9 @@ void func_1FC1AA90(CPUState* cpu) { } } label_BFC1AA90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AA90: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -65240,6 +80045,9 @@ label_BFC1AA90: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1AAA4u); return; } g_debug_last_store_pc = 0xBFC1AAA4u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC1AAA0) goto label_BFC1AC58; label_BFC1AAA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AAA8: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -65251,6 +80059,9 @@ label_BFC1AAA8: cpu->gpr[31] = 0x80032AB8u; psx_dispatch(cpu, 0x80034DD8u); label_BFC1AAB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AAB8: 93A2001D lbu $v0, 29($sp) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (29))); @@ -65267,6 +80078,9 @@ label_BFC1AAB8: cpu->gpr[24] = cpu->gpr[2] & 0xFu; if (psx_taken_BFC1AAC8) goto label_BFC1AADC; label_BFC1AAD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AAD0: 3042000F andi $v0, $v0, 0xF */ cpu->gpr[2] = cpu->gpr[2] & 0xFu; @@ -65275,6 +80089,9 @@ label_BFC1AAD0: /* 0xBFC1AAD8: 3058000F andi $t8, $v0, 0xF */ cpu->gpr[24] = cpu->gpr[2] & 0xFu; label_BFC1AADC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AADC: 2F01000A sltiu $at, $t8, 10 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[24] < 0x0000000Au ? 1 : 0); @@ -65285,6 +80102,9 @@ label_BFC1AADC: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (41)); if (psx_taken_BFC1AAE0) goto label_BFC1AAF4; label_BFC1AAE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AAE8: 304200F0 andi $v0, $v0, 0xF0 */ cpu->gpr[2] = cpu->gpr[2] & 0xF0u; @@ -65293,6 +80113,9 @@ label_BFC1AAE8: /* 0xBFC1AAF0: 24040029 addiu $a0, $zero, 41 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (41)); label_BFC1AAF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AAF4: 00022902 srl $a1, $v0, 4 */ cpu->gpr[5] = cpu->gpr[2] >> 4u; @@ -65302,6 +80125,9 @@ label_BFC1AAF4: cpu->gpr[31] = 0x80032B00u; psx_dispatch(cpu, 0x800326ECu); label_BFC1AB00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AB00: 93A2001D lbu $v0, 29($sp) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (29))); @@ -65313,6 +80139,9 @@ label_BFC1AB00: cpu->gpr[31] = 0x80032B10u; psx_dispatch(cpu, 0x800326ECu); label_BFC1AB10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AB10: 93A5001F lbu $a1, 31($sp) */ cpu->gpr[5] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (31))); @@ -65324,6 +80153,9 @@ label_BFC1AB10: cpu->gpr[31] = 0x80032B20u; psx_dispatch(cpu, 0x800326ECu); label_BFC1AB20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AB20: 93A5001F lbu $a1, 31($sp) */ cpu->gpr[5] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (31))); @@ -65335,6 +80167,9 @@ label_BFC1AB20: cpu->gpr[31] = 0x80032B30u; psx_dispatch(cpu, 0x800326ECu); label_BFC1AB30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AB30: 93A50020 lbu $a1, 32($sp) */ cpu->gpr[5] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (32))); @@ -65346,6 +80181,9 @@ label_BFC1AB30: cpu->gpr[31] = 0x80032B40u; psx_dispatch(cpu, 0x800326ECu); label_BFC1AB40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AB40: 93A50020 lbu $a1, 32($sp) */ cpu->gpr[5] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (32))); @@ -65357,6 +80195,9 @@ label_BFC1AB40: cpu->gpr[31] = 0x80032B50u; psx_dispatch(cpu, 0x800326ECu); label_BFC1AB50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AB50: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -65371,6 +80212,9 @@ label_BFC1AB50: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC1AB5C) goto label_BFC1AB74; label_BFC1AB64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AB64: 8FA20024 lw $v0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1AB64u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -65381,14 +80225,23 @@ label_BFC1AB64: cpu->gpr[8] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (30))); if (psx_taken_BFC1AB68) goto label_BFC1AB78; label_BFC1AB70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AB70: 24020002 addiu $v0, $zero, 2 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); label_BFC1AB74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AB74: 93A8001E lbu $t0, 30($sp) */ cpu->gpr[8] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (30))); label_BFC1AB78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AB78: 00000000 nop */ /* nop */ @@ -65399,6 +80252,9 @@ label_BFC1AB78: cpu->gpr[14] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (28))); if (psx_taken_BFC1AB7C) goto label_BFC1ABCC; label_BFC1AB84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AB84: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -65432,6 +80288,9 @@ label_BFC1AB84: cpu->gpr[31] = 0x80032BC0u; psx_dispatch(cpu, 0x800447F4u); label_BFC1ABC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ABC0: 10000026 beq $zero, $zero, 0xBFC1AC5C */ uint32_t psx_brA_BFC1ABC0 = cpu->gpr[0]; uint32_t psx_brB_BFC1ABC0 = cpu->gpr[0]; @@ -65440,10 +80299,16 @@ label_BFC1ABC0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1ABC4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1ABC0) goto label_BFC1AC5C; label_BFC1ABC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ABC8: 93AE001C lbu $t6, 28($sp) */ cpu->gpr[14] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (28))); label_BFC1ABCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ABCC: 00000000 nop */ /* nop */ @@ -65454,6 +80319,9 @@ label_BFC1ABCC: /* nop */ if (psx_taken_BFC1ABD0) goto label_BFC1AC1C; label_BFC1ABD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ABD8: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -65487,6 +80355,9 @@ label_BFC1ABD8: cpu->gpr[31] = 0x80032C14u; psx_dispatch(cpu, 0x800447F4u); label_BFC1AC14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AC14: 10000011 beq $zero, $zero, 0xBFC1AC5C */ uint32_t psx_brA_BFC1AC14 = cpu->gpr[0]; uint32_t psx_brB_BFC1AC14 = cpu->gpr[0]; @@ -65495,6 +80366,9 @@ label_BFC1AC14: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1AC18u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1AC14) goto label_BFC1AC5C; label_BFC1AC1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AC1C: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -65528,10 +80402,16 @@ label_BFC1AC1C: cpu->gpr[31] = 0x80032C58u; psx_dispatch(cpu, 0x800447F4u); label_BFC1AC58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AC58: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1AC58u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC1AC5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AC5C: 27BD0028 addiu $sp, $sp, 40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (40)); @@ -65554,6 +80434,9 @@ void func_1FC1AC68(CPUState* cpu) { } } label_BFC1AC68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AC68: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -65570,6 +80453,9 @@ label_BFC1AC68: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1AC7Cu); return; } g_debug_last_store_pc = 0xBFC1AC7Cu; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC1AC78) goto label_BFC1AE14; label_BFC1AC80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AC80: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -65590,6 +80476,9 @@ label_BFC1AC80: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (58)); if (psx_taken_BFC1AC98) goto label_BFC1AD08; label_BFC1ACA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ACA0: 000F7880 sll $t7, $t7, 2 */ cpu->gpr[15] = cpu->gpr[15] << 2u; @@ -65614,6 +80503,9 @@ label_BFC1ACA0: default: cpu->pc = cpu->gpr[15]; return; } label_BFC1ACBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ACBC: 10000011 beq $zero, $zero, 0xBFC1AD04 */ uint32_t psx_brA_BFC1ACBC = cpu->gpr[0]; uint32_t psx_brB_BFC1ACBC = cpu->gpr[0]; @@ -65622,6 +80514,9 @@ label_BFC1ACBC: cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[0] + (203)); if (psx_taken_BFC1ACBC) goto label_BFC1AD04; label_BFC1ACC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ACC4: 1000000F beq $zero, $zero, 0xBFC1AD04 */ uint32_t psx_brA_BFC1ACC4 = cpu->gpr[0]; uint32_t psx_brB_BFC1ACC4 = cpu->gpr[0]; @@ -65630,6 +80525,9 @@ label_BFC1ACC4: cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[0] + (204)); if (psx_taken_BFC1ACC4) goto label_BFC1AD04; label_BFC1ACCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ACCC: 1000000D beq $zero, $zero, 0xBFC1AD04 */ uint32_t psx_brA_BFC1ACCC = cpu->gpr[0]; uint32_t psx_brB_BFC1ACCC = cpu->gpr[0]; @@ -65638,6 +80536,9 @@ label_BFC1ACCC: cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[0] + (205)); if (psx_taken_BFC1ACCC) goto label_BFC1AD04; label_BFC1ACD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ACD4: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -65652,6 +80553,9 @@ label_BFC1ACD4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC1ACE0) goto label_BFC1ACF4; label_BFC1ACE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ACE8: 10000006 beq $zero, $zero, 0xBFC1AD04 */ uint32_t psx_brA_BFC1ACE8 = cpu->gpr[0]; uint32_t psx_brB_BFC1ACE8 = cpu->gpr[0]; @@ -65660,10 +80564,16 @@ label_BFC1ACE8: cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[0] + (202)); if (psx_taken_BFC1ACE8) goto label_BFC1AD04; label_BFC1ACF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ACF0: 24010002 addiu $at, $zero, 2 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); label_BFC1ACF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ACF4: 14410004 bne $v0, $at, 0xBFC1AD08 */ uint32_t psx_brA_BFC1ACF4 = cpu->gpr[2]; uint32_t psx_brB_BFC1ACF4 = cpu->gpr[1]; @@ -65672,6 +80582,9 @@ label_BFC1ACF4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (58)); if (psx_taken_BFC1ACF4) goto label_BFC1AD08; label_BFC1ACFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ACFC: 10000001 beq $zero, $zero, 0xBFC1AD04 */ uint32_t psx_brA_BFC1ACFC = cpu->gpr[0]; uint32_t psx_brB_BFC1ACFC = cpu->gpr[0]; @@ -65680,10 +80593,16 @@ label_BFC1ACFC: cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[0] + (206)); if (psx_taken_BFC1ACFC) goto label_BFC1AD04; label_BFC1AD04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AD04: 2401003A addiu $at, $zero, 58 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (58)); label_BFC1AD08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AD08: 10A10004 beq $a1, $at, 0xBFC1AD1C */ uint32_t psx_brA_BFC1AD08 = cpu->gpr[5]; uint32_t psx_brB_BFC1AD08 = cpu->gpr[1]; @@ -65692,6 +80611,9 @@ label_BFC1AD08: cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC1AD08) goto label_BFC1AD1C; label_BFC1AD10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AD10: 2401003B addiu $at, $zero, 59 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (59)); @@ -65702,6 +80624,9 @@ label_BFC1AD10: /* nop */ if (psx_taken_BFC1AD14) goto label_BFC1ADFC; label_BFC1AD1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AD1C: AFA30030 sw $v1, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1AD1Cu); return; } g_debug_last_store_pc = 0xBFC1AD1Cu; cpu->write_word(psx_addr, cpu->gpr[3]); } @@ -65717,6 +80642,9 @@ label_BFC1AD1C: cpu->gpr[31] = 0x80032D34u; psx_dispatch(cpu, 0x8003DB74u); label_BFC1AD34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AD34: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -65735,6 +80663,9 @@ label_BFC1AD34: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1AD4Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } if (psx_taken_BFC1AD48) goto label_BFC1AD60; label_BFC1AD50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AD50: 8FA2001C lw $v0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1AD50u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -65745,10 +80676,16 @@ label_BFC1AD50: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (59)); if (psx_taken_BFC1AD54) goto label_BFC1AD8C; label_BFC1AD5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AD5C: 8FA2001C lw $v0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1AD5Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } label_BFC1AD60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AD60: 3C0100F0 lui $at, 0xF0 */ cpu->gpr[1] = 0x00F00000u; @@ -65763,6 +80700,9 @@ label_BFC1AD60: cpu->gpr[1] = 0x00020000u; if (psx_taken_BFC1AD6C) goto label_BFC1AD88; label_BFC1AD74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AD74: 34210002 ori $at, $at, 0x2 */ cpu->gpr[1] = cpu->gpr[1] | 0x2u; @@ -65775,14 +80715,23 @@ label_BFC1AD74: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (59)); if (psx_taken_BFC1AD7C) goto label_BFC1AD8C; label_BFC1AD84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AD84: 24030001 addiu $v1, $zero, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC1AD88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AD88: 2401003B addiu $at, $zero, 59 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (59)); label_BFC1AD8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AD8C: 14A1000A bne $a1, $at, 0xBFC1ADB8 */ uint32_t psx_brA_BFC1AD8C = cpu->gpr[5]; uint32_t psx_brB_BFC1AD8C = cpu->gpr[1]; @@ -65791,6 +80740,9 @@ label_BFC1AD8C: cpu->gpr[1] = 0x00F00000u; if (psx_taken_BFC1AD8C) goto label_BFC1ADB8; label_BFC1AD94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AD94: 342100F0 ori $at, $at, 0xF0 */ cpu->gpr[1] = cpu->gpr[1] | 0xF0u; @@ -65803,6 +80755,9 @@ label_BFC1AD94: cpu->gpr[1] = 0x00010000u; if (psx_taken_BFC1AD9C) goto label_BFC1ADB8; label_BFC1ADA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ADA4: 34210001 ori $at, $at, 0x1 */ cpu->gpr[1] = cpu->gpr[1] | 0x1u; @@ -65815,10 +80770,16 @@ label_BFC1ADA4: /* nop */ if (psx_taken_BFC1ADAC) goto label_BFC1ADB8; label_BFC1ADB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ADB4: 24030001 addiu $v1, $zero, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC1ADB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ADB8: 10600010 beq $v1, $zero, 0xBFC1ADFC */ uint32_t psx_brA_BFC1ADB8 = cpu->gpr[3]; uint32_t psx_brB_BFC1ADB8 = cpu->gpr[0]; @@ -65827,6 +80788,9 @@ label_BFC1ADB8: /* nop */ if (psx_taken_BFC1ADB8) goto label_BFC1ADFC; label_BFC1ADC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ADC0: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -65841,6 +80805,9 @@ label_BFC1ADC0: /* nop */ if (psx_taken_BFC1ADCC) goto label_BFC1ADFC; label_BFC1ADD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ADD4: 24050033 addiu $a1, $zero, 51 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[0] + (51)); @@ -65858,6 +80825,9 @@ label_BFC1ADD4: cpu->gpr[31] = 0x80032DF0u; psx_dispatch(cpu, 0x80037FA8u); label_BFC1ADF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ADF0: 8FA30030 lw $v1, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1ADF0u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -65866,6 +80836,9 @@ label_BFC1ADF0: /* 0xBFC1ADF8: 00000000 nop */ /* nop */ label_BFC1ADFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ADFC: 14600006 bne $v1, $zero, 0xBFC1AE18 */ uint32_t psx_brA_BFC1ADFC = cpu->gpr[3]; uint32_t psx_brB_BFC1ADFC = cpu->gpr[0]; @@ -65874,6 +80847,9 @@ label_BFC1ADFC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1AE00u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1ADFC) goto label_BFC1AE18; label_BFC1AE04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AE04: 10E00004 beq $a3, $zero, 0xBFC1AE18 */ uint32_t psx_brA_BFC1AE04 = cpu->gpr[7]; uint32_t psx_brB_BFC1AE04 = cpu->gpr[0]; @@ -65882,6 +80858,9 @@ label_BFC1AE04: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1AE08u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1AE04) goto label_BFC1AE18; label_BFC1AE0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AE0C: 0C00C90C jal 0xB0032430 */ /* 0xBFC1AE10: 00E02021 addu $a0, $a3, $zero */ @@ -65889,10 +80868,16 @@ label_BFC1AE0C: cpu->gpr[31] = 0x80032E14u; psx_dispatch(cpu, 0x80032430u); label_BFC1AE14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AE14: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1AE14u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC1AE18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AE18: 27BD0038 addiu $sp, $sp, 56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (56)); @@ -65905,6 +80890,9 @@ label_BFC1AE18: void func_1FC1AE24(CPUState* cpu) { debug_server_log_call_entry(0x1FC1AE24u); label_BFC1AE24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AE24: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -65919,6 +80907,9 @@ label_BFC1AE24: void func_1FC1AE34(CPUState* cpu) { debug_server_log_call_entry(0x1FC1AE34u); label_BFC1AE34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AE34: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -65933,6 +80924,9 @@ label_BFC1AE34: /* nop */ if (psx_taken_BFC1AE40) goto label_BFC1AE60; label_BFC1AE48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AE48: 240F0001 addiu $t7, $zero, 1 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -65947,6 +80941,9 @@ label_BFC1AE48: /* 0xBFC1AE5C: AC389F88 sw $t8, -24696($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24696)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1AE5Cu); return; } g_debug_last_store_pc = 0xBFC1AE5Cu; cpu->write_word(psx_addr, cpu->gpr[24]); } label_BFC1AE60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AE60: 03E00008 jr $ra */ /* 0xBFC1AE64: 00000000 nop */ @@ -66001,6 +80998,9 @@ void func_1FC1AE68(CPUState* cpu) { } } label_BFC1AE68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AE68: 27BDFF50 addiu $sp, $sp, -176 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-176)); @@ -66016,6 +81016,9 @@ label_BFC1AE68: cpu->gpr[31] = 0x80032E80u; psx_dispatch(cpu, 0x800349B4u); label_BFC1AE80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AE80: 3C0100F0 lui $at, 0xF0 */ cpu->gpr[1] = 0x00F00000u; @@ -66030,6 +81033,9 @@ label_BFC1AE80: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1AE90u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1AE8C) goto label_BFC1B6E0; label_BFC1AE94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AE94: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -66044,6 +81050,9 @@ label_BFC1AE94: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1AEA4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1AEA0) goto label_BFC1B6E0; label_BFC1AEA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AEA8: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -66058,6 +81067,9 @@ label_BFC1AEA8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1AEB8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1AEB4) goto label_BFC1B6E0; label_BFC1AEBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AEBC: 0C011934 jal 0xB00464D0 */ /* 0xBFC1AEC0: 00000000 nop */ @@ -66065,6 +81077,9 @@ label_BFC1AEBC: cpu->gpr[31] = 0x80032EC4u; psx_dispatch(cpu, 0x800464D0u); label_BFC1AEC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AEC4: 28410015 slti $at, $v0, 21 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (21) ? 1 : 0); @@ -66075,6 +81090,9 @@ label_BFC1AEC4: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC1AEC8) goto label_BFC1B3F0; label_BFC1AED0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AED0: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -66089,6 +81107,9 @@ label_BFC1AED0: /* nop */ if (psx_taken_BFC1AEDC) goto label_BFC1AF04; label_BFC1AEE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AEE4: 3C068008 lui $a2, 0x8008 */ cpu->gpr[6] = 0x80080000u; @@ -66109,6 +81130,9 @@ label_BFC1AEE4: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC1AEFC) goto label_BFC1B078; label_BFC1AF04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AF04: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -66123,6 +81147,9 @@ label_BFC1AF04: /* nop */ if (psx_taken_BFC1AF10) goto label_BFC1AF28; label_BFC1AF18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AF18: 3C068008 lui $a2, 0x8008 */ cpu->gpr[6] = 0x80080000u; @@ -66135,6 +81162,9 @@ label_BFC1AF18: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (11) ? 1 : 0); if (psx_taken_BFC1AF20) goto label_BFC1AF3C; label_BFC1AF28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AF28: 3C068008 lui $a2, 0x8008 */ cpu->gpr[6] = 0x80080000u; @@ -66149,6 +81179,9 @@ label_BFC1AF28: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (11) ? 1 : 0); if (psx_taken_BFC1AF34) goto label_BFC1B6DC; label_BFC1AF3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AF3C: 102001E7 beq $at, $zero, 0xBFC1B6DC */ uint32_t psx_brA_BFC1AF3C = cpu->gpr[1]; uint32_t psx_brB_BFC1AF3C = cpu->gpr[0]; @@ -66157,6 +81190,9 @@ label_BFC1AF3C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); if (psx_taken_BFC1AF3C) goto label_BFC1B6DC; label_BFC1AF44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AF44: 14410002 bne $v0, $at, 0xBFC1AF50 */ uint32_t psx_brA_BFC1AF44 = cpu->gpr[2]; uint32_t psx_brB_BFC1AF44 = cpu->gpr[1]; @@ -66165,10 +81201,16 @@ label_BFC1AF44: /* nop */ if (psx_taken_BFC1AF44) goto label_BFC1AF50; label_BFC1AF4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AF4C: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; label_BFC1AF50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AF50: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -66183,6 +81225,9 @@ label_BFC1AF50: /* nop */ if (psx_taken_BFC1AF5C) goto label_BFC1AFE8; label_BFC1AF64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AF64: 00095080 sll $t2, $t1, 2 */ cpu->gpr[10] = cpu->gpr[9] << 2u; @@ -66209,6 +81254,9 @@ label_BFC1AF64: /* nop */ if (psx_taken_BFC1AF88) goto label_BFC1AFA0; label_BFC1AF90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AF90: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -66221,6 +81269,9 @@ label_BFC1AF90: /* nop */ if (psx_taken_BFC1AF98) goto label_BFC1B078; label_BFC1AFA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AFA0: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -66237,6 +81288,9 @@ label_BFC1AFA0: /* nop */ if (psx_taken_BFC1AFB0) goto label_BFC1B078; label_BFC1AFB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AFB8: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -66251,6 +81305,9 @@ label_BFC1AFB8: /* nop */ if (psx_taken_BFC1AFC4) goto label_BFC1AFDC; label_BFC1AFCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AFCC: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -66262,11 +81319,17 @@ label_BFC1AFCC: uint32_t psx_brA_BFC1AFD8 = cpu->gpr[12]; uint32_t psx_brB_BFC1AFD8 = cpu->gpr[0]; int psx_taken_BFC1AFD8 = (psx_brA_BFC1AFD8 == psx_brB_BFC1AFD8); label_BFC1AFDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AFDC: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1AFD8) goto label_BFC1B078; label_BFC1AFE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AFE0: 10000025 beq $zero, $zero, 0xBFC1B078 */ uint32_t psx_brA_BFC1AFE0 = cpu->gpr[0]; uint32_t psx_brB_BFC1AFE0 = cpu->gpr[0]; @@ -66275,6 +81338,9 @@ label_BFC1AFE0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24696)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1AFE4u); return; } g_debug_last_store_pc = 0xBFC1AFE4u; cpu->write_word(psx_addr, cpu->gpr[16]); } if (psx_taken_BFC1AFE0) goto label_BFC1B078; label_BFC1AFE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC1AFE8: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -66299,6 +81365,9 @@ label_BFC1AFE8: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1B008) goto label_BFC1B01C; label_BFC1B010: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B010: AC309F88 sw $s0, -24696($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24696)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B010u); return; } g_debug_last_store_pc = 0xBFC1B010u; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -66309,6 +81378,9 @@ label_BFC1B010: cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC1B014) goto label_BFC1B06C; label_BFC1B01C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B01C: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -66340,6 +81412,9 @@ label_BFC1B01C: cpu->gpr[31] = 0x80033054u; psx_dispatch(cpu, 0x80032A90u); label_BFC1B054: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B054: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -66354,6 +81429,9 @@ label_BFC1B054: /* 0xBFC1B068: 00000000 nop */ /* nop */ label_BFC1B06C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B06C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -66362,6 +81440,9 @@ label_BFC1B06C: /* 0xBFC1B074: 00000000 nop */ /* nop */ label_BFC1B078: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B078: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -66376,6 +81457,9 @@ label_BFC1B078: /* nop */ if (psx_taken_BFC1B084) goto label_BFC1B228; label_BFC1B08C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B08C: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -66390,6 +81474,9 @@ label_BFC1B08C: cpu->gpr[1] = (uint32_t)(cpu->gpr[3] < cpu->gpr[4] ? 1 : 0); if (psx_taken_BFC1B098) goto label_BFC1B17C; label_BFC1B0A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B0A0: 1420018E bne $at, $zero, 0xBFC1B6DC */ uint32_t psx_brA_BFC1B0A0 = cpu->gpr[1]; uint32_t psx_brB_BFC1B0A0 = cpu->gpr[0]; @@ -66398,6 +81485,9 @@ label_BFC1B0A0: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < cpu->gpr[3] ? 1 : 0); if (psx_taken_BFC1B0A0) goto label_BFC1B6DC; label_BFC1B0A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B0A8: 1420018D bne $at, $zero, 0xBFC1B6E0 */ uint32_t psx_brA_BFC1B0A8 = cpu->gpr[1]; uint32_t psx_brB_BFC1B0A8 = cpu->gpr[0]; @@ -66406,6 +81496,9 @@ label_BFC1B0A8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B0ACu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1B0A8) goto label_BFC1B6E0; label_BFC1B0B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B0B0: 14C0001B bne $a2, $zero, 0xBFC1B120 */ uint32_t psx_brA_BFC1B0B0 = cpu->gpr[6]; uint32_t psx_brB_BFC1B0B0 = cpu->gpr[0]; @@ -66414,6 +81507,9 @@ label_BFC1B0B0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[6] < (99) ? 1 : 0); if (psx_taken_BFC1B0B0) goto label_BFC1B120; label_BFC1B0B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B0B8: 00801021 addu $v0, $a0, $zero */ cpu->gpr[2] = cpu->gpr[4] + cpu->gpr[0]; @@ -66426,10 +81522,16 @@ label_BFC1B0B8: cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC1B0C0) goto label_BFC1B11C; label_BFC1B0C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B0C8: 2A010015 slti $at, $s0, 21 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (21) ? 1 : 0); label_BFC1B0CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B0CC: 10200014 beq $at, $zero, 0xBFC1B120 */ uint32_t psx_brA_BFC1B0CC = cpu->gpr[1]; uint32_t psx_brB_BFC1B0CC = cpu->gpr[0]; @@ -66438,6 +81540,9 @@ label_BFC1B0CC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[6] < (99) ? 1 : 0); if (psx_taken_BFC1B0CC) goto label_BFC1B120; label_BFC1B0D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B0D4: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -66449,6 +81554,9 @@ label_BFC1B0D4: cpu->gpr[31] = 0x800330E4u; psx_dispatch(cpu, 0x800336ECu); label_BFC1B0E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B0E4: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -66467,6 +81575,9 @@ label_BFC1B0E4: /* nop */ if (psx_taken_BFC1B0F8) goto label_BFC1B110; label_BFC1B100: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B100: 3C068008 lui $a2, 0x8008 */ cpu->gpr[6] = 0x80080000u; @@ -66479,6 +81590,9 @@ label_BFC1B100: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (21) ? 1 : 0); if (psx_taken_BFC1B108) goto label_BFC1B0CC; label_BFC1B110: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B110: 3C068008 lui $a2, 0x8008 */ cpu->gpr[6] = 0x80080000u; @@ -66487,10 +81601,16 @@ label_BFC1B110: /* 0xBFC1B118: 00000000 nop */ /* nop */ label_BFC1B11C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B11C: 28C10063 slti $at, $a2, 99 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[6] < (99) ? 1 : 0); label_BFC1B120: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B120: 1020016E beq $at, $zero, 0xBFC1B6DC */ uint32_t psx_brA_BFC1B120 = cpu->gpr[1]; uint32_t psx_brB_BFC1B120 = cpu->gpr[0]; @@ -66499,6 +81619,9 @@ label_BFC1B120: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[3] < (21) ? 1 : 0); if (psx_taken_BFC1B120) goto label_BFC1B6DC; label_BFC1B128: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B128: 10200009 beq $at, $zero, 0xBFC1B150 */ uint32_t psx_brA_BFC1B128 = cpu->gpr[1]; uint32_t psx_brB_BFC1B128 = cpu->gpr[0]; @@ -66507,6 +81630,9 @@ label_BFC1B128: /* nop */ if (psx_taken_BFC1B128) goto label_BFC1B150; label_BFC1B130: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B130: 00602021 addu $a0, $v1, $zero */ cpu->gpr[4] = cpu->gpr[3] + cpu->gpr[0]; @@ -66518,6 +81644,9 @@ label_BFC1B130: cpu->gpr[31] = 0x80033140u; psx_dispatch(cpu, 0x800336ECu); label_BFC1B140: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B140: 3C068008 lui $a2, 0x8008 */ cpu->gpr[6] = 0x80080000u; @@ -66528,6 +81657,9 @@ label_BFC1B140: /* 0xBFC1B14C: 00000000 nop */ /* nop */ label_BFC1B150: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B150: 24C60001 addiu $a2, $a2, 1 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (1)); @@ -66549,6 +81681,9 @@ label_BFC1B150: cpu->gpr[31] = 0x80033174u; psx_dispatch(cpu, 0x80034BACu); label_BFC1B174: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B174: 1000015A beq $zero, $zero, 0xBFC1B6E0 */ uint32_t psx_brA_BFC1B174 = cpu->gpr[0]; uint32_t psx_brB_BFC1B174 = cpu->gpr[0]; @@ -66557,6 +81692,9 @@ label_BFC1B174: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B178u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1B174) goto label_BFC1B6E0; label_BFC1B17C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B17C: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -66571,6 +81709,9 @@ label_BFC1B17C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B18Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1B188) goto label_BFC1B6E0; label_BFC1B190: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B190: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -66585,6 +81726,9 @@ label_BFC1B190: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B1A0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1B19C) goto label_BFC1B6E0; label_BFC1B1A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B1A4: 1060014D beq $v1, $zero, 0xBFC1B6DC */ uint32_t psx_brA_BFC1B1A4 = cpu->gpr[3]; uint32_t psx_brB_BFC1B1A4 = cpu->gpr[0]; @@ -66593,6 +81737,9 @@ label_BFC1B1A4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[6] < (99) ? 1 : 0); if (psx_taken_BFC1B1A4) goto label_BFC1B6DC; label_BFC1B1AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B1AC: 1020014C beq $at, $zero, 0xBFC1B6E0 */ uint32_t psx_brA_BFC1B1AC = cpu->gpr[1]; uint32_t psx_brB_BFC1B1AC = cpu->gpr[0]; @@ -66601,6 +81748,9 @@ label_BFC1B1AC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B1B0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1B1AC) goto label_BFC1B6E0; label_BFC1B1B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B1B4: 24C60001 addiu $a2, $a2, 1 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (1)); @@ -66624,6 +81774,9 @@ label_BFC1B1B4: cpu->gpr[31] = 0x800331DCu; psx_dispatch(cpu, 0x80034BACu); label_BFC1B1DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B1DC: 3C0C8006 lui $t4, 0x8006 */ cpu->gpr[12] = 0x80060000u; @@ -66640,6 +81793,9 @@ label_BFC1B1DC: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1B1EC) goto label_BFC1B200; label_BFC1B1F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B1F4: AC239E68 sw $v1, -24984($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24984)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B1F4u); return; } g_debug_last_store_pc = 0xBFC1B1F4u; cpu->write_word(psx_addr, cpu->gpr[3]); } @@ -66648,6 +81804,9 @@ label_BFC1B1F4: /* 0xBFC1B1FC: AC239E50 sw $v1, -25008($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25008)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B1FCu); return; } g_debug_last_store_pc = 0xBFC1B1FCu; cpu->write_word(psx_addr, cpu->gpr[3]); } label_BFC1B200: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B200: 240D0001 addiu $t5, $zero, 1 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -66667,6 +81826,9 @@ label_BFC1B200: cpu->gpr[31] = 0x80033220u; psx_dispatch(cpu, 0x80032A90u); label_BFC1B220: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B220: 1000012F beq $zero, $zero, 0xBFC1B6E0 */ uint32_t psx_brA_BFC1B220 = cpu->gpr[0]; uint32_t psx_brB_BFC1B220 = cpu->gpr[0]; @@ -66675,6 +81837,9 @@ label_BFC1B220: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B224u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1B220) goto label_BFC1B6E0; label_BFC1B228: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B228: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -66689,6 +81854,9 @@ label_BFC1B228: cpu->gpr[1] = (uint32_t)(cpu->gpr[3] < cpu->gpr[4] ? 1 : 0); if (psx_taken_BFC1B234) goto label_BFC1B6DC; label_BFC1B23C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B23C: 14200127 bne $at, $zero, 0xBFC1B6DC */ uint32_t psx_brA_BFC1B23C = cpu->gpr[1]; uint32_t psx_brB_BFC1B23C = cpu->gpr[0]; @@ -66697,6 +81865,9 @@ label_BFC1B23C: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < cpu->gpr[3] ? 1 : 0); if (psx_taken_BFC1B23C) goto label_BFC1B6DC; label_BFC1B244: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B244: 14200126 bne $at, $zero, 0xBFC1B6E0 */ uint32_t psx_brA_BFC1B244 = cpu->gpr[1]; uint32_t psx_brB_BFC1B244 = cpu->gpr[0]; @@ -66705,6 +81876,9 @@ label_BFC1B244: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B248u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1B244) goto label_BFC1B6E0; label_BFC1B24C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B24C: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -66719,6 +81893,9 @@ label_BFC1B24C: /* nop */ if (psx_taken_BFC1B258) goto label_BFC1B344; label_BFC1B260: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B260: 00801021 addu $v0, $a0, $zero */ cpu->gpr[2] = cpu->gpr[4] + cpu->gpr[0]; @@ -66731,10 +81908,16 @@ label_BFC1B260: cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC1B268) goto label_BFC1B2A0; label_BFC1B270: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B270: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; label_BFC1B274: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B274: 24050008 addiu $a1, $zero, 8 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[0] + (8)); @@ -66744,6 +81927,9 @@ label_BFC1B274: cpu->gpr[31] = 0x80033280u; psx_dispatch(cpu, 0x800336ECu); label_BFC1B280: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B280: 8FA300A8 lw $v1, 168($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (168)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B280u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -66758,6 +81944,9 @@ label_BFC1B280: cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; if (psx_taken_BFC1B28C) goto label_BFC1B274; label_BFC1B294: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B294: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -66766,6 +81955,9 @@ label_BFC1B294: /* 0xBFC1B29C: 00000000 nop */ /* nop */ label_BFC1B2A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B2A0: 00A3082B sltu $at, $a1, $v1 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < cpu->gpr[3] ? 1 : 0); @@ -66776,10 +81968,16 @@ label_BFC1B2A0: cpu->gpr[16] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC1B2A4) goto label_BFC1B2E4; label_BFC1B2AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B2AC: 2A010015 slti $at, $s0, 21 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (21) ? 1 : 0); label_BFC1B2B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B2B0: 1020000D beq $at, $zero, 0xBFC1B2E8 */ uint32_t psx_brA_BFC1B2B0 = cpu->gpr[1]; uint32_t psx_brB_BFC1B2B0 = cpu->gpr[0]; @@ -66788,6 +81986,9 @@ label_BFC1B2B0: cpu->gpr[4] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC1B2B0) goto label_BFC1B2E8; label_BFC1B2B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B2B8: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -66799,6 +82000,9 @@ label_BFC1B2B8: cpu->gpr[31] = 0x800332C8u; psx_dispatch(cpu, 0x800336ECu); label_BFC1B2C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B2C8: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -66817,10 +82021,16 @@ label_BFC1B2C8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (21) ? 1 : 0); if (psx_taken_BFC1B2DC) goto label_BFC1B2B0; label_BFC1B2E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B2E4: 00602021 addu $a0, $v1, $zero */ cpu->gpr[4] = cpu->gpr[3] + cpu->gpr[0]; label_BFC1B2E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B2E8: 0C00CDE1 jal 0xB0033784 */ /* 0xBFC1B2EC: AFA300A8 sw $v1, 168($sp) */ @@ -66828,6 +82038,9 @@ label_BFC1B2E8: cpu->gpr[31] = 0x800332F0u; psx_dispatch(cpu, 0x80033784u); label_BFC1B2F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B2F0: 3C198006 lui $t9, 0x8006 */ cpu->gpr[25] = 0x80060000u; @@ -66844,6 +82057,9 @@ label_BFC1B2F0: cpu->gpr[8] = cpu->gpr[3] << 2u; if (psx_taken_BFC1B300) goto label_BFC1B328; label_BFC1B308: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B308: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; @@ -66857,6 +82073,9 @@ label_BFC1B308: cpu->gpr[31] = 0x8003331Cu; psx_dispatch(cpu, 0x800376ACu); label_BFC1B31C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B31C: 100000F0 beq $zero, $zero, 0xBFC1B6E0 */ uint32_t psx_brA_BFC1B31C = cpu->gpr[0]; uint32_t psx_brB_BFC1B31C = cpu->gpr[0]; @@ -66865,10 +82084,16 @@ label_BFC1B31C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B320u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1B31C) goto label_BFC1B6E0; label_BFC1B324: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B324: 00034080 sll $t0, $v1, 2 */ cpu->gpr[8] = cpu->gpr[3] << 2u; label_BFC1B328: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B328: 3C04800F lui $a0, 0x800F */ cpu->gpr[4] = 0x800F0000u; @@ -66882,6 +82107,9 @@ label_BFC1B328: cpu->gpr[31] = 0x8003333Cu; psx_dispatch(cpu, 0x80037FA8u); label_BFC1B33C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B33C: 100000E8 beq $zero, $zero, 0xBFC1B6E0 */ uint32_t psx_brA_BFC1B33C = cpu->gpr[0]; uint32_t psx_brB_BFC1B33C = cpu->gpr[0]; @@ -66890,6 +82118,9 @@ label_BFC1B33C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B340u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1B33C) goto label_BFC1B6E0; label_BFC1B344: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B344: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -66904,6 +82135,9 @@ label_BFC1B344: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B354u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1B350) goto label_BFC1B6E0; label_BFC1B358: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B358: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -66918,6 +82152,9 @@ label_BFC1B358: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B368u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1B364) goto label_BFC1B6E0; label_BFC1B36C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B36C: 00602021 addu $a0, $v1, $zero */ cpu->gpr[4] = cpu->gpr[3] + cpu->gpr[0]; @@ -66927,6 +82164,9 @@ label_BFC1B36C: cpu->gpr[31] = 0x80033378u; psx_dispatch(cpu, 0x80033784u); label_BFC1B378: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B378: 8FA300A8 lw $v1, 168($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (168)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B378u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -66961,6 +82201,9 @@ label_BFC1B378: cpu->gpr[14] = cpu->gpr[3] << 2u; if (psx_taken_BFC1B3AC) goto label_BFC1B3D4; label_BFC1B3B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B3B4: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; @@ -66974,6 +82217,9 @@ label_BFC1B3B4: cpu->gpr[31] = 0x800333C8u; psx_dispatch(cpu, 0x800376ACu); label_BFC1B3C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B3C8: 100000C5 beq $zero, $zero, 0xBFC1B6E0 */ uint32_t psx_brA_BFC1B3C8 = cpu->gpr[0]; uint32_t psx_brB_BFC1B3C8 = cpu->gpr[0]; @@ -66982,10 +82228,16 @@ label_BFC1B3C8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B3CCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1B3C8) goto label_BFC1B6E0; label_BFC1B3D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B3D0: 00037080 sll $t6, $v1, 2 */ cpu->gpr[14] = cpu->gpr[3] << 2u; label_BFC1B3D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B3D4: 3C04800F lui $a0, 0x800F */ cpu->gpr[4] = 0x800F0000u; @@ -66999,6 +82251,9 @@ label_BFC1B3D4: cpu->gpr[31] = 0x800333E8u; psx_dispatch(cpu, 0x80037FA8u); label_BFC1B3E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B3E8: 100000BD beq $zero, $zero, 0xBFC1B6E0 */ uint32_t psx_brA_BFC1B3E8 = cpu->gpr[0]; uint32_t psx_brB_BFC1B3E8 = cpu->gpr[0]; @@ -67007,6 +82262,9 @@ label_BFC1B3E8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B3ECu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1B3E8) goto label_BFC1B6E0; label_BFC1B3F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B3F0: 24010015 addiu $at, $zero, 21 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (21)); @@ -67017,6 +82275,9 @@ label_BFC1B3F0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B3F8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1B3F4) goto label_BFC1B6E0; label_BFC1B3FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B3FC: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -67031,6 +82292,9 @@ label_BFC1B3FC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B40Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1B408) goto label_BFC1B6E0; label_BFC1B410: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B410: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -67047,6 +82311,9 @@ label_BFC1B410: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B424u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1B420) goto label_BFC1B6E0; label_BFC1B428: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B428: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -67061,6 +82328,9 @@ label_BFC1B428: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1B434) goto label_BFC1B62C; label_BFC1B43C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B43C: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -67081,6 +82351,9 @@ label_BFC1B43C: /* 0xBFC1B45C: 00B0082B sltu $at, $a1, $s0 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < cpu->gpr[16] ? 1 : 0); label_BFC1B460: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B460: 1420000C bne $at, $zero, 0xBFC1B494 */ uint32_t psx_brA_BFC1B460 = cpu->gpr[1]; uint32_t psx_brB_BFC1B460 = cpu->gpr[0]; @@ -67089,6 +82362,9 @@ label_BFC1B460: /* nop */ if (psx_taken_BFC1B460) goto label_BFC1B494; label_BFC1B468: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B468: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -67098,6 +82374,9 @@ label_BFC1B468: cpu->gpr[31] = 0x80033474u; psx_dispatch(cpu, 0x800336ECu); label_BFC1B474: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B474: 0C011997 jal 0xB004665C */ /* 0xBFC1B478: 02002021 addu $a0, $s0, $zero */ @@ -67105,6 +82384,9 @@ label_BFC1B474: cpu->gpr[31] = 0x8003347Cu; psx_dispatch(cpu, 0x8004665Cu); label_BFC1B47C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B47C: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -67114,6 +82396,9 @@ label_BFC1B47C: cpu->gpr[31] = 0x80033488u; psx_dispatch(cpu, 0x80044A50u); label_BFC1B488: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B488: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -67122,6 +82407,9 @@ label_BFC1B488: /* 0xBFC1B490: 00000000 nop */ /* nop */ label_BFC1B494: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B494: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -67134,6 +82422,9 @@ label_BFC1B494: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < cpu->gpr[16] ? 1 : 0); if (psx_taken_BFC1B49C) goto label_BFC1B460; label_BFC1B4A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B4A4: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -67150,6 +82441,9 @@ label_BFC1B4A4: /* nop */ if (psx_taken_BFC1B4B4) goto label_BFC1B4F4; label_BFC1B4BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B4BC: 0C011997 jal 0xB004665C */ /* 0xBFC1B4C0: 02002021 addu $a0, $s0, $zero */ @@ -67157,6 +82451,9 @@ label_BFC1B4BC: cpu->gpr[31] = 0x800334C4u; psx_dispatch(cpu, 0x8004665Cu); label_BFC1B4C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B4C4: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -67166,6 +82463,9 @@ label_BFC1B4C4: cpu->gpr[31] = 0x800334D0u; psx_dispatch(cpu, 0x80044A50u); label_BFC1B4D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B4D0: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -67182,6 +82482,9 @@ label_BFC1B4D0: /* nop */ if (psx_taken_BFC1B4E0) goto label_BFC1B4BC; label_BFC1B4E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B4E8: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -67190,6 +82493,9 @@ label_BFC1B4E8: /* 0xBFC1B4F0: 00000000 nop */ /* nop */ label_BFC1B4F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B4F4: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -67204,6 +82510,9 @@ label_BFC1B4F4: /* nop */ if (psx_taken_BFC1B500) goto label_BFC1B5A4; label_BFC1B508: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B508: 3C068008 lui $a2, 0x8008 */ cpu->gpr[6] = 0x80080000u; @@ -67224,6 +82533,9 @@ label_BFC1B508: cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC1B520) goto label_BFC1B5FC; label_BFC1B528: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B528: 3C0A800F lui $t2, 0x800F */ cpu->gpr[10] = 0x800F0000u; @@ -67234,6 +82546,9 @@ label_BFC1B528: /* 0xBFC1B534: 012A1821 addu $v1, $t1, $t2 */ cpu->gpr[3] = cpu->gpr[9] + cpu->gpr[10]; label_BFC1B538: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B538: 8C640000 lw $a0, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B538u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -67248,6 +82563,9 @@ label_BFC1B538: /* nop */ if (psx_taken_BFC1B544) goto label_BFC1B560; label_BFC1B54C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B54C: 3C0C800F lui $t4, 0x800F */ cpu->gpr[12] = 0x800F0000u; @@ -67262,6 +82580,9 @@ label_BFC1B54C: cpu->gpr[2] = cpu->gpr[11] + cpu->gpr[12]; if (psx_taken_BFC1B558) goto label_BFC1B58C; label_BFC1B560: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B560: 24050028 addiu $a1, $zero, 40 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[0] + (40)); @@ -67271,6 +82592,9 @@ label_BFC1B560: cpu->gpr[31] = 0x8003356Cu; psx_dispatch(cpu, 0x800336ECu); label_BFC1B56C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B56C: 3C068008 lui $a2, 0x8008 */ cpu->gpr[6] = 0x80080000u; @@ -67289,6 +82613,9 @@ label_BFC1B56C: /* 0xBFC1B588: 01AE1021 addu $v0, $t5, $t6 */ cpu->gpr[2] = cpu->gpr[13] + cpu->gpr[14]; label_BFC1B58C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B58C: 24630004 addiu $v1, $v1, 4 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (4)); @@ -67301,6 +82628,9 @@ label_BFC1B58C: /* nop */ if (psx_taken_BFC1B594) goto label_BFC1B538; label_BFC1B59C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B59C: 10000017 beq $zero, $zero, 0xBFC1B5FC */ uint32_t psx_brA_BFC1B59C = cpu->gpr[0]; uint32_t psx_brB_BFC1B59C = cpu->gpr[0]; @@ -67309,6 +82639,9 @@ label_BFC1B59C: /* nop */ if (psx_taken_BFC1B59C) goto label_BFC1B5FC; label_BFC1B5A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B5A4: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -67325,10 +82658,16 @@ label_BFC1B5A4: cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC1B5B4) goto label_BFC1B5FC; label_BFC1B5BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B5BC: 2A010015 slti $at, $s0, 21 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (21) ? 1 : 0); label_BFC1B5C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B5C0: 1020000A beq $at, $zero, 0xBFC1B5EC */ uint32_t psx_brA_BFC1B5C0 = cpu->gpr[1]; uint32_t psx_brB_BFC1B5C0 = cpu->gpr[0]; @@ -67337,6 +82676,9 @@ label_BFC1B5C0: /* nop */ if (psx_taken_BFC1B5C0) goto label_BFC1B5EC; label_BFC1B5C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B5C8: 00107880 sll $t7, $s0, 2 */ cpu->gpr[15] = cpu->gpr[16] << 2u; @@ -67352,6 +82694,9 @@ label_BFC1B5C8: cpu->gpr[31] = 0x800335E0u; psx_dispatch(cpu, 0x800336ECu); label_BFC1B5E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B5E0: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -67360,6 +82705,9 @@ label_BFC1B5E0: /* 0xBFC1B5E8: 00000000 nop */ /* nop */ label_BFC1B5EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B5EC: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -67372,6 +82720,9 @@ label_BFC1B5EC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (21) ? 1 : 0); if (psx_taken_BFC1B5F4) goto label_BFC1B5C0; label_BFC1B5FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B5FC: 0C011997 jal 0xB004665C */ /* 0xBFC1B600: 2404000A addiu $a0, $zero, 10 */ @@ -67379,6 +82730,9 @@ label_BFC1B5FC: cpu->gpr[31] = 0x80033604u; psx_dispatch(cpu, 0x8004665Cu); label_BFC1B604: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B604: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -67388,6 +82742,9 @@ label_BFC1B604: cpu->gpr[31] = 0x80033610u; psx_dispatch(cpu, 0x80044A50u); label_BFC1B610: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B610: 0C011997 jal 0xB004665C */ /* 0xBFC1B614: 24040016 addiu $a0, $zero, 22 */ @@ -67395,6 +82752,9 @@ label_BFC1B610: cpu->gpr[31] = 0x80033618u; psx_dispatch(cpu, 0x8004665Cu); label_BFC1B618: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B618: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -67404,6 +82764,9 @@ label_BFC1B618: cpu->gpr[31] = 0x80033624u; psx_dispatch(cpu, 0x80044A50u); label_BFC1B624: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B624: 1000002E beq $zero, $zero, 0xBFC1B6E0 */ uint32_t psx_brA_BFC1B624 = cpu->gpr[0]; uint32_t psx_brB_BFC1B624 = cpu->gpr[0]; @@ -67412,6 +82775,9 @@ label_BFC1B624: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B628u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1B624) goto label_BFC1B6E0; label_BFC1B62C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B62C: 24180001 addiu $t8, $zero, 1 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -67434,6 +82800,9 @@ label_BFC1B62C: /* 0xBFC1B650: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; label_BFC1B654: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B654: 0C00CDBB jal 0xB00336EC */ /* 0xBFC1B658: 24050028 addiu $a1, $zero, 40 */ @@ -67441,6 +82810,9 @@ label_BFC1B654: cpu->gpr[31] = 0x8003365Cu; psx_dispatch(cpu, 0x800336ECu); label_BFC1B65C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B65C: 0C011997 jal 0xB004665C */ /* 0xBFC1B660: 02002021 addu $a0, $s0, $zero */ @@ -67448,6 +82820,9 @@ label_BFC1B65C: cpu->gpr[31] = 0x80033664u; psx_dispatch(cpu, 0x8004665Cu); label_BFC1B664: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B664: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -67457,6 +82832,9 @@ label_BFC1B664: cpu->gpr[31] = 0x80033670u; psx_dispatch(cpu, 0x80044A50u); label_BFC1B670: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B670: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -67469,12 +82847,18 @@ label_BFC1B670: cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; if (psx_taken_BFC1B678) goto label_BFC1B654; label_BFC1B680: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B680: 2410000B addiu $s0, $zero, 11 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (11)); /* 0xBFC1B684: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; label_BFC1B688: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B688: 0C00CDBB jal 0xB00336EC */ /* 0xBFC1B68C: 24050008 addiu $a1, $zero, 8 */ @@ -67482,6 +82866,9 @@ label_BFC1B688: cpu->gpr[31] = 0x80033690u; psx_dispatch(cpu, 0x800336ECu); label_BFC1B690: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B690: 0C011997 jal 0xB004665C */ /* 0xBFC1B694: 02002021 addu $a0, $s0, $zero */ @@ -67489,6 +82876,9 @@ label_BFC1B690: cpu->gpr[31] = 0x80033698u; psx_dispatch(cpu, 0x8004665Cu); label_BFC1B698: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B698: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -67498,6 +82888,9 @@ label_BFC1B698: cpu->gpr[31] = 0x800336A4u; psx_dispatch(cpu, 0x80044A50u); label_BFC1B6A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B6A4: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -67510,6 +82903,9 @@ label_BFC1B6A4: cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; if (psx_taken_BFC1B6AC) goto label_BFC1B688; label_BFC1B6B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B6B4: 0C011997 jal 0xB004665C */ /* 0xBFC1B6B8: 2404000A addiu $a0, $zero, 10 */ @@ -67517,6 +82913,9 @@ label_BFC1B6B4: cpu->gpr[31] = 0x800336BCu; psx_dispatch(cpu, 0x8004665Cu); label_BFC1B6BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B6BC: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -67526,6 +82925,9 @@ label_BFC1B6BC: cpu->gpr[31] = 0x800336C8u; psx_dispatch(cpu, 0x80044A50u); label_BFC1B6C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B6C8: 0C011997 jal 0xB004665C */ /* 0xBFC1B6CC: 24040016 addiu $a0, $zero, 22 */ @@ -67533,6 +82935,9 @@ label_BFC1B6C8: cpu->gpr[31] = 0x800336D0u; psx_dispatch(cpu, 0x8004665Cu); label_BFC1B6D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B6D0: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -67542,10 +82947,16 @@ label_BFC1B6D0: cpu->gpr[31] = 0x800336DCu; psx_dispatch(cpu, 0x80044A50u); label_BFC1B6DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B6DC: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B6DCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC1B6E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B6E0: 8FB00018 lw $s0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B6E0u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -67569,6 +82980,9 @@ void func_1FC1B6EC(CPUState* cpu) { } } label_BFC1B6EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B6EC: 00801821 addu $v1, $a0, $zero */ cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[0]; @@ -67585,6 +82999,9 @@ label_BFC1B6EC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B700u); return; } g_debug_last_store_pc = 0xBFC1B700u; cpu->write_word(psx_addr, cpu->gpr[5]); } if (psx_taken_BFC1B6FC) goto label_BFC1B774; label_BFC1B704: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B704: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -67599,6 +83016,9 @@ label_BFC1B704: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B714u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1B710) goto label_BFC1B778; label_BFC1B718: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B718: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -67618,6 +83038,9 @@ label_BFC1B718: cpu->gpr[31] = 0x80033738u; psx_dispatch(cpu, 0x8004665Cu); label_BFC1B738: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B738: 8FA5002C lw $a1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B738u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -67629,6 +83052,9 @@ label_BFC1B738: cpu->gpr[31] = 0x80033748u; psx_dispatch(cpu, 0x80044988u); label_BFC1B748: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B748: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -67646,6 +83072,9 @@ label_BFC1B748: cpu->gpr[31] = 0x80033764u; psx_dispatch(cpu, 0x8004665Cu); label_BFC1B764: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B764: 8FA5002C lw $a1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B764u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -67657,10 +83086,16 @@ label_BFC1B764: cpu->gpr[31] = 0x80033774u; psx_dispatch(cpu, 0x80044988u); label_BFC1B774: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B774: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B774u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC1B778: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B778: 27BD0028 addiu $sp, $sp, 40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (40)); @@ -67673,6 +83108,9 @@ label_BFC1B778: void func_1FC1B784(CPUState* cpu) { debug_server_log_call_entry(0x1FC1B784u); label_BFC1B784: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(23u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B784: 00047080 sll $t6, $a0, 2 */ cpu->gpr[14] = cpu->gpr[4] << 2u; @@ -67764,6 +83202,9 @@ void func_1FC1B7E0(CPUState* cpu) { } } label_BFC1B7E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B7E0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -67780,6 +83221,9 @@ label_BFC1B7E0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B7F4u); return; } g_debug_last_store_pc = 0xBFC1B7F4u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC1B7F0) goto label_BFC1BD1C; label_BFC1B7F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B7F8: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -67794,6 +83238,9 @@ label_BFC1B7F8: /* nop */ if (psx_taken_BFC1B804) goto label_BFC1B834; label_BFC1B80C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B80C: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -67808,6 +83255,9 @@ label_BFC1B80C: /* nop */ if (psx_taken_BFC1B818) goto label_BFC1B8B4; label_BFC1B820: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B820: 24040033 addiu $a0, $zero, 51 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (51)); @@ -67817,6 +83267,9 @@ label_BFC1B820: cpu->gpr[31] = 0x8003382Cu; psx_dispatch(cpu, 0x800326ECu); label_BFC1B82C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B82C: 10000021 beq $zero, $zero, 0xBFC1B8B4 */ uint32_t psx_brA_BFC1B82C = cpu->gpr[0]; uint32_t psx_brB_BFC1B82C = cpu->gpr[0]; @@ -67825,6 +83278,9 @@ label_BFC1B82C: /* nop */ if (psx_taken_BFC1B82C) goto label_BFC1B8B4; label_BFC1B834: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B834: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -67839,6 +83295,9 @@ label_BFC1B834: /* nop */ if (psx_taken_BFC1B840) goto label_BFC1B870; label_BFC1B848: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B848: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -67853,6 +83312,9 @@ label_BFC1B848: /* nop */ if (psx_taken_BFC1B854) goto label_BFC1B8B4; label_BFC1B85C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B85C: 24040033 addiu $a0, $zero, 51 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (51)); @@ -67862,6 +83324,9 @@ label_BFC1B85C: cpu->gpr[31] = 0x80033868u; psx_dispatch(cpu, 0x800326ECu); label_BFC1B868: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B868: 10000012 beq $zero, $zero, 0xBFC1B8B4 */ uint32_t psx_brA_BFC1B868 = cpu->gpr[0]; uint32_t psx_brB_BFC1B868 = cpu->gpr[0]; @@ -67870,6 +83335,9 @@ label_BFC1B868: /* nop */ if (psx_taken_BFC1B868) goto label_BFC1B8B4; label_BFC1B870: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B870: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -67888,6 +83356,9 @@ label_BFC1B870: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (51)); if (psx_taken_BFC1B884) goto label_BFC1B8AC; label_BFC1B88C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B88C: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -67906,10 +83377,16 @@ label_BFC1B88C: /* nop */ if (psx_taken_BFC1B8A0) goto label_BFC1B8B4; label_BFC1B8A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B8A8: 24040033 addiu $a0, $zero, 51 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (51)); label_BFC1B8AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B8AC: 0C00C9BB jal 0xB00326EC */ /* 0xBFC1B8B0: 2405001F addiu $a1, $zero, 31 */ @@ -67917,6 +83394,9 @@ label_BFC1B8AC: cpu->gpr[31] = 0x800338B4u; psx_dispatch(cpu, 0x800326ECu); label_BFC1B8B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B8B4: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -67935,6 +83415,9 @@ label_BFC1B8B4: /* nop */ if (psx_taken_BFC1B8C8) goto label_BFC1B968; label_BFC1B8D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B8D0: 1000001F beq $zero, $zero, 0xBFC1B950 */ uint32_t psx_brA_BFC1B8D0 = cpu->gpr[0]; uint32_t psx_brB_BFC1B8D0 = cpu->gpr[0]; @@ -67943,6 +83426,9 @@ label_BFC1B8D0: /* nop */ if (psx_taken_BFC1B8D0) goto label_BFC1B950; label_BFC1B8D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B8D8: 24040034 addiu $a0, $zero, 52 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); @@ -67952,6 +83438,9 @@ label_BFC1B8D8: cpu->gpr[31] = 0x800338E4u; psx_dispatch(cpu, 0x800326ECu); label_BFC1B8E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B8E4: 24040037 addiu $a0, $zero, 55 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (55)); @@ -67961,6 +83450,9 @@ label_BFC1B8E4: cpu->gpr[31] = 0x800338F0u; psx_dispatch(cpu, 0x800326ECu); label_BFC1B8F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B8F0: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -67973,6 +83465,9 @@ label_BFC1B8F0: /* nop */ if (psx_taken_BFC1B8F8) goto label_BFC1B968; label_BFC1B900: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B900: 24040034 addiu $a0, $zero, 52 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); @@ -67982,6 +83477,9 @@ label_BFC1B900: cpu->gpr[31] = 0x8003390Cu; psx_dispatch(cpu, 0x800326ECu); label_BFC1B90C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B90C: 24040037 addiu $a0, $zero, 55 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (55)); @@ -67991,6 +83489,9 @@ label_BFC1B90C: cpu->gpr[31] = 0x80033918u; psx_dispatch(cpu, 0x800326ECu); label_BFC1B918: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B918: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -68003,6 +83504,9 @@ label_BFC1B918: /* nop */ if (psx_taken_BFC1B920) goto label_BFC1B968; label_BFC1B928: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B928: 24040034 addiu $a0, $zero, 52 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); @@ -68012,6 +83516,9 @@ label_BFC1B928: cpu->gpr[31] = 0x80033934u; psx_dispatch(cpu, 0x800326ECu); label_BFC1B934: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B934: 24040037 addiu $a0, $zero, 55 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (55)); @@ -68021,6 +83528,9 @@ label_BFC1B934: cpu->gpr[31] = 0x80033940u; psx_dispatch(cpu, 0x800326ECu); label_BFC1B940: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B940: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -68033,6 +83543,9 @@ label_BFC1B940: /* nop */ if (psx_taken_BFC1B948) goto label_BFC1B968; label_BFC1B950: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B950: 1080FFF5 beq $a0, $zero, 0xBFC1B928 */ uint32_t psx_brA_BFC1B950 = cpu->gpr[4]; uint32_t psx_brB_BFC1B950 = cpu->gpr[0]; @@ -68041,6 +83554,9 @@ label_BFC1B950: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC1B950) goto label_BFC1B928; label_BFC1B958: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B958: 1081FFDF beq $a0, $at, 0xBFC1B8D8 */ uint32_t psx_brA_BFC1B958 = cpu->gpr[4]; uint32_t psx_brB_BFC1B958 = cpu->gpr[1]; @@ -68049,6 +83565,9 @@ label_BFC1B958: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC1B958) goto label_BFC1B8D8; label_BFC1B960: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B960: 1081FFE7 beq $a0, $at, 0xBFC1B900 */ uint32_t psx_brA_BFC1B960 = cpu->gpr[4]; uint32_t psx_brB_BFC1B960 = cpu->gpr[1]; @@ -68057,6 +83576,9 @@ label_BFC1B960: /* nop */ if (psx_taken_BFC1B960) goto label_BFC1B900; label_BFC1B968: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B968: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -68099,6 +83621,9 @@ label_BFC1B968: /* nop */ if (psx_taken_BFC1B9AC) goto label_BFC1B9D8; label_BFC1B9B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B9B4: 3C188006 lui $t8, 0x8006 */ cpu->gpr[24] = 0x80060000u; @@ -68113,6 +83638,9 @@ label_BFC1B9B4: /* nop */ if (psx_taken_BFC1B9C0) goto label_BFC1B9D8; label_BFC1B9C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B9C8: 24190003 addiu $t9, $zero, 3 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); @@ -68124,6 +83652,9 @@ label_BFC1B9C8: cpu->gpr[31] = 0x800339D8u; psx_dispatch(cpu, 0x800344C0u); label_BFC1B9D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B9D8: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -68138,6 +83669,9 @@ label_BFC1B9D8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1B9E8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1B9E4) goto label_BFC1BD20; label_BFC1B9EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1B9EC: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -68154,6 +83688,9 @@ label_BFC1B9EC: /* nop */ if (psx_taken_BFC1B9FC) goto label_BFC1BA20; label_BFC1BA04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BA04: 0C011997 jal 0xB004665C */ /* 0xBFC1BA08: 24040015 addiu $a0, $zero, 21 */ @@ -68161,6 +83698,9 @@ label_BFC1BA04: cpu->gpr[31] = 0x80033A0Cu; psx_dispatch(cpu, 0x8004665Cu); label_BFC1BA0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BA0C: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -68170,6 +83710,9 @@ label_BFC1BA0C: cpu->gpr[31] = 0x80033A18u; psx_dispatch(cpu, 0x80044A50u); label_BFC1BA18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BA18: 10000006 beq $zero, $zero, 0xBFC1BA34 */ uint32_t psx_brA_BFC1BA18 = cpu->gpr[0]; uint32_t psx_brB_BFC1BA18 = cpu->gpr[0]; @@ -68178,6 +83721,9 @@ label_BFC1BA18: /* nop */ if (psx_taken_BFC1BA18) goto label_BFC1BA34; label_BFC1BA20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BA20: 0C011997 jal 0xB004665C */ /* 0xBFC1BA24: 24040015 addiu $a0, $zero, 21 */ @@ -68185,6 +83731,9 @@ label_BFC1BA20: cpu->gpr[31] = 0x80033A28u; psx_dispatch(cpu, 0x8004665Cu); label_BFC1BA28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BA28: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -68194,6 +83743,9 @@ label_BFC1BA28: cpu->gpr[31] = 0x80033A34u; psx_dispatch(cpu, 0x80044A50u); label_BFC1BA34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BA34: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -68208,10 +83760,16 @@ label_BFC1BA34: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1BA40) goto label_BFC1BA4C; label_BFC1BA48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BA48: AC209E30 sw $zero, -25040($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25040)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BA48u); return; } g_debug_last_store_pc = 0xBFC1BA48u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC1BA4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BA4C: 24040033 addiu $a0, $zero, 51 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (51)); @@ -68221,6 +83779,9 @@ label_BFC1BA4C: cpu->gpr[31] = 0x80033A58u; psx_dispatch(cpu, 0x800326ECu); label_BFC1BA58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BA58: 0C00C90C jal 0xB0032430 */ /* 0xBFC1BA5C: 240400CC addiu $a0, $zero, 204 */ @@ -68228,6 +83789,9 @@ label_BFC1BA58: cpu->gpr[31] = 0x80033A60u; psx_dispatch(cpu, 0x80032430u); label_BFC1BA60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BA60: 0C00CB1A jal 0xB0032C68 */ /* 0xBFC1BA64: 00000000 nop */ @@ -68235,6 +83799,9 @@ label_BFC1BA60: cpu->gpr[31] = 0x80033A68u; psx_dispatch(cpu, 0x80032C68u); label_BFC1BA68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BA68: 240B0001 addiu $t3, $zero, 1 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -68248,6 +83815,9 @@ label_BFC1BA68: cpu->gpr[31] = 0x80033A7Cu; psx_dispatch(cpu, 0x8003610Cu); label_BFC1BA7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BA7C: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -68262,6 +83832,9 @@ label_BFC1BA7C: /* nop */ if (psx_taken_BFC1BA88) goto label_BFC1BAF4; label_BFC1BA90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BA90: 240D0032 addiu $t5, $zero, 50 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (50)); @@ -68309,6 +83882,9 @@ label_BFC1BA90: cpu->gpr[31] = 0x80033AE8u; psx_dispatch(cpu, 0x80032A90u); label_BFC1BAE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BAE8: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; @@ -68317,6 +83893,9 @@ label_BFC1BAE8: /* 0xBFC1BAF0: AC239E3C sw $v1, -25028($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25028)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BAF0u); return; } g_debug_last_store_pc = 0xBFC1BAF0u; cpu->write_word(psx_addr, cpu->gpr[3]); } label_BFC1BAF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BAF4: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -68333,10 +83912,16 @@ label_BFC1BAF4: /* nop */ if (psx_taken_BFC1BB04) goto label_BFC1BB44; label_BFC1BB0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BB0C: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; label_BFC1BB10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BB10: 0C00CDBB jal 0xB00336EC */ /* 0xBFC1BB14: 24050008 addiu $a1, $zero, 8 */ @@ -68344,6 +83929,9 @@ label_BFC1BB10: cpu->gpr[31] = 0x80033B18u; psx_dispatch(cpu, 0x800336ECu); label_BFC1BB18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BB18: 0C011997 jal 0xB004665C */ /* 0xBFC1BB1C: 02202021 addu $a0, $s1, $zero */ @@ -68351,6 +83939,9 @@ label_BFC1BB18: cpu->gpr[31] = 0x80033B20u; psx_dispatch(cpu, 0x8004665Cu); label_BFC1BB20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BB20: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -68360,6 +83951,9 @@ label_BFC1BB20: cpu->gpr[31] = 0x80033B2Cu; psx_dispatch(cpu, 0x80044A50u); label_BFC1BB2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BB2C: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -68376,6 +83970,9 @@ label_BFC1BB2C: cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; if (psx_taken_BFC1BB3C) goto label_BFC1BB10; label_BFC1BB44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BB44: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -68392,10 +83989,16 @@ label_BFC1BB44: cpu->gpr[17] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC1BB54) goto label_BFC1BBA0; label_BFC1BB5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BB5C: 2A210015 slti $at, $s1, 21 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[17] < (21) ? 1 : 0); label_BFC1BB60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BB60: 1020000F beq $at, $zero, 0xBFC1BBA0 */ uint32_t psx_brA_BFC1BB60 = cpu->gpr[1]; uint32_t psx_brB_BFC1BB60 = cpu->gpr[0]; @@ -68404,6 +84007,9 @@ label_BFC1BB60: /* nop */ if (psx_taken_BFC1BB60) goto label_BFC1BBA0; label_BFC1BB68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BB68: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -68413,6 +84019,9 @@ label_BFC1BB68: cpu->gpr[31] = 0x80033B74u; psx_dispatch(cpu, 0x800336ECu); label_BFC1BB74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BB74: 0C011997 jal 0xB004665C */ /* 0xBFC1BB78: 02202021 addu $a0, $s1, $zero */ @@ -68420,6 +84029,9 @@ label_BFC1BB74: cpu->gpr[31] = 0x80033B7Cu; psx_dispatch(cpu, 0x8004665Cu); label_BFC1BB7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BB7C: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -68429,6 +84041,9 @@ label_BFC1BB7C: cpu->gpr[31] = 0x80033B88u; psx_dispatch(cpu, 0x80044A50u); label_BFC1BB88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BB88: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -68445,6 +84060,9 @@ label_BFC1BB88: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[17] < (21) ? 1 : 0); if (psx_taken_BFC1BB98) goto label_BFC1BB60; label_BFC1BBA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BBA0: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -68461,6 +84079,9 @@ label_BFC1BBA0: /* nop */ if (psx_taken_BFC1BBB0) goto label_BFC1BBF0; label_BFC1BBB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BBB8: AFB0001C sw $s0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BBB8u); return; } g_debug_last_store_pc = 0xBFC1BBB8u; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -68469,6 +84090,9 @@ label_BFC1BBB8: /* 0xBFC1BBC0: 2610D0F4 addiu $s0, $s0, -12044 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-12044)); label_BFC1BBC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BBC4: 8E040000 lw $a0, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BBC4u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -68478,6 +84102,9 @@ label_BFC1BBC4: cpu->gpr[31] = 0x80033BD0u; psx_dispatch(cpu, 0x800336ECu); label_BFC1BBD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BBD0: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -68494,12 +84121,18 @@ label_BFC1BBD0: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (4)); if (psx_taken_BFC1BBE0) goto label_BFC1BBC4; label_BFC1BBE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BBE8: 8FB0001C lw $s0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BBE8u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } /* 0xBFC1BBEC: 00000000 nop */ /* nop */ label_BFC1BBF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BBF0: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -68518,10 +84151,16 @@ label_BFC1BBF0: cpu->gpr[17] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC1BC04) goto label_BFC1BC3C; label_BFC1BC0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BC0C: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; label_BFC1BC10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BC10: 0C00CDBB jal 0xB00336EC */ /* 0xBFC1BC14: 24050008 addiu $a1, $zero, 8 */ @@ -68529,6 +84168,9 @@ label_BFC1BC10: cpu->gpr[31] = 0x80033C18u; psx_dispatch(cpu, 0x800336ECu); label_BFC1BC18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BC18: 0C011997 jal 0xB004665C */ /* 0xBFC1BC1C: 02202021 addu $a0, $s1, $zero */ @@ -68536,6 +84178,9 @@ label_BFC1BC18: cpu->gpr[31] = 0x80033C20u; psx_dispatch(cpu, 0x8004665Cu); label_BFC1BC20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BC20: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -68545,6 +84190,9 @@ label_BFC1BC20: cpu->gpr[31] = 0x80033C2Cu; psx_dispatch(cpu, 0x80044A50u); label_BFC1BC2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BC2C: 26310001 addiu $s1, $s1, 1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); @@ -68557,6 +84205,9 @@ label_BFC1BC2C: cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; if (psx_taken_BFC1BC34) goto label_BFC1BC10; label_BFC1BC3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BC3C: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -68571,6 +84222,9 @@ label_BFC1BC3C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BC4Cu); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } if (psx_taken_BFC1BC48) goto label_BFC1BD18; label_BFC1BC50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BC50: AFB0001C sw $s0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BC50u); return; } g_debug_last_store_pc = 0xBFC1BC50u; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -68581,6 +84235,9 @@ label_BFC1BC50: /* 0xBFC1BC5C: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; label_BFC1BC60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BC60: 0C00CDBB jal 0xB00336EC */ /* 0xBFC1BC64: 24050008 addiu $a1, $zero, 8 */ @@ -68588,6 +84245,9 @@ label_BFC1BC60: cpu->gpr[31] = 0x80033C68u; psx_dispatch(cpu, 0x800336ECu); label_BFC1BC68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BC68: 26310001 addiu $s1, $s1, 1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); @@ -68598,6 +84258,9 @@ label_BFC1BC68: cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; if (psx_taken_BFC1BC6C) goto label_BFC1BC60; label_BFC1BC74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BC74: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -68616,12 +84279,18 @@ label_BFC1BC74: /* nop */ if (psx_taken_BFC1BC88) goto label_BFC1BCC0; label_BFC1BC90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BC90: 3C10800F lui $s0, 0x800F */ cpu->gpr[16] = 0x800F0000u; /* 0xBFC1BC94: 2610D0F4 addiu $s0, $s0, -12044 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-12044)); label_BFC1BC98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BC98: 8E040000 lw $a0, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BC98u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -68631,6 +84300,9 @@ label_BFC1BC98: cpu->gpr[31] = 0x80033CA4u; psx_dispatch(cpu, 0x800336ECu); label_BFC1BCA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BCA4: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -68649,6 +84321,9 @@ label_BFC1BCA4: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (4)); if (psx_taken_BFC1BCB8) goto label_BFC1BC98; label_BFC1BCC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BCC0: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -68665,6 +84340,9 @@ label_BFC1BCC0: cpu->gpr[17] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC1BCD0) goto label_BFC1BD0C; label_BFC1BCD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BCD8: 3C09800F lui $t1, 0x800F */ cpu->gpr[9] = 0x800F0000u; @@ -68675,6 +84353,9 @@ label_BFC1BCD8: /* 0xBFC1BCE4: 01098021 addu $s0, $t0, $t1 */ cpu->gpr[16] = cpu->gpr[8] + cpu->gpr[9]; label_BFC1BCE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BCE8: 8E040000 lw $a0, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BCE8u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -68684,6 +84365,9 @@ label_BFC1BCE8: cpu->gpr[31] = 0x80033CF4u; psx_dispatch(cpu, 0x800336ECu); label_BFC1BCF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BCF4: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -68700,6 +84384,9 @@ label_BFC1BCF4: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (4)); if (psx_taken_BFC1BD04) goto label_BFC1BCE8; label_BFC1BD0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BD0C: 8FB0001C lw $s0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BD0Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -68708,14 +84395,23 @@ label_BFC1BD0C: /* 0xBFC1BD14: 8FB10024 lw $s1, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BD14u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } label_BFC1BD18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BD18: 00000000 nop */ /* nop */ label_BFC1BD1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BD1C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BD1Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC1BD20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BD20: 27BD0038 addiu $sp, $sp, 56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (56)); @@ -68728,6 +84424,9 @@ label_BFC1BD20: void func_1FC1BD3C(CPUState* cpu) { debug_server_log_call_entry(0x1FC1BD3Cu); label_BFC1BD3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BD3C: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -68740,6 +84439,9 @@ label_BFC1BD3C: void func_1FC1BD58(CPUState* cpu) { debug_server_log_call_entry(0x1FC1BD58u); label_BFC1BD58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BD58: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -68772,6 +84474,9 @@ void func_1FC1BD68(CPUState* cpu) { } } label_BFC1BD68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BD68: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -68787,6 +84492,9 @@ label_BFC1BD68: cpu->gpr[31] = 0x80033D80u; psx_dispatch(cpu, 0x800349B4u); label_BFC1BD80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BD80: 8FAE0028 lw $t6, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BD80u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -68803,6 +84511,9 @@ label_BFC1BD80: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BD94u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1BD90) goto label_BFC1BED4; label_BFC1BD98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BD98: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -68817,6 +84528,9 @@ label_BFC1BD98: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BDA8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1BDA4) goto label_BFC1BED4; label_BFC1BDAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BDAC: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -68831,6 +84545,9 @@ label_BFC1BDAC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BDBCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1BDB8) goto label_BFC1BED4; label_BFC1BDC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BDC0: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -68845,6 +84562,9 @@ label_BFC1BDC0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BDD0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1BDCC) goto label_BFC1BED4; label_BFC1BDD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BDD4: 0C011934 jal 0xB00464D0 */ /* 0xBFC1BDD8: 00000000 nop */ @@ -68852,6 +84572,9 @@ label_BFC1BDD4: cpu->gpr[31] = 0x80033DDCu; psx_dispatch(cpu, 0x800464D0u); label_BFC1BDDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BDDC: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -68870,6 +84593,9 @@ label_BFC1BDDC: cpu->gpr[5] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC1BDF0) goto label_BFC1BED0; label_BFC1BDF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BDF8: 00094880 sll $t1, $t1, 2 */ cpu->gpr[9] = cpu->gpr[9] << 2u; @@ -68894,6 +84620,9 @@ label_BFC1BDF8: default: cpu->pc = cpu->gpr[9]; return; } label_BFC1BE14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BE14: 0C00CFB8 jal 0xB0033EE0 */ /* 0xBFC1BE18: 00000000 nop */ @@ -68901,6 +84630,9 @@ label_BFC1BE14: cpu->gpr[31] = 0x80033E1Cu; psx_dispatch(cpu, 0x80033EE0u); label_BFC1BE1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BE1C: 1000002D beq $zero, $zero, 0xBFC1BED4 */ uint32_t psx_brA_BFC1BE1C = cpu->gpr[0]; uint32_t psx_brB_BFC1BE1C = cpu->gpr[0]; @@ -68909,6 +84641,9 @@ label_BFC1BE1C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BE20u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1BE1C) goto label_BFC1BED4; label_BFC1BE24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BE24: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -68923,6 +84658,9 @@ label_BFC1BE24: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1BE30) goto label_BFC1BED0; label_BFC1BE38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BE38: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -68939,6 +84677,9 @@ label_BFC1BE38: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC1BE48) goto label_BFC1BE64; label_BFC1BE50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BE50: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -68951,6 +84692,9 @@ label_BFC1BE50: /* 0xBFC1BE60: 24040001 addiu $a0, $zero, 1 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC1BE64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BE64: 0C00D843 jal 0xB003610C */ /* 0xBFC1BE68: AFA50024 sw $a1, 36($sp) */ @@ -68958,6 +84702,9 @@ label_BFC1BE64: cpu->gpr[31] = 0x80033E6Cu; psx_dispatch(cpu, 0x8003610Cu); label_BFC1BE6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BE6C: 8FA50024 lw $a1, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BE6Cu); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -68967,6 +84714,9 @@ label_BFC1BE6C: cpu->gpr[31] = 0x80033E78u; psx_dispatch(cpu, 0x800326ECu); label_BFC1BE78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BE78: 0C00D04C jal 0xB0034130 */ /* 0xBFC1BE7C: 00000000 nop */ @@ -68974,6 +84724,9 @@ label_BFC1BE78: cpu->gpr[31] = 0x80033E80u; psx_dispatch(cpu, 0x80034130u); label_BFC1BE80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BE80: 10000014 beq $zero, $zero, 0xBFC1BED4 */ uint32_t psx_brA_BFC1BE80 = cpu->gpr[0]; uint32_t psx_brB_BFC1BE80 = cpu->gpr[0]; @@ -68982,6 +84735,9 @@ label_BFC1BE80: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BE84u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1BE80) goto label_BFC1BED4; label_BFC1BE88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BE88: 0C00D130 jal 0xB00344C0 */ /* 0xBFC1BE8C: 00000000 nop */ @@ -68989,6 +84745,9 @@ label_BFC1BE88: cpu->gpr[31] = 0x80033E90u; psx_dispatch(cpu, 0x800344C0u); label_BFC1BE90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BE90: 10000010 beq $zero, $zero, 0xBFC1BED4 */ uint32_t psx_brA_BFC1BE90 = cpu->gpr[0]; uint32_t psx_brB_BFC1BE90 = cpu->gpr[0]; @@ -68997,6 +84756,9 @@ label_BFC1BE90: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BE94u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1BE90) goto label_BFC1BED4; label_BFC1BE98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BE98: 24040001 addiu $a0, $zero, 1 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -69006,6 +84768,9 @@ label_BFC1BE98: cpu->gpr[31] = 0x80033EA4u; psx_dispatch(cpu, 0x8003610Cu); label_BFC1BEA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BEA4: 8FA50024 lw $a1, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BEA4u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -69015,6 +84780,9 @@ label_BFC1BEA4: cpu->gpr[31] = 0x80033EB0u; psx_dispatch(cpu, 0x800326ECu); label_BFC1BEB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BEB0: 0C00D16E jal 0xB00345B8 */ /* 0xBFC1BEB4: 00000000 nop */ @@ -69022,6 +84790,9 @@ label_BFC1BEB0: cpu->gpr[31] = 0x80033EB8u; psx_dispatch(cpu, 0x800345B8u); label_BFC1BEB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BEB8: 10000006 beq $zero, $zero, 0xBFC1BED4 */ uint32_t psx_brA_BFC1BEB8 = cpu->gpr[0]; uint32_t psx_brB_BFC1BEB8 = cpu->gpr[0]; @@ -69030,6 +84801,9 @@ label_BFC1BEB8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BEBCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1BEB8) goto label_BFC1BED4; label_BFC1BEC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BEC0: 0C00D1E3 jal 0xB003478C */ /* 0xBFC1BEC4: 00000000 nop */ @@ -69037,6 +84811,9 @@ label_BFC1BEC0: cpu->gpr[31] = 0x80033EC8u; psx_dispatch(cpu, 0x8003478Cu); label_BFC1BEC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BEC8: 10000002 beq $zero, $zero, 0xBFC1BED4 */ uint32_t psx_brA_BFC1BEC8 = cpu->gpr[0]; uint32_t psx_brB_BFC1BEC8 = cpu->gpr[0]; @@ -69045,10 +84822,16 @@ label_BFC1BEC8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BECCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1BEC8) goto label_BFC1BED4; label_BFC1BED0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BED0: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BED0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC1BED4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BED4: 27BD0028 addiu $sp, $sp, 40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (40)); @@ -69069,6 +84852,9 @@ void func_1FC1BEE0(CPUState* cpu) { } } label_BFC1BEE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BEE0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -69083,6 +84869,9 @@ label_BFC1BEE0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BEF0u); return; } g_debug_last_store_pc = 0xBFC1BEF0u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC1BEEC) goto label_BFC1BF08; label_BFC1BEF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BEF4: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -69097,6 +84886,9 @@ label_BFC1BEF4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BF04u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1BF00) goto label_BFC1BF38; label_BFC1BF08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BF08: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -69111,6 +84903,9 @@ label_BFC1BF08: /* nop */ if (psx_taken_BFC1BF14) goto label_BFC1BF2C; label_BFC1BF1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BF1C: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -69121,6 +84916,9 @@ label_BFC1BF1C: /* 0xBFC1BF28: AC399F64 sw $t9, -24732($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24732)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BF28u); return; } g_debug_last_store_pc = 0xBFC1BF28u; cpu->write_word(psx_addr, cpu->gpr[25]); } label_BFC1BF2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BF2C: 0C00CFD1 jal 0xB0033F44 */ /* 0xBFC1BF30: 00002021 addu $a0, $zero, $zero */ @@ -69128,10 +84926,16 @@ label_BFC1BF2C: cpu->gpr[31] = 0x80033F34u; psx_dispatch(cpu, 0x80033F44u); label_BFC1BF34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BF34: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BF34u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC1BF38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BF38: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -69164,6 +84968,9 @@ void func_1FC1BF44(CPUState* cpu) { } } label_BFC1BF44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BF44: 27BDFFD0 addiu $sp, $sp, -48 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-48)); @@ -69183,6 +84990,9 @@ label_BFC1BF44: cpu->gpr[31] = 0x80033F64u; psx_dispatch(cpu, 0x800326ECu); label_BFC1BF64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BF64: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -69200,6 +85010,9 @@ label_BFC1BF64: cpu->gpr[31] = 0x80033F80u; psx_dispatch(cpu, 0x80034D40u); label_BFC1BF80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BF80: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -69211,6 +85024,9 @@ label_BFC1BF80: cpu->gpr[31] = 0x80033F90u; psx_dispatch(cpu, 0x8003610Cu); label_BFC1BF90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BF90: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -69243,6 +85059,9 @@ label_BFC1BF90: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC1BFC0) goto label_BFC1C018; label_BFC1BFC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BFC8: AFB10020 sw $s1, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BFC8u); return; } g_debug_last_store_pc = 0xBFC1BFC8u; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -69251,6 +85070,9 @@ label_BFC1BFC8: /* 0xBFC1BFD0: 2631D0F4 addiu $s1, $s1, -12044 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (-12044)); label_BFC1BFD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BFD4: AE200000 sw $zero, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1BFD4u); return; } g_debug_last_store_pc = 0xBFC1BFD4u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -69262,6 +85084,9 @@ label_BFC1BFD4: cpu->gpr[31] = 0x80033FE4u; psx_dispatch(cpu, 0x800336ECu); label_BFC1BFE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BFE4: 0C011997 jal 0xB004665C */ /* 0xBFC1BFE8: 02002021 addu $a0, $s0, $zero */ @@ -69269,6 +85094,9 @@ label_BFC1BFE4: cpu->gpr[31] = 0x80033FECu; psx_dispatch(cpu, 0x8004665Cu); label_BFC1BFEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BFEC: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -69278,6 +85106,9 @@ label_BFC1BFEC: cpu->gpr[31] = 0x80033FF8u; psx_dispatch(cpu, 0x80044A50u); label_BFC1BFF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1BFF8: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -69294,12 +85125,18 @@ label_BFC1BFF8: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (4)); if (psx_taken_BFC1C008) goto label_BFC1BFD4; label_BFC1C010: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C010: 8FB10020 lw $s1, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C010u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } /* 0xBFC1C014: 00000000 nop */ /* nop */ label_BFC1C018: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C018: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -69316,6 +85153,9 @@ label_BFC1C018: cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC1C028) goto label_BFC1C09C; label_BFC1C030: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C030: AFB10020 sw $s1, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C030u); return; } g_debug_last_store_pc = 0xBFC1C030u; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -69324,6 +85164,9 @@ label_BFC1C030: /* 0xBFC1C038: 02498821 addu $s1, $s2, $t1 */ cpu->gpr[17] = cpu->gpr[18] + cpu->gpr[9]; label_BFC1C03C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C03C: 2A010015 slti $at, $s0, 21 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (21) ? 1 : 0); @@ -69334,6 +85177,9 @@ label_BFC1C03C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C044u); return; } g_debug_last_store_pc = 0xBFC1C044u; cpu->write_word(psx_addr, cpu->gpr[16]); } if (psx_taken_BFC1C040) goto label_BFC1C068; label_BFC1C048: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C048: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -69343,6 +85189,9 @@ label_BFC1C048: cpu->gpr[31] = 0x80034054u; psx_dispatch(cpu, 0x800336ECu); label_BFC1C054: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C054: 0C011997 jal 0xB004665C */ /* 0xBFC1C058: 02002021 addu $a0, $s0, $zero */ @@ -69350,6 +85199,9 @@ label_BFC1C054: cpu->gpr[31] = 0x8003405Cu; psx_dispatch(cpu, 0x8004665Cu); label_BFC1C05C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C05C: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -69359,6 +85211,9 @@ label_BFC1C05C: cpu->gpr[31] = 0x80034068u; psx_dispatch(cpu, 0x80044A50u); label_BFC1C068: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C068: 0C011997 jal 0xB004665C */ /* 0xBFC1C06C: 24040016 addiu $a0, $zero, 22 */ @@ -69366,6 +85221,9 @@ label_BFC1C068: cpu->gpr[31] = 0x80034070u; psx_dispatch(cpu, 0x8004665Cu); label_BFC1C070: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C070: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -69375,6 +85233,9 @@ label_BFC1C070: cpu->gpr[31] = 0x8003407Cu; psx_dispatch(cpu, 0x80044A50u); label_BFC1C07C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C07C: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -69391,12 +85252,18 @@ label_BFC1C07C: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (4)); if (psx_taken_BFC1C08C) goto label_BFC1C03C; label_BFC1C094: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C094: 8FB10020 lw $s1, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C094u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } /* 0xBFC1C098: 00000000 nop */ /* nop */ label_BFC1C09C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C09C: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -69411,6 +85278,9 @@ label_BFC1C09C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); if (psx_taken_BFC1C0A8) goto label_BFC1C0B8; label_BFC1C0B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C0B0: 14410016 bne $v0, $at, 0xBFC1C10C */ uint32_t psx_brA_BFC1C0B0 = cpu->gpr[2]; uint32_t psx_brB_BFC1C0B0 = cpu->gpr[1]; @@ -69419,6 +85289,9 @@ label_BFC1C0B0: /* nop */ if (psx_taken_BFC1C0B0) goto label_BFC1C10C; label_BFC1C0B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C0B8: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -69435,6 +85308,9 @@ label_BFC1C0B8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (21) ? 1 : 0); if (psx_taken_BFC1C0C8) goto label_BFC1C114; label_BFC1C0D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C0D0: 10200010 beq $at, $zero, 0xBFC1C114 */ uint32_t psx_brA_BFC1C0D0 = cpu->gpr[1]; uint32_t psx_brB_BFC1C0D0 = cpu->gpr[0]; @@ -69443,6 +85319,9 @@ label_BFC1C0D0: /* nop */ if (psx_taken_BFC1C0D0) goto label_BFC1C114; label_BFC1C0D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C0D8: 00106080 sll $t4, $s0, 2 */ cpu->gpr[12] = cpu->gpr[16] << 2u; @@ -69456,6 +85335,9 @@ label_BFC1C0D8: cpu->gpr[31] = 0x800340ECu; psx_dispatch(cpu, 0x800336ECu); label_BFC1C0EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C0EC: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -69472,6 +85354,9 @@ label_BFC1C0EC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (21) ? 1 : 0); if (psx_taken_BFC1C0FC) goto label_BFC1C0D0; label_BFC1C104: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C104: 10000003 beq $zero, $zero, 0xBFC1C114 */ uint32_t psx_brA_BFC1C104 = cpu->gpr[0]; uint32_t psx_brB_BFC1C104 = cpu->gpr[0]; @@ -69480,12 +85365,18 @@ label_BFC1C104: /* nop */ if (psx_taken_BFC1C104) goto label_BFC1C114; label_BFC1C10C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C10C: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; /* 0xBFC1C110: AC209E5C sw $zero, -24996($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24996)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C110u); return; } g_debug_last_store_pc = 0xBFC1C110u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC1C114: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C114: 0C00CAA4 jal 0xB0032A90 */ /* 0xBFC1C118: 00000000 nop */ @@ -69493,6 +85384,9 @@ label_BFC1C114: cpu->gpr[31] = 0x8003411Cu; psx_dispatch(cpu, 0x80032A90u); label_BFC1C11C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C11C: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C11Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -69517,6 +85411,9 @@ void func_1FC1C130(CPUState* cpu) { } } label_BFC1C130: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C130: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -69539,12 +85436,18 @@ label_BFC1C130: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24720)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C150u); return; } g_debug_last_store_pc = 0xBFC1C150u; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC1C14C) goto label_BFC1C15C; label_BFC1C154: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C154: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; /* 0xBFC1C158: AC209F68 sw $zero, -24728($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24728)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C158u); return; } g_debug_last_store_pc = 0xBFC1C158u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC1C15C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C15C: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -69559,10 +85462,16 @@ label_BFC1C15C: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1C168) goto label_BFC1C174; label_BFC1C170: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C170: AC209F64 sw $zero, -24732($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24732)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C170u); return; } g_debug_last_store_pc = 0xBFC1C170u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC1C174: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C174: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -69577,10 +85486,16 @@ label_BFC1C174: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1C180) goto label_BFC1C18C; label_BFC1C188: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C188: AC209F78 sw $zero, -24712($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24712)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C188u); return; } g_debug_last_store_pc = 0xBFC1C188u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC1C18C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C18C: 0C00D069 jal 0xB00341A4 */ /* 0xBFC1C190: 00002021 addu $a0, $zero, $zero */ @@ -69588,6 +85503,9 @@ label_BFC1C18C: cpu->gpr[31] = 0x80034194u; psx_dispatch(cpu, 0x800341A4u); label_BFC1C194: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C194: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C194u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -69619,6 +85537,9 @@ void func_1FC1C1A4(CPUState* cpu) { } } label_BFC1C1A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C1A4: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -69641,6 +85562,9 @@ label_BFC1C1A4: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC1C1C0) goto label_BFC1C218; label_BFC1C1C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C1C8: AFB10024 sw $s1, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C1C8u); return; } g_debug_last_store_pc = 0xBFC1C1C8u; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -69649,6 +85573,9 @@ label_BFC1C1C8: /* 0xBFC1C1D0: 2631D0F4 addiu $s1, $s1, -12044 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (-12044)); label_BFC1C1D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C1D4: AE200000 sw $zero, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C1D4u); return; } g_debug_last_store_pc = 0xBFC1C1D4u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -69660,6 +85587,9 @@ label_BFC1C1D4: cpu->gpr[31] = 0x800341E4u; psx_dispatch(cpu, 0x800336ECu); label_BFC1C1E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C1E4: 0C011997 jal 0xB004665C */ /* 0xBFC1C1E8: 02002021 addu $a0, $s0, $zero */ @@ -69667,6 +85597,9 @@ label_BFC1C1E4: cpu->gpr[31] = 0x800341ECu; psx_dispatch(cpu, 0x8004665Cu); label_BFC1C1EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C1EC: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -69676,6 +85609,9 @@ label_BFC1C1EC: cpu->gpr[31] = 0x800341F8u; psx_dispatch(cpu, 0x80044A50u); label_BFC1C1F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C1F8: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -69692,12 +85628,18 @@ label_BFC1C1F8: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (4)); if (psx_taken_BFC1C208) goto label_BFC1C1D4; label_BFC1C210: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C210: 8FB10024 lw $s1, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C210u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } /* 0xBFC1C214: 00000000 nop */ /* nop */ label_BFC1C218: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C218: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -69714,6 +85656,9 @@ label_BFC1C218: cpu->gpr[16] = cpu->gpr[10] + cpu->gpr[0]; if (psx_taken_BFC1C228) goto label_BFC1C294; label_BFC1C230: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C230: 3C0F800F lui $t7, 0x800F */ cpu->gpr[15] = 0x800F0000u; @@ -69726,6 +85671,9 @@ label_BFC1C230: /* 0xBFC1C240: 01CF8821 addu $s1, $t6, $t7 */ cpu->gpr[17] = cpu->gpr[14] + cpu->gpr[15]; label_BFC1C244: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C244: 2A010015 slti $at, $s0, 21 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (21) ? 1 : 0); @@ -69736,6 +85684,9 @@ label_BFC1C244: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C24Cu); return; } g_debug_last_store_pc = 0xBFC1C24Cu; cpu->write_word(psx_addr, cpu->gpr[16]); } if (psx_taken_BFC1C248) goto label_BFC1C27C; label_BFC1C250: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C250: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -69745,6 +85696,9 @@ label_BFC1C250: cpu->gpr[31] = 0x8003425Cu; psx_dispatch(cpu, 0x800336ECu); label_BFC1C25C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C25C: 0C011997 jal 0xB004665C */ /* 0xBFC1C260: 02002021 addu $a0, $s0, $zero */ @@ -69752,6 +85706,9 @@ label_BFC1C25C: cpu->gpr[31] = 0x80034264u; psx_dispatch(cpu, 0x8004665Cu); label_BFC1C264: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C264: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -69761,6 +85718,9 @@ label_BFC1C264: cpu->gpr[31] = 0x80034270u; psx_dispatch(cpu, 0x80044A50u); label_BFC1C270: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C270: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -69769,6 +85729,9 @@ label_BFC1C270: /* 0xBFC1C278: 00000000 nop */ /* nop */ label_BFC1C27C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C27C: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -69781,12 +85744,18 @@ label_BFC1C27C: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (4)); if (psx_taken_BFC1C284) goto label_BFC1C244; label_BFC1C28C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C28C: 8FB10024 lw $s1, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C28Cu); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } /* 0xBFC1C290: 00000000 nop */ /* nop */ label_BFC1C294: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C294: 0C011997 jal 0xB004665C */ /* 0xBFC1C298: 24040016 addiu $a0, $zero, 22 */ @@ -69794,6 +85763,9 @@ label_BFC1C294: cpu->gpr[31] = 0x8003429Cu; psx_dispatch(cpu, 0x8004665Cu); label_BFC1C29C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C29C: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -69803,6 +85775,9 @@ label_BFC1C29C: cpu->gpr[31] = 0x800342A8u; psx_dispatch(cpu, 0x80044A50u); label_BFC1C2A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C2A8: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -69825,10 +85800,16 @@ label_BFC1C2A8: cpu->gpr[10] = cpu->gpr[9] + cpu->gpr[0]; if (psx_taken_BFC1C2C4) goto label_BFC1C30C; label_BFC1C2CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C2CC: 27A30378 addiu $v1, $sp, 888 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[29] + (888)); label_BFC1C2D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C2D0: 0C016A3C jal 0xB005A8F0 */ /* 0xBFC1C2D4: AFA30030 sw $v1, 48($sp) */ @@ -69836,6 +85817,9 @@ label_BFC1C2D0: cpu->gpr[31] = 0x800342D8u; psx_dispatch(cpu, 0x8005A8F0u); label_BFC1C2D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C2D8: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -69864,10 +85848,16 @@ label_BFC1C2D8: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_taken_BFC1C300) goto label_BFC1C2D0; label_BFC1C308: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C308: 01205021 addu $t2, $t1, $zero */ cpu->gpr[10] = cpu->gpr[9] + cpu->gpr[0]; label_BFC1C30C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C30C: 01405821 addu $t3, $t2, $zero */ cpu->gpr[11] = cpu->gpr[10] + cpu->gpr[0]; @@ -69880,6 +85870,9 @@ label_BFC1C30C: cpu->gpr[2] = cpu->gpr[10] + cpu->gpr[0]; if (psx_taken_BFC1C314) goto label_BFC1C3B0; label_BFC1C31C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C31C: 27B90378 addiu $t9, $sp, 888 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[29] + (888)); @@ -69896,6 +85889,9 @@ label_BFC1C31C: /* 0xBFC1C334: 03192821 addu $a1, $t8, $t9 */ cpu->gpr[5] = cpu->gpr[24] + cpu->gpr[25]; label_BFC1C338: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C338: 2C810002 sltiu $at, $a0, 2 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[4] < 0x00000002u ? 1 : 0); @@ -69908,10 +85904,16 @@ label_BFC1C338: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC1C340) goto label_BFC1C380; label_BFC1C348: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C348: 27A3037C addiu $v1, $sp, 892 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[29] + (892)); label_BFC1C34C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C34C: 00027080 sll $t6, $v0, 2 */ cpu->gpr[14] = cpu->gpr[2] << 2u; @@ -69932,10 +85934,16 @@ label_BFC1C34C: /* nop */ if (psx_taken_BFC1C364) goto label_BFC1C370; label_BFC1C36C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C36C: 02001021 addu $v0, $s0, $zero */ cpu->gpr[2] = cpu->gpr[16] + cpu->gpr[0]; label_BFC1C370: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C370: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -69948,6 +85956,9 @@ label_BFC1C370: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_taken_BFC1C378) goto label_BFC1C34C; label_BFC1C380: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C380: 00026080 sll $t4, $v0, 2 */ cpu->gpr[12] = cpu->gpr[2] << 2u; @@ -69976,6 +85987,9 @@ label_BFC1C380: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[12] + (476)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C3ACu); return; } g_debug_last_store_pc = 0xBFC1C3ACu; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC1C3A8) goto label_BFC1C338; label_BFC1C3B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C3B0: 8FB90378 lw $t9, 888($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (888)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C3B0u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -69988,6 +86002,9 @@ label_BFC1C3B0: /* nop */ if (psx_taken_BFC1C3B8) goto label_BFC1C448; label_BFC1C3C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C3C0: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -70002,16 +86019,25 @@ label_BFC1C3C0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); if (psx_taken_BFC1C3CC) goto label_BFC1C3D8; label_BFC1C3D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C3D4: 1441001C bne $v0, $at, 0xBFC1C448 */ uint32_t psx_brA_BFC1C3D4 = cpu->gpr[2]; uint32_t psx_brB_BFC1C3D4 = cpu->gpr[1]; int psx_taken_BFC1C3D4 = (psx_brA_BFC1C3D4 != psx_brB_BFC1C3D4); label_BFC1C3D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C3D8: 010B082B sltu $at, $t0, $t3 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[8] < cpu->gpr[11] ? 1 : 0); if (psx_taken_BFC1C3D4) goto label_BFC1C448; label_BFC1C3DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C3DC: 14200017 bne $at, $zero, 0xBFC1C43C */ uint32_t psx_brA_BFC1C3DC = cpu->gpr[1]; uint32_t psx_brB_BFC1C3DC = cpu->gpr[0]; @@ -70020,6 +86046,9 @@ label_BFC1C3DC: cpu->gpr[16] = cpu->gpr[10] + cpu->gpr[0]; if (psx_taken_BFC1C3DC) goto label_BFC1C43C; label_BFC1C3E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C3E4: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -70032,6 +86061,9 @@ label_BFC1C3E4: /* 0xBFC1C3F4: 01CD1821 addu $v1, $t6, $t5 */ cpu->gpr[3] = cpu->gpr[14] + cpu->gpr[13]; label_BFC1C3F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C3F8: 8C6FFCD4 lw $t7, -812($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (-812)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C3F8u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -70044,6 +86076,9 @@ label_BFC1C3F8: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); if (psx_taken_BFC1C400) goto label_BFC1C42C; label_BFC1C408: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C408: 0009C080 sll $t8, $t1, 2 */ cpu->gpr[24] = cpu->gpr[9] << 2u; @@ -70064,10 +86099,16 @@ label_BFC1C408: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (-812)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C424u); return; } g_debug_last_store_pc = 0xBFC1C424u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC1C420) goto label_BFC1C43C; label_BFC1C428: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C428: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); label_BFC1C42C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C42C: 0110082B sltu $at, $t0, $s0 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[8] < cpu->gpr[16] ? 1 : 0); @@ -70078,10 +86119,16 @@ label_BFC1C42C: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_taken_BFC1C430) goto label_BFC1C3F8; label_BFC1C438: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C438: 01408021 addu $s0, $t2, $zero */ cpu->gpr[16] = cpu->gpr[10] + cpu->gpr[0]; label_BFC1C43C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C43C: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -70092,6 +86139,9 @@ label_BFC1C43C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24996)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C444u); return; } g_debug_last_store_pc = 0xBFC1C444u; cpu->write_word(psx_addr, cpu->gpr[10]); } if (psx_taken_BFC1C440) goto label_BFC1C454; label_BFC1C448: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C448: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -70100,6 +86150,9 @@ label_BFC1C448: /* 0xBFC1C450: 01408021 addu $s0, $t2, $zero */ cpu->gpr[16] = cpu->gpr[10] + cpu->gpr[0]; label_BFC1C454: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C454: 010B082B sltu $at, $t0, $t3 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[8] < cpu->gpr[11] ? 1 : 0); @@ -70110,6 +86163,9 @@ label_BFC1C454: /* nop */ if (psx_taken_BFC1C458) goto label_BFC1C4A8; label_BFC1C460: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C460: 3C0D800F lui $t5, 0x800F */ cpu->gpr[13] = 0x800F0000u; @@ -70132,6 +86188,9 @@ label_BFC1C460: /* 0xBFC1C484: 01CD8821 addu $s1, $t6, $t5 */ cpu->gpr[17] = cpu->gpr[14] + cpu->gpr[13]; label_BFC1C488: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C488: 8C79FCD4 lw $t9, -812($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (-812)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C488u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -70148,12 +86207,18 @@ label_BFC1C488: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C49Cu); return; } g_debug_last_store_pc = 0xBFC1C49Cu; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC1C498) goto label_BFC1C488; label_BFC1C4A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C4A0: 8FB10024 lw $s1, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C4A0u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } /* 0xBFC1C4A4: 00000000 nop */ /* nop */ label_BFC1C4A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C4A8: 0C00CAA4 jal 0xB0032A90 */ /* 0xBFC1C4AC: 00000000 nop */ @@ -70161,6 +86226,9 @@ label_BFC1C4A8: cpu->gpr[31] = 0x800344B0u; psx_dispatch(cpu, 0x80032A90u); label_BFC1C4B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C4B0: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C4B0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -70185,6 +86253,9 @@ void func_1FC1C4C0(CPUState* cpu) { } } label_BFC1C4C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C4C0: 3C038006 lui $v1, 0x8006 */ cpu->gpr[3] = 0x80060000u; @@ -70201,6 +86272,9 @@ label_BFC1C4C0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C4D4u); return; } g_debug_last_store_pc = 0xBFC1C4D4u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC1C4D0) goto label_BFC1C520; label_BFC1C4D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C4D8: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -70215,6 +86289,9 @@ label_BFC1C4D8: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1C4E4) goto label_BFC1C508; label_BFC1C4EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C4EC: AC209E50 sw $zero, -25008($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25008)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C4ECu); return; } g_debug_last_store_pc = 0xBFC1C4ECu; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -70228,6 +86305,9 @@ label_BFC1C4EC: cpu->gpr[31] = 0x80034500u; psx_dispatch(cpu, 0x80032A90u); label_BFC1C500: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C500: 1000002A beq $zero, $zero, 0xBFC1C5AC */ uint32_t psx_brA_BFC1C500 = cpu->gpr[0]; uint32_t psx_brB_BFC1C500 = cpu->gpr[0]; @@ -70236,6 +86316,9 @@ label_BFC1C500: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C504u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1C500) goto label_BFC1C5AC; label_BFC1C508: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C508: 24020003 addiu $v0, $zero, 3 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); @@ -70247,6 +86330,9 @@ label_BFC1C508: cpu->gpr[31] = 0x80034518u; psx_dispatch(cpu, 0x80032A90u); label_BFC1C518: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C518: 10000024 beq $zero, $zero, 0xBFC1C5AC */ uint32_t psx_brA_BFC1C518 = cpu->gpr[0]; uint32_t psx_brB_BFC1C518 = cpu->gpr[0]; @@ -70255,6 +86341,9 @@ label_BFC1C518: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C51Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1C518) goto label_BFC1C5AC; label_BFC1C520: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C520: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -70271,6 +86360,9 @@ label_BFC1C520: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC1C530) goto label_BFC1C588; label_BFC1C538: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C538: 10410007 beq $v0, $at, 0xBFC1C558 */ uint32_t psx_brA_BFC1C538 = cpu->gpr[2]; uint32_t psx_brB_BFC1C538 = cpu->gpr[1]; @@ -70279,6 +86371,9 @@ label_BFC1C538: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1C538) goto label_BFC1C558; label_BFC1C540: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C540: AC229F64 sw $v0, -24732($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24732)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C540u); return; } g_debug_last_store_pc = 0xBFC1C540u; cpu->write_word(psx_addr, cpu->gpr[2]); } @@ -70291,6 +86386,9 @@ label_BFC1C540: /* nop */ if (psx_taken_BFC1C548) goto label_BFC1C564; label_BFC1C550: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C550: 1000000E beq $zero, $zero, 0xBFC1C58C */ uint32_t psx_brA_BFC1C550 = cpu->gpr[0]; uint32_t psx_brB_BFC1C550 = cpu->gpr[0]; @@ -70299,6 +86397,9 @@ label_BFC1C550: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC1C550) goto label_BFC1C58C; label_BFC1C558: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C558: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -70309,6 +86410,9 @@ label_BFC1C558: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24732)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C560u); return; } g_debug_last_store_pc = 0xBFC1C560u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC1C55C) goto label_BFC1C594; label_BFC1C564: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C564: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -70323,6 +86427,9 @@ label_BFC1C564: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); if (psx_taken_BFC1C570) goto label_BFC1C598; label_BFC1C578: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C578: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; @@ -70335,20 +86442,32 @@ label_BFC1C578: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24732)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C584u); return; } g_debug_last_store_pc = 0xBFC1C584u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC1C580) goto label_BFC1C594; label_BFC1C588: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C588: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC1C58C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C58C: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; /* 0xBFC1C590: AC229F64 sw $v0, -24732($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24732)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C590u); return; } g_debug_last_store_pc = 0xBFC1C590u; cpu->write_word(psx_addr, cpu->gpr[2]); } label_BFC1C594: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C594: 24010034 addiu $at, $zero, 52 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); label_BFC1C598: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C598: 14610004 bne $v1, $at, 0xBFC1C5AC */ uint32_t psx_brA_BFC1C598 = cpu->gpr[3]; uint32_t psx_brB_BFC1C598 = cpu->gpr[1]; @@ -70357,6 +86476,9 @@ label_BFC1C598: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C59Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1C598) goto label_BFC1C5AC; label_BFC1C5A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C5A0: 0C00CAA4 jal 0xB0032A90 */ /* 0xBFC1C5A4: 00000000 nop */ @@ -70364,10 +86486,16 @@ label_BFC1C5A0: cpu->gpr[31] = 0x800345A8u; psx_dispatch(cpu, 0x80032A90u); label_BFC1C5A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C5A8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C5A8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC1C5AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C5AC: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -70392,6 +86520,9 @@ void func_1FC1C5B8(CPUState* cpu) { } } label_BFC1C5B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C5B8: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -70412,12 +86543,18 @@ label_BFC1C5B8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C5D4u); return; } g_debug_last_store_pc = 0xBFC1C5D4u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC1C5D0) goto label_BFC1C5E0; label_BFC1C5D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C5D8: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; /* 0xBFC1C5DC: AC209F68 sw $zero, -24728($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24728)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C5DCu); return; } g_debug_last_store_pc = 0xBFC1C5DCu; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC1C5E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C5E0: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -70432,6 +86569,9 @@ label_BFC1C5E0: /* nop */ if (psx_taken_BFC1C5EC) goto label_BFC1C604; label_BFC1C5F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C5F4: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -70442,6 +86582,9 @@ label_BFC1C5F4: /* 0xBFC1C600: AC389F64 sw $t8, -24732($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24732)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C600u); return; } g_debug_last_store_pc = 0xBFC1C600u; cpu->write_word(psx_addr, cpu->gpr[24]); } label_BFC1C604: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C604: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -70456,6 +86599,9 @@ label_BFC1C604: /* nop */ if (psx_taken_BFC1C610) goto label_BFC1C774; label_BFC1C618: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C618: 24080001 addiu $t0, $zero, 1 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -70475,6 +86621,9 @@ label_BFC1C618: cpu->gpr[31] = 0x80034638u; psx_dispatch(cpu, 0x80034D40u); label_BFC1C638: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C638: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -70489,6 +86638,9 @@ label_BFC1C638: cpu->gpr[10] = cpu->gpr[3] << 2u; if (psx_taken_BFC1C644) goto label_BFC1C660; label_BFC1C64C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C64C: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -70501,10 +86653,16 @@ label_BFC1C64C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C658u); return; } g_debug_last_store_pc = 0xBFC1C658u; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC1C654) goto label_BFC1C674; label_BFC1C65C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C65C: 00035080 sll $t2, $v1, 2 */ cpu->gpr[10] = cpu->gpr[3] << 2u; label_BFC1C660: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C660: 3C0B800F lui $t3, 0x800F */ cpu->gpr[11] = 0x800F0000u; @@ -70517,6 +86675,9 @@ label_BFC1C660: /* 0xBFC1C670: AFAB0028 sw $t3, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C670u); return; } g_debug_last_store_pc = 0xBFC1C670u; cpu->write_word(psx_addr, cpu->gpr[11]); } label_BFC1C674: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C674: 24030001 addiu $v1, $zero, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -70535,6 +86696,9 @@ label_BFC1C674: /* 0xBFC1C690: 00008021 addu $s0, $zero, $zero */ cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; label_BFC1C694: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C694: AC400000 sw $zero, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C694u); return; } g_debug_last_store_pc = 0xBFC1C694u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -70551,6 +86715,9 @@ label_BFC1C694: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C6A8u); return; } g_debug_last_store_pc = 0xBFC1C6A8u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC1C6A4) goto label_BFC1C694; label_BFC1C6AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C6AC: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -70565,6 +86732,9 @@ label_BFC1C6AC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); if (psx_taken_BFC1C6B8) goto label_BFC1C6C8; label_BFC1C6C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C6C0: 1441002B bne $v0, $at, 0xBFC1C770 */ uint32_t psx_brA_BFC1C6C0 = cpu->gpr[2]; uint32_t psx_brB_BFC1C6C0 = cpu->gpr[1]; @@ -70573,6 +86743,9 @@ label_BFC1C6C0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C6C4u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } if (psx_taken_BFC1C6C0) goto label_BFC1C770; label_BFC1C6C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C6C8: 8FA40028 lw $a0, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C6C8u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -70582,6 +86755,9 @@ label_BFC1C6C8: cpu->gpr[31] = 0x800346D4u; psx_dispatch(cpu, 0x80034BACu); label_BFC1C6D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C6D4: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -70596,6 +86772,9 @@ label_BFC1C6D4: /* nop */ if (psx_taken_BFC1C6E0) goto label_BFC1C744; label_BFC1C6E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C6E8: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -70616,10 +86795,16 @@ label_BFC1C6E8: cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC1C700) goto label_BFC1C738; label_BFC1C708: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C708: 2A010015 slti $at, $s0, 21 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (21) ? 1 : 0); label_BFC1C70C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C70C: 1020000B beq $at, $zero, 0xBFC1C73C */ uint32_t psx_brA_BFC1C70C = cpu->gpr[1]; uint32_t psx_brB_BFC1C70C = cpu->gpr[0]; @@ -70628,6 +86813,9 @@ label_BFC1C70C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C710u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } if (psx_taken_BFC1C70C) goto label_BFC1C73C; label_BFC1C714: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C714: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -70637,6 +86825,9 @@ label_BFC1C714: cpu->gpr[31] = 0x80034720u; psx_dispatch(cpu, 0x800336ECu); label_BFC1C720: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C720: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -70653,10 +86844,16 @@ label_BFC1C720: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (21) ? 1 : 0); if (psx_taken_BFC1C730) goto label_BFC1C70C; label_BFC1C738: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C738: 8FA40028 lw $a0, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C738u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } label_BFC1C73C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C73C: 0C00CDBB jal 0xB00336EC */ /* 0xBFC1C740: 24050028 addiu $a1, $zero, 40 */ @@ -70664,6 +86861,9 @@ label_BFC1C73C: cpu->gpr[31] = 0x80034744u; psx_dispatch(cpu, 0x800336ECu); label_BFC1C744: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C744: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -70688,10 +86888,16 @@ label_BFC1C744: /* 0xBFC1C76C: 8FB00020 lw $s0, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C76Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } label_BFC1C770: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C770: 00000000 nop */ /* nop */ label_BFC1C774: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C774: 0C00CAA4 jal 0xB0032A90 */ /* 0xBFC1C778: 00000000 nop */ @@ -70699,6 +86905,9 @@ label_BFC1C774: cpu->gpr[31] = 0x8003477Cu; psx_dispatch(cpu, 0x80032A90u); label_BFC1C77C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C77C: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C77Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -70731,6 +86940,9 @@ void func_1FC1C78C(CPUState* cpu) { } } label_BFC1C78C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C78C: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -70747,6 +86959,9 @@ label_BFC1C78C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C7A0u); return; } g_debug_last_store_pc = 0xBFC1C7A0u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC1C79C) goto label_BFC1C890; label_BFC1C7A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C7A4: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -70757,6 +86972,9 @@ label_BFC1C7A4: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1C7A8) goto label_BFC1C7C8; label_BFC1C7B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C7B0: AC229F68 sw $v0, -24728($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24728)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C7B0u); return; } g_debug_last_store_pc = 0xBFC1C7B0u; cpu->write_word(psx_addr, cpu->gpr[2]); } @@ -70769,6 +86987,9 @@ label_BFC1C7B0: /* nop */ if (psx_taken_BFC1C7B8) goto label_BFC1C840; label_BFC1C7C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C7C0: 10000033 beq $zero, $zero, 0xBFC1C890 */ uint32_t psx_brA_BFC1C7C0 = cpu->gpr[0]; uint32_t psx_brB_BFC1C7C0 = cpu->gpr[0]; @@ -70777,6 +86998,9 @@ label_BFC1C7C0: /* nop */ if (psx_taken_BFC1C7C0) goto label_BFC1C890; label_BFC1C7C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C7C8: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -70791,6 +87015,9 @@ label_BFC1C7C8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24728)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C7D8u); return; } g_debug_last_store_pc = 0xBFC1C7D8u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC1C7D4) goto label_BFC1C7F0; label_BFC1C7DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C7DC: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -70805,6 +87032,9 @@ label_BFC1C7DC: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); if (psx_taken_BFC1C7E8) goto label_BFC1C81C; label_BFC1C7F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C7F0: 24040034 addiu $a0, $zero, 52 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); @@ -70814,6 +87044,9 @@ label_BFC1C7F0: cpu->gpr[31] = 0x800347FCu; psx_dispatch(cpu, 0x800326ECu); label_BFC1C7FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C7FC: 24040037 addiu $a0, $zero, 55 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (55)); @@ -70823,6 +87056,9 @@ label_BFC1C7FC: cpu->gpr[31] = 0x80034808u; psx_dispatch(cpu, 0x800326ECu); label_BFC1C808: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C808: 24020002 addiu $v0, $zero, 2 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); @@ -70835,10 +87071,16 @@ label_BFC1C808: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24728)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C814u); return; } g_debug_last_store_pc = 0xBFC1C814u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC1C810) goto label_BFC1C830; label_BFC1C818: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C818: 24040034 addiu $a0, $zero, 52 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); label_BFC1C81C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C81C: 0C00C9BB jal 0xB00326EC */ /* 0xBFC1C820: 24050035 addiu $a1, $zero, 53 */ @@ -70846,6 +87088,9 @@ label_BFC1C81C: cpu->gpr[31] = 0x80034824u; psx_dispatch(cpu, 0x800326ECu); label_BFC1C824: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C824: 24040037 addiu $a0, $zero, 55 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (55)); @@ -70855,6 +87100,9 @@ label_BFC1C824: cpu->gpr[31] = 0x80034830u; psx_dispatch(cpu, 0x800326ECu); label_BFC1C830: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C830: 0C00D843 jal 0xB003610C */ /* 0xBFC1C834: 24040001 addiu $a0, $zero, 1 */ @@ -70862,6 +87110,9 @@ label_BFC1C830: cpu->gpr[31] = 0x80034838u; psx_dispatch(cpu, 0x8003610Cu); label_BFC1C838: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C838: 10000029 beq $zero, $zero, 0xBFC1C8E0 */ uint32_t psx_brA_BFC1C838 = cpu->gpr[0]; uint32_t psx_brB_BFC1C838 = cpu->gpr[0]; @@ -70870,6 +87121,9 @@ label_BFC1C838: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C83Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1C838) goto label_BFC1C8E0; label_BFC1C840: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C840: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -70884,6 +87138,9 @@ label_BFC1C840: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); if (psx_taken_BFC1C84C) goto label_BFC1C874; label_BFC1C854: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C854: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -70898,6 +87155,9 @@ label_BFC1C854: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); if (psx_taken_BFC1C860) goto label_BFC1C874; label_BFC1C868: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C868: 0C00D843 jal 0xB003610C */ /* 0xBFC1C86C: 00002021 addu $a0, $zero, $zero */ @@ -70905,10 +87165,16 @@ label_BFC1C868: cpu->gpr[31] = 0x80034870u; psx_dispatch(cpu, 0x8003610Cu); label_BFC1C870: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C870: 24040034 addiu $a0, $zero, 52 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); label_BFC1C874: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C874: 0C00C9BB jal 0xB00326EC */ /* 0xBFC1C878: 24050036 addiu $a1, $zero, 54 */ @@ -70916,6 +87182,9 @@ label_BFC1C874: cpu->gpr[31] = 0x8003487Cu; psx_dispatch(cpu, 0x800326ECu); label_BFC1C87C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C87C: 24040037 addiu $a0, $zero, 55 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (55)); @@ -70925,6 +87194,9 @@ label_BFC1C87C: cpu->gpr[31] = 0x80034888u; psx_dispatch(cpu, 0x800326ECu); label_BFC1C888: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C888: 10000015 beq $zero, $zero, 0xBFC1C8E0 */ uint32_t psx_brA_BFC1C888 = cpu->gpr[0]; uint32_t psx_brB_BFC1C888 = cpu->gpr[0]; @@ -70933,6 +87205,9 @@ label_BFC1C888: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C88Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1C888) goto label_BFC1C8E0; label_BFC1C890: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C890: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -70949,6 +87224,9 @@ label_BFC1C890: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24728)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C8A4u); return; } g_debug_last_store_pc = 0xBFC1C8A4u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC1C8A0) goto label_BFC1C8C4; label_BFC1C8A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C8A8: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -70963,6 +87241,9 @@ label_BFC1C8A8: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); if (psx_taken_BFC1C8B4) goto label_BFC1C8C8; label_BFC1C8BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C8BC: 0C00D843 jal 0xB003610C */ /* 0xBFC1C8C0: 00002021 addu $a0, $zero, $zero */ @@ -70970,10 +87251,16 @@ label_BFC1C8BC: cpu->gpr[31] = 0x800348C4u; psx_dispatch(cpu, 0x8003610Cu); label_BFC1C8C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C8C4: 24040034 addiu $a0, $zero, 52 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); label_BFC1C8C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C8C8: 0C00C9BB jal 0xB00326EC */ /* 0xBFC1C8CC: 24050032 addiu $a1, $zero, 50 */ @@ -70981,6 +87268,9 @@ label_BFC1C8C8: cpu->gpr[31] = 0x800348D0u; psx_dispatch(cpu, 0x800326ECu); label_BFC1C8D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C8D0: 24040037 addiu $a0, $zero, 55 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (55)); @@ -70990,10 +87280,16 @@ label_BFC1C8D0: cpu->gpr[31] = 0x800348DCu; psx_dispatch(cpu, 0x800326ECu); label_BFC1C8DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C8DC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C8DCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC1C8E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C8E0: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -71016,6 +87312,9 @@ void func_1FC1C8EC(CPUState* cpu) { } } label_BFC1C8EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C8EC: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -71031,6 +87330,9 @@ label_BFC1C8EC: cpu->gpr[31] = 0x80034904u; psx_dispatch(cpu, 0x800349B4u); label_BFC1C904: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C904: 8FAE0020 lw $t6, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C904u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -71047,6 +87349,9 @@ label_BFC1C904: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C918u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1C914) goto label_BFC1C96C; label_BFC1C91C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C91C: 24180003 addiu $t8, $zero, 3 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); @@ -71062,6 +87367,9 @@ label_BFC1C91C: cpu->gpr[31] = 0x80034934u; psx_dispatch(cpu, 0x80037CC8u); label_BFC1C934: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C934: 0C00D8F3 jal 0xB00363CC */ /* 0xBFC1C938: 00000000 nop */ @@ -71069,6 +87377,9 @@ label_BFC1C934: cpu->gpr[31] = 0x8003493Cu; psx_dispatch(cpu, 0x800363CCu); label_BFC1C93C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C93C: 24190032 addiu $t9, $zero, 50 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (50)); @@ -71095,6 +87406,9 @@ label_BFC1C93C: /* 0xBFC1C968: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C968u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC1C96C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C96C: 27BD0020 addiu $sp, $sp, 32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (32)); @@ -71107,6 +87421,9 @@ label_BFC1C96C: void func_1FC1C978(CPUState* cpu) { debug_server_log_call_entry(0x1FC1C978u); label_BFC1C978: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C978: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -71121,6 +87438,9 @@ label_BFC1C978: void func_1FC1C988(CPUState* cpu) { debug_server_log_call_entry(0x1FC1C988u); label_BFC1C988: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C988: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -71135,6 +87455,9 @@ label_BFC1C988: void func_1FC1C998(CPUState* cpu) { debug_server_log_call_entry(0x1FC1C998u); label_BFC1C998: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C998: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -71149,6 +87472,9 @@ label_BFC1C998: void func_1FC1C9A8(CPUState* cpu) { debug_server_log_call_entry(0x1FC1C9A8u); label_BFC1C9A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C9A8: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -71175,6 +87501,9 @@ void func_1FC1C9B4(CPUState* cpu) { } } label_BFC1C9B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C9B4: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -71189,6 +87518,9 @@ label_BFC1C9B4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C9C4u); return; } g_debug_last_store_pc = 0xBFC1C9C4u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC1C9C0) goto label_BFC1CAE0; label_BFC1C9C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C9C8: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -71203,6 +87535,9 @@ label_BFC1C9C8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1C9D8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1C9D4) goto label_BFC1CAE4; label_BFC1C9DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C9DC: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -71217,6 +87552,9 @@ label_BFC1C9DC: cpu->gpr[1] = 0x08000000u; if (psx_taken_BFC1C9E8) goto label_BFC1CAE0; label_BFC1C9F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1C9F0: 34210800 ori $at, $at, 0x800 */ cpu->gpr[1] = cpu->gpr[1] | 0x800u; @@ -71229,6 +87567,9 @@ label_BFC1C9F0: cpu->gpr[1] = 0x01000000u; if (psx_taken_BFC1C9F8) goto label_BFC1CA38; label_BFC1CA00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CA00: 3C088006 lui $t0, 0x8006 */ cpu->gpr[8] = 0x80060000u; @@ -71243,6 +87584,9 @@ label_BFC1CA00: /* nop */ if (psx_taken_BFC1CA0C) goto label_BFC1CA24; label_BFC1CA14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CA14: 0C00DE60 jal 0xB0037980 */ /* 0xBFC1CA18: 00000000 nop */ @@ -71250,6 +87594,9 @@ label_BFC1CA14: cpu->gpr[31] = 0x80034A1Cu; psx_dispatch(cpu, 0x80037980u); label_BFC1CA1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CA1C: 10000031 beq $zero, $zero, 0xBFC1CAE4 */ uint32_t psx_brA_BFC1CA1C = cpu->gpr[0]; uint32_t psx_brB_BFC1CA1C = cpu->gpr[0]; @@ -71258,6 +87605,9 @@ label_BFC1CA1C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CA20u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1CA1C) goto label_BFC1CAE4; label_BFC1CA24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CA24: 0C00DFEA jal 0xB0037FA8 */ /* 0xBFC1CA28: 00002021 addu $a0, $zero, $zero */ @@ -71265,6 +87615,9 @@ label_BFC1CA24: cpu->gpr[31] = 0x80034A2Cu; psx_dispatch(cpu, 0x80037FA8u); label_BFC1CA2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CA2C: 1000002D beq $zero, $zero, 0xBFC1CAE4 */ uint32_t psx_brA_BFC1CA2C = cpu->gpr[0]; uint32_t psx_brB_BFC1CA2C = cpu->gpr[0]; @@ -71273,10 +87626,16 @@ label_BFC1CA2C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CA30u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1CA2C) goto label_BFC1CAE4; label_BFC1CA34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CA34: 3C010100 lui $at, 0x100 */ cpu->gpr[1] = 0x01000000u; label_BFC1CA38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CA38: 34210100 ori $at, $at, 0x100 */ cpu->gpr[1] = cpu->gpr[1] | 0x100u; @@ -71289,6 +87648,9 @@ label_BFC1CA38: cpu->gpr[1] = 0x00080000u; if (psx_taken_BFC1CA40) goto label_BFC1CA5C; label_BFC1CA48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CA48: 0C00DF32 jal 0xB0037CC8 */ /* 0xBFC1CA4C: 00000000 nop */ @@ -71296,6 +87658,9 @@ label_BFC1CA48: cpu->gpr[31] = 0x80034A50u; psx_dispatch(cpu, 0x80037CC8u); label_BFC1CA50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CA50: 10000024 beq $zero, $zero, 0xBFC1CAE4 */ uint32_t psx_brA_BFC1CA50 = cpu->gpr[0]; uint32_t psx_brB_BFC1CA50 = cpu->gpr[0]; @@ -71304,10 +87669,16 @@ label_BFC1CA50: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CA54u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1CA50) goto label_BFC1CAE4; label_BFC1CA58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CA58: 3C010008 lui $at, 0x8 */ cpu->gpr[1] = 0x00080000u; label_BFC1CA5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CA5C: 34210008 ori $at, $at, 0x8 */ cpu->gpr[1] = cpu->gpr[1] | 0x8u; @@ -71320,6 +87691,9 @@ label_BFC1CA5C: cpu->gpr[1] = 0x00040000u; if (psx_taken_BFC1CA64) goto label_BFC1CA80; label_BFC1CA6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CA6C: 0C00E1A7 jal 0xB003869C */ /* 0xBFC1CA70: 00000000 nop */ @@ -71327,6 +87701,9 @@ label_BFC1CA6C: cpu->gpr[31] = 0x80034A74u; psx_dispatch(cpu, 0x8003869Cu); label_BFC1CA74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CA74: 1000001B beq $zero, $zero, 0xBFC1CAE4 */ uint32_t psx_brA_BFC1CA74 = cpu->gpr[0]; uint32_t psx_brB_BFC1CA74 = cpu->gpr[0]; @@ -71335,10 +87712,16 @@ label_BFC1CA74: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CA78u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1CA74) goto label_BFC1CAE4; label_BFC1CA7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CA7C: 3C010004 lui $at, 0x4 */ cpu->gpr[1] = 0x00040000u; label_BFC1CA80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CA80: 34210004 ori $at, $at, 0x4 */ cpu->gpr[1] = cpu->gpr[1] | 0x4u; @@ -71351,6 +87734,9 @@ label_BFC1CA80: cpu->gpr[1] = 0x00020000u; if (psx_taken_BFC1CA88) goto label_BFC1CAA4; label_BFC1CA90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CA90: 0C00E0CE jal 0xB0038338 */ /* 0xBFC1CA94: 00000000 nop */ @@ -71358,6 +87744,9 @@ label_BFC1CA90: cpu->gpr[31] = 0x80034A98u; psx_dispatch(cpu, 0x80038338u); label_BFC1CA98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CA98: 10000012 beq $zero, $zero, 0xBFC1CAE4 */ uint32_t psx_brA_BFC1CA98 = cpu->gpr[0]; uint32_t psx_brB_BFC1CA98 = cpu->gpr[0]; @@ -71366,10 +87755,16 @@ label_BFC1CA98: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CA9Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1CA98) goto label_BFC1CAE4; label_BFC1CAA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CAA0: 3C010002 lui $at, 0x2 */ cpu->gpr[1] = 0x00020000u; label_BFC1CAA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CAA4: 34210002 ori $at, $at, 0x2 */ cpu->gpr[1] = cpu->gpr[1] | 0x2u; @@ -71382,6 +87777,9 @@ label_BFC1CAA4: cpu->gpr[1] = 0x00010000u; if (psx_taken_BFC1CAAC) goto label_BFC1CAC8; label_BFC1CAB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CAB4: 0C00E2D8 jal 0xB0038B60 */ /* 0xBFC1CAB8: 00000000 nop */ @@ -71389,6 +87787,9 @@ label_BFC1CAB4: cpu->gpr[31] = 0x80034ABCu; psx_dispatch(cpu, 0x80038B60u); label_BFC1CABC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CABC: 10000009 beq $zero, $zero, 0xBFC1CAE4 */ uint32_t psx_brA_BFC1CABC = cpu->gpr[0]; uint32_t psx_brB_BFC1CABC = cpu->gpr[0]; @@ -71397,10 +87798,16 @@ label_BFC1CABC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CAC0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1CABC) goto label_BFC1CAE4; label_BFC1CAC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CAC4: 3C010001 lui $at, 0x1 */ cpu->gpr[1] = 0x00010000u; label_BFC1CAC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CAC8: 34210001 ori $at, $at, 0x1 */ cpu->gpr[1] = cpu->gpr[1] | 0x1u; @@ -71413,6 +87820,9 @@ label_BFC1CAC8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CAD4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1CAD0) goto label_BFC1CAE4; label_BFC1CAD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CAD8: 0C00E2E7 jal 0xB0038B9C */ /* 0xBFC1CADC: 00000000 nop */ @@ -71420,10 +87830,16 @@ label_BFC1CAD8: cpu->gpr[31] = 0x80034AE0u; psx_dispatch(cpu, 0x80038B9Cu); label_BFC1CAE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CAE0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CAE0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC1CAE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CAE4: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -71452,6 +87868,9 @@ void func_1FC1CAF0(CPUState* cpu) { } } label_BFC1CAF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CAF0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -71468,6 +87887,9 @@ label_BFC1CAF0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CB04u); return; } g_debug_last_store_pc = 0xBFC1CB04u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC1CB00) goto label_BFC1CB9C; label_BFC1CB08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CB08: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -71488,6 +87910,9 @@ label_BFC1CB08: /* 0xBFC1CB28: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; label_BFC1CB2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CB2C: 0C00CDBB jal 0xB00336EC */ /* 0xBFC1CB30: 24050008 addiu $a1, $zero, 8 */ @@ -71495,6 +87920,9 @@ label_BFC1CB2C: cpu->gpr[31] = 0x80034B34u; psx_dispatch(cpu, 0x800336ECu); label_BFC1CB34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CB34: 0C011997 jal 0xB004665C */ /* 0xBFC1CB38: 02002021 addu $a0, $s0, $zero */ @@ -71502,6 +87930,9 @@ label_BFC1CB34: cpu->gpr[31] = 0x80034B3Cu; psx_dispatch(cpu, 0x8004665Cu); label_BFC1CB3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CB3C: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -71511,6 +87942,9 @@ label_BFC1CB3C: cpu->gpr[31] = 0x80034B48u; psx_dispatch(cpu, 0x80044A50u); label_BFC1CB48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CB48: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -71521,6 +87955,9 @@ label_BFC1CB48: cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; if (psx_taken_BFC1CB4C) goto label_BFC1CB2C; label_BFC1CB54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CB54: 0C011997 jal 0xB004665C */ /* 0xBFC1CB58: 24040015 addiu $a0, $zero, 21 */ @@ -71528,6 +87965,9 @@ label_BFC1CB54: cpu->gpr[31] = 0x80034B5Cu; psx_dispatch(cpu, 0x8004665Cu); label_BFC1CB5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CB5C: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -71537,6 +87977,9 @@ label_BFC1CB5C: cpu->gpr[31] = 0x80034B68u; psx_dispatch(cpu, 0x80044A50u); label_BFC1CB68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CB68: 0C011997 jal 0xB004665C */ /* 0xBFC1CB6C: 24040016 addiu $a0, $zero, 22 */ @@ -71544,6 +87987,9 @@ label_BFC1CB68: cpu->gpr[31] = 0x80034B70u; psx_dispatch(cpu, 0x8004665Cu); label_BFC1CB70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CB70: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -71553,6 +87999,9 @@ label_BFC1CB70: cpu->gpr[31] = 0x80034B7Cu; psx_dispatch(cpu, 0x80044A50u); label_BFC1CB7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CB7C: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -71562,6 +88011,9 @@ label_BFC1CB7C: cpu->gpr[31] = 0x80034B88u; psx_dispatch(cpu, 0x800323B8u); label_BFC1CB88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CB88: 0C00CAA4 jal 0xB0032A90 */ /* 0xBFC1CB8C: 00000000 nop */ @@ -71569,6 +88021,9 @@ label_BFC1CB88: cpu->gpr[31] = 0x80034B90u; psx_dispatch(cpu, 0x80032A90u); label_BFC1CB90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CB90: 8FB0001C lw $s0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CB90u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -71577,6 +88032,9 @@ label_BFC1CB90: /* 0xBFC1CB98: 00000000 nop */ /* nop */ label_BFC1CB9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CB9C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CB9Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -71602,6 +88060,9 @@ void func_1FC1CBAC(CPUState* cpu) { } } label_BFC1CBAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CBAC: 27BDFFD0 addiu $sp, $sp, -48 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-48)); @@ -71622,6 +88083,9 @@ label_BFC1CBAC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CBC8u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } if (psx_taken_BFC1CBC4) goto label_BFC1CBE4; label_BFC1CBCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CBCC: 27A40028 addiu $a0, $sp, 40 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (40)); @@ -71631,6 +88095,9 @@ label_BFC1CBCC: cpu->gpr[31] = 0x80034BD8u; psx_dispatch(cpu, 0x80034D90u); label_BFC1CBD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CBD8: 10000006 beq $zero, $zero, 0xBFC1CBF4 */ uint32_t psx_brA_BFC1CBD8 = cpu->gpr[0]; uint32_t psx_brB_BFC1CBD8 = cpu->gpr[0]; @@ -71639,10 +88106,16 @@ label_BFC1CBD8: cpu->gpr[6] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (43))); if (psx_taken_BFC1CBD8) goto label_BFC1CBF4; label_BFC1CBE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CBE0: 8FA50030 lw $a1, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CBE0u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } label_BFC1CBE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CBE4: 27A40028 addiu $a0, $sp, 40 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (40)); @@ -71652,10 +88125,16 @@ label_BFC1CBE4: cpu->gpr[31] = 0x80034BF0u; psx_dispatch(cpu, 0x80034D90u); label_BFC1CBF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CBF0: 93A6002B lbu $a2, 43($sp) */ cpu->gpr[6] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (43))); label_BFC1CBF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CBF4: 93A7002C lbu $a3, 44($sp) */ cpu->gpr[7] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (44))); @@ -71695,6 +88174,9 @@ label_BFC1CBF4: cpu->gpr[31] = 0x80034C3Cu; psx_dispatch(cpu, 0x80034D90u); label_BFC1CC3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CC3C: 93A7002C lbu $a3, 44($sp) */ cpu->gpr[7] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (44))); @@ -71737,12 +88219,18 @@ label_BFC1CC3C: cpu->gpr[3] = cpu->gpr[3] - cpu->gpr[15]; if (psx_taken_BFC1CC80) goto label_BFC1CC90; label_BFC1CC88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CC88: 2442003C addiu $v0, $v0, 60 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (60)); /* 0xBFC1CC8C: 2463FFFF addiu $v1, $v1, -1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (-1)); label_BFC1CC90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CC90: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -71763,12 +88251,18 @@ label_BFC1CC90: cpu->gpr[5] = cpu->gpr[5] + cpu->gpr[3]; if (psx_taken_BFC1CCA8) goto label_BFC1CCB8; label_BFC1CCB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CCB0: 2484FFC4 addiu $a0, $a0, -60 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (-60)); /* 0xBFC1CCB4: 24A50001 addiu $a1, $a1, 1 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (1)); label_BFC1CCB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CCB8: 3C0A8006 lui $t2, 0x8006 */ cpu->gpr[10] = 0x80060000u; @@ -71783,6 +88277,9 @@ label_BFC1CCB8: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1CCC4) goto label_BFC1CCDC; label_BFC1CCCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CCCC: AC259FA0 sw $a1, -24672($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24672)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CCCCu); return; } g_debug_last_store_pc = 0xBFC1CCCCu; cpu->write_word(psx_addr, cpu->gpr[5]); } @@ -71795,6 +88292,9 @@ label_BFC1CCCC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24668)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CCD8u); return; } g_debug_last_store_pc = 0xBFC1CCD8u; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC1CCD4) goto label_BFC1CD30; label_BFC1CCDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CCDC: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -71809,6 +88309,9 @@ label_BFC1CCDC: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1CCE8) goto label_BFC1CD00; label_BFC1CCF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CCF0: AC259FA0 sw $a1, -24672($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24672)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CCF0u); return; } g_debug_last_store_pc = 0xBFC1CCF0u; cpu->write_word(psx_addr, cpu->gpr[5]); } @@ -71821,6 +88324,9 @@ label_BFC1CCF0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24668)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CCFCu); return; } g_debug_last_store_pc = 0xBFC1CCFCu; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC1CCF8) goto label_BFC1CD30; label_BFC1CD00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CD00: 8FAC0030 lw $t4, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CD00u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -71848,6 +88354,9 @@ label_BFC1CD00: cpu->gpr[31] = 0x80034D30u; psx_dispatch(cpu, 0x80032A90u); label_BFC1CD30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CD30: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CD30u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -71862,6 +88371,9 @@ label_BFC1CD30: void func_1FC1CD40(CPUState* cpu) { debug_server_log_call_entry(0x1FC1CD40u); label_BFC1CD40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CD40: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -71884,10 +88396,16 @@ label_BFC1CD40: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1CD5C) goto label_BFC1CD68; label_BFC1CD64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CD64: AC209E50 sw $zero, -25008($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25008)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CD64u); return; } g_debug_last_store_pc = 0xBFC1CD64u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC1CD68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CD68: 03E00008 jr $ra */ /* 0xBFC1CD6C: 00000000 nop */ @@ -71898,6 +88416,9 @@ label_BFC1CD68: void func_1FC1CD70(CPUState* cpu) { debug_server_log_call_entry(0x1FC1CD70u); label_BFC1CD70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CD70: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -71912,6 +88433,9 @@ label_BFC1CD70: void func_1FC1CD80(CPUState* cpu) { debug_server_log_call_entry(0x1FC1CD80u); label_BFC1CD80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CD80: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -71926,6 +88450,9 @@ label_BFC1CD80: void func_1FC1CD90(CPUState* cpu) { debug_server_log_call_entry(0x1FC1CD90u); label_BFC1CD90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CD90: 2401000A addiu $at, $zero, 10 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); @@ -72019,6 +88546,9 @@ void func_1FC1CDD8(CPUState* cpu) { } } label_BFC1CDD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CDD8: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -72035,6 +88565,9 @@ label_BFC1CDD8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (120)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CDECu); return; } g_debug_last_store_pc = 0xBFC1CDECu; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC1CDE8) goto label_BFC1CE04; label_BFC1CDF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CDF0: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -72049,6 +88582,9 @@ label_BFC1CDF0: /* nop */ if (psx_taken_BFC1CDFC) goto label_BFC1CE24; label_BFC1CE04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CE04: 8FB80078 lw $t8, 120($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (120)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CE04u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -72069,6 +88605,9 @@ label_BFC1CE04: g_debug_last_store_pc = 0xBFC1CE20u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[24] + (4)), (uint8_t)(cpu->gpr[0] & 0xFFu)); if (psx_taken_BFC1CE1C) goto label_BFC1D970; label_BFC1CE24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CE24: AFB0004C sw $s0, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CE24u); return; } g_debug_last_store_pc = 0xBFC1CE24u; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -72085,6 +88624,9 @@ label_BFC1CE24: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CE38u); return; } g_debug_last_store_pc = 0xBFC1CE38u; cpu->write_word(psx_addr, cpu->gpr[20]); } if (psx_taken_BFC1CE34) goto label_BFC1D850; label_BFC1CE3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CE3C: 00104080 sll $t0, $s0, 2 */ cpu->gpr[8] = cpu->gpr[16] << 2u; @@ -72109,6 +88651,9 @@ label_BFC1CE3C: default: cpu->pc = cpu->gpr[8]; return; } label_BFC1CE58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CE58: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -72123,6 +88668,9 @@ label_BFC1CE58: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (58)); if (psx_taken_BFC1CE64) goto label_BFC1CE8C; label_BFC1CE6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CE6C: 10410007 beq $v0, $at, 0xBFC1CE8C */ uint32_t psx_brA_BFC1CE6C = cpu->gpr[2]; uint32_t psx_brB_BFC1CE6C = cpu->gpr[1]; @@ -72131,6 +88679,9 @@ label_BFC1CE6C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (59)); if (psx_taken_BFC1CE6C) goto label_BFC1CE8C; label_BFC1CE74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CE74: 10410005 beq $v0, $at, 0xBFC1CE8C */ uint32_t psx_brA_BFC1CE74 = cpu->gpr[2]; uint32_t psx_brB_BFC1CE74 = cpu->gpr[1]; @@ -72139,6 +88690,9 @@ label_BFC1CE74: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); if (psx_taken_BFC1CE74) goto label_BFC1CE8C; label_BFC1CE7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CE7C: 10410003 beq $v0, $at, 0xBFC1CE8C */ uint32_t psx_brA_BFC1CE7C = cpu->gpr[2]; uint32_t psx_brB_BFC1CE7C = cpu->gpr[1]; @@ -72147,6 +88701,9 @@ label_BFC1CE7C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); if (psx_taken_BFC1CE7C) goto label_BFC1CE8C; label_BFC1CE84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CE84: 1441001C bne $v0, $at, 0xBFC1CEF8 */ uint32_t psx_brA_BFC1CE84 = cpu->gpr[2]; uint32_t psx_brB_BFC1CE84 = cpu->gpr[1]; @@ -72155,6 +88712,9 @@ label_BFC1CE84: /* nop */ if (psx_taken_BFC1CE84) goto label_BFC1CEF8; label_BFC1CE8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CE8C: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -72177,6 +88737,9 @@ label_BFC1CE8C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (116)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CEACu); return; } g_debug_last_store_pc = 0xBFC1CEACu; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC1CEA8) goto label_BFC1CED4; label_BFC1CEB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CEB0: 24010034 addiu $at, $zero, 52 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); @@ -72189,6 +88752,9 @@ label_BFC1CEB0: cpu->gpr[19] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC1CEB8) goto label_BFC1CEE8; label_BFC1CEC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CEC0: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -72203,6 +88769,9 @@ label_BFC1CEC0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24988)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CED0u); return; } g_debug_last_store_pc = 0xBFC1CED0u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC1CECC) goto label_BFC1CEE8; label_BFC1CED4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CED4: 3C148008 lui $s4, 0x8008 */ cpu->gpr[20] = 0x80080000u; @@ -72215,6 +88784,9 @@ label_BFC1CED4: /* 0xBFC1CEE4: 00000000 nop */ /* nop */ label_BFC1CEE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CEE8: 14A00043 bne $a1, $zero, 0xBFC1CFF8 */ uint32_t psx_brA_BFC1CEE8 = cpu->gpr[5]; uint32_t psx_brB_BFC1CEE8 = cpu->gpr[0]; @@ -72223,6 +88795,9 @@ label_BFC1CEE8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (120)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CEECu); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } if (psx_taken_BFC1CEE8) goto label_BFC1CFF8; label_BFC1CEF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CEF0: 10000040 beq $zero, $zero, 0xBFC1CFF4 */ uint32_t psx_brA_BFC1CEF0 = cpu->gpr[0]; uint32_t psx_brB_BFC1CEF0 = cpu->gpr[0]; @@ -72231,6 +88806,9 @@ label_BFC1CEF0: cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (1)); if (psx_taken_BFC1CEF0) goto label_BFC1CFF4; label_BFC1CEF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CEF8: 0C00D262 jal 0xB0034988 */ /* 0xBFC1CEFC: 00000000 nop */ @@ -72238,6 +88816,9 @@ label_BFC1CEF8: cpu->gpr[31] = 0x80034F00u; psx_dispatch(cpu, 0x80034988u); label_BFC1CF00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CF00: 10400011 beq $v0, $zero, 0xBFC1CF48 */ uint32_t psx_brA_BFC1CF00 = cpu->gpr[2]; uint32_t psx_brB_BFC1CF00 = cpu->gpr[0]; @@ -72246,6 +88827,9 @@ label_BFC1CF00: /* nop */ if (psx_taken_BFC1CF00) goto label_BFC1CF48; label_BFC1CF08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CF08: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -72260,6 +88844,9 @@ label_BFC1CF08: /* nop */ if (psx_taken_BFC1CF14) goto label_BFC1CF48; label_BFC1CF1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CF1C: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -72286,6 +88873,9 @@ label_BFC1CF1C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (116)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CF44u); return; } g_debug_last_store_pc = 0xBFC1CF44u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC1CF40) goto label_BFC1CFF4; label_BFC1CF48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CF48: 0C00D25E jal 0xB0034978 */ /* 0xBFC1CF4C: 00000000 nop */ @@ -72293,6 +88883,9 @@ label_BFC1CF48: cpu->gpr[31] = 0x80034F50u; psx_dispatch(cpu, 0x80034978u); label_BFC1CF50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CF50: 10400015 beq $v0, $zero, 0xBFC1CFA8 */ uint32_t psx_brA_BFC1CF50 = cpu->gpr[2]; uint32_t psx_brB_BFC1CF50 = cpu->gpr[0]; @@ -72301,6 +88894,9 @@ label_BFC1CF50: /* nop */ if (psx_taken_BFC1CF50) goto label_BFC1CFA8; label_BFC1CF58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CF58: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -72315,6 +88911,9 @@ label_BFC1CF58: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1CF64) goto label_BFC1CFA8; label_BFC1CF6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CF6C: AC209E54 sw $zero, -25004($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25004)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CF6Cu); return; } g_debug_last_store_pc = 0xBFC1CF6Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -72349,6 +88948,9 @@ label_BFC1CF6C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24916)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CFA4u); return; } g_debug_last_store_pc = 0xBFC1CFA4u; cpu->write_word(psx_addr, cpu->gpr[5]); } if (psx_taken_BFC1CFA0) goto label_BFC1CFF4; label_BFC1CFA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CFA8: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -72363,6 +88965,9 @@ label_BFC1CFA8: /* nop */ if (psx_taken_BFC1CFB4) goto label_BFC1CFC4; label_BFC1CFBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CFBC: 10000009 beq $zero, $zero, 0xBFC1CFE4 */ uint32_t psx_brA_BFC1CFBC = cpu->gpr[0]; uint32_t psx_brB_BFC1CFBC = cpu->gpr[0]; @@ -72371,6 +88976,9 @@ label_BFC1CFBC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (116)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CFC0u); return; } g_debug_last_store_pc = 0xBFC1CFC0u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC1CFBC) goto label_BFC1CFE4; label_BFC1CFC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CFC4: AFB1003C sw $s1, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CFC4u); return; } g_debug_last_store_pc = 0xBFC1CFC4u; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -72389,6 +88997,9 @@ label_BFC1CFC4: /* 0xBFC1CFE0: AFAD0074 sw $t5, 116($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (116)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CFE0u); return; } g_debug_last_store_pc = 0xBFC1CFE0u; cpu->write_word(psx_addr, cpu->gpr[13]); } label_BFC1CFE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CFE4: 240E0001 addiu $t6, $zero, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -72399,10 +89010,16 @@ label_BFC1CFE4: /* 0xBFC1CFF0: 00009821 addu $s3, $zero, $zero */ cpu->gpr[19] = cpu->gpr[0] + cpu->gpr[0]; label_BFC1CFF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CFF4: 8FAF0078 lw $t7, 120($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (120)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1CFF4u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } label_BFC1CFF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1CFF8: 1000021C beq $zero, $zero, 0xBFC1D86C */ uint32_t psx_brA_BFC1CFF8 = cpu->gpr[0]; uint32_t psx_brB_BFC1CFF8 = cpu->gpr[0]; @@ -72411,6 +89028,9 @@ label_BFC1CFF8: g_debug_last_store_pc = 0xBFC1CFFCu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[15] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); if (psx_taken_BFC1CFF8) goto label_BFC1D86C; label_BFC1D000: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D000: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -72435,6 +89055,9 @@ label_BFC1D000: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (116)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D024u); return; } g_debug_last_store_pc = 0xBFC1D024u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC1D020) goto label_BFC1D130; label_BFC1D028: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D028: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -72449,6 +89072,9 @@ label_BFC1D028: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1D034) goto label_BFC1D054; label_BFC1D03C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D03C: AC209E60 sw $zero, -24992($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24992)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D03Cu); return; } g_debug_last_store_pc = 0xBFC1D03Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -72465,6 +89091,9 @@ label_BFC1D03C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24988)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D050u); return; } g_debug_last_store_pc = 0xBFC1D050u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC1D04C) goto label_BFC1D234; label_BFC1D054: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D054: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -72479,6 +89108,9 @@ label_BFC1D054: /* nop */ if (psx_taken_BFC1D060) goto label_BFC1D0A0; label_BFC1D068: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D068: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -72490,6 +89122,9 @@ label_BFC1D068: cpu->gpr[31] = 0x80035078u; psx_dispatch(cpu, 0x800393A4u); label_BFC1D078: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D078: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -72505,6 +89140,9 @@ label_BFC1D078: cpu->gpr[31] = 0x80035090u; psx_dispatch(cpu, 0x800393A4u); label_BFC1D090: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D090: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -72517,6 +89155,9 @@ label_BFC1D090: cpu->gpr[19] = cpu->gpr[2] - cpu->gpr[9]; if (psx_taken_BFC1D098) goto label_BFC1D234; label_BFC1D0A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D0A0: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -72554,6 +89195,9 @@ label_BFC1D0A0: cpu->gpr[31] = 0x800350E4u; psx_dispatch(cpu, 0x800393A4u); label_BFC1D0E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D0E4: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -72583,6 +89227,9 @@ label_BFC1D0E4: cpu->gpr[31] = 0x80035118u; psx_dispatch(cpu, 0x800393A4u); label_BFC1D118: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D118: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -72599,6 +89246,9 @@ label_BFC1D118: cpu->gpr[19] = cpu->gpr[2] - cpu->gpr[11]; if (psx_taken_BFC1D128) goto label_BFC1D234; label_BFC1D130: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D130: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -72613,6 +89263,9 @@ label_BFC1D130: /* nop */ if (psx_taken_BFC1D13C) goto label_BFC1D17C; label_BFC1D144: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D144: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -72624,6 +89277,9 @@ label_BFC1D144: cpu->gpr[31] = 0x80035154u; psx_dispatch(cpu, 0x800393A4u); label_BFC1D154: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D154: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -72639,6 +89295,9 @@ label_BFC1D154: cpu->gpr[31] = 0x8003516Cu; psx_dispatch(cpu, 0x800393A4u); label_BFC1D16C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D16C: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -72651,6 +89310,9 @@ label_BFC1D16C: cpu->gpr[19] = cpu->gpr[2] - cpu->gpr[14]; if (psx_taken_BFC1D174) goto label_BFC1D234; label_BFC1D17C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D17C: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -72665,6 +89327,9 @@ label_BFC1D17C: cpu->gpr[20] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC1D188) goto label_BFC1D1A8; label_BFC1D190: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D190: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -72679,10 +89344,16 @@ label_BFC1D190: /* nop */ if (psx_taken_BFC1D19C) goto label_BFC1D1B0; label_BFC1D1A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D1A4: 0000A021 addu $s4, $zero, $zero */ cpu->gpr[20] = cpu->gpr[0] + cpu->gpr[0]; label_BFC1D1A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D1A8: 10000022 beq $zero, $zero, 0xBFC1D234 */ uint32_t psx_brA_BFC1D1A8 = cpu->gpr[0]; uint32_t psx_brB_BFC1D1A8 = cpu->gpr[0]; @@ -72691,6 +89362,9 @@ label_BFC1D1A8: cpu->gpr[19] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC1D1A8) goto label_BFC1D234; label_BFC1D1B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D1B0: AFB1003C sw $s1, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D1B0u); return; } g_debug_last_store_pc = 0xBFC1D1B0u; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -72724,6 +89398,9 @@ label_BFC1D1B0: cpu->gpr[31] = 0x800351ECu; psx_dispatch(cpu, 0x800393A4u); label_BFC1D1EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D1EC: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -72753,6 +89430,9 @@ label_BFC1D1EC: cpu->gpr[31] = 0x80035220u; psx_dispatch(cpu, 0x800393A4u); label_BFC1D220: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D220: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -72765,6 +89445,9 @@ label_BFC1D220: /* 0xBFC1D230: 00589823 subu $s3, $v0, $t8 */ cpu->gpr[19] = cpu->gpr[2] - cpu->gpr[24]; label_BFC1D234: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D234: 8FA90078 lw $t1, 120($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (120)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D234u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -72777,6 +89460,9 @@ label_BFC1D234: g_debug_last_store_pc = 0xBFC1D240u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[9] + (0)), (uint8_t)(cpu->gpr[8] & 0xFFu)); if (psx_taken_BFC1D23C) goto label_BFC1D86C; label_BFC1D244: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D244: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -72794,6 +89480,9 @@ label_BFC1D244: cpu->gpr[31] = 0x80035260u; psx_dispatch(cpu, 0x80034988u); label_BFC1D260: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D260: 104000AC beq $v0, $zero, 0xBFC1D514 */ uint32_t psx_brA_BFC1D260 = cpu->gpr[2]; uint32_t psx_brB_BFC1D260 = cpu->gpr[0]; @@ -72802,6 +89491,9 @@ label_BFC1D260: /* nop */ if (psx_taken_BFC1D260) goto label_BFC1D514; label_BFC1D268: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D268: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -72822,6 +89514,9 @@ label_BFC1D268: cpu->gpr[20] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC1D280) goto label_BFC1D294; label_BFC1D288: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D288: 3C128008 lui $s2, 0x8008 */ cpu->gpr[18] = 0x80080000u; @@ -72832,6 +89527,9 @@ label_BFC1D288: cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (-24656)); if (psx_taken_BFC1D28C) goto label_BFC1D454; label_BFC1D294: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D294: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -72856,6 +89554,9 @@ label_BFC1D294: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (96)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D2B8u); return; } g_debug_last_store_pc = 0xBFC1D2B8u; cpu->write_word(psx_addr, cpu->gpr[11]); } if (psx_taken_BFC1D2B4) goto label_BFC1D2C8; label_BFC1D2BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D2BC: 3C128008 lui $s2, 0x8008 */ cpu->gpr[18] = 0x80080000u; @@ -72866,6 +89567,9 @@ label_BFC1D2BC: cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (-24656)); if (psx_taken_BFC1D2C0) goto label_BFC1D454; label_BFC1D2C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D2C8: AFB1003C sw $s1, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D2C8u); return; } g_debug_last_store_pc = 0xBFC1D2C8u; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -72878,6 +89582,9 @@ label_BFC1D2C8: /* 0xBFC1D2D8: 2631D0F4 addiu $s1, $s1, -12044 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (-12044)); label_BFC1D2DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D2DC: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -72894,6 +89601,9 @@ label_BFC1D2DC: cpu->gpr[15] = cpu->gpr[2] << 2u; if (psx_taken_BFC1D2EC) goto label_BFC1D388; label_BFC1D2F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D2F4: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -72905,6 +89615,9 @@ label_BFC1D2F4: cpu->gpr[31] = 0x80035304u; psx_dispatch(cpu, 0x800393A4u); label_BFC1D304: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D304: 8E2D0000 lw $t5, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D304u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -72924,6 +89637,9 @@ label_BFC1D304: cpu->gpr[31] = 0x80035324u; psx_dispatch(cpu, 0x800393A4u); label_BFC1D324: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D324: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -72945,6 +89661,9 @@ label_BFC1D324: cpu->gpr[31] = 0x80035348u; psx_dispatch(cpu, 0x800393A4u); label_BFC1D348: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D348: 8E290000 lw $t1, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D348u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -72964,6 +89683,9 @@ label_BFC1D348: cpu->gpr[31] = 0x80035368u; psx_dispatch(cpu, 0x800393A4u); label_BFC1D368: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D368: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -72982,10 +89704,16 @@ label_BFC1D368: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24300)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D380u); return; } g_debug_last_store_pc = 0xBFC1D380u; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC1D37C) goto label_BFC1D42C; label_BFC1D384: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D384: 00027880 sll $t7, $v0, 2 */ cpu->gpr[15] = cpu->gpr[2] << 2u; label_BFC1D388: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D388: 01E27823 subu $t7, $t7, $v0 */ cpu->gpr[15] = cpu->gpr[15] - cpu->gpr[2]; @@ -72999,6 +89727,9 @@ label_BFC1D388: cpu->gpr[31] = 0x8003539Cu; psx_dispatch(cpu, 0x800393A4u); label_BFC1D39C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D39C: 8E380000 lw $t8, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D39Cu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -73018,6 +89749,9 @@ label_BFC1D39C: cpu->gpr[31] = 0x800353BCu; psx_dispatch(cpu, 0x800393A4u); label_BFC1D3BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D3BC: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -73049,6 +89783,9 @@ label_BFC1D3BC: cpu->gpr[31] = 0x800353F4u; psx_dispatch(cpu, 0x800393A4u); label_BFC1D3F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D3F4: 8E390000 lw $t9, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D3F4u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -73068,6 +89805,9 @@ label_BFC1D3F4: cpu->gpr[31] = 0x80035414u; psx_dispatch(cpu, 0x800393A4u); label_BFC1D414: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D414: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -73082,6 +89822,9 @@ label_BFC1D414: /* 0xBFC1D428: AC2BA114 sw $t3, -24300($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24300)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D428u); return; } g_debug_last_store_pc = 0xBFC1D428u; cpu->write_word(psx_addr, cpu->gpr[11]); } label_BFC1D42C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D42C: 8FAC0060 lw $t4, 96($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (96)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D42Cu); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -73102,12 +89845,18 @@ label_BFC1D42C: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (4)); if (psx_taken_BFC1D444) goto label_BFC1D2DC; label_BFC1D44C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D44C: 8FB1003C lw $s1, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D44Cu); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } /* 0xBFC1D450: 00000000 nop */ /* nop */ label_BFC1D454: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D454: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -73122,6 +89871,9 @@ label_BFC1D454: /* nop */ if (psx_taken_BFC1D460) goto label_BFC1D508; label_BFC1D468: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D468: 0C00D35C jal 0xB0034D70 */ /* 0xBFC1D46C: AFB1003C sw $s1, 60($sp) */ @@ -73129,6 +89881,9 @@ label_BFC1D468: cpu->gpr[31] = 0x80035470u; psx_dispatch(cpu, 0x80034D70u); label_BFC1D470: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D470: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -73140,6 +89895,9 @@ label_BFC1D470: cpu->gpr[31] = 0x80035480u; psx_dispatch(cpu, 0x80034D80u); label_BFC1D480: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D480: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -73173,6 +89931,9 @@ label_BFC1D480: cpu->gpr[31] = 0x800354BCu; psx_dispatch(cpu, 0x800393A4u); label_BFC1D4BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D4BC: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -73204,6 +89965,9 @@ label_BFC1D4BC: cpu->gpr[31] = 0x800354F4u; psx_dispatch(cpu, 0x800393A4u); label_BFC1D4F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D4F4: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -73216,6 +89980,9 @@ label_BFC1D4F4: /* 0xBFC1D504: 01429821 addu $s3, $t2, $v0 */ cpu->gpr[19] = cpu->gpr[10] + cpu->gpr[2]; label_BFC1D508: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D508: 8FB20034 lw $s2, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D508u); return; } cpu->gpr[18] = cpu->read_word(psx_addr); } @@ -73226,6 +89993,9 @@ label_BFC1D508: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (120)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D510u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } if (psx_taken_BFC1D50C) goto label_BFC1D61C; label_BFC1D514: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D514: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -73240,6 +90010,9 @@ label_BFC1D514: /* nop */ if (psx_taken_BFC1D520) goto label_BFC1D5E0; label_BFC1D528: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D528: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -73254,6 +90027,9 @@ label_BFC1D528: /* nop */ if (psx_taken_BFC1D534) goto label_BFC1D5E0; label_BFC1D53C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D53C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -73267,6 +90043,9 @@ label_BFC1D53C: cpu->gpr[31] = 0x80035550u; psx_dispatch(cpu, 0x800393A4u); label_BFC1D550: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D550: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -73300,6 +90079,9 @@ label_BFC1D550: cpu->gpr[31] = 0x8003558Cu; psx_dispatch(cpu, 0x800393A4u); label_BFC1D58C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D58C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -73311,6 +90093,9 @@ label_BFC1D58C: cpu->gpr[31] = 0x8003559Cu; psx_dispatch(cpu, 0x800393A4u); label_BFC1D59C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D59C: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -73340,6 +90125,9 @@ label_BFC1D59C: cpu->gpr[31] = 0x800355D0u; psx_dispatch(cpu, 0x800393A4u); label_BFC1D5D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D5D0: 8FB1003C lw $s1, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D5D0u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -73352,6 +90140,9 @@ label_BFC1D5D0: cpu->gpr[19] = cpu->gpr[16] - cpu->gpr[2]; if (psx_taken_BFC1D5D8) goto label_BFC1D618; label_BFC1D5E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D5E0: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -73363,6 +90154,9 @@ label_BFC1D5E0: cpu->gpr[31] = 0x800355F0u; psx_dispatch(cpu, 0x800393A4u); label_BFC1D5F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D5F0: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -73378,6 +90172,9 @@ label_BFC1D5F0: cpu->gpr[31] = 0x80035608u; psx_dispatch(cpu, 0x800393A4u); label_BFC1D608: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D608: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -73388,10 +90185,16 @@ label_BFC1D608: /* 0xBFC1D614: 004D9823 subu $s3, $v0, $t5 */ cpu->gpr[19] = cpu->gpr[2] - cpu->gpr[13]; label_BFC1D618: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D618: 8FAF0078 lw $t7, 120($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (120)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D618u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } label_BFC1D61C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D61C: 240E0001 addiu $t6, $zero, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -73402,6 +90205,9 @@ label_BFC1D61C: g_debug_last_store_pc = 0xBFC1D624u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[15] + (0)), (uint8_t)(cpu->gpr[14] & 0xFFu)); if (psx_taken_BFC1D620) goto label_BFC1D86C; label_BFC1D628: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D628: 0C00D262 jal 0xB0034988 */ /* 0xBFC1D62C: 00000000 nop */ @@ -73409,6 +90215,9 @@ label_BFC1D628: cpu->gpr[31] = 0x80035630u; psx_dispatch(cpu, 0x80034988u); label_BFC1D630: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D630: 10400067 beq $v0, $zero, 0xBFC1D7D0 */ uint32_t psx_brA_BFC1D630 = cpu->gpr[2]; uint32_t psx_brB_BFC1D630 = cpu->gpr[0]; @@ -73417,6 +90226,9 @@ label_BFC1D630: /* nop */ if (psx_taken_BFC1D630) goto label_BFC1D7D0; label_BFC1D638: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D638: 0C00D266 jal 0xB0034998 */ /* 0xBFC1D63C: 00000000 nop */ @@ -73424,6 +90236,9 @@ label_BFC1D638: cpu->gpr[31] = 0x80035640u; psx_dispatch(cpu, 0x80034998u); label_BFC1D640: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D640: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -73445,6 +90260,9 @@ label_BFC1D640: cpu->gpr[31] = 0x80035664u; psx_dispatch(cpu, 0x80034998u); label_BFC1D664: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D664: 1840006D blez $v0, 0xBFC1D81C */ uint32_t psx_brA_BFC1D664 = cpu->gpr[2]; @@ -73453,6 +90271,9 @@ label_BFC1D664: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (120)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D668u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } if (psx_taken_BFC1D664) goto label_BFC1D81C; label_BFC1D66C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D66C: 8FB80058 lw $t8, 88($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (88)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D66Cu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -73473,6 +90294,9 @@ label_BFC1D66C: /* 0xBFC1D68C: 26529FB0 addiu $s2, $s2, -24656 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (-24656)); label_BFC1D690: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D690: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -73489,6 +90313,9 @@ label_BFC1D690: cpu->gpr[9] = cpu->gpr[2] << 2u; if (psx_taken_BFC1D6A0) goto label_BFC1D71C; label_BFC1D6A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D6A8: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -73500,6 +90327,9 @@ label_BFC1D6A8: cpu->gpr[31] = 0x800356B8u; psx_dispatch(cpu, 0x800393A4u); label_BFC1D6B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D6B8: 8E2B0000 lw $t3, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D6B8u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -73519,6 +90349,9 @@ label_BFC1D6B8: cpu->gpr[31] = 0x800356D8u; psx_dispatch(cpu, 0x800393A4u); label_BFC1D6D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D6D8: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -73532,6 +90365,9 @@ label_BFC1D6D8: cpu->gpr[31] = 0x800356ECu; psx_dispatch(cpu, 0x800393A4u); label_BFC1D6EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D6EC: 8E2F0000 lw $t7, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D6ECu); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -73551,6 +90387,9 @@ label_BFC1D6EC: cpu->gpr[31] = 0x8003570Cu; psx_dispatch(cpu, 0x800393A4u); label_BFC1D70C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D70C: 02704021 addu $t0, $s3, $s0 */ cpu->gpr[8] = cpu->gpr[19] + cpu->gpr[16]; @@ -73561,10 +90400,16 @@ label_BFC1D70C: cpu->gpr[19] = cpu->gpr[8] - cpu->gpr[2]; if (psx_taken_BFC1D710) goto label_BFC1D798; label_BFC1D718: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D718: 00024880 sll $t1, $v0, 2 */ cpu->gpr[9] = cpu->gpr[2] << 2u; label_BFC1D71C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D71C: 01224823 subu $t1, $t1, $v0 */ cpu->gpr[9] = cpu->gpr[9] - cpu->gpr[2]; @@ -73578,6 +90423,9 @@ label_BFC1D71C: cpu->gpr[31] = 0x80035730u; psx_dispatch(cpu, 0x800393A4u); label_BFC1D730: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D730: 8E2B0000 lw $t3, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D730u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -73597,6 +90445,9 @@ label_BFC1D730: cpu->gpr[31] = 0x80035750u; psx_dispatch(cpu, 0x800393A4u); label_BFC1D750: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D750: 8E2F0000 lw $t7, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D750u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -73616,6 +90467,9 @@ label_BFC1D750: cpu->gpr[31] = 0x80035770u; psx_dispatch(cpu, 0x800393A4u); label_BFC1D770: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D770: 8E280000 lw $t0, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D770u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -73635,12 +90489,18 @@ label_BFC1D770: cpu->gpr[31] = 0x80035790u; psx_dispatch(cpu, 0x800393A4u); label_BFC1D790: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D790: 02705821 addu $t3, $s3, $s0 */ cpu->gpr[11] = cpu->gpr[19] + cpu->gpr[16]; /* 0xBFC1D794: 01629823 subu $s3, $t3, $v0 */ cpu->gpr[19] = cpu->gpr[11] - cpu->gpr[2]; label_BFC1D798: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D798: 8FAC0058 lw $t4, 88($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (88)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D798u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -73654,6 +90514,9 @@ label_BFC1D798: cpu->gpr[31] = 0x800357ACu; psx_dispatch(cpu, 0x80034998u); label_BFC1D7AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D7AC: 8FAE0058 lw $t6, 88($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (88)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D7ACu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -73668,6 +90531,9 @@ label_BFC1D7AC: /* nop */ if (psx_taken_BFC1D7B8) goto label_BFC1D690; label_BFC1D7C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D7C0: 8FB1003C lw $s1, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D7C0u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -73680,6 +90546,9 @@ label_BFC1D7C0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (120)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D7CCu); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } if (psx_taken_BFC1D7C8) goto label_BFC1D81C; label_BFC1D7D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D7D0: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -73709,6 +90578,9 @@ label_BFC1D7D0: cpu->gpr[31] = 0x80035804u; psx_dispatch(cpu, 0x800393A4u); label_BFC1D804: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D804: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -73720,12 +90592,18 @@ label_BFC1D804: cpu->gpr[31] = 0x80035814u; psx_dispatch(cpu, 0x800393A4u); label_BFC1D814: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D814: 00409821 addu $s3, $v0, $zero */ cpu->gpr[19] = cpu->gpr[2] + cpu->gpr[0]; /* 0xBFC1D818: 8FA90078 lw $t1, 120($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (120)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D818u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } label_BFC1D81C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D81C: 10000013 beq $zero, $zero, 0xBFC1D86C */ uint32_t psx_brA_BFC1D81C = cpu->gpr[0]; uint32_t psx_brB_BFC1D81C = cpu->gpr[0]; @@ -73734,6 +90612,9 @@ label_BFC1D81C: g_debug_last_store_pc = 0xBFC1D820u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[9] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); if (psx_taken_BFC1D81C) goto label_BFC1D86C; label_BFC1D824: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D824: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -73760,6 +90641,9 @@ label_BFC1D824: g_debug_last_store_pc = 0xBFC1D84Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[12] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); if (psx_taken_BFC1D848) goto label_BFC1D86C; label_BFC1D850: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D850: 8FAD0078 lw $t5, 120($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (120)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D850u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -73778,6 +90662,9 @@ label_BFC1D850: /* nop */ if (psx_taken_BFC1D864) goto label_BFC1D86C; label_BFC1D86C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D86C: 0661000E bgez $s3, 0xBFC1D8A8 */ uint32_t psx_brA_BFC1D86C = cpu->gpr[19]; @@ -73786,6 +90673,9 @@ label_BFC1D86C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[19] < (60) ? 1 : 0); if (psx_taken_BFC1D86C) goto label_BFC1D8A8; label_BFC1D874: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D874: 0C016A6C jal 0xB005A9B0 */ /* 0xBFC1D878: 02602021 addu $a0, $s3, $zero */ @@ -73793,6 +90683,9 @@ label_BFC1D874: cpu->gpr[31] = 0x8003587Cu; psx_dispatch(cpu, 0x8005A9B0u); label_BFC1D87C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D87C: 244E003C addiu $t6, $v0, 60 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[2] + (60)); @@ -73817,6 +90710,9 @@ label_BFC1D87C: /* 0xBFC1D8A4: 2A61003C slti $at, $s3, 60 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[19] < (60) ? 1 : 0); label_BFC1D8A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D8A8: 14200006 bne $at, $zero, 0xBFC1D8C4 */ uint32_t psx_brA_BFC1D8A8 = cpu->gpr[1]; uint32_t psx_brB_BFC1D8A8 = cpu->gpr[0]; @@ -73825,6 +90721,9 @@ label_BFC1D8A8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (60)); if (psx_taken_BFC1D8A8) goto label_BFC1D8C4; label_BFC1D8B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D8B0: 0261001A div $s3, $at */ { int32_t psx_n = (int32_t)cpu->gpr[19]; int32_t psx_d = (int32_t)cpu->gpr[1]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -73837,6 +90736,9 @@ label_BFC1D8B0: /* 0xBFC1D8C0: 00000000 nop */ /* nop */ label_BFC1D8C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D8C4: 06810003 bgez $s4, 0xBFC1D8D4 */ uint32_t psx_brA_BFC1D8C4 = cpu->gpr[20]; @@ -73845,12 +90747,18 @@ label_BFC1D8C4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[20] < (100) ? 1 : 0); if (psx_taken_BFC1D8C4) goto label_BFC1D8D4; label_BFC1D8CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D8CC: 0000A021 addu $s4, $zero, $zero */ cpu->gpr[20] = cpu->gpr[0] + cpu->gpr[0]; /* 0xBFC1D8D0: 2A810064 slti $at, $s4, 100 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[20] < (100) ? 1 : 0); label_BFC1D8D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D8D4: 14200005 bne $at, $zero, 0xBFC1D8EC */ uint32_t psx_brA_BFC1D8D4 = cpu->gpr[1]; uint32_t psx_brB_BFC1D8D4 = cpu->gpr[0]; @@ -73859,6 +90767,9 @@ label_BFC1D8D4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (100)); if (psx_taken_BFC1D8D4) goto label_BFC1D8EC; label_BFC1D8DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D8DC: 0281001A div $s4, $at */ { int32_t psx_n = (int32_t)cpu->gpr[20]; int32_t psx_d = (int32_t)cpu->gpr[1]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -73869,6 +90780,9 @@ label_BFC1D8DC: /* 0xBFC1D8E8: 00000000 nop */ /* nop */ label_BFC1D8EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(33u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D8EC: 8FB80074 lw $t8, 116($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (116)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D8ECu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -73937,6 +90851,9 @@ label_BFC1D8EC: /* 0xBFC1D96C: 00000000 nop */ /* nop */ label_BFC1D970: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D970: 8FBF002C lw $ra, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1D970u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -73951,6 +90868,9 @@ label_BFC1D970: void func_1FC1D980(CPUState* cpu) { debug_server_log_call_entry(0x1FC1D980u); label_BFC1D980: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D980: 240E0001 addiu $t6, $zero, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -74008,6 +90928,9 @@ void func_1FC1D9C4(CPUState* cpu) { } } label_BFC1D9C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D9C4: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -74037,6 +90960,9 @@ label_BFC1D9C4: cpu->gpr[31] = 0x800359F8u; psx_dispatch(cpu, 0x800393FCu); label_BFC1D9F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1D9F8: 14400007 bne $v0, $zero, 0xBFC1DA18 */ uint32_t psx_brA_BFC1D9F8 = cpu->gpr[2]; uint32_t psx_brB_BFC1D9F8 = cpu->gpr[0]; @@ -74045,6 +90971,9 @@ label_BFC1D9F8: /* nop */ if (psx_taken_BFC1D9F8) goto label_BFC1DA18; label_BFC1DA00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DA00: 0C00D660 jal 0xB0035980 */ /* 0xBFC1DA04: 00000000 nop */ @@ -74052,6 +90981,9 @@ label_BFC1DA00: cpu->gpr[31] = 0x80035A08u; psx_dispatch(cpu, 0x80035980u); label_BFC1DA08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DA08: 0C00D2BC jal 0xB0034AF0 */ /* 0xBFC1DA0C: 00000000 nop */ @@ -74059,6 +90991,9 @@ label_BFC1DA08: cpu->gpr[31] = 0x80035A10u; psx_dispatch(cpu, 0x80034AF0u); label_BFC1DA10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DA10: 10000074 beq $zero, $zero, 0xBFC1DBE4 */ uint32_t psx_brA_BFC1DA10 = cpu->gpr[0]; uint32_t psx_brB_BFC1DA10 = cpu->gpr[0]; @@ -74067,6 +91002,9 @@ label_BFC1DA10: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC1DA10) goto label_BFC1DBE4; label_BFC1DA18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DA18: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -74083,6 +91021,9 @@ label_BFC1DA18: /* nop */ if (psx_taken_BFC1DA28) goto label_BFC1DAAC; label_BFC1DA30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DA30: 0C00D660 jal 0xB0035980 */ /* 0xBFC1DA34: 00000000 nop */ @@ -74090,6 +91031,9 @@ label_BFC1DA30: cpu->gpr[31] = 0x80035A38u; psx_dispatch(cpu, 0x80035980u); label_BFC1DA38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DA38: 0C00D2BC jal 0xB0034AF0 */ /* 0xBFC1DA3C: 00000000 nop */ @@ -74097,6 +91041,9 @@ label_BFC1DA38: cpu->gpr[31] = 0x80035A40u; psx_dispatch(cpu, 0x80034AF0u); label_BFC1DA40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DA40: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; @@ -74116,6 +91063,9 @@ label_BFC1DA40: cpu->gpr[31] = 0x80035A60u; psx_dispatch(cpu, 0x800393FCu); label_BFC1DA60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DA60: 14400005 bne $v0, $zero, 0xBFC1DA78 */ uint32_t psx_brA_BFC1DA60 = cpu->gpr[2]; uint32_t psx_brB_BFC1DA60 = cpu->gpr[0]; @@ -74124,6 +91074,9 @@ label_BFC1DA60: /* nop */ if (psx_taken_BFC1DA60) goto label_BFC1DA78; label_BFC1DA68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DA68: 0C00D660 jal 0xB0035980 */ /* 0xBFC1DA6C: 00000000 nop */ @@ -74131,6 +91084,9 @@ label_BFC1DA68: cpu->gpr[31] = 0x80035A70u; psx_dispatch(cpu, 0x80035980u); label_BFC1DA70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DA70: 1000005C beq $zero, $zero, 0xBFC1DBE4 */ uint32_t psx_brA_BFC1DA70 = cpu->gpr[0]; uint32_t psx_brB_BFC1DA70 = cpu->gpr[0]; @@ -74139,6 +91095,9 @@ label_BFC1DA70: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC1DA70) goto label_BFC1DBE4; label_BFC1DA78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DA78: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -74155,6 +91114,9 @@ label_BFC1DA78: /* nop */ if (psx_taken_BFC1DA88) goto label_BFC1DAA0; label_BFC1DA90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DA90: 0C00D660 jal 0xB0035980 */ /* 0xBFC1DA94: 00000000 nop */ @@ -74162,6 +91124,9 @@ label_BFC1DA90: cpu->gpr[31] = 0x80035A98u; psx_dispatch(cpu, 0x80035980u); label_BFC1DA98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DA98: 10000007 beq $zero, $zero, 0xBFC1DAB8 */ uint32_t psx_brA_BFC1DA98 = cpu->gpr[0]; uint32_t psx_brB_BFC1DA98 = cpu->gpr[0]; @@ -74170,6 +91135,9 @@ label_BFC1DA98: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1DA9Cu); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } if (psx_taken_BFC1DA98) goto label_BFC1DAB8; label_BFC1DAA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DAA0: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -74180,16 +91148,25 @@ label_BFC1DAA0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25096)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1DAA8u); return; } g_debug_last_store_pc = 0xBFC1DAA8u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC1DAA4) goto label_BFC1DAB4; label_BFC1DAAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DAAC: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; /* 0xBFC1DAB0: AC209DF8 sw $zero, -25096($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25096)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1DAB0u); return; } g_debug_last_store_pc = 0xBFC1DAB0u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC1DAB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DAB4: 8FAA0020 lw $t2, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1DAB4u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } label_BFC1DAB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DAB8: 00000000 nop */ /* nop */ @@ -74200,6 +91177,9 @@ label_BFC1DAB8: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC1DABC) goto label_BFC1DBE4; label_BFC1DAC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DAC4: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -74214,6 +91194,9 @@ label_BFC1DAC4: cpu->gpr[1] = 0x80060000u; if (psx_taken_BFC1DAD0) goto label_BFC1DBE0; label_BFC1DAD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DAD8: AC206940 sw $zero, 26944($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26944)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1DAD8u); return; } g_debug_last_store_pc = 0xBFC1DAD8u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -74231,6 +91214,9 @@ label_BFC1DAD8: cpu->gpr[31] = 0x80035AF4u; psx_dispatch(cpu, 0x800393FCu); label_BFC1DAF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DAF4: 14400005 bne $v0, $zero, 0xBFC1DB0C */ uint32_t psx_brA_BFC1DAF4 = cpu->gpr[2]; uint32_t psx_brB_BFC1DAF4 = cpu->gpr[0]; @@ -74239,6 +91225,9 @@ label_BFC1DAF4: /* nop */ if (psx_taken_BFC1DAF4) goto label_BFC1DB0C; label_BFC1DAFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DAFC: 0C00D660 jal 0xB0035980 */ /* 0xBFC1DB00: 00000000 nop */ @@ -74246,6 +91235,9 @@ label_BFC1DAFC: cpu->gpr[31] = 0x80035B04u; psx_dispatch(cpu, 0x80035980u); label_BFC1DB04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DB04: 10000037 beq $zero, $zero, 0xBFC1DBE4 */ uint32_t psx_brA_BFC1DB04 = cpu->gpr[0]; uint32_t psx_brB_BFC1DB04 = cpu->gpr[0]; @@ -74254,6 +91246,9 @@ label_BFC1DB04: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC1DB04) goto label_BFC1DBE4; label_BFC1DB0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DB0C: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -74268,6 +91263,9 @@ label_BFC1DB0C: /* nop */ if (psx_taken_BFC1DB18) goto label_BFC1DB30; label_BFC1DB20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DB20: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -74280,6 +91278,9 @@ label_BFC1DB20: /* nop */ if (psx_taken_BFC1DB28) goto label_BFC1DB60; label_BFC1DB30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DB30: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -74296,6 +91297,9 @@ label_BFC1DB30: /* nop */ if (psx_taken_BFC1DB40) goto label_BFC1DB60; label_BFC1DB48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DB48: 240F0001 addiu $t7, $zero, 1 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -74312,6 +91316,9 @@ label_BFC1DB48: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1DB5Cu); return; } g_debug_last_store_pc = 0xBFC1DB5Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC1DB58) goto label_BFC1DB78; label_BFC1DB60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DB60: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -74326,10 +91333,16 @@ label_BFC1DB60: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1DB6C) goto label_BFC1DB78; label_BFC1DB74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DB74: AC209EB0 sw $zero, -24912($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24912)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1DB74u); return; } g_debug_last_store_pc = 0xBFC1DB74u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC1DB78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DB78: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -74346,6 +91359,9 @@ label_BFC1DB78: /* nop */ if (psx_taken_BFC1DB88) goto label_BFC1DBE0; label_BFC1DB90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DB90: 30490040 andi $t1, $v0, 0x40 */ cpu->gpr[9] = cpu->gpr[2] & 0x40u; @@ -74356,6 +91372,9 @@ label_BFC1DB90: cpu->gpr[11] = cpu->gpr[2] & 0x80u; if (psx_taken_BFC1DB94) goto label_BFC1DBB0; label_BFC1DB9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DB9C: 240A0001 addiu $t2, $zero, 1 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -74368,10 +91387,16 @@ label_BFC1DB9C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1DBA8u); return; } g_debug_last_store_pc = 0xBFC1DBA8u; cpu->write_word(psx_addr, cpu->gpr[10]); } if (psx_taken_BFC1DBA4) goto label_BFC1DBC4; label_BFC1DBAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DBAC: 304B0080 andi $t3, $v0, 0x80 */ cpu->gpr[11] = cpu->gpr[2] & 0x80u; label_BFC1DBB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DBB0: 11600004 beq $t3, $zero, 0xBFC1DBC4 */ uint32_t psx_brA_BFC1DBB0 = cpu->gpr[11]; uint32_t psx_brB_BFC1DBB0 = cpu->gpr[0]; @@ -74380,6 +91405,9 @@ label_BFC1DBB0: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1DBB0) goto label_BFC1DBC4; label_BFC1DBB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DBB8: AC209DF4 sw $zero, -25100($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1DBB8u); return; } g_debug_last_store_pc = 0xBFC1DBB8u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -74388,6 +91416,9 @@ label_BFC1DBB8: /* 0xBFC1DBC0: AC209DFC sw $zero, -25092($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25092)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1DBC0u); return; } g_debug_last_store_pc = 0xBFC1DBC0u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC1DBC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DBC4: 304C0010 andi $t4, $v0, 0x10 */ cpu->gpr[12] = cpu->gpr[2] & 0x10u; @@ -74398,6 +91429,9 @@ label_BFC1DBC4: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1DBC8) goto label_BFC1DBE0; label_BFC1DBD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DBD0: AC209DF4 sw $zero, -25100($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1DBD0u); return; } g_debug_last_store_pc = 0xBFC1DBD0u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -74408,10 +91442,16 @@ label_BFC1DBD0: /* 0xBFC1DBDC: AC2D9E00 sw $t5, -25088($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25088)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1DBDCu); return; } g_debug_last_store_pc = 0xBFC1DBDCu; cpu->write_word(psx_addr, cpu->gpr[13]); } label_BFC1DBE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DBE0: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC1DBE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DBE4: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1DBE4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -74449,6 +91489,9 @@ void func_1FC1DBF4(CPUState* cpu) { } } label_BFC1DBF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DBF4: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -74460,6 +91503,9 @@ label_BFC1DBF4: cpu->gpr[31] = 0x80035C04u; psx_dispatch(cpu, 0x8005A930u); label_BFC1DC04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DC04: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -74470,6 +91516,9 @@ label_BFC1DC04: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24892)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1DC0Cu); return; } g_debug_last_store_pc = 0xBFC1DC0Cu; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC1DC08) goto label_BFC1DDC8; label_BFC1DC10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DC10: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -74507,6 +91556,9 @@ label_BFC1DC10: cpu->gpr[31] = 0x80035C54u; psx_dispatch(cpu, 0x8005A9C0u); label_BFC1DC54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DC54: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -74550,6 +91602,9 @@ label_BFC1DC54: cpu->gpr[31] = 0x80035CA4u; psx_dispatch(cpu, 0x8005A9C0u); label_BFC1DCA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DCA4: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -74565,6 +91620,9 @@ label_BFC1DCA4: cpu->gpr[31] = 0x80035CBCu; psx_dispatch(cpu, 0x8005A9D0u); label_BFC1DCBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DCBC: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -74584,6 +91642,9 @@ label_BFC1DCBC: cpu->gpr[31] = 0x80035CDCu; psx_dispatch(cpu, 0x8005A9D0u); label_BFC1DCDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DCDC: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -74603,6 +91664,9 @@ label_BFC1DCDC: cpu->gpr[31] = 0x80035CFCu; psx_dispatch(cpu, 0x8005A9D0u); label_BFC1DCFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DCFC: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -74622,6 +91686,9 @@ label_BFC1DCFC: cpu->gpr[31] = 0x80035D1Cu; psx_dispatch(cpu, 0x8005A9D0u); label_BFC1DD1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DD1C: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -74641,6 +91708,9 @@ label_BFC1DD1C: cpu->gpr[31] = 0x80035D3Cu; psx_dispatch(cpu, 0x8005A9D0u); label_BFC1DD3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DD3C: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -74660,6 +91730,9 @@ label_BFC1DD3C: cpu->gpr[31] = 0x80035D5Cu; psx_dispatch(cpu, 0x8005A9D0u); label_BFC1DD5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DD5C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -74673,6 +91746,9 @@ label_BFC1DD5C: cpu->gpr[31] = 0x80035D70u; psx_dispatch(cpu, 0x8005A9E0u); label_BFC1DD70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DD70: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -74684,6 +91760,9 @@ label_BFC1DD70: cpu->gpr[31] = 0x80035D80u; psx_dispatch(cpu, 0x8005A9E0u); label_BFC1DD80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DD80: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -74695,6 +91774,9 @@ label_BFC1DD80: cpu->gpr[31] = 0x80035D90u; psx_dispatch(cpu, 0x8005A9E0u); label_BFC1DD90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DD90: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -74706,6 +91788,9 @@ label_BFC1DD90: cpu->gpr[31] = 0x80035DA0u; psx_dispatch(cpu, 0x8005A9E0u); label_BFC1DDA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DDA0: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -74717,6 +91802,9 @@ label_BFC1DDA0: cpu->gpr[31] = 0x80035DB0u; psx_dispatch(cpu, 0x8005A9E0u); label_BFC1DDB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DDB0: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -74728,6 +91816,9 @@ label_BFC1DDB0: cpu->gpr[31] = 0x80035DC0u; psx_dispatch(cpu, 0x8005A9E0u); label_BFC1DDC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DDC0: 0C015C24 jal 0xB0057090 */ /* 0xBFC1DDC4: 00000000 nop */ @@ -74735,6 +91826,9 @@ label_BFC1DDC0: cpu->gpr[31] = 0x80035DC8u; psx_dispatch(cpu, 0x80057090u); label_BFC1DDC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DDC8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1DDC8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -74758,6 +91852,9 @@ void func_1FC1DDD8(CPUState* cpu) { } } label_BFC1DDD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DDD8: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -74775,6 +91872,9 @@ label_BFC1DDD8: cpu->gpr[31] = 0x80035DF4u; psx_dispatch(cpu, 0x800316C8u); label_BFC1DDF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DDF4: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -74818,6 +91918,9 @@ label_BFC1DDF4: cpu->gpr[31] = 0x80035E44u; psx_dispatch(cpu, 0x800349A8u); label_BFC1DE44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DE44: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; @@ -74846,6 +91949,9 @@ label_BFC1DE44: /* 0xBFC1DE74: 24639EA8 addiu $v1, $v1, -24920 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (-24920)); label_BFC1DE78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DE78: A0400000 sb $zero, 0($v0) */ g_debug_last_store_pc = 0xBFC1DE78u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[2] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -74862,6 +91968,9 @@ label_BFC1DE78: g_debug_last_store_pc = 0xBFC1DE8Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[2] + (-1)), (uint8_t)(cpu->gpr[0] & 0xFFu)); if (psx_taken_BFC1DE88) goto label_BFC1DE78; label_BFC1DE90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DE90: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; @@ -74878,6 +91987,9 @@ label_BFC1DE90: /* 0xBFC1DEA8: 2463A100 addiu $v1, $v1, -24320 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (-24320)); label_BFC1DEAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DEAC: A0400000 sb $zero, 0($v0) */ g_debug_last_store_pc = 0xBFC1DEACu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[2] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -74894,6 +92006,9 @@ label_BFC1DEAC: g_debug_last_store_pc = 0xBFC1DEC0u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[2] + (-1)), (uint8_t)(cpu->gpr[0] & 0xFFu)); if (psx_taken_BFC1DEBC) goto label_BFC1DEAC; label_BFC1DEC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DEC4: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; @@ -74906,6 +92021,9 @@ label_BFC1DEC4: /* 0xBFC1DED4: 2463A108 addiu $v1, $v1, -24312 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (-24312)); label_BFC1DED8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DED8: A0400000 sb $zero, 0($v0) */ g_debug_last_store_pc = 0xBFC1DED8u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[2] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -74922,6 +92040,9 @@ label_BFC1DED8: g_debug_last_store_pc = 0xBFC1DEECu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[2] + (-1)), (uint8_t)(cpu->gpr[0] & 0xFFu)); if (psx_taken_BFC1DEE8) goto label_BFC1DED8; label_BFC1DEF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(24u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DEF0: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -74985,6 +92106,9 @@ void func_1FC1DF50(CPUState* cpu) { } } label_BFC1DF50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DF50: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -75021,6 +92145,9 @@ label_BFC1DF50: /* 0xBFC1DF90: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC1DF94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DF94: A0600002 sb $zero, 2($v1) */ g_debug_last_store_pc = 0xBFC1DF94u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[3] + (2)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -75039,6 +92166,9 @@ label_BFC1DF94: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1)); if (psx_taken_BFC1DFA8) goto label_BFC1DF94; label_BFC1DFB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DFB0: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; @@ -75058,6 +92188,9 @@ label_BFC1DFB0: cpu->gpr[31] = 0x80035FD0u; psx_dispatch(cpu, 0x800393FCu); label_BFC1DFD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DFD0: 1040FFF7 beq $v0, $zero, 0xBFC1DFB0 */ uint32_t psx_brA_BFC1DFD0 = cpu->gpr[2]; uint32_t psx_brB_BFC1DFD0 = cpu->gpr[0]; @@ -75066,6 +92199,9 @@ label_BFC1DFD0: /* nop */ if (psx_taken_BFC1DFD0) goto label_BFC1DFB0; label_BFC1DFD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DFD8: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -75080,6 +92216,9 @@ label_BFC1DFD8: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1DFE4) goto label_BFC1DFF4; label_BFC1DFEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DFEC: 1000FFF0 beq $zero, $zero, 0xBFC1DFB0 */ uint32_t psx_brA_BFC1DFEC = cpu->gpr[0]; uint32_t psx_brB_BFC1DFEC = cpu->gpr[0]; @@ -75088,6 +92227,9 @@ label_BFC1DFEC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24912)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1DFF0u); return; } g_debug_last_store_pc = 0xBFC1DFF0u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC1DFEC) goto label_BFC1DFB0; label_BFC1DFF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC1DFF4: 3C0A800F lui $t2, 0x800F */ cpu->gpr[10] = 0x800F0000u; @@ -75115,6 +92257,9 @@ label_BFC1DFF4: cpu->gpr[31] = 0x80036024u; psx_dispatch(cpu, 0x8005A910u); label_BFC1E024: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E024: 3C0B800F lui $t3, 0x800F */ cpu->gpr[11] = 0x800F0000u; @@ -75131,6 +92276,9 @@ label_BFC1E024: /* nop */ if (psx_taken_BFC1E034) goto label_BFC1E044; label_BFC1E03C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E03C: 1000001D beq $zero, $zero, 0xBFC1E0B4 */ uint32_t psx_brA_BFC1E03C = cpu->gpr[0]; uint32_t psx_brB_BFC1E03C = cpu->gpr[0]; @@ -75139,6 +92287,9 @@ label_BFC1E03C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC1E03C) goto label_BFC1E0B4; label_BFC1E044: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E044: 3C0C800F lui $t4, 0x800F */ cpu->gpr[12] = 0x800F0000u; @@ -75153,6 +92304,9 @@ label_BFC1E044: cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC1E050) goto label_BFC1E0A8; label_BFC1E058: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E058: 3C06800F lui $a2, 0x800F */ cpu->gpr[6] = 0x800F0000u; @@ -75169,6 +92323,9 @@ label_BFC1E058: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (7)); if (psx_taken_BFC1E068) goto label_BFC1E07C; label_BFC1E070: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E070: 10000010 beq $zero, $zero, 0xBFC1E0B4 */ uint32_t psx_brA_BFC1E070 = cpu->gpr[0]; uint32_t psx_brB_BFC1E070 = cpu->gpr[0]; @@ -75177,10 +92334,16 @@ label_BFC1E070: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC1E070) goto label_BFC1E0B4; label_BFC1E078: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E078: 24010007 addiu $at, $zero, 7 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (7)); label_BFC1E07C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E07C: 14C1000A bne $a2, $at, 0xBFC1E0A8 */ uint32_t psx_brA_BFC1E07C = cpu->gpr[6]; uint32_t psx_brB_BFC1E07C = cpu->gpr[1]; @@ -75189,6 +92352,9 @@ label_BFC1E07C: cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC1E07C) goto label_BFC1E0A8; label_BFC1E084: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E084: 3C0D800F lui $t5, 0x800F */ cpu->gpr[13] = 0x800F0000u; @@ -75205,6 +92371,9 @@ label_BFC1E084: cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC1E094) goto label_BFC1E0A8; label_BFC1E09C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E09C: 10000005 beq $zero, $zero, 0xBFC1E0B4 */ uint32_t psx_brA_BFC1E09C = cpu->gpr[0]; uint32_t psx_brB_BFC1E09C = cpu->gpr[0]; @@ -75213,10 +92382,16 @@ label_BFC1E09C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC1E09C) goto label_BFC1E0B4; label_BFC1E0A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E0A4: 240E0001 addiu $t6, $zero, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC1E0A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E0A8: 3C0FA001 lui $t7, 0xA001 */ cpu->gpr[15] = 0xA0010000u; @@ -75225,6 +92400,9 @@ label_BFC1E0A8: /* 0xBFC1E0B0: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC1E0B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E0B4: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E0B4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -75248,6 +92426,9 @@ void func_1FC1E0C4(CPUState* cpu) { } } label_BFC1E0C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E0C4: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -75263,6 +92444,9 @@ label_BFC1E0C4: cpu->gpr[31] = 0x800360DCu; psx_dispatch(cpu, 0x8005A9F0u); label_BFC1E0DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E0DC: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -75282,6 +92466,9 @@ label_BFC1E0DC: cpu->gpr[31] = 0x800360FCu; psx_dispatch(cpu, 0x8005A9F0u); label_BFC1E0FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E0FC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E0FCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -75305,6 +92492,9 @@ void func_1FC1E10C(CPUState* cpu) { } } label_BFC1E10C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E10C: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -75315,6 +92505,9 @@ label_BFC1E10C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E114u); return; } g_debug_last_store_pc = 0xBFC1E114u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC1E110) goto label_BFC1E130; label_BFC1E118: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E118: 240E0025 addiu $t6, $zero, 37 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (37)); @@ -75331,6 +92524,9 @@ label_BFC1E118: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26964)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E12Cu); return; } g_debug_last_store_pc = 0xBFC1E12Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC1E128) goto label_BFC1E160; label_BFC1E130: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E130: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -75341,6 +92537,9 @@ label_BFC1E130: /* nop */ if (psx_taken_BFC1E134) goto label_BFC1E160; label_BFC1E13C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E13C: 240F0027 addiu $t7, $zero, 39 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (39)); @@ -75361,6 +92560,9 @@ label_BFC1E13C: /* 0xBFC1E15C: AC39695C sw $t9, 26972($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26972)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E15Cu); return; } g_debug_last_store_pc = 0xBFC1E15Cu; cpu->write_word(psx_addr, cpu->gpr[25]); } label_BFC1E160: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E160: 3C088006 lui $t0, 0x8006 */ cpu->gpr[8] = 0x80060000u; @@ -75386,6 +92588,9 @@ label_BFC1E160: cpu->gpr[31] = 0x8003618Cu; psx_dispatch(cpu, 0x800393FCu); label_BFC1E18C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E18C: 14400003 bne $v0, $zero, 0xBFC1E19C */ uint32_t psx_brA_BFC1E18C = cpu->gpr[2]; uint32_t psx_brB_BFC1E18C = cpu->gpr[0]; @@ -75394,6 +92599,9 @@ label_BFC1E18C: /* nop */ if (psx_taken_BFC1E18C) goto label_BFC1E19C; label_BFC1E194: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E194: 0C00DF32 jal 0xB0037CC8 */ /* 0xBFC1E198: 00000000 nop */ @@ -75401,6 +92609,9 @@ label_BFC1E194: cpu->gpr[31] = 0x8003619Cu; psx_dispatch(cpu, 0x80037CC8u); label_BFC1E19C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E19C: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -75415,10 +92626,16 @@ label_BFC1E19C: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1E1A8) goto label_BFC1E1B4; label_BFC1E1B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E1B0: AC209EB0 sw $zero, -24912($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24912)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E1B0u); return; } g_debug_last_store_pc = 0xBFC1E1B0u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC1E1B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E1B4: 8FAB0024 lw $t3, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E1B4u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -75459,6 +92676,9 @@ void func_1FC1E1CC(CPUState* cpu) { } } label_BFC1E1CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E1CC: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; @@ -75479,6 +92699,9 @@ label_BFC1E1CC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E1E8u); return; } g_debug_last_store_pc = 0xBFC1E1E8u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC1E1E4) { cpu->pc = 0xBFC1E3BCu; return; } label_BFC1E1EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E1EC: 000E7080 sll $t6, $t6, 2 */ cpu->gpr[14] = cpu->gpr[14] << 2u; @@ -75513,6 +92736,9 @@ label_BFC1E1EC: default: cpu->pc = cpu->gpr[14]; return; } label_BFC1E208: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E208: 0C00E2F9 jal 0xB0038BE4 */ /* 0xBFC1E20C: 00000000 nop */ @@ -75520,6 +92746,9 @@ label_BFC1E208: cpu->gpr[31] = 0x80036210u; psx_dispatch(cpu, 0x80038BE4u); label_BFC1E210: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E210: 1000006B beq $zero, $zero, 0xBFC1E3C0 */ uint32_t psx_brA_BFC1E210 = cpu->gpr[0]; uint32_t psx_brB_BFC1E210 = cpu->gpr[0]; @@ -75528,6 +92757,9 @@ label_BFC1E210: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E214u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1E210) { cpu->pc = 0xBFC1E3C0u; return; } label_BFC1E218: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E218: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -75539,6 +92771,9 @@ label_BFC1E218: cpu->gpr[31] = 0x80036228u; psx_dispatch(cpu, 0x80038F24u); label_BFC1E228: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E228: 240F0033 addiu $t7, $zero, 51 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (51)); @@ -75571,6 +92806,9 @@ label_BFC1E228: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26960)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E25Cu); return; } g_debug_last_store_pc = 0xBFC1E25Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC1E258) { cpu->pc = 0xBFC1E3BCu; return; } label_BFC1E260: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E260: 0C00E3E3 jal 0xB0038F8C */ /* 0xBFC1E264: 00000000 nop */ @@ -75578,6 +92816,9 @@ label_BFC1E260: cpu->gpr[31] = 0x80036268u; psx_dispatch(cpu, 0x80038F8Cu); label_BFC1E268: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E268: 2408003A addiu $t0, $zero, 58 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (58)); @@ -75600,6 +92841,9 @@ label_BFC1E268: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26960)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E288u); return; } g_debug_last_store_pc = 0xBFC1E288u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC1E284) { cpu->pc = 0xBFC1E3BCu; return; } label_BFC1E28C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E28C: 0C00E3FA jal 0xB0038FE8 */ /* 0xBFC1E290: 00000000 nop */ @@ -75607,6 +92851,9 @@ label_BFC1E28C: cpu->gpr[31] = 0x80036294u; psx_dispatch(cpu, 0x80038FE8u); label_BFC1E294: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E294: 240A003B addiu $t2, $zero, 59 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (59)); @@ -75629,6 +92876,9 @@ label_BFC1E294: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26960)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E2B4u); return; } g_debug_last_store_pc = 0xBFC1E2B4u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC1E2B0) { cpu->pc = 0xBFC1E3BCu; return; } label_BFC1E2B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E2B8: 0C00E3B2 jal 0xB0038EC8 */ /* 0xBFC1E2BC: 00000000 nop */ @@ -75636,6 +92886,9 @@ label_BFC1E2B8: cpu->gpr[31] = 0x800362C0u; psx_dispatch(cpu, 0x80038EC8u); label_BFC1E2C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E2C0: 240C000B addiu $t4, $zero, 11 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[0] + (11)); @@ -75648,6 +92901,9 @@ label_BFC1E2C0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26952)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E2CCu); return; } g_debug_last_store_pc = 0xBFC1E2CCu; cpu->write_word(psx_addr, cpu->gpr[12]); } if (psx_taken_BFC1E2C8) { cpu->pc = 0xBFC1E3BCu; return; } label_BFC1E2D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E2D0: 0C00E384 jal 0xB0038E10 */ /* 0xBFC1E2D4: 00000000 nop */ @@ -75655,6 +92911,9 @@ label_BFC1E2D0: cpu->gpr[31] = 0x800362D8u; psx_dispatch(cpu, 0x80038E10u); label_BFC1E2D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E2D8: 10000039 beq $zero, $zero, 0xBFC1E3C0 */ uint32_t psx_brA_BFC1E2D8 = cpu->gpr[0]; uint32_t psx_brB_BFC1E2D8 = cpu->gpr[0]; @@ -75663,6 +92922,9 @@ label_BFC1E2D8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E2DCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1E2D8) { cpu->pc = 0xBFC1E3C0u; return; } label_BFC1E2E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E2E0: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -75682,6 +92944,9 @@ label_BFC1E2E0: cpu->gpr[31] = 0x80036300u; psx_dispatch(cpu, 0x80038C64u); label_BFC1E300: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E300: 1000002F beq $zero, $zero, 0xBFC1E3C0 */ uint32_t psx_brA_BFC1E300 = cpu->gpr[0]; uint32_t psx_brB_BFC1E300 = cpu->gpr[0]; @@ -75690,6 +92955,9 @@ label_BFC1E300: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E304u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1E300) { cpu->pc = 0xBFC1E3C0u; return; } label_BFC1E308: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E308: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -75699,6 +92967,9 @@ label_BFC1E308: cpu->gpr[31] = 0x80036314u; psx_dispatch(cpu, 0x80038CE4u); label_BFC1E314: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E314: 1000002A beq $zero, $zero, 0xBFC1E3C0 */ uint32_t psx_brA_BFC1E314 = cpu->gpr[0]; uint32_t psx_brB_BFC1E314 = cpu->gpr[0]; @@ -75707,6 +92978,9 @@ label_BFC1E314: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E318u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1E314) { cpu->pc = 0xBFC1E3C0u; return; } label_BFC1E31C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E31C: 0C00E44A jal 0xB0039128 */ /* 0xBFC1E320: 00000000 nop */ @@ -75714,6 +92988,9 @@ label_BFC1E31C: cpu->gpr[31] = 0x80036324u; psx_dispatch(cpu, 0x80039128u); label_BFC1E324: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E324: 10000026 beq $zero, $zero, 0xBFC1E3C0 */ uint32_t psx_brA_BFC1E324 = cpu->gpr[0]; uint32_t psx_brB_BFC1E324 = cpu->gpr[0]; @@ -75722,6 +92999,9 @@ label_BFC1E324: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E328u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1E324) { cpu->pc = 0xBFC1E3C0u; return; } label_BFC1E32C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E32C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -75733,6 +93013,9 @@ label_BFC1E32C: cpu->gpr[31] = 0x8003633Cu; psx_dispatch(cpu, 0x80039044u); label_BFC1E33C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E33C: 10000020 beq $zero, $zero, 0xBFC1E3C0 */ uint32_t psx_brA_BFC1E33C = cpu->gpr[0]; uint32_t psx_brB_BFC1E33C = cpu->gpr[0]; @@ -75741,6 +93024,9 @@ label_BFC1E33C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E340u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1E33C) { cpu->pc = 0xBFC1E3C0u; return; } label_BFC1E344: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E344: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -75750,6 +93036,9 @@ label_BFC1E344: cpu->gpr[31] = 0x80036350u; psx_dispatch(cpu, 0x800390C0u); label_BFC1E350: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E350: 1000001B beq $zero, $zero, 0xBFC1E3C0 */ uint32_t psx_brA_BFC1E350 = cpu->gpr[0]; uint32_t psx_brB_BFC1E350 = cpu->gpr[0]; @@ -75758,6 +93047,9 @@ label_BFC1E350: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E354u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1E350) { cpu->pc = 0xBFC1E3C0u; return; } label_BFC1E358: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E358: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -75771,6 +93063,9 @@ label_BFC1E358: cpu->gpr[31] = 0x8003636Cu; psx_dispatch(cpu, 0x80039200u); label_BFC1E36C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E36C: 10000014 beq $zero, $zero, 0xBFC1E3C0 */ uint32_t psx_brA_BFC1E36C = cpu->gpr[0]; uint32_t psx_brB_BFC1E36C = cpu->gpr[0]; @@ -75779,6 +93074,9 @@ label_BFC1E36C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E370u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1E36C) { cpu->pc = 0xBFC1E3C0u; return; } label_BFC1E374: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E374: 0C00E4B1 jal 0xB00392C4 */ /* 0xBFC1E378: 00000000 nop */ @@ -75786,6 +93084,9 @@ label_BFC1E374: cpu->gpr[31] = 0x8003637Cu; psx_dispatch(cpu, 0x800392C4u); label_BFC1E37C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E37C: 10000010 beq $zero, $zero, 0xBFC1E3C0 */ uint32_t psx_brA_BFC1E37C = cpu->gpr[0]; uint32_t psx_brB_BFC1E37C = cpu->gpr[0]; @@ -75794,6 +93095,9 @@ label_BFC1E37C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E380u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1E37C) { cpu->pc = 0xBFC1E3C0u; return; } label_BFC1E384: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E384: 0C00E36D jal 0xB0038DB4 */ /* 0xBFC1E388: 00000000 nop */ @@ -75801,6 +93105,9 @@ label_BFC1E384: cpu->gpr[31] = 0x8003638Cu; psx_dispatch(cpu, 0x80038DB4u); label_BFC1E38C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E38C: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; @@ -75811,6 +93118,9 @@ label_BFC1E38C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26960)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E394u); return; } g_debug_last_store_pc = 0xBFC1E394u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC1E390) { cpu->pc = 0xBFC1E3BCu; return; } label_BFC1E398: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E398: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -75820,6 +93130,9 @@ label_BFC1E398: cpu->gpr[31] = 0x800363A4u; psx_dispatch(cpu, 0x80038D4Cu); label_BFC1E3A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E3A4: 10000006 beq $zero, $zero, 0xBFC1E3C0 */ uint32_t psx_brA_BFC1E3A4 = cpu->gpr[0]; uint32_t psx_brB_BFC1E3A4 = cpu->gpr[0]; @@ -75842,6 +93155,9 @@ void func_1FC1E3AC(CPUState* cpu) { } } label_BFC1E3AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E3AC: 0C00E4C8 jal 0xB0039320 */ /* 0xBFC1E3B0: 00000000 nop */ @@ -75849,6 +93165,9 @@ label_BFC1E3AC: cpu->gpr[31] = 0x800363B4u; psx_dispatch(cpu, 0x80039320u); label_BFC1E3B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E3B4: 10000002 beq $zero, $zero, 0xBFC1E3C0 */ uint32_t psx_brA_BFC1E3B4 = cpu->gpr[0]; uint32_t psx_brB_BFC1E3B4 = cpu->gpr[0]; @@ -75857,6 +93176,9 @@ label_BFC1E3B4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E3B8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1E3B4) { cpu->pc = 0xBFC1E3C0u; return; } label_BFC1E3BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E3BC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E3BCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -75866,6 +93188,9 @@ label_BFC1E3BC: void func_1FC1E3C0(CPUState* cpu) { debug_server_log_call_entry(0x1FC1E3C0u); label_BFC1E3C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E3C0: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -75977,6 +93302,9 @@ void func_1FC1E3CC(CPUState* cpu) { } } label_BFC1E3CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E3CC: 27BDFF88 addiu $sp, $sp, -120 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-120)); @@ -75992,6 +93320,9 @@ label_BFC1E3CC: cpu->gpr[31] = 0x800363E4u; psx_dispatch(cpu, 0x8005AA00u); label_BFC1E3E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E3E4: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -76002,6 +93333,9 @@ label_BFC1E3E4: /* nop */ if (psx_taken_BFC1E3E8) goto label_BFC1E630; label_BFC1E3F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E3F0: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -76022,6 +93356,9 @@ label_BFC1E3F0: /* nop */ if (psx_taken_BFC1E408) goto label_BFC1E578; label_BFC1E410: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E410: 000E7080 sll $t6, $t6, 2 */ cpu->gpr[14] = cpu->gpr[14] << 2u; @@ -76050,6 +93387,9 @@ label_BFC1E410: default: cpu->pc = cpu->gpr[14]; return; } label_BFC1E42C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E42C: 240F0032 addiu $t7, $zero, 50 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (50)); @@ -76067,6 +93407,9 @@ label_BFC1E42C: cpu->gpr[31] = 0x80036448u; psx_dispatch(cpu, 0x80032A90u); label_BFC1E448: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E448: 1000004B beq $zero, $zero, 0xBFC1E578 */ uint32_t psx_brA_BFC1E448 = cpu->gpr[0]; uint32_t psx_brB_BFC1E448 = cpu->gpr[0]; @@ -76075,6 +93418,9 @@ label_BFC1E448: /* nop */ if (psx_taken_BFC1E448) goto label_BFC1E578; label_BFC1E450: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E450: 24190034 addiu $t9, $zero, 52 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); @@ -76096,6 +93442,9 @@ label_BFC1E450: cpu->gpr[31] = 0x80036474u; psx_dispatch(cpu, 0x80032A90u); label_BFC1E474: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E474: 10000040 beq $zero, $zero, 0xBFC1E578 */ uint32_t psx_brA_BFC1E474 = cpu->gpr[0]; uint32_t psx_brB_BFC1E474 = cpu->gpr[0]; @@ -76104,6 +93453,9 @@ label_BFC1E474: /* nop */ if (psx_taken_BFC1E474) goto label_BFC1E578; label_BFC1E47C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E47C: 24090036 addiu $t1, $zero, 54 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (54)); @@ -76116,6 +93468,9 @@ label_BFC1E47C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26944)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E488u); return; } g_debug_last_store_pc = 0xBFC1E488u; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC1E484) goto label_BFC1E578; label_BFC1E48C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E48C: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -76146,6 +93501,9 @@ label_BFC1E48C: /* nop */ if (psx_taken_BFC1E4B8) goto label_BFC1E578; label_BFC1E4C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E4C0: 000B5880 sll $t3, $t3, 2 */ cpu->gpr[11] = cpu->gpr[11] << 2u; @@ -76171,6 +93529,9 @@ label_BFC1E4C0: default: cpu->pc = cpu->gpr[11]; return; } label_BFC1E4DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E4DC: 2404000B addiu $a0, $zero, 11 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (11)); @@ -76183,6 +93544,9 @@ label_BFC1E4DC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26948)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E4E8u); return; } g_debug_last_store_pc = 0xBFC1E4E8u; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC1E4E4) goto label_BFC1E578; label_BFC1E4EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E4EC: 240C0034 addiu $t4, $zero, 52 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); @@ -76201,6 +93565,9 @@ label_BFC1E4EC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26952)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E504u); return; } g_debug_last_store_pc = 0xBFC1E504u; cpu->write_word(psx_addr, cpu->gpr[13]); } if (psx_taken_BFC1E500) goto label_BFC1E578; label_BFC1E508: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E508: 24040014 addiu $a0, $zero, 20 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (20)); @@ -76213,6 +93580,9 @@ label_BFC1E508: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26948)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E514u); return; } g_debug_last_store_pc = 0xBFC1E514u; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC1E510) goto label_BFC1E578; label_BFC1E518: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E518: 24040012 addiu $a0, $zero, 18 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (18)); @@ -76225,6 +93595,9 @@ label_BFC1E518: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26948)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E524u); return; } g_debug_last_store_pc = 0xBFC1E524u; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC1E520) goto label_BFC1E578; label_BFC1E528: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E528: 24040013 addiu $a0, $zero, 19 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (19)); @@ -76237,6 +93610,9 @@ label_BFC1E528: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26948)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E534u); return; } g_debug_last_store_pc = 0xBFC1E534u; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC1E530) goto label_BFC1E578; label_BFC1E538: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E538: 240E0037 addiu $t6, $zero, 55 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (55)); @@ -76249,6 +93625,9 @@ label_BFC1E538: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26944)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E544u); return; } g_debug_last_store_pc = 0xBFC1E544u; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC1E540) goto label_BFC1E578; label_BFC1E548: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E548: 240F0038 addiu $t7, $zero, 56 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (56)); @@ -76261,6 +93640,9 @@ label_BFC1E548: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26944)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E554u); return; } g_debug_last_store_pc = 0xBFC1E554u; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC1E550) goto label_BFC1E578; label_BFC1E558: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E558: 2418003D addiu $t8, $zero, 61 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (61)); @@ -76273,6 +93655,9 @@ label_BFC1E558: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26944)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E564u); return; } g_debug_last_store_pc = 0xBFC1E564u; cpu->write_word(psx_addr, cpu->gpr[24]); } if (psx_taken_BFC1E560) goto label_BFC1E578; label_BFC1E568: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E568: 2419003E addiu $t9, $zero, 62 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (62)); @@ -76285,6 +93670,9 @@ label_BFC1E568: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26944)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E574u); return; } g_debug_last_store_pc = 0xBFC1E574u; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC1E570) goto label_BFC1E578; label_BFC1E578: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E578: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -76299,6 +93687,9 @@ label_BFC1E578: /* nop */ if (psx_taken_BFC1E584) goto label_BFC1E630; label_BFC1E58C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E58C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -76314,6 +93705,9 @@ label_BFC1E58C: cpu->gpr[31] = 0x800365A4u; psx_dispatch(cpu, 0x800361CCu); label_BFC1E5A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E5A4: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -76328,6 +93722,9 @@ label_BFC1E5A4: /* nop */ if (psx_taken_BFC1E5B0) goto label_BFC1E624; label_BFC1E5B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E5B8: 30A30003 andi $v1, $a1, 0x3 */ cpu->gpr[3] = cpu->gpr[5] & 0x3u; @@ -76338,6 +93735,9 @@ label_BFC1E5B8: /* nop */ if (psx_taken_BFC1E5BC) goto label_BFC1E5EC; label_BFC1E5C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E5C4: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -76346,6 +93746,9 @@ label_BFC1E5C4: /* 0xBFC1E5CC: 00891021 addu $v0, $a0, $t1 */ cpu->gpr[2] = cpu->gpr[4] + cpu->gpr[9]; label_BFC1E5D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E5D0: 904A0001 lbu $t2, 1($v0) */ cpu->gpr[10] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[2] + (1))); @@ -76360,6 +93763,9 @@ label_BFC1E5D0: g_debug_last_store_pc = 0xBFC1E5E0u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[2] + (-1)), (uint8_t)(cpu->gpr[10] & 0xFFu)); if (psx_taken_BFC1E5DC) goto label_BFC1E5D0; label_BFC1E5E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E5E4: 1085000F beq $a0, $a1, 0xBFC1E624 */ uint32_t psx_brA_BFC1E5E4 = cpu->gpr[4]; uint32_t psx_brB_BFC1E5E4 = cpu->gpr[5]; @@ -76368,6 +93774,9 @@ label_BFC1E5E4: /* nop */ if (psx_taken_BFC1E5E4) goto label_BFC1E624; label_BFC1E5EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E5EC: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -76378,6 +93787,9 @@ label_BFC1E5EC: /* 0xBFC1E5F8: 00AB1821 addu $v1, $a1, $t3 */ cpu->gpr[3] = cpu->gpr[5] + cpu->gpr[11]; label_BFC1E5FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E5FC: 904C0001 lbu $t4, 1($v0) */ cpu->gpr[12] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[2] + (1))); @@ -76402,6 +93814,9 @@ label_BFC1E5FC: g_debug_last_store_pc = 0xBFC1E620u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[2] + (-1)), (uint8_t)(cpu->gpr[15] & 0xFFu)); if (psx_taken_BFC1E61C) goto label_BFC1E5FC; label_BFC1E624: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E624: 24A5FFFF addiu $a1, $a1, -1 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (-1)); @@ -76410,6 +93825,9 @@ label_BFC1E624: /* 0xBFC1E62C: AC25694C sw $a1, 26956($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26956)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E62Cu); return; } g_debug_last_store_pc = 0xBFC1E62Cu; cpu->write_word(psx_addr, cpu->gpr[5]); } label_BFC1E630: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E630: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -76421,6 +93839,9 @@ label_BFC1E630: cpu->gpr[31] = 0x80036640u; psx_dispatch(cpu, 0x8005AA00u); label_BFC1E640: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E640: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -76431,6 +93852,9 @@ label_BFC1E640: /* nop */ if (psx_taken_BFC1E644) goto label_BFC1E8CC; label_BFC1E64C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E64C: 0C016A84 jal 0xB005AA10 */ /* 0xBFC1E650: 00000000 nop */ @@ -76438,6 +93862,9 @@ label_BFC1E64C: cpu->gpr[31] = 0x80036654u; psx_dispatch(cpu, 0x8005AA10u); label_BFC1E654: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E654: 3C188006 lui $t8, 0x8006 */ cpu->gpr[24] = 0x80060000u; @@ -76452,6 +93879,9 @@ label_BFC1E654: /* nop */ if (psx_taken_BFC1E660) goto label_BFC1E8CC; label_BFC1E668: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E668: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -76466,6 +93896,9 @@ label_BFC1E668: /* nop */ if (psx_taken_BFC1E674) goto label_BFC1E688; label_BFC1E67C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E67C: 2442FFFF addiu $v0, $v0, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (-1)); @@ -76474,6 +93907,9 @@ label_BFC1E67C: /* 0xBFC1E684: AC229E74 sw $v0, -24972($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24972)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E684u); return; } g_debug_last_store_pc = 0xBFC1E684u; cpu->write_word(psx_addr, cpu->gpr[2]); } label_BFC1E688: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E688: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -76483,6 +93919,9 @@ label_BFC1E688: cpu->gpr[31] = 0x80036694u; psx_dispatch(cpu, 0x8003925Cu); label_BFC1E694: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E694: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -76494,6 +93933,9 @@ label_BFC1E694: cpu->gpr[31] = 0x800366A4u; psx_dispatch(cpu, 0x800393A4u); label_BFC1E6A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E6A4: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -76509,6 +93951,9 @@ label_BFC1E6A4: cpu->gpr[31] = 0x800366BCu; psx_dispatch(cpu, 0x800393A4u); label_BFC1E6BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E6BC: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -76525,6 +93970,9 @@ label_BFC1E6BC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24916)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E6D0u); return; } g_debug_last_store_pc = 0xBFC1E6D0u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC1E6CC) goto label_BFC1E708; label_BFC1E6D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E6D4: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -76536,6 +93984,9 @@ label_BFC1E6D4: cpu->gpr[31] = 0x800366E4u; psx_dispatch(cpu, 0x800393A4u); label_BFC1E6E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E6E4: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -76551,6 +94002,9 @@ label_BFC1E6E4: cpu->gpr[31] = 0x800366FCu; psx_dispatch(cpu, 0x800393A4u); label_BFC1E6FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E6FC: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -76561,6 +94015,9 @@ label_BFC1E6FC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24988)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E704u); return; } g_debug_last_store_pc = 0xBFC1E704u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC1E700) goto label_BFC1E738; label_BFC1E708: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E708: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -76572,6 +94029,9 @@ label_BFC1E708: cpu->gpr[31] = 0x80036718u; psx_dispatch(cpu, 0x800393A4u); label_BFC1E718: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E718: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -76587,12 +94047,18 @@ label_BFC1E718: cpu->gpr[31] = 0x80036730u; psx_dispatch(cpu, 0x800393A4u); label_BFC1E730: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E730: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; /* 0xBFC1E734: AC229E58 sw $v0, -25000($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25000)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E734u); return; } g_debug_last_store_pc = 0xBFC1E734u; cpu->write_word(psx_addr, cpu->gpr[2]); } label_BFC1E738: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E738: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -76607,6 +94073,9 @@ label_BFC1E738: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1E744) goto label_BFC1E77C; label_BFC1E74C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E74C: AC209EAC sw $zero, -24916($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24916)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E74Cu); return; } g_debug_last_store_pc = 0xBFC1E74Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -76633,6 +94102,9 @@ label_BFC1E74C: /* 0xBFC1E778: AC2A9E64 sw $t2, -24988($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24988)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E778u); return; } g_debug_last_store_pc = 0xBFC1E778u; cpu->write_word(psx_addr, cpu->gpr[10]); } label_BFC1E77C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E77C: 3C0B8006 lui $t3, 0x8006 */ cpu->gpr[11] = 0x80060000u; @@ -76647,6 +94119,9 @@ label_BFC1E77C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25008)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E78Cu); return; } g_debug_last_store_pc = 0xBFC1E78Cu; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC1E788) goto label_BFC1E86C; label_BFC1E790: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E790: 0C00D262 jal 0xB0034988 */ /* 0xBFC1E794: 00000000 nop */ @@ -76654,6 +94129,9 @@ label_BFC1E790: cpu->gpr[31] = 0x80036798u; psx_dispatch(cpu, 0x80034988u); label_BFC1E798: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E798: 14400034 bne $v0, $zero, 0xBFC1E86C */ uint32_t psx_brA_BFC1E798 = cpu->gpr[2]; uint32_t psx_brB_BFC1E798 = cpu->gpr[0]; @@ -76662,6 +94140,9 @@ label_BFC1E798: /* nop */ if (psx_taken_BFC1E798) goto label_BFC1E86C; label_BFC1E7A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E7A0: 0C00D25E jal 0xB0034978 */ /* 0xBFC1E7A4: 00000000 nop */ @@ -76669,6 +94150,9 @@ label_BFC1E7A0: cpu->gpr[31] = 0x800367A8u; psx_dispatch(cpu, 0x80034978u); label_BFC1E7A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E7A8: 14400030 bne $v0, $zero, 0xBFC1E86C */ uint32_t psx_brA_BFC1E7A8 = cpu->gpr[2]; uint32_t psx_brB_BFC1E7A8 = cpu->gpr[0]; @@ -76677,6 +94161,9 @@ label_BFC1E7A8: /* nop */ if (psx_taken_BFC1E7A8) goto label_BFC1E86C; label_BFC1E7B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E7B0: 0C00CB89 jal 0xB0032E24 */ /* 0xBFC1E7B4: 00000000 nop */ @@ -76684,6 +94171,9 @@ label_BFC1E7B0: cpu->gpr[31] = 0x800367B8u; psx_dispatch(cpu, 0x80032E24u); label_BFC1E7B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E7B8: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -76694,6 +94184,9 @@ label_BFC1E7B8: /* nop */ if (psx_taken_BFC1E7BC) goto label_BFC1E86C; label_BFC1E7C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E7C4: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -76707,6 +94200,9 @@ label_BFC1E7C4: cpu->gpr[31] = 0x800367D8u; psx_dispatch(cpu, 0x80033D58u); label_BFC1E7D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E7D8: 14400024 bne $v0, $zero, 0xBFC1E86C */ uint32_t psx_brA_BFC1E7D8 = cpu->gpr[2]; uint32_t psx_brB_BFC1E7D8 = cpu->gpr[0]; @@ -76715,6 +94211,9 @@ label_BFC1E7D8: /* nop */ if (psx_taken_BFC1E7D8) goto label_BFC1E86C; label_BFC1E7E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E7E0: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -76735,6 +94234,9 @@ label_BFC1E7E0: cpu->gpr[17] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC1E7F8) goto label_BFC1E824; label_BFC1E800: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E800: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -76744,6 +94246,9 @@ label_BFC1E800: cpu->gpr[31] = 0x8003680Cu; psx_dispatch(cpu, 0x800336ECu); label_BFC1E80C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E80C: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -76760,6 +94265,9 @@ label_BFC1E80C: /* nop */ if (psx_taken_BFC1E81C) goto label_BFC1E800; label_BFC1E824: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E824: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -76778,6 +94286,9 @@ label_BFC1E824: cpu->gpr[17] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC1E838) goto label_BFC1E864; label_BFC1E840: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E840: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -76787,6 +94298,9 @@ label_BFC1E840: cpu->gpr[31] = 0x8003684Cu; psx_dispatch(cpu, 0x800336ECu); label_BFC1E84C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E84C: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -76803,12 +94317,18 @@ label_BFC1E84C: /* nop */ if (psx_taken_BFC1E85C) goto label_BFC1E840; label_BFC1E864: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E864: 8FB1002C lw $s1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E864u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } /* 0xBFC1E868: 00000000 nop */ /* nop */ label_BFC1E86C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E86C: 0C00C908 jal 0xB0032420 */ /* 0xBFC1E870: 00000000 nop */ @@ -76816,6 +94336,9 @@ label_BFC1E86C: cpu->gpr[31] = 0x80036874u; psx_dispatch(cpu, 0x80032420u); label_BFC1E874: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E874: 24010004 addiu $at, $zero, 4 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); @@ -76826,6 +94349,9 @@ label_BFC1E874: /* nop */ if (psx_taken_BFC1E878) goto label_BFC1E8AC; label_BFC1E880: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E880: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -76844,6 +94370,9 @@ label_BFC1E880: /* nop */ if (psx_taken_BFC1E894) goto label_BFC1E8AC; label_BFC1E89C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E89C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -76855,6 +94384,9 @@ label_BFC1E89C: cpu->gpr[31] = 0x800368ACu; psx_dispatch(cpu, 0x80032414u); label_BFC1E8AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E8AC: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -76873,6 +94405,9 @@ label_BFC1E8AC: /* 0xBFC1E8C8: AC386994 sw $t8, 27028($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (27028)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1E8C8u); return; } g_debug_last_store_pc = 0xBFC1E8C8u; cpu->write_word(psx_addr, cpu->gpr[24]); } label_BFC1E8CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E8CC: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -76884,6 +94419,9 @@ label_BFC1E8CC: cpu->gpr[31] = 0x800368DCu; psx_dispatch(cpu, 0x8005AA00u); label_BFC1E8DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E8DC: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -76894,6 +94432,9 @@ label_BFC1E8DC: /* nop */ if (psx_taken_BFC1E8E0) goto label_BFC1F138; label_BFC1E8E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E8E8: 0C00CB89 jal 0xB0032E24 */ /* 0xBFC1E8EC: 00000000 nop */ @@ -76901,6 +94442,9 @@ label_BFC1E8E8: cpu->gpr[31] = 0x800368F0u; psx_dispatch(cpu, 0x80032E24u); label_BFC1E8F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E8F0: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -76911,6 +94455,9 @@ label_BFC1E8F0: /* nop */ if (psx_taken_BFC1E8F4) goto label_BFC1E95C; label_BFC1E8FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E8FC: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -76925,6 +94472,9 @@ label_BFC1E8FC: /* nop */ if (psx_taken_BFC1E908) goto label_BFC1E934; label_BFC1E910: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E910: 0C00DDAB jal 0xB00376AC */ /* 0xBFC1E914: 24040001 addiu $a0, $zero, 1 */ @@ -76932,6 +94482,9 @@ label_BFC1E910: cpu->gpr[31] = 0x80036918u; psx_dispatch(cpu, 0x800376ACu); label_BFC1E918: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E918: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -76945,6 +94498,9 @@ label_BFC1E918: cpu->gpr[31] = 0x8003692Cu; psx_dispatch(cpu, 0x80032A90u); label_BFC1E92C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E92C: 10000200 beq $zero, $zero, 0xBFC1F130 */ uint32_t psx_brA_BFC1E92C = cpu->gpr[0]; uint32_t psx_brB_BFC1E92C = cpu->gpr[0]; @@ -76953,6 +94509,9 @@ label_BFC1E92C: cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC1E92C) goto label_BFC1F130; label_BFC1E934: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E934: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -76972,6 +94531,9 @@ label_BFC1E934: cpu->gpr[31] = 0x80036954u; psx_dispatch(cpu, 0x80037FA8u); label_BFC1E954: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E954: 100001F6 beq $zero, $zero, 0xBFC1F130 */ uint32_t psx_brA_BFC1E954 = cpu->gpr[0]; uint32_t psx_brB_BFC1E954 = cpu->gpr[0]; @@ -76980,6 +94542,9 @@ label_BFC1E954: cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC1E954) goto label_BFC1F130; label_BFC1E95C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E95C: 0C00D262 jal 0xB0034988 */ /* 0xBFC1E960: AFB00024 sw $s0, 36($sp) */ @@ -76987,6 +94552,9 @@ label_BFC1E95C: cpu->gpr[31] = 0x80036964u; psx_dispatch(cpu, 0x80034988u); label_BFC1E964: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E964: 10400083 beq $v0, $zero, 0xBFC1EB74 */ uint32_t psx_brA_BFC1E964 = cpu->gpr[2]; uint32_t psx_brB_BFC1E964 = cpu->gpr[0]; @@ -76995,6 +94563,9 @@ label_BFC1E964: /* nop */ if (psx_taken_BFC1E964) goto label_BFC1EB74; label_BFC1E96C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E96C: 0C00D266 jal 0xB0034998 */ /* 0xBFC1E970: 00000000 nop */ @@ -77002,6 +94573,9 @@ label_BFC1E96C: cpu->gpr[31] = 0x80036974u; psx_dispatch(cpu, 0x80034998u); label_BFC1E974: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E974: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -77018,6 +94592,9 @@ label_BFC1E974: /* nop */ if (psx_taken_BFC1E984) goto label_BFC1EB74; label_BFC1E98C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E98C: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -77032,6 +94609,9 @@ label_BFC1E98C: /* nop */ if (psx_taken_BFC1E998) goto label_BFC1E9B4; label_BFC1E9A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E9A0: 3C0B8006 lui $t3, 0x8006 */ cpu->gpr[11] = 0x80060000u; @@ -77046,6 +94626,9 @@ label_BFC1E9A0: /* nop */ if (psx_taken_BFC1E9AC) goto label_BFC1EA00; label_BFC1E9B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E9B4: 3C0C8006 lui $t4, 0x8006 */ cpu->gpr[12] = 0x80060000u; @@ -77060,6 +94643,9 @@ label_BFC1E9B4: /* nop */ if (psx_taken_BFC1E9C0) goto label_BFC1E9D8; label_BFC1E9C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E9C8: 0C00DDAB jal 0xB00376AC */ /* 0xBFC1E9CC: 24040001 addiu $a0, $zero, 1 */ @@ -77067,6 +94653,9 @@ label_BFC1E9C8: cpu->gpr[31] = 0x800369D0u; psx_dispatch(cpu, 0x800376ACu); label_BFC1E9D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E9D0: 10000046 beq $zero, $zero, 0xBFC1EAEC */ uint32_t psx_brA_BFC1E9D0 = cpu->gpr[0]; uint32_t psx_brB_BFC1E9D0 = cpu->gpr[0]; @@ -77075,6 +94664,9 @@ label_BFC1E9D0: /* nop */ if (psx_taken_BFC1E9D0) goto label_BFC1EAEC; label_BFC1E9D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E9D8: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -77094,6 +94686,9 @@ label_BFC1E9D8: cpu->gpr[31] = 0x800369F8u; psx_dispatch(cpu, 0x80037FA8u); label_BFC1E9F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1E9F8: 1000003C beq $zero, $zero, 0xBFC1EAEC */ uint32_t psx_brA_BFC1E9F8 = cpu->gpr[0]; uint32_t psx_brB_BFC1E9F8 = cpu->gpr[0]; @@ -77102,6 +94697,9 @@ label_BFC1E9F8: /* nop */ if (psx_taken_BFC1E9F8) goto label_BFC1EAEC; label_BFC1EA00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EA00: 0C00CB89 jal 0xB0032E24 */ /* 0xBFC1EA04: 00000000 nop */ @@ -77109,6 +94707,9 @@ label_BFC1EA00: cpu->gpr[31] = 0x80036A08u; psx_dispatch(cpu, 0x80032E24u); label_BFC1EA08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EA08: 1450002F bne $v0, $s0, 0xBFC1EAC8 */ uint32_t psx_brA_BFC1EA08 = cpu->gpr[2]; uint32_t psx_brB_BFC1EA08 = cpu->gpr[16]; @@ -77117,6 +94718,9 @@ label_BFC1EA08: /* nop */ if (psx_taken_BFC1EA08) goto label_BFC1EAC8; label_BFC1EA10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EA10: 0C00CF56 jal 0xB0033D58 */ /* 0xBFC1EA14: 00000000 nop */ @@ -77124,6 +94728,9 @@ label_BFC1EA10: cpu->gpr[31] = 0x80036A18u; psx_dispatch(cpu, 0x80033D58u); label_BFC1EA18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EA18: 1440001A bne $v0, $zero, 0xBFC1EA84 */ uint32_t psx_brA_BFC1EA18 = cpu->gpr[2]; uint32_t psx_brB_BFC1EA18 = cpu->gpr[0]; @@ -77132,6 +94739,9 @@ label_BFC1EA18: cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC1EA18) goto label_BFC1EA84; label_BFC1EA20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EA20: AFB1002C sw $s1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EA20u); return; } g_debug_last_store_pc = 0xBFC1EA20u; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -77141,6 +94751,9 @@ label_BFC1EA20: cpu->gpr[31] = 0x80036A2Cu; psx_dispatch(cpu, 0x80034998u); label_BFC1EA2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EA2C: 18400012 blez $v0, 0xBFC1EA78 */ uint32_t psx_brA_BFC1EA2C = cpu->gpr[2]; @@ -77149,6 +94762,9 @@ label_BFC1EA2C: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC1EA2C) goto label_BFC1EA78; label_BFC1EA34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EA34: 3C18800F lui $t8, 0x800F */ cpu->gpr[24] = 0x800F0000u; @@ -77163,6 +94779,9 @@ label_BFC1EA34: /* 0xBFC1EA48: 01F88021 addu $s0, $t7, $t8 */ cpu->gpr[16] = cpu->gpr[15] + cpu->gpr[24]; label_BFC1EA4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EA4C: 8E040000 lw $a0, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EA4Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -77176,6 +94795,9 @@ label_BFC1EA4C: cpu->gpr[31] = 0x80036A60u; psx_dispatch(cpu, 0x800336ECu); label_BFC1EA60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EA60: 8FA20030 lw $v0, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EA60u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -77192,6 +94814,9 @@ label_BFC1EA60: /* nop */ if (psx_taken_BFC1EA70) goto label_BFC1EA4C; label_BFC1EA78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EA78: 8FB1002C lw $s1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EA78u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -77200,6 +94825,9 @@ label_BFC1EA78: /* 0xBFC1EA80: 24080001 addiu $t0, $zero, 1 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC1EA84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EA84: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -77218,6 +94846,9 @@ label_BFC1EA84: /* nop */ if (psx_taken_BFC1EA98) goto label_BFC1EAB0; label_BFC1EAA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EAA0: 0C00DDAB jal 0xB00376AC */ /* 0xBFC1EAA4: 24040001 addiu $a0, $zero, 1 */ @@ -77225,6 +94856,9 @@ label_BFC1EAA0: cpu->gpr[31] = 0x80036AA8u; psx_dispatch(cpu, 0x800376ACu); label_BFC1EAA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EAA8: 10000010 beq $zero, $zero, 0xBFC1EAEC */ uint32_t psx_brA_BFC1EAA8 = cpu->gpr[0]; uint32_t psx_brB_BFC1EAA8 = cpu->gpr[0]; @@ -77233,6 +94867,9 @@ label_BFC1EAA8: /* nop */ if (psx_taken_BFC1EAA8) goto label_BFC1EAEC; label_BFC1EAB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EAB0: 3C04800F lui $a0, 0x800F */ cpu->gpr[4] = 0x800F0000u; @@ -77244,6 +94881,9 @@ label_BFC1EAB0: cpu->gpr[31] = 0x80036AC0u; psx_dispatch(cpu, 0x80037FA8u); label_BFC1EAC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EAC0: 1000000A beq $zero, $zero, 0xBFC1EAEC */ uint32_t psx_brA_BFC1EAC0 = cpu->gpr[0]; uint32_t psx_brB_BFC1EAC0 = cpu->gpr[0]; @@ -77252,6 +94892,9 @@ label_BFC1EAC0: /* nop */ if (psx_taken_BFC1EAC0) goto label_BFC1EAEC; label_BFC1EAC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EAC8: 0C00D266 jal 0xB0034998 */ /* 0xBFC1EACC: 00000000 nop */ @@ -77259,6 +94902,9 @@ label_BFC1EAC8: cpu->gpr[31] = 0x80036AD0u; psx_dispatch(cpu, 0x80034998u); label_BFC1EAD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EAD0: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -77273,6 +94919,9 @@ label_BFC1EAD0: /* nop */ if (psx_taken_BFC1EADC) goto label_BFC1EAEC; label_BFC1EAE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EAE4: 0C00DF32 jal 0xB0037CC8 */ /* 0xBFC1EAE8: 00000000 nop */ @@ -77280,6 +94929,9 @@ label_BFC1EAE4: cpu->gpr[31] = 0x80036AECu; psx_dispatch(cpu, 0x80037CC8u); label_BFC1EAEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EAEC: 0C00CF56 jal 0xB0033D58 */ /* 0xBFC1EAF0: 00000000 nop */ @@ -77287,6 +94939,9 @@ label_BFC1EAEC: cpu->gpr[31] = 0x80036AF4u; psx_dispatch(cpu, 0x80033D58u); label_BFC1EAF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EAF4: 1440018C bne $v0, $zero, 0xBFC1F128 */ uint32_t psx_brA_BFC1EAF4 = cpu->gpr[2]; uint32_t psx_brB_BFC1EAF4 = cpu->gpr[0]; @@ -77295,6 +94950,9 @@ label_BFC1EAF4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EAF8u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } if (psx_taken_BFC1EAF4) goto label_BFC1F128; label_BFC1EAFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EAFC: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -77309,6 +94967,9 @@ label_BFC1EAFC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EB0Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } if (psx_taken_BFC1EB08) goto label_BFC1F128; label_BFC1EB10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EB10: AFB1002C sw $s1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EB10u); return; } g_debug_last_store_pc = 0xBFC1EB10u; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -77318,6 +94979,9 @@ label_BFC1EB10: cpu->gpr[31] = 0x80036B1Cu; psx_dispatch(cpu, 0x80034998u); label_BFC1EB1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EB1C: 18400012 blez $v0, 0xBFC1EB68 */ uint32_t psx_brA_BFC1EB1C = cpu->gpr[2]; @@ -77326,6 +94990,9 @@ label_BFC1EB1C: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC1EB1C) goto label_BFC1EB68; label_BFC1EB24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EB24: 3C0C800F lui $t4, 0x800F */ cpu->gpr[12] = 0x800F0000u; @@ -77340,6 +95007,9 @@ label_BFC1EB24: /* 0xBFC1EB38: 016C8021 addu $s0, $t3, $t4 */ cpu->gpr[16] = cpu->gpr[11] + cpu->gpr[12]; label_BFC1EB3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EB3C: 8E040000 lw $a0, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EB3Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -77353,6 +95023,9 @@ label_BFC1EB3C: cpu->gpr[31] = 0x80036B50u; psx_dispatch(cpu, 0x800336ECu); label_BFC1EB50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EB50: 8FA20030 lw $v0, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EB50u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -77369,6 +95042,9 @@ label_BFC1EB50: /* nop */ if (psx_taken_BFC1EB60) goto label_BFC1EB3C; label_BFC1EB68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EB68: 8FB1002C lw $s1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EB68u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -77379,6 +95055,9 @@ label_BFC1EB68: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EB70u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } if (psx_taken_BFC1EB6C) goto label_BFC1F128; label_BFC1EB74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EB74: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -77399,6 +95078,9 @@ label_BFC1EB74: /* nop */ if (psx_taken_BFC1EB8C) goto label_BFC1EE14; label_BFC1EB94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EB94: 0C00D262 jal 0xB0034988 */ /* 0xBFC1EB98: 00000000 nop */ @@ -77406,6 +95088,9 @@ label_BFC1EB94: cpu->gpr[31] = 0x80036B9Cu; psx_dispatch(cpu, 0x80034988u); label_BFC1EB9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EB9C: 1440009D bne $v0, $zero, 0xBFC1EE14 */ uint32_t psx_brA_BFC1EB9C = cpu->gpr[2]; uint32_t psx_brB_BFC1EB9C = cpu->gpr[0]; @@ -77414,6 +95099,9 @@ label_BFC1EB9C: /* nop */ if (psx_taken_BFC1EB9C) goto label_BFC1EE14; label_BFC1EBA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EBA4: 0C00CB89 jal 0xB0032E24 */ /* 0xBFC1EBA8: 00000000 nop */ @@ -77421,6 +95109,9 @@ label_BFC1EBA4: cpu->gpr[31] = 0x80036BACu; psx_dispatch(cpu, 0x80032E24u); label_BFC1EBAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EBAC: 24100002 addiu $s0, $zero, 2 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); @@ -77431,6 +95122,9 @@ label_BFC1EBAC: /* nop */ if (psx_taken_BFC1EBB0) goto label_BFC1ED40; label_BFC1EBB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EBB8: 0C00D25E jal 0xB0034978 */ /* 0xBFC1EBBC: 00000000 nop */ @@ -77438,6 +95132,9 @@ label_BFC1EBB8: cpu->gpr[31] = 0x80036BC0u; psx_dispatch(cpu, 0x80034978u); label_BFC1EBC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EBC0: 1040002E beq $v0, $zero, 0xBFC1EC7C */ uint32_t psx_brA_BFC1EBC0 = cpu->gpr[2]; uint32_t psx_brB_BFC1EBC0 = cpu->gpr[0]; @@ -77446,6 +95143,9 @@ label_BFC1EBC0: /* nop */ if (psx_taken_BFC1EBC0) goto label_BFC1EC7C; label_BFC1EBC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EBC8: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -77460,6 +95160,9 @@ label_BFC1EBC8: /* nop */ if (psx_taken_BFC1EBD4) goto label_BFC1EC54; label_BFC1EBDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EBDC: 3C198006 lui $t9, 0x8006 */ cpu->gpr[25] = 0x80060000u; @@ -77474,6 +95177,9 @@ label_BFC1EBDC: /* nop */ if (psx_taken_BFC1EBE8) goto label_BFC1EC54; label_BFC1EBF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EBF0: 3C108006 lui $s0, 0x8006 */ cpu->gpr[16] = 0x80060000u; @@ -77485,6 +95191,9 @@ label_BFC1EBF0: cpu->gpr[31] = 0x80036C00u; psx_dispatch(cpu, 0x800341A4u); label_BFC1EC00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EC00: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -77503,6 +95212,9 @@ label_BFC1EC00: /* nop */ if (psx_taken_BFC1EC14) goto label_BFC1EC2C; label_BFC1EC1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EC1C: 0C00DDAB jal 0xB00376AC */ /* 0xBFC1EC20: 24040001 addiu $a0, $zero, 1 */ @@ -77510,6 +95222,9 @@ label_BFC1EC1C: cpu->gpr[31] = 0x80036C24u; psx_dispatch(cpu, 0x800376ACu); label_BFC1EC24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EC24: 1000005A beq $zero, $zero, 0xBFC1ED90 */ uint32_t psx_brA_BFC1EC24 = cpu->gpr[0]; uint32_t psx_brB_BFC1EC24 = cpu->gpr[0]; @@ -77518,6 +95233,9 @@ label_BFC1EC24: /* nop */ if (psx_taken_BFC1EC24) goto label_BFC1ED90; label_BFC1EC2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EC2C: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -77537,6 +95255,9 @@ label_BFC1EC2C: cpu->gpr[31] = 0x80036C4Cu; psx_dispatch(cpu, 0x80037FA8u); label_BFC1EC4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EC4C: 10000050 beq $zero, $zero, 0xBFC1ED90 */ uint32_t psx_brA_BFC1EC4C = cpu->gpr[0]; uint32_t psx_brB_BFC1EC4C = cpu->gpr[0]; @@ -77545,6 +95266,9 @@ label_BFC1EC4C: /* nop */ if (psx_taken_BFC1EC4C) goto label_BFC1ED90; label_BFC1EC54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EC54: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -77564,6 +95288,9 @@ label_BFC1EC54: cpu->gpr[31] = 0x80036C74u; psx_dispatch(cpu, 0x80037FA8u); label_BFC1EC74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EC74: 10000046 beq $zero, $zero, 0xBFC1ED90 */ uint32_t psx_brA_BFC1EC74 = cpu->gpr[0]; uint32_t psx_brB_BFC1EC74 = cpu->gpr[0]; @@ -77572,6 +95299,9 @@ label_BFC1EC74: /* nop */ if (psx_taken_BFC1EC74) goto label_BFC1ED90; label_BFC1EC7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EC7C: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -77594,6 +95324,9 @@ label_BFC1EC7C: /* nop */ if (psx_taken_BFC1EC98) goto label_BFC1ECB0; label_BFC1ECA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ECA0: 0C00DDAB jal 0xB00376AC */ /* 0xBFC1ECA4: 24040001 addiu $a0, $zero, 1 */ @@ -77601,6 +95334,9 @@ label_BFC1ECA0: cpu->gpr[31] = 0x80036CA8u; psx_dispatch(cpu, 0x800376ACu); label_BFC1ECA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ECA8: 10000039 beq $zero, $zero, 0xBFC1ED90 */ uint32_t psx_brA_BFC1ECA8 = cpu->gpr[0]; uint32_t psx_brB_BFC1ECA8 = cpu->gpr[0]; @@ -77609,6 +95345,9 @@ label_BFC1ECA8: /* nop */ if (psx_taken_BFC1ECA8) goto label_BFC1ED90; label_BFC1ECB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ECB0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -77628,6 +95367,9 @@ label_BFC1ECB0: cpu->gpr[31] = 0x80036CD0u; psx_dispatch(cpu, 0x80037FA8u); label_BFC1ECD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ECD0: 0C00CF56 jal 0xB0033D58 */ /* 0xBFC1ECD4: 00000000 nop */ @@ -77635,6 +95377,9 @@ label_BFC1ECD0: cpu->gpr[31] = 0x80036CD8u; psx_dispatch(cpu, 0x80033D58u); label_BFC1ECD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ECD8: 1440002D bne $v0, $zero, 0xBFC1ED90 */ uint32_t psx_brA_BFC1ECD8 = cpu->gpr[2]; uint32_t psx_brB_BFC1ECD8 = cpu->gpr[0]; @@ -77643,6 +95388,9 @@ label_BFC1ECD8: /* nop */ if (psx_taken_BFC1ECD8) goto label_BFC1ED90; label_BFC1ECE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ECE0: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -77663,6 +95411,9 @@ label_BFC1ECE0: cpu->gpr[17] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC1ECF8) goto label_BFC1ED34; label_BFC1ED00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ED00: 3C08800F lui $t0, 0x800F */ cpu->gpr[8] = 0x800F0000u; @@ -77673,6 +95424,9 @@ label_BFC1ED00: /* 0xBFC1ED0C: 03088021 addu $s0, $t8, $t0 */ cpu->gpr[16] = cpu->gpr[24] + cpu->gpr[8]; label_BFC1ED10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ED10: 8E040000 lw $a0, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1ED10u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -77682,6 +95436,9 @@ label_BFC1ED10: cpu->gpr[31] = 0x80036D1Cu; psx_dispatch(cpu, 0x800336ECu); label_BFC1ED1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ED1C: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -77698,6 +95455,9 @@ label_BFC1ED1C: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (4)); if (psx_taken_BFC1ED2C) goto label_BFC1ED10; label_BFC1ED34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ED34: 8FB1002C lw $s1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1ED34u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -77708,6 +95468,9 @@ label_BFC1ED34: /* nop */ if (psx_taken_BFC1ED38) goto label_BFC1ED90; label_BFC1ED40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ED40: 0C00D25E jal 0xB0034978 */ /* 0xBFC1ED44: 00000000 nop */ @@ -77715,6 +95478,9 @@ label_BFC1ED40: cpu->gpr[31] = 0x80036D48u; psx_dispatch(cpu, 0x80034978u); label_BFC1ED48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ED48: 1040000F beq $v0, $zero, 0xBFC1ED88 */ uint32_t psx_brA_BFC1ED48 = cpu->gpr[2]; uint32_t psx_brB_BFC1ED48 = cpu->gpr[0]; @@ -77723,6 +95489,9 @@ label_BFC1ED48: /* nop */ if (psx_taken_BFC1ED48) goto label_BFC1ED88; label_BFC1ED50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ED50: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -77737,6 +95506,9 @@ label_BFC1ED50: /* nop */ if (psx_taken_BFC1ED5C) goto label_BFC1ED88; label_BFC1ED64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ED64: 3C0A8006 lui $t2, 0x8006 */ cpu->gpr[10] = 0x80060000u; @@ -77751,6 +95523,9 @@ label_BFC1ED64: /* nop */ if (psx_taken_BFC1ED70) goto label_BFC1ED88; label_BFC1ED78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ED78: 0C00DDAB jal 0xB00376AC */ /* 0xBFC1ED7C: 24040001 addiu $a0, $zero, 1 */ @@ -77758,6 +95533,9 @@ label_BFC1ED78: cpu->gpr[31] = 0x80036D80u; psx_dispatch(cpu, 0x800376ACu); label_BFC1ED80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ED80: 10000003 beq $zero, $zero, 0xBFC1ED90 */ uint32_t psx_brA_BFC1ED80 = cpu->gpr[0]; uint32_t psx_brB_BFC1ED80 = cpu->gpr[0]; @@ -77766,6 +95544,9 @@ label_BFC1ED80: /* nop */ if (psx_taken_BFC1ED80) goto label_BFC1ED90; label_BFC1ED88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ED88: 0C00DF32 jal 0xB0037CC8 */ /* 0xBFC1ED8C: 00000000 nop */ @@ -77773,6 +95554,9 @@ label_BFC1ED88: cpu->gpr[31] = 0x80036D90u; psx_dispatch(cpu, 0x80037CC8u); label_BFC1ED90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ED90: 0C00CF56 jal 0xB0033D58 */ /* 0xBFC1ED94: 00000000 nop */ @@ -77780,6 +95564,9 @@ label_BFC1ED90: cpu->gpr[31] = 0x80036D98u; psx_dispatch(cpu, 0x80033D58u); label_BFC1ED98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1ED98: 144000E3 bne $v0, $zero, 0xBFC1F128 */ uint32_t psx_brA_BFC1ED98 = cpu->gpr[2]; uint32_t psx_brB_BFC1ED98 = cpu->gpr[0]; @@ -77788,6 +95575,9 @@ label_BFC1ED98: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1ED9Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } if (psx_taken_BFC1ED98) goto label_BFC1F128; label_BFC1EDA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EDA0: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -77802,6 +95592,9 @@ label_BFC1EDA0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EDB0u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } if (psx_taken_BFC1EDAC) goto label_BFC1F128; label_BFC1EDB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EDB4: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -77822,6 +95615,9 @@ label_BFC1EDB4: cpu->gpr[17] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC1EDCC) goto label_BFC1EE08; label_BFC1EDD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EDD4: 3C0C800F lui $t4, 0x800F */ cpu->gpr[12] = 0x800F0000u; @@ -77832,6 +95628,9 @@ label_BFC1EDD4: /* 0xBFC1EDE0: 01AC8021 addu $s0, $t5, $t4 */ cpu->gpr[16] = cpu->gpr[13] + cpu->gpr[12]; label_BFC1EDE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EDE4: 8E040000 lw $a0, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EDE4u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -77841,6 +95640,9 @@ label_BFC1EDE4: cpu->gpr[31] = 0x80036DF0u; psx_dispatch(cpu, 0x800336ECu); label_BFC1EDF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EDF0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -77857,6 +95659,9 @@ label_BFC1EDF0: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (4)); if (psx_taken_BFC1EE00) goto label_BFC1EDE4; label_BFC1EE08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EE08: 8FB1002C lw $s1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EE08u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -77867,6 +95672,9 @@ label_BFC1EE08: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EE10u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } if (psx_taken_BFC1EE0C) goto label_BFC1F128; label_BFC1EE14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EE14: 0C00D25E jal 0xB0034978 */ /* 0xBFC1EE18: 00000000 nop */ @@ -77874,6 +95682,9 @@ label_BFC1EE14: cpu->gpr[31] = 0x80036E1Cu; psx_dispatch(cpu, 0x80034978u); label_BFC1EE1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EE1C: 14400005 bne $v0, $zero, 0xBFC1EE34 */ uint32_t psx_brA_BFC1EE1C = cpu->gpr[2]; uint32_t psx_brB_BFC1EE1C = cpu->gpr[0]; @@ -77882,6 +95693,9 @@ label_BFC1EE1C: /* nop */ if (psx_taken_BFC1EE1C) goto label_BFC1EE34; label_BFC1EE24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EE24: 0C00D262 jal 0xB0034988 */ /* 0xBFC1EE28: 00000000 nop */ @@ -77889,6 +95703,9 @@ label_BFC1EE24: cpu->gpr[31] = 0x80036E2Cu; psx_dispatch(cpu, 0x80034988u); label_BFC1EE2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EE2C: 1040007D beq $v0, $zero, 0xBFC1F024 */ uint32_t psx_brA_BFC1EE2C = cpu->gpr[2]; uint32_t psx_brB_BFC1EE2C = cpu->gpr[0]; @@ -77897,6 +95714,9 @@ label_BFC1EE2C: /* nop */ if (psx_taken_BFC1EE2C) goto label_BFC1F024; label_BFC1EE34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EE34: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -77911,6 +95731,9 @@ label_BFC1EE34: /* nop */ if (psx_taken_BFC1EE40) goto label_BFC1EE5C; label_BFC1EE48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EE48: 3C0F8006 lui $t7, 0x8006 */ cpu->gpr[15] = 0x80060000u; @@ -77925,6 +95748,9 @@ label_BFC1EE48: /* nop */ if (psx_taken_BFC1EE54) goto label_BFC1EEA8; label_BFC1EE5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EE5C: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -77939,6 +95765,9 @@ label_BFC1EE5C: /* nop */ if (psx_taken_BFC1EE68) goto label_BFC1EE80; label_BFC1EE70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EE70: 0C00DDAB jal 0xB00376AC */ /* 0xBFC1EE74: 24040001 addiu $a0, $zero, 1 */ @@ -77946,6 +95775,9 @@ label_BFC1EE70: cpu->gpr[31] = 0x80036E78u; psx_dispatch(cpu, 0x800376ACu); label_BFC1EE78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EE78: 100000AB beq $zero, $zero, 0xBFC1F128 */ uint32_t psx_brA_BFC1EE78 = cpu->gpr[0]; uint32_t psx_brB_BFC1EE78 = cpu->gpr[0]; @@ -77954,6 +95786,9 @@ label_BFC1EE78: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EE7Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } if (psx_taken_BFC1EE78) goto label_BFC1F128; label_BFC1EE80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EE80: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -77973,6 +95808,9 @@ label_BFC1EE80: cpu->gpr[31] = 0x80036EA0u; psx_dispatch(cpu, 0x80037FA8u); label_BFC1EEA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EEA0: 100000A1 beq $zero, $zero, 0xBFC1F128 */ uint32_t psx_brA_BFC1EEA0 = cpu->gpr[0]; uint32_t psx_brB_BFC1EEA0 = cpu->gpr[0]; @@ -77981,6 +95819,9 @@ label_BFC1EEA0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EEA4u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } if (psx_taken_BFC1EEA0) goto label_BFC1F128; label_BFC1EEA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EEA8: 0C00CF56 jal 0xB0033D58 */ /* 0xBFC1EEAC: 00000000 nop */ @@ -77988,6 +95829,9 @@ label_BFC1EEA8: cpu->gpr[31] = 0x80036EB0u; psx_dispatch(cpu, 0x80033D58u); label_BFC1EEB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EEB0: 14400038 bne $v0, $zero, 0xBFC1EF94 */ uint32_t psx_brA_BFC1EEB0 = cpu->gpr[2]; uint32_t psx_brB_BFC1EEB0 = cpu->gpr[0]; @@ -77996,6 +95840,9 @@ label_BFC1EEB0: /* nop */ if (psx_taken_BFC1EEB0) goto label_BFC1EF94; label_BFC1EEB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EEB8: 0C00D266 jal 0xB0034998 */ /* 0xBFC1EEBC: 00000000 nop */ @@ -78003,6 +95850,9 @@ label_BFC1EEB8: cpu->gpr[31] = 0x80036EC0u; psx_dispatch(cpu, 0x80034998u); label_BFC1EEC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EEC0: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -78017,6 +95867,9 @@ label_BFC1EEC0: /* nop */ if (psx_taken_BFC1EECC) goto label_BFC1EF94; label_BFC1EED4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EED4: AFB1002C sw $s1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EED4u); return; } g_debug_last_store_pc = 0xBFC1EED4u; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -78026,6 +95879,9 @@ label_BFC1EED4: cpu->gpr[31] = 0x80036EE0u; psx_dispatch(cpu, 0x80034998u); label_BFC1EEE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EEE0: 0051082A slt $at, $v0, $s1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (int32_t)cpu->gpr[17] ? 1 : 0); @@ -78036,6 +95892,9 @@ label_BFC1EEE0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (84)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EEE8u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } if (psx_taken_BFC1EEE4) goto label_BFC1EF50; label_BFC1EEEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EEEC: 3C0B800F lui $t3, 0x800F */ cpu->gpr[11] = 0x800F0000u; @@ -78048,6 +95907,9 @@ label_BFC1EEEC: /* 0xBFC1EEFC: AFA00054 sw $zero, 84($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (84)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EEFCu); return; } g_debug_last_store_pc = 0xBFC1EEFCu; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC1EF00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EF00: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -78072,6 +95934,9 @@ label_BFC1EF00: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); if (psx_taken_BFC1EF20) goto label_BFC1EF38; label_BFC1EF28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EF28: 24190001 addiu $t9, $zero, 1 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -78082,10 +95947,16 @@ label_BFC1EF28: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (84)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EF30u); return; } g_debug_last_store_pc = 0xBFC1EF30u; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC1EF2C) goto label_BFC1EF4C; label_BFC1EF34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EF34: 26310001 addiu $s1, $s1, 1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); label_BFC1EF38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EF38: 0C00D266 jal 0xB0034998 */ /* 0xBFC1EF3C: 26100004 addiu $s0, $s0, 4 */ @@ -78093,6 +95964,9 @@ label_BFC1EF38: cpu->gpr[31] = 0x80036F40u; psx_dispatch(cpu, 0x80034998u); label_BFC1EF40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EF40: 0051082A slt $at, $v0, $s1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (int32_t)cpu->gpr[17] ? 1 : 0); @@ -78103,10 +95977,16 @@ label_BFC1EF40: /* nop */ if (psx_taken_BFC1EF44) goto label_BFC1EF00; label_BFC1EF4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EF4C: 8FB80054 lw $t8, 84($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (84)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EF4Cu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } label_BFC1EF50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EF50: 00000000 nop */ /* nop */ @@ -78117,6 +95997,9 @@ label_BFC1EF50: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EF58u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } if (psx_taken_BFC1EF54) goto label_BFC1EF90; label_BFC1EF5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EF5C: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -78141,6 +96024,9 @@ label_BFC1EF5C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EF80u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } if (psx_taken_BFC1EF7C) goto label_BFC1EF90; label_BFC1EF84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EF84: 0C00CDBB jal 0xB00336EC */ /* 0xBFC1EF88: 24050008 addiu $a1, $zero, 8 */ @@ -78148,14 +96034,23 @@ label_BFC1EF84: cpu->gpr[31] = 0x80036F8Cu; psx_dispatch(cpu, 0x800336ECu); label_BFC1EF8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EF8C: 8FB1002C lw $s1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EF8Cu); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } label_BFC1EF90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EF90: 00000000 nop */ /* nop */ label_BFC1EF94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EF94: 0C00D25E jal 0xB0034978 */ /* 0xBFC1EF98: 00000000 nop */ @@ -78163,6 +96058,9 @@ label_BFC1EF94: cpu->gpr[31] = 0x80036F9Cu; psx_dispatch(cpu, 0x80034978u); label_BFC1EF9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EF9C: 10400009 beq $v0, $zero, 0xBFC1EFC4 */ uint32_t psx_brA_BFC1EF9C = cpu->gpr[2]; uint32_t psx_brB_BFC1EF9C = cpu->gpr[0]; @@ -78171,6 +96069,9 @@ label_BFC1EF9C: /* nop */ if (psx_taken_BFC1EF9C) goto label_BFC1EFC4; label_BFC1EFA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EFA4: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -78190,6 +96091,9 @@ label_BFC1EFA4: cpu->gpr[31] = 0x80036FC4u; psx_dispatch(cpu, 0x800336ECu); label_BFC1EFC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EFC4: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -78214,6 +96118,9 @@ label_BFC1EFC4: /* nop */ if (psx_taken_BFC1EFE4) goto label_BFC1EFFC; label_BFC1EFEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EFEC: 0C00DDAB jal 0xB00376AC */ /* 0xBFC1EFF0: 24040001 addiu $a0, $zero, 1 */ @@ -78221,6 +96128,9 @@ label_BFC1EFEC: cpu->gpr[31] = 0x80036FF4u; psx_dispatch(cpu, 0x800376ACu); label_BFC1EFF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EFF4: 1000004C beq $zero, $zero, 0xBFC1F128 */ uint32_t psx_brA_BFC1EFF4 = cpu->gpr[0]; uint32_t psx_brB_BFC1EFF4 = cpu->gpr[0]; @@ -78229,6 +96139,9 @@ label_BFC1EFF4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1EFF8u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } if (psx_taken_BFC1EFF4) goto label_BFC1F128; label_BFC1EFFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1EFFC: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -78248,6 +96161,9 @@ label_BFC1EFFC: cpu->gpr[31] = 0x8003701Cu; psx_dispatch(cpu, 0x80037FA8u); label_BFC1F01C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F01C: 10000042 beq $zero, $zero, 0xBFC1F128 */ uint32_t psx_brA_BFC1F01C = cpu->gpr[0]; uint32_t psx_brB_BFC1F01C = cpu->gpr[0]; @@ -78256,6 +96172,9 @@ label_BFC1F01C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F020u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } if (psx_taken_BFC1F01C) goto label_BFC1F128; label_BFC1F024: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F024: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -78270,6 +96189,9 @@ label_BFC1F024: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC1F030) goto label_BFC1F05C; label_BFC1F038: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F038: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -78285,6 +96207,9 @@ label_BFC1F038: cpu->gpr[31] = 0x80037050u; psx_dispatch(cpu, 0x80038B60u); label_BFC1F050: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F050: 10000035 beq $zero, $zero, 0xBFC1F128 */ uint32_t psx_brA_BFC1F050 = cpu->gpr[0]; uint32_t psx_brB_BFC1F050 = cpu->gpr[0]; @@ -78293,10 +96218,16 @@ label_BFC1F050: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F054u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } if (psx_taken_BFC1F050) goto label_BFC1F128; label_BFC1F058: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F058: 24100002 addiu $s0, $zero, 2 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); label_BFC1F05C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F05C: 10500006 beq $v0, $s0, 0xBFC1F078 */ uint32_t psx_brA_BFC1F05C = cpu->gpr[2]; uint32_t psx_brB_BFC1F05C = cpu->gpr[16]; @@ -78305,6 +96236,9 @@ label_BFC1F05C: /* nop */ if (psx_taken_BFC1F05C) goto label_BFC1F078; label_BFC1F064: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F064: 3C098006 lui $t1, 0x8006 */ cpu->gpr[9] = 0x80060000u; @@ -78319,6 +96253,9 @@ label_BFC1F064: /* nop */ if (psx_taken_BFC1F070) goto label_BFC1F0E8; label_BFC1F078: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F078: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -78333,6 +96270,9 @@ label_BFC1F078: /* nop */ if (psx_taken_BFC1F084) goto label_BFC1F0C8; label_BFC1F08C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F08C: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -78347,6 +96287,9 @@ label_BFC1F08C: /* nop */ if (psx_taken_BFC1F098) goto label_BFC1F0B8; label_BFC1F0A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F0A0: 0C00DDAB jal 0xB00376AC */ /* 0xBFC1F0A4: 24040001 addiu $a0, $zero, 1 */ @@ -78354,6 +96297,9 @@ label_BFC1F0A0: cpu->gpr[31] = 0x800370A8u; psx_dispatch(cpu, 0x800376ACu); label_BFC1F0A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F0A8: 240D0001 addiu $t5, $zero, 1 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -78366,6 +96312,9 @@ label_BFC1F0A8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26968)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F0B4u); return; } g_debug_last_store_pc = 0xBFC1F0B4u; cpu->write_word(psx_addr, cpu->gpr[13]); } if (psx_taken_BFC1F0B0) goto label_BFC1F124; label_BFC1F0B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F0B8: 0C00DFEA jal 0xB0037FA8 */ /* 0xBFC1F0BC: 00002021 addu $a0, $zero, $zero */ @@ -78373,6 +96322,9 @@ label_BFC1F0B8: cpu->gpr[31] = 0x800370C0u; psx_dispatch(cpu, 0x80037FA8u); label_BFC1F0C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F0C0: 10000019 beq $zero, $zero, 0xBFC1F128 */ uint32_t psx_brA_BFC1F0C0 = cpu->gpr[0]; uint32_t psx_brB_BFC1F0C0 = cpu->gpr[0]; @@ -78381,6 +96333,9 @@ label_BFC1F0C0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F0C4u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } if (psx_taken_BFC1F0C0) goto label_BFC1F128; label_BFC1F0C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F0C8: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -78396,6 +96351,9 @@ label_BFC1F0C8: cpu->gpr[31] = 0x800370E0u; psx_dispatch(cpu, 0x80038B9Cu); label_BFC1F0E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F0E0: 10000011 beq $zero, $zero, 0xBFC1F128 */ uint32_t psx_brA_BFC1F0E0 = cpu->gpr[0]; uint32_t psx_brB_BFC1F0E0 = cpu->gpr[0]; @@ -78404,6 +96362,9 @@ label_BFC1F0E0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F0E4u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } if (psx_taken_BFC1F0E0) goto label_BFC1F128; label_BFC1F0E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F0E8: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -78423,6 +96384,9 @@ label_BFC1F0E8: cpu->gpr[31] = 0x80037108u; psx_dispatch(cpu, 0x800336ECu); label_BFC1F108: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F108: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -78440,22 +96404,34 @@ label_BFC1F108: cpu->gpr[31] = 0x80037124u; psx_dispatch(cpu, 0x80038F24u); label_BFC1F124: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F124: 8FB00024 lw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F124u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } label_BFC1F128: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F128: 00000000 nop */ /* nop */ /* 0xBFC1F12C: 24090001 addiu $t1, $zero, 1 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC1F130: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F130: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; /* 0xBFC1F134: AC29695C sw $t1, 26972($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26972)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F134u); return; } g_debug_last_store_pc = 0xBFC1F134u; cpu->write_word(psx_addr, cpu->gpr[9]); } label_BFC1F138: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F138: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -78467,6 +96443,9 @@ label_BFC1F138: cpu->gpr[31] = 0x80037148u; psx_dispatch(cpu, 0x8005AA00u); label_BFC1F148: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F148: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -78477,6 +96456,9 @@ label_BFC1F148: /* nop */ if (psx_taken_BFC1F14C) goto label_BFC1F498; label_BFC1F154: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F154: 27A40048 addiu $a0, $sp, 72 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (72)); @@ -78486,6 +96468,9 @@ label_BFC1F154: cpu->gpr[31] = 0x80037160u; psx_dispatch(cpu, 0x8005719Cu); label_BFC1F160: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F160: 93A30048 lbu $v1, 72($sp) */ cpu->gpr[3] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (72))); @@ -78502,6 +96487,9 @@ label_BFC1F160: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24912)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F174u); return; } g_debug_last_store_pc = 0xBFC1F174u; cpu->write_word(psx_addr, cpu->gpr[10]); } if (psx_taken_BFC1F170) goto label_BFC1F224; label_BFC1F178: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F178: 0C00D660 jal 0xB0035980 */ /* 0xBFC1F17C: 00000000 nop */ @@ -78509,6 +96497,9 @@ label_BFC1F178: cpu->gpr[31] = 0x80037180u; psx_dispatch(cpu, 0x80035980u); label_BFC1F180: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F180: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; @@ -78533,6 +96524,9 @@ label_BFC1F180: /* nop */ if (psx_taken_BFC1F1A0) goto label_BFC1F1B4; label_BFC1F1A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F1A8: 240C0038 addiu $t4, $zero, 56 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[0] + (56)); @@ -78541,6 +96535,9 @@ label_BFC1F1A8: /* 0xBFC1F1B0: AC2C6940 sw $t4, 26944($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26944)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F1B0u); return; } g_debug_last_store_pc = 0xBFC1F1B0u; cpu->write_word(psx_addr, cpu->gpr[12]); } label_BFC1F1B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F1B4: 3C0E8006 lui $t6, 0x8006 */ cpu->gpr[14] = 0x80060000u; @@ -78555,6 +96552,9 @@ label_BFC1F1B4: /* nop */ if (psx_taken_BFC1F1C0) goto label_BFC1F1D4; label_BFC1F1C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F1C8: 240F0037 addiu $t7, $zero, 55 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (55)); @@ -78563,6 +96563,9 @@ label_BFC1F1C8: /* 0xBFC1F1D0: AC2F6940 sw $t7, 26944($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26944)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F1D0u); return; } g_debug_last_store_pc = 0xBFC1F1D0u; cpu->write_word(psx_addr, cpu->gpr[15]); } label_BFC1F1D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F1D4: 3C198006 lui $t9, 0x8006 */ cpu->gpr[25] = 0x80060000u; @@ -78577,6 +96580,9 @@ label_BFC1F1D4: /* nop */ if (psx_taken_BFC1F1E0) goto label_BFC1F1F4; label_BFC1F1E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F1E8: 24180032 addiu $t8, $zero, 50 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (50)); @@ -78585,6 +96591,9 @@ label_BFC1F1E8: /* 0xBFC1F1F0: AC386948 sw $t8, 26952($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26952)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F1F0u); return; } g_debug_last_store_pc = 0xBFC1F1F0u; cpu->write_word(psx_addr, cpu->gpr[24]); } label_BFC1F1F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F1F4: 3C088006 lui $t0, 0x8006 */ cpu->gpr[8] = 0x80060000u; @@ -78599,6 +96608,9 @@ label_BFC1F1F4: /* nop */ if (psx_taken_BFC1F200) goto label_BFC1F214; label_BFC1F208: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F208: 24090032 addiu $t1, $zero, 50 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (50)); @@ -78607,6 +96619,9 @@ label_BFC1F208: /* 0xBFC1F210: AC296948 sw $t1, 26952($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26952)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F210u); return; } g_debug_last_store_pc = 0xBFC1F210u; cpu->write_word(psx_addr, cpu->gpr[9]); } label_BFC1F214: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F214: 0C00D2BC jal 0xB0034AF0 */ /* 0xBFC1F218: 2402003A addiu $v0, $zero, 58 */ @@ -78614,6 +96629,9 @@ label_BFC1F214: cpu->gpr[31] = 0x8003721Cu; psx_dispatch(cpu, 0x80034AF0u); label_BFC1F21C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F21C: 10000120 beq $zero, $zero, 0xBFC1F6A0 */ uint32_t psx_brA_BFC1F21C = cpu->gpr[0]; uint32_t psx_brB_BFC1F21C = cpu->gpr[0]; @@ -78622,6 +96640,9 @@ label_BFC1F21C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F220u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1F21C) goto label_BFC1F6A0; label_BFC1F224: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F224: 306A0008 andi $t2, $v1, 0x8 */ cpu->gpr[10] = cpu->gpr[3] & 0x8u; @@ -78632,6 +96653,9 @@ label_BFC1F224: /* nop */ if (psx_taken_BFC1F228) goto label_BFC1F23C; label_BFC1F230: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F230: 93A20044 lbu $v0, 68($sp) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (68))); @@ -78642,6 +96666,9 @@ label_BFC1F230: cpu->gpr[8] = cpu->gpr[3] & 0x4u; if (psx_taken_BFC1F234) goto label_BFC1F2BC; label_BFC1F23C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F23C: 3C0B8006 lui $t3, 0x8006 */ cpu->gpr[11] = 0x80060000u; @@ -78656,6 +96683,9 @@ label_BFC1F23C: cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (68))); if (psx_taken_BFC1F248) goto label_BFC1F268; label_BFC1F250: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F250: 240D0038 addiu $t5, $zero, 56 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (56)); @@ -78670,6 +96700,9 @@ label_BFC1F250: /* 0xBFC1F264: 93A20044 lbu $v0, 68($sp) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (68))); label_BFC1F268: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F268: 00000000 nop */ /* nop */ @@ -78682,6 +96715,9 @@ label_BFC1F268: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1F270) goto label_BFC1F284; label_BFC1F278: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F278: AC209DF4 sw $zero, -25100($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F278u); return; } g_debug_last_store_pc = 0xBFC1F278u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -78690,6 +96726,9 @@ label_BFC1F278: /* 0xBFC1F280: AC209DFC sw $zero, -25092($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25092)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F280u); return; } g_debug_last_store_pc = 0xBFC1F280u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC1F284: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F284: 304E0040 andi $t6, $v0, 0x40 */ cpu->gpr[14] = cpu->gpr[2] & 0x40u; @@ -78700,6 +96739,9 @@ label_BFC1F284: cpu->gpr[25] = cpu->gpr[2] & 0x10u; if (psx_taken_BFC1F288) goto label_BFC1F2A0; label_BFC1F290: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F290: 240F0001 addiu $t7, $zero, 1 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -78710,6 +96752,9 @@ label_BFC1F290: /* 0xBFC1F29C: 30590010 andi $t9, $v0, 0x10 */ cpu->gpr[25] = cpu->gpr[2] & 0x10u; label_BFC1F2A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F2A0: 13200005 beq $t9, $zero, 0xBFC1F2B8 */ uint32_t psx_brA_BFC1F2A0 = cpu->gpr[25]; uint32_t psx_brB_BFC1F2A0 = cpu->gpr[0]; @@ -78718,6 +96763,9 @@ label_BFC1F2A0: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1F2A0) goto label_BFC1F2B8; label_BFC1F2A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F2A8: AC209DF4 sw $zero, -25100($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F2A8u); return; } g_debug_last_store_pc = 0xBFC1F2A8u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -78728,10 +96776,16 @@ label_BFC1F2A8: /* 0xBFC1F2B4: AC389E00 sw $t8, -25088($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25088)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F2B4u); return; } g_debug_last_store_pc = 0xBFC1F2B4u; cpu->write_word(psx_addr, cpu->gpr[24]); } label_BFC1F2B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F2B8: 30680004 andi $t0, $v1, 0x4 */ cpu->gpr[8] = cpu->gpr[3] & 0x4u; label_BFC1F2BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F2BC: 1100003A beq $t0, $zero, 0xBFC1F3A8 */ uint32_t psx_brA_BFC1F2BC = cpu->gpr[8]; uint32_t psx_brB_BFC1F2BC = cpu->gpr[0]; @@ -78740,6 +96794,9 @@ label_BFC1F2BC: cpu->gpr[1] = 0x80060000u; if (psx_taken_BFC1F2BC) goto label_BFC1F3A8; label_BFC1F2C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F2C4: 30490008 andi $t1, $v0, 0x8 */ cpu->gpr[9] = cpu->gpr[2] & 0x8u; @@ -78750,6 +96807,9 @@ label_BFC1F2C4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26960)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F2CCu); return; } g_debug_last_store_pc = 0xBFC1F2CCu; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC1F2C8) goto label_BFC1F370; label_BFC1F2D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F2D0: 0C00D660 jal 0xB0035980 */ /* 0xBFC1F2D4: 00000000 nop */ @@ -78757,6 +96817,9 @@ label_BFC1F2D0: cpu->gpr[31] = 0x800372D8u; psx_dispatch(cpu, 0x80035980u); label_BFC1F2D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F2D8: 00002821 addu $a1, $zero, $zero */ cpu->gpr[5] = cpu->gpr[0] + cpu->gpr[0]; @@ -78777,6 +96840,9 @@ label_BFC1F2D8: /* nop */ if (psx_taken_BFC1F2F0) goto label_BFC1F308; label_BFC1F2F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F2F8: 240B0038 addiu $t3, $zero, 56 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (56)); @@ -78789,6 +96855,9 @@ label_BFC1F2F8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26944)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F304u); return; } g_debug_last_store_pc = 0xBFC1F304u; cpu->write_word(psx_addr, cpu->gpr[11]); } if (psx_taken_BFC1F300) goto label_BFC1F360; label_BFC1F308: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F308: 3C0D8006 lui $t5, 0x8006 */ cpu->gpr[13] = 0x80060000u; @@ -78803,6 +96872,9 @@ label_BFC1F308: /* nop */ if (psx_taken_BFC1F314) goto label_BFC1F32C; label_BFC1F31C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F31C: 240C0037 addiu $t4, $zero, 55 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[0] + (55)); @@ -78815,6 +96887,9 @@ label_BFC1F31C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26944)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F328u); return; } g_debug_last_store_pc = 0xBFC1F328u; cpu->write_word(psx_addr, cpu->gpr[12]); } if (psx_taken_BFC1F324) goto label_BFC1F360; label_BFC1F32C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F32C: 3C0E8006 lui $t6, 0x8006 */ cpu->gpr[14] = 0x80060000u; @@ -78829,6 +96904,9 @@ label_BFC1F32C: cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (68))); if (psx_taken_BFC1F338) goto label_BFC1F364; label_BFC1F340: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F340: 0C00D2BC jal 0xB0034AF0 */ /* 0xBFC1F344: 00000000 nop */ @@ -78836,6 +96914,9 @@ label_BFC1F340: cpu->gpr[31] = 0x80037348u; psx_dispatch(cpu, 0x80034AF0u); label_BFC1F348: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F348: 240F0032 addiu $t7, $zero, 50 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (50)); @@ -78850,10 +96931,16 @@ label_BFC1F348: /* 0xBFC1F35C: AC396948 sw $t9, 26952($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26952)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F35Cu); return; } g_debug_last_store_pc = 0xBFC1F35Cu; cpu->write_word(psx_addr, cpu->gpr[25]); } label_BFC1F360: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F360: 93A20044 lbu $v0, 68($sp) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (68))); label_BFC1F364: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F364: 93A30048 lbu $v1, 72($sp) */ cpu->gpr[3] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (72))); @@ -78864,6 +96951,9 @@ label_BFC1F364: cpu->gpr[10] = cpu->gpr[3] & 0x1u; if (psx_taken_BFC1F368) goto label_BFC1F3AC; label_BFC1F370: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F370: 30580040 andi $t8, $v0, 0x40 */ cpu->gpr[24] = cpu->gpr[2] & 0x40u; @@ -78874,6 +96964,9 @@ label_BFC1F370: /* nop */ if (psx_taken_BFC1F374) goto label_BFC1F394; label_BFC1F37C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F37C: 30480020 andi $t0, $v0, 0x20 */ cpu->gpr[8] = cpu->gpr[2] & 0x20u; @@ -78884,6 +96977,9 @@ label_BFC1F37C: /* nop */ if (psx_taken_BFC1F380) goto label_BFC1F394; label_BFC1F388: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F388: 30490010 andi $t1, $v0, 0x10 */ cpu->gpr[9] = cpu->gpr[2] & 0x10u; @@ -78894,6 +96990,9 @@ label_BFC1F388: cpu->gpr[10] = cpu->gpr[3] & 0x1u; if (psx_taken_BFC1F38C) goto label_BFC1F3AC; label_BFC1F394: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F394: 0C00DF32 jal 0xB0037CC8 */ /* 0xBFC1F398: 00000000 nop */ @@ -78901,6 +97000,9 @@ label_BFC1F394: cpu->gpr[31] = 0x8003739Cu; psx_dispatch(cpu, 0x80037CC8u); label_BFC1F39C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F39C: 93A20044 lbu $v0, 68($sp) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (68))); @@ -78909,10 +97011,16 @@ label_BFC1F39C: /* 0xBFC1F3A4: 00000000 nop */ /* nop */ label_BFC1F3A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F3A8: 306A0001 andi $t2, $v1, 0x1 */ cpu->gpr[10] = cpu->gpr[3] & 0x1u; label_BFC1F3AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F3AC: 1140003A beq $t2, $zero, 0xBFC1F498 */ uint32_t psx_brA_BFC1F3AC = cpu->gpr[10]; uint32_t psx_brB_BFC1F3AC = cpu->gpr[0]; @@ -78921,6 +97029,9 @@ label_BFC1F3AC: cpu->gpr[1] = 0x80060000u; if (psx_taken_BFC1F3AC) goto label_BFC1F498; label_BFC1F3B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F3B4: 304B0080 andi $t3, $v0, 0x80 */ cpu->gpr[11] = cpu->gpr[2] & 0x80u; @@ -78931,6 +97042,9 @@ label_BFC1F3B4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26960)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F3BCu); return; } g_debug_last_store_pc = 0xBFC1F3BCu; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC1F3B8) goto label_BFC1F478; label_BFC1F3C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F3C0: 3C0D8006 lui $t5, 0x8006 */ cpu->gpr[13] = 0x80060000u; @@ -78945,6 +97059,9 @@ label_BFC1F3C0: /* nop */ if (psx_taken_BFC1F3CC) goto label_BFC1F3E4; label_BFC1F3D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F3D4: 2404000A addiu $a0, $zero, 10 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); @@ -78957,6 +97074,9 @@ label_BFC1F3D4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26948)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F3E0u); return; } g_debug_last_store_pc = 0xBFC1F3E0u; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC1F3DC) goto label_BFC1F498; label_BFC1F3E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F3E4: 3C0C8006 lui $t4, 0x8006 */ cpu->gpr[12] = 0x80060000u; @@ -78971,6 +97091,9 @@ label_BFC1F3E4: /* nop */ if (psx_taken_BFC1F3F0) goto label_BFC1F408; label_BFC1F3F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F3F8: 2404000B addiu $a0, $zero, 11 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (11)); @@ -78983,6 +97106,9 @@ label_BFC1F3F8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26948)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F404u); return; } g_debug_last_store_pc = 0xBFC1F404u; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC1F400) goto label_BFC1F498; label_BFC1F408: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F408: 3C0E8006 lui $t6, 0x8006 */ cpu->gpr[14] = 0x80060000u; @@ -78997,6 +97123,9 @@ label_BFC1F408: /* nop */ if (psx_taken_BFC1F414) goto label_BFC1F440; label_BFC1F41C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F41C: 3C0F8006 lui $t7, 0x8006 */ cpu->gpr[15] = 0x80060000u; @@ -79011,6 +97140,9 @@ label_BFC1F41C: /* nop */ if (psx_taken_BFC1F428) goto label_BFC1F440; label_BFC1F430: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F430: 24040012 addiu $a0, $zero, 18 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (18)); @@ -79023,6 +97155,9 @@ label_BFC1F430: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26948)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F43Cu); return; } g_debug_last_store_pc = 0xBFC1F43Cu; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC1F438) goto label_BFC1F498; label_BFC1F440: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F440: 3C198006 lui $t9, 0x8006 */ cpu->gpr[25] = 0x80060000u; @@ -79037,6 +97172,9 @@ label_BFC1F440: /* nop */ if (psx_taken_BFC1F44C) goto label_BFC1F498; label_BFC1F454: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F454: 3C188006 lui $t8, 0x8006 */ cpu->gpr[24] = 0x80060000u; @@ -79051,6 +97189,9 @@ label_BFC1F454: /* nop */ if (psx_taken_BFC1F460) goto label_BFC1F498; label_BFC1F468: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F468: 24040013 addiu $a0, $zero, 19 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (19)); @@ -79063,6 +97204,9 @@ label_BFC1F468: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26948)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F474u); return; } g_debug_last_store_pc = 0xBFC1F474u; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC1F470) goto label_BFC1F498; label_BFC1F478: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F478: 3C088006 lui $t0, 0x8006 */ cpu->gpr[8] = 0x80060000u; @@ -79077,6 +97221,9 @@ label_BFC1F478: /* nop */ if (psx_taken_BFC1F484) goto label_BFC1F498; label_BFC1F48C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F48C: 24040014 addiu $a0, $zero, 20 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (20)); @@ -79085,6 +97232,9 @@ label_BFC1F48C: /* 0xBFC1F494: AC246944 sw $a0, 26948($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26948)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F494u); return; } g_debug_last_store_pc = 0xBFC1F494u; cpu->write_word(psx_addr, cpu->gpr[4]); } label_BFC1F498: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F498: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -79096,6 +97246,9 @@ label_BFC1F498: cpu->gpr[31] = 0x800374A8u; psx_dispatch(cpu, 0x8005AA00u); label_BFC1F4A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F4A8: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -79106,10 +97259,16 @@ label_BFC1F4A8: cpu->gpr[1] = 0x80060000u; if (psx_taken_BFC1F4AC) goto label_BFC1F4B8; label_BFC1F4B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F4B4: AC206950 sw $zero, 26960($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26960)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F4B4u); return; } g_debug_last_store_pc = 0xBFC1F4B4u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC1F4B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F4B8: 3C098006 lui $t1, 0x8006 */ cpu->gpr[9] = 0x80060000u; @@ -79124,6 +97283,9 @@ label_BFC1F4B8: /* nop */ if (psx_taken_BFC1F4C4) goto label_BFC1F584; label_BFC1F4CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F4CC: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -79138,6 +97300,9 @@ label_BFC1F4CC: /* nop */ if (psx_taken_BFC1F4D8) goto label_BFC1F584; label_BFC1F4E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F4E0: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -79153,6 +97318,9 @@ label_BFC1F4E0: cpu->gpr[31] = 0x800374F8u; psx_dispatch(cpu, 0x800361CCu); label_BFC1F4F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F4F8: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -79167,6 +97335,9 @@ label_BFC1F4F8: /* nop */ if (psx_taken_BFC1F504) goto label_BFC1F578; label_BFC1F50C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F50C: 30A30003 andi $v1, $a1, 0x3 */ cpu->gpr[3] = cpu->gpr[5] & 0x3u; @@ -79177,6 +97348,9 @@ label_BFC1F50C: /* nop */ if (psx_taken_BFC1F510) goto label_BFC1F540; label_BFC1F518: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F518: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -79185,6 +97359,9 @@ label_BFC1F518: /* 0xBFC1F520: 008B1021 addu $v0, $a0, $t3 */ cpu->gpr[2] = cpu->gpr[4] + cpu->gpr[11]; label_BFC1F524: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F524: 904D0001 lbu $t5, 1($v0) */ cpu->gpr[13] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[2] + (1))); @@ -79199,6 +97376,9 @@ label_BFC1F524: g_debug_last_store_pc = 0xBFC1F534u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[2] + (-1)), (uint8_t)(cpu->gpr[13] & 0xFFu)); if (psx_taken_BFC1F530) goto label_BFC1F524; label_BFC1F538: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F538: 1085000F beq $a0, $a1, 0xBFC1F578 */ uint32_t psx_brA_BFC1F538 = cpu->gpr[4]; uint32_t psx_brB_BFC1F538 = cpu->gpr[5]; @@ -79207,6 +97387,9 @@ label_BFC1F538: /* nop */ if (psx_taken_BFC1F538) goto label_BFC1F578; label_BFC1F540: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F540: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -79217,6 +97400,9 @@ label_BFC1F540: /* 0xBFC1F54C: 00AC1821 addu $v1, $a1, $t4 */ cpu->gpr[3] = cpu->gpr[5] + cpu->gpr[12]; label_BFC1F550: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F550: 904E0001 lbu $t6, 1($v0) */ cpu->gpr[14] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[2] + (1))); @@ -79241,6 +97427,9 @@ label_BFC1F550: g_debug_last_store_pc = 0xBFC1F574u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[2] + (-1)), (uint8_t)(cpu->gpr[24] & 0xFFu)); if (psx_taken_BFC1F570) goto label_BFC1F550; label_BFC1F578: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F578: 24A5FFFF addiu $a1, $a1, -1 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (-1)); @@ -79249,6 +97438,9 @@ label_BFC1F578: /* 0xBFC1F580: AC25694C sw $a1, 26956($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26956)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F580u); return; } g_debug_last_store_pc = 0xBFC1F580u; cpu->write_word(psx_addr, cpu->gpr[5]); } label_BFC1F584: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F584: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -79265,6 +97457,9 @@ label_BFC1F584: /* nop */ if (psx_taken_BFC1F594) goto label_BFC1F5F8; label_BFC1F59C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F59C: 3C088006 lui $t0, 0x8006 */ cpu->gpr[8] = 0x80060000u; @@ -79279,6 +97474,9 @@ label_BFC1F59C: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1F5A8) goto label_BFC1F5CC; label_BFC1F5B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F5B0: 00250821 addu $at, $at, $a1 */ cpu->gpr[1] = cpu->gpr[1] + cpu->gpr[5]; @@ -79297,6 +97495,9 @@ label_BFC1F5B0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26956)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F5C8u); return; } g_debug_last_store_pc = 0xBFC1F5C8u; cpu->write_word(psx_addr, cpu->gpr[5]); } if (psx_taken_BFC1F5C4) goto label_BFC1F5EC; label_BFC1F5CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F5CC: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; @@ -79316,6 +97517,9 @@ label_BFC1F5CC: cpu->gpr[31] = 0x800375ECu; psx_dispatch(cpu, 0x800361CCu); label_BFC1F5EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F5EC: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -79324,6 +97528,9 @@ label_BFC1F5EC: /* 0xBFC1F5F4: AC246944 sw $a0, 26948($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26948)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F5F4u); return; } g_debug_last_store_pc = 0xBFC1F5F4u; cpu->write_word(psx_addr, cpu->gpr[4]); } label_BFC1F5F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F5F8: 0C00CB1A jal 0xB0032C68 */ /* 0xBFC1F5FC: 00000000 nop */ @@ -79331,6 +97538,9 @@ label_BFC1F5F8: cpu->gpr[31] = 0x80037600u; psx_dispatch(cpu, 0x80032C68u); label_BFC1F600: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F600: 0C00CDF8 jal 0xB00337E0 */ /* 0xBFC1F604: 00000000 nop */ @@ -79338,6 +97548,9 @@ label_BFC1F600: cpu->gpr[31] = 0x80037608u; psx_dispatch(cpu, 0x800337E0u); label_BFC1F608: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F608: 3C0B8006 lui $t3, 0x8006 */ cpu->gpr[11] = 0x80060000u; @@ -79352,6 +97565,9 @@ label_BFC1F608: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); if (psx_taken_BFC1F614) goto label_BFC1F624; label_BFC1F61C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F61C: 15610008 bne $t3, $at, 0xBFC1F640 */ uint32_t psx_brA_BFC1F61C = cpu->gpr[11]; uint32_t psx_brB_BFC1F61C = cpu->gpr[1]; @@ -79360,6 +97576,9 @@ label_BFC1F61C: /* nop */ if (psx_taken_BFC1F61C) goto label_BFC1F640; label_BFC1F624: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F624: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -79374,6 +97593,9 @@ label_BFC1F624: /* nop */ if (psx_taken_BFC1F630) goto label_BFC1F640; label_BFC1F638: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F638: 0C00DF32 jal 0xB0037CC8 */ /* 0xBFC1F63C: 00000000 nop */ @@ -79381,6 +97603,9 @@ label_BFC1F638: cpu->gpr[31] = 0x80037640u; psx_dispatch(cpu, 0x80037CC8u); label_BFC1F640: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F640: 0C00C908 jal 0xB0032420 */ /* 0xBFC1F644: 00000000 nop */ @@ -79388,6 +97613,9 @@ label_BFC1F640: cpu->gpr[31] = 0x80037648u; psx_dispatch(cpu, 0x80032420u); label_BFC1F648: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F648: 24010004 addiu $at, $zero, 4 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); @@ -79398,6 +97626,9 @@ label_BFC1F648: /* nop */ if (psx_taken_BFC1F64C) goto label_BFC1F680; label_BFC1F654: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F654: 3C0C8006 lui $t4, 0x8006 */ cpu->gpr[12] = 0x80060000u; @@ -79412,6 +97643,9 @@ label_BFC1F654: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (51)); if (psx_taken_BFC1F660) goto label_BFC1F670; label_BFC1F668: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F668: 1581000D bne $t4, $at, 0xBFC1F6A0 */ uint32_t psx_brA_BFC1F668 = cpu->gpr[12]; uint32_t psx_brB_BFC1F668 = cpu->gpr[1]; @@ -79420,6 +97654,9 @@ label_BFC1F668: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F66Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1F668) goto label_BFC1F6A0; label_BFC1F670: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F670: 0C00CAA4 jal 0xB0032A90 */ /* 0xBFC1F674: 00000000 nop */ @@ -79427,6 +97664,9 @@ label_BFC1F670: cpu->gpr[31] = 0x80037678u; psx_dispatch(cpu, 0x80032A90u); label_BFC1F678: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F678: 10000009 beq $zero, $zero, 0xBFC1F6A0 */ uint32_t psx_brA_BFC1F678 = cpu->gpr[0]; uint32_t psx_brB_BFC1F678 = cpu->gpr[0]; @@ -79435,6 +97675,9 @@ label_BFC1F678: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F67Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1F678) goto label_BFC1F6A0; label_BFC1F680: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F680: 3C0E8006 lui $t6, 0x8006 */ cpu->gpr[14] = 0x80060000u; @@ -79449,6 +97692,9 @@ label_BFC1F680: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F690u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1F68C) goto label_BFC1F6A0; label_BFC1F694: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F694: 0C00CAA4 jal 0xB0032A90 */ /* 0xBFC1F698: 00000000 nop */ @@ -79456,10 +97702,16 @@ label_BFC1F694: cpu->gpr[31] = 0x8003769Cu; psx_dispatch(cpu, 0x80032A90u); label_BFC1F69C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F69C: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F69Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC1F6A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F6A0: 27BD0078 addiu $sp, $sp, 120 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (120)); @@ -79481,6 +97733,9 @@ void func_1FC1F6AC(CPUState* cpu) { } } label_BFC1F6AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F6AC: 3C0E8006 lui $t6, 0x8006 */ cpu->gpr[14] = 0x80060000u; @@ -79499,6 +97754,9 @@ label_BFC1F6AC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F6C4u); return; } g_debug_last_store_pc = 0xBFC1F6C4u; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC1F6C0) goto label_BFC1F754; label_BFC1F6C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F6C8: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -79532,6 +97790,9 @@ label_BFC1F6C8: cpu->gpr[31] = 0x80037704u; psx_dispatch(cpu, 0x800393A4u); label_BFC1F704: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F704: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -79563,6 +97824,9 @@ label_BFC1F704: cpu->gpr[31] = 0x8003773Cu; psx_dispatch(cpu, 0x800393A4u); label_BFC1F73C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F73C: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -79577,6 +97841,9 @@ label_BFC1F73C: /* 0xBFC1F750: AC209E64 sw $zero, -24988($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24988)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F750u); return; } g_debug_last_store_pc = 0xBFC1F750u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC1F754: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F754: 240E0001 addiu $t6, $zero, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -79616,6 +97883,9 @@ void func_1FC1F778(CPUState* cpu) { } } label_BFC1F778: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F778: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -79649,6 +97919,9 @@ label_BFC1F778: cpu->gpr[31] = 0x800377B4u; psx_dispatch(cpu, 0x800323B8u); label_BFC1F7B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F7B4: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; @@ -79668,6 +97941,9 @@ label_BFC1F7B4: cpu->gpr[31] = 0x800377D4u; psx_dispatch(cpu, 0x800393FCu); label_BFC1F7D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F7D4: 14400003 bne $v0, $zero, 0xBFC1F7E4 */ uint32_t psx_brA_BFC1F7D4 = cpu->gpr[2]; uint32_t psx_brB_BFC1F7D4 = cpu->gpr[0]; @@ -79676,6 +97952,9 @@ label_BFC1F7D4: /* nop */ if (psx_taken_BFC1F7D4) goto label_BFC1F7E4; label_BFC1F7DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F7DC: 10000064 beq $zero, $zero, 0xBFC1F970 */ uint32_t psx_brA_BFC1F7DC = cpu->gpr[0]; uint32_t psx_brB_BFC1F7DC = cpu->gpr[0]; @@ -79684,6 +97963,9 @@ label_BFC1F7DC: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC1F7DC) goto label_BFC1F970; label_BFC1F7E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F7E4: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -79698,6 +97980,9 @@ label_BFC1F7E4: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1F7F0) goto label_BFC1F804; label_BFC1F7F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F7F8: AC209EB0 sw $zero, -24912($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24912)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F7F8u); return; } g_debug_last_store_pc = 0xBFC1F7F8u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -79708,6 +97993,9 @@ label_BFC1F7F8: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC1F7FC) goto label_BFC1F970; label_BFC1F804: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F804: 24180001 addiu $t8, $zero, 1 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -79727,6 +98015,9 @@ label_BFC1F804: cpu->gpr[31] = 0x80037824u; psx_dispatch(cpu, 0x80039184u); label_BFC1F824: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F824: 93A50024 lbu $a1, 36($sp) */ cpu->gpr[5] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (36))); @@ -79749,6 +98040,9 @@ label_BFC1F824: /* 0xBFC1F848: A0269E71 sb $a2, -24975($at) */ g_debug_last_store_pc = 0xBFC1F848u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[1] + (-24975)), (uint8_t)(cpu->gpr[6] & 0xFFu)); label_BFC1F84C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F84C: 0045082B sltu $at, $v0, $a1 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < cpu->gpr[5] ? 1 : 0); @@ -79759,6 +98053,9 @@ label_BFC1F84C: cpu->gpr[1] = (uint32_t)(cpu->gpr[6] < cpu->gpr[2] ? 1 : 0); if (psx_taken_BFC1F850) goto label_BFC1F860; label_BFC1F858: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F858: 10200003 beq $at, $zero, 0xBFC1F868 */ uint32_t psx_brA_BFC1F858 = cpu->gpr[1]; uint32_t psx_brB_BFC1F858 = cpu->gpr[0]; @@ -79767,6 +98064,9 @@ label_BFC1F858: /* nop */ if (psx_taken_BFC1F858) goto label_BFC1F868; label_BFC1F860: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F860: 10000002 beq $zero, $zero, 0xBFC1F86C */ uint32_t psx_brA_BFC1F860 = cpu->gpr[0]; uint32_t psx_brB_BFC1F860 = cpu->gpr[0]; @@ -79775,10 +98075,16 @@ label_BFC1F860: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F864u); return; } g_debug_last_store_pc = 0xBFC1F864u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC1F860) goto label_BFC1F86C; label_BFC1F868: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F868: AC620000 sw $v0, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F868u); return; } g_debug_last_store_pc = 0xBFC1F868u; cpu->write_word(psx_addr, cpu->gpr[2]); } label_BFC1F86C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F86C: 24420001 addiu $v0, $v0, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (1)); @@ -79789,6 +98095,9 @@ label_BFC1F86C: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_taken_BFC1F870) goto label_BFC1F84C; label_BFC1F878: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F878: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -79816,6 +98125,9 @@ label_BFC1F878: cpu->gpr[31] = 0x800378A8u; psx_dispatch(cpu, 0x80032A90u); label_BFC1F8A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F8A8: 24080025 addiu $t0, $zero, 37 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (37)); @@ -79841,6 +98153,9 @@ label_BFC1F8A8: cpu->gpr[31] = 0x800378D4u; psx_dispatch(cpu, 0x800393FCu); label_BFC1F8D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F8D4: 14400003 bne $v0, $zero, 0xBFC1F8E4 */ uint32_t psx_brA_BFC1F8D4 = cpu->gpr[2]; uint32_t psx_brB_BFC1F8D4 = cpu->gpr[0]; @@ -79849,6 +98164,9 @@ label_BFC1F8D4: /* nop */ if (psx_taken_BFC1F8D4) goto label_BFC1F8E4; label_BFC1F8DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F8DC: 0C00DF32 jal 0xB0037CC8 */ /* 0xBFC1F8E0: 00000000 nop */ @@ -79856,6 +98174,9 @@ label_BFC1F8DC: cpu->gpr[31] = 0x800378E4u; psx_dispatch(cpu, 0x80037CC8u); label_BFC1F8E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F8E4: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -79870,6 +98191,9 @@ label_BFC1F8E4: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1F8F0) goto label_BFC1F904; label_BFC1F8F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F8F8: AC209EB0 sw $zero, -24912($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24912)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F8F8u); return; } g_debug_last_store_pc = 0xBFC1F8F8u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -79880,6 +98204,9 @@ label_BFC1F8F8: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC1F8FC) goto label_BFC1F970; label_BFC1F904: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F904: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; @@ -79899,6 +98226,9 @@ label_BFC1F904: cpu->gpr[31] = 0x80037924u; psx_dispatch(cpu, 0x800393FCu); label_BFC1F924: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F924: 14400003 bne $v0, $zero, 0xBFC1F934 */ uint32_t psx_brA_BFC1F924 = cpu->gpr[2]; uint32_t psx_brB_BFC1F924 = cpu->gpr[0]; @@ -79907,6 +98237,9 @@ label_BFC1F924: /* nop */ if (psx_taken_BFC1F924) goto label_BFC1F934; label_BFC1F92C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F92C: 0C00DF32 jal 0xB0037CC8 */ /* 0xBFC1F930: 00000000 nop */ @@ -79914,6 +98247,9 @@ label_BFC1F92C: cpu->gpr[31] = 0x80037934u; psx_dispatch(cpu, 0x80037CC8u); label_BFC1F934: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F934: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -79928,6 +98264,9 @@ label_BFC1F934: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1F940) goto label_BFC1F954; label_BFC1F948: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F948: AC209EB0 sw $zero, -24912($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24912)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F948u); return; } g_debug_last_store_pc = 0xBFC1F948u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -79938,6 +98277,9 @@ label_BFC1F948: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC1F94C) goto label_BFC1F970; label_BFC1F954: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F954: 240D0032 addiu $t5, $zero, 50 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (50)); @@ -79954,6 +98296,9 @@ label_BFC1F954: /* 0xBFC1F96C: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC1F970: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F970: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F970u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -79996,6 +98341,9 @@ void func_1FC1F980(CPUState* cpu) { } } label_BFC1F980: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F980: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -80012,6 +98360,9 @@ label_BFC1F980: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F994u); return; } g_debug_last_store_pc = 0xBFC1F994u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC1F990) goto label_BFC1FA88; label_BFC1F998: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F998: 240E0034 addiu $t6, $zero, 52 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); @@ -80033,6 +98384,9 @@ label_BFC1F998: cpu->gpr[31] = 0x800379BCu; psx_dispatch(cpu, 0x800393FCu); label_BFC1F9BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F9BC: 14400008 bne $v0, $zero, 0xBFC1F9E0 */ uint32_t psx_brA_BFC1F9BC = cpu->gpr[2]; uint32_t psx_brB_BFC1F9BC = cpu->gpr[0]; @@ -80041,6 +98395,9 @@ label_BFC1F9BC: /* nop */ if (psx_taken_BFC1F9BC) goto label_BFC1F9E0; label_BFC1F9C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F9C4: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -80050,6 +98407,9 @@ label_BFC1F9C4: cpu->gpr[31] = 0x800379D0u; psx_dispatch(cpu, 0x8005A910u); label_BFC1F9D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F9D0: 0C00DF32 jal 0xB0037CC8 */ /* 0xBFC1F9D4: 00000000 nop */ @@ -80057,6 +98417,9 @@ label_BFC1F9D0: cpu->gpr[31] = 0x800379D8u; psx_dispatch(cpu, 0x80037CC8u); label_BFC1F9D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F9D8: 100000B8 beq $zero, $zero, 0xBFC1FCBC */ uint32_t psx_brA_BFC1F9D8 = cpu->gpr[0]; uint32_t psx_brB_BFC1F9D8 = cpu->gpr[0]; @@ -80065,6 +98428,9 @@ label_BFC1F9D8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F9DCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1F9D8) goto label_BFC1FCBC; label_BFC1F9E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F9E0: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -80079,10 +98445,16 @@ label_BFC1F9E0: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1F9EC) goto label_BFC1F9F8; label_BFC1F9F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F9F4: AC209EB0 sw $zero, -24912($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24912)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1F9F4u); return; } g_debug_last_store_pc = 0xBFC1F9F4u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC1F9F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1F9F8: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -80097,6 +98469,9 @@ label_BFC1F9F8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1FA08u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1FA04) goto label_BFC1FCBC; label_BFC1FA0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FA0C: 0C00D262 jal 0xB0034988 */ /* 0xBFC1FA10: 00000000 nop */ @@ -80104,6 +98479,9 @@ label_BFC1FA0C: cpu->gpr[31] = 0x80037A14u; psx_dispatch(cpu, 0x80034988u); label_BFC1FA14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FA14: 10400003 beq $v0, $zero, 0xBFC1FA24 */ uint32_t psx_brA_BFC1FA14 = cpu->gpr[2]; uint32_t psx_brB_BFC1FA14 = cpu->gpr[0]; @@ -80112,6 +98490,9 @@ label_BFC1FA14: /* nop */ if (psx_taken_BFC1FA14) goto label_BFC1FA24; label_BFC1FA1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FA1C: 1000000C beq $zero, $zero, 0xBFC1FA50 */ uint32_t psx_brA_BFC1FA1C = cpu->gpr[0]; uint32_t psx_brB_BFC1FA1C = cpu->gpr[0]; @@ -80120,6 +98501,9 @@ label_BFC1FA1C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC1FA1C) goto label_BFC1FA50; label_BFC1FA24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FA24: 0C00D25E jal 0xB0034978 */ /* 0xBFC1FA28: 00000000 nop */ @@ -80127,6 +98511,9 @@ label_BFC1FA24: cpu->gpr[31] = 0x80037A2Cu; psx_dispatch(cpu, 0x80034978u); label_BFC1FA2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FA2C: 10400005 beq $v0, $zero, 0xBFC1FA44 */ uint32_t psx_brA_BFC1FA2C = cpu->gpr[2]; uint32_t psx_brB_BFC1FA2C = cpu->gpr[0]; @@ -80135,6 +98522,9 @@ label_BFC1FA2C: /* nop */ if (psx_taken_BFC1FA2C) goto label_BFC1FA44; label_BFC1FA34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FA34: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -80147,6 +98537,9 @@ label_BFC1FA34: cpu->gpr[25] = cpu->gpr[2] << 2u; if (psx_taken_BFC1FA3C) goto label_BFC1FA54; label_BFC1FA44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FA44: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -80155,10 +98548,16 @@ label_BFC1FA44: /* 0xBFC1FA4C: 00000000 nop */ /* nop */ label_BFC1FA50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FA50: 0002C880 sll $t9, $v0, 2 */ cpu->gpr[25] = cpu->gpr[2] << 2u; label_BFC1FA54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FA54: 3C08800F lui $t0, 0x800F */ cpu->gpr[8] = 0x800F0000u; @@ -80180,6 +98579,9 @@ label_BFC1FA54: cpu->gpr[31] = 0x80037A78u; psx_dispatch(cpu, 0x80032414u); label_BFC1FA78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FA78: 0C00DDAB jal 0xB00376AC */ /* 0xBFC1FA7C: 24040001 addiu $a0, $zero, 1 */ @@ -80187,6 +98589,9 @@ label_BFC1FA78: cpu->gpr[31] = 0x80037A80u; psx_dispatch(cpu, 0x800376ACu); label_BFC1FA80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FA80: 1000008E beq $zero, $zero, 0xBFC1FCBC */ uint32_t psx_brA_BFC1FA80 = cpu->gpr[0]; uint32_t psx_brB_BFC1FA80 = cpu->gpr[0]; @@ -80195,6 +98600,9 @@ label_BFC1FA80: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1FA84u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1FA80) goto label_BFC1FCBC; label_BFC1FA88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FA88: 24030034 addiu $v1, $zero, 52 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); @@ -80205,6 +98613,9 @@ label_BFC1FA88: /* nop */ if (psx_taken_BFC1FA8C) goto label_BFC1FAA8; label_BFC1FA94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FA94: 3C098006 lui $t1, 0x8006 */ cpu->gpr[9] = 0x80060000u; @@ -80219,6 +98630,9 @@ label_BFC1FA94: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (58)); if (psx_taken_BFC1FAA0) goto label_BFC1FB4C; label_BFC1FAA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FAA8: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -80233,6 +98647,9 @@ label_BFC1FAA8: /* nop */ if (psx_taken_BFC1FAB4) goto label_BFC1FAE8; label_BFC1FABC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FABC: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -80252,6 +98669,9 @@ label_BFC1FABC: cpu->gpr[31] = 0x80037ADCu; psx_dispatch(cpu, 0x80037FA8u); label_BFC1FADC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FADC: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -80262,6 +98682,9 @@ label_BFC1FADC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24900)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1FAE4u); return; } g_debug_last_store_pc = 0xBFC1FAE4u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC1FAE0) goto label_BFC1FCB8; label_BFC1FAE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FAE8: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -80276,6 +98699,9 @@ label_BFC1FAE8: /* nop */ if (psx_taken_BFC1FAF4) goto label_BFC1FB10; label_BFC1FAFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FAFC: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -80290,6 +98716,9 @@ label_BFC1FAFC: /* nop */ if (psx_taken_BFC1FB08) goto label_BFC1FB20; label_BFC1FB10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FB10: 0C00DFEA jal 0xB0037FA8 */ /* 0xBFC1FB14: 00002021 addu $a0, $zero, $zero */ @@ -80297,6 +98726,9 @@ label_BFC1FB10: cpu->gpr[31] = 0x80037B18u; psx_dispatch(cpu, 0x80037FA8u); label_BFC1FB18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FB18: 10000068 beq $zero, $zero, 0xBFC1FCBC */ uint32_t psx_brA_BFC1FB18 = cpu->gpr[0]; uint32_t psx_brB_BFC1FB18 = cpu->gpr[0]; @@ -80305,6 +98737,9 @@ label_BFC1FB18: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1FB1Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1FB18) goto label_BFC1FCBC; label_BFC1FB20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FB20: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -80324,6 +98759,9 @@ label_BFC1FB20: cpu->gpr[31] = 0x80037B40u; psx_dispatch(cpu, 0x80037FA8u); label_BFC1FB40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FB40: 1000005E beq $zero, $zero, 0xBFC1FCBC */ uint32_t psx_brA_BFC1FB40 = cpu->gpr[0]; uint32_t psx_brB_BFC1FB40 = cpu->gpr[0]; @@ -80332,10 +98770,16 @@ label_BFC1FB40: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1FB44u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1FB40) goto label_BFC1FCBC; label_BFC1FB48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FB48: 2401003A addiu $at, $zero, 58 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (58)); label_BFC1FB4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FB4C: 10410003 beq $v0, $at, 0xBFC1FB5C */ uint32_t psx_brA_BFC1FB4C = cpu->gpr[2]; uint32_t psx_brB_BFC1FB4C = cpu->gpr[1]; @@ -80344,6 +98788,9 @@ label_BFC1FB4C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (59)); if (psx_taken_BFC1FB4C) goto label_BFC1FB5C; label_BFC1FB54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FB54: 1441000B bne $v0, $at, 0xBFC1FB84 */ uint32_t psx_brA_BFC1FB54 = cpu->gpr[2]; uint32_t psx_brB_BFC1FB54 = cpu->gpr[1]; @@ -80352,6 +98799,9 @@ label_BFC1FB54: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (50)); if (psx_taken_BFC1FB54) goto label_BFC1FB84; label_BFC1FB5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FB5C: 240F0034 addiu $t7, $zero, 52 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); @@ -80374,10 +98824,16 @@ label_BFC1FB5C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26948)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1FB7Cu); return; } g_debug_last_store_pc = 0xBFC1FB7Cu; cpu->write_word(psx_addr, cpu->gpr[24]); } if (psx_taken_BFC1FB78) goto label_BFC1FCB8; label_BFC1FB80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FB80: 24010032 addiu $at, $zero, 50 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (50)); label_BFC1FB84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FB84: 1441004D bne $v0, $at, 0xBFC1FCBC */ uint32_t psx_brA_BFC1FB84 = cpu->gpr[2]; uint32_t psx_brB_BFC1FB84 = cpu->gpr[1]; @@ -80386,6 +98842,9 @@ label_BFC1FB84: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1FB88u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC1FB84) goto label_BFC1FCBC; label_BFC1FB8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FB8C: 0C00D262 jal 0xB0034988 */ /* 0xBFC1FB90: 00000000 nop */ @@ -80393,6 +98852,9 @@ label_BFC1FB8C: cpu->gpr[31] = 0x80037B94u; psx_dispatch(cpu, 0x80034988u); label_BFC1FB94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FB94: 10400008 beq $v0, $zero, 0xBFC1FBB8 */ uint32_t psx_brA_BFC1FB94 = cpu->gpr[2]; uint32_t psx_brB_BFC1FB94 = cpu->gpr[0]; @@ -80401,6 +98863,9 @@ label_BFC1FB94: cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); if (psx_taken_BFC1FB94) goto label_BFC1FBB8; label_BFC1FB9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FB9C: 0C00D266 jal 0xB0034998 */ /* 0xBFC1FBA0: 00000000 nop */ @@ -80408,6 +98873,9 @@ label_BFC1FB9C: cpu->gpr[31] = 0x80037BA4u; psx_dispatch(cpu, 0x80034998u); label_BFC1FBA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FBA4: 14400004 bne $v0, $zero, 0xBFC1FBB8 */ uint32_t psx_brA_BFC1FBA4 = cpu->gpr[2]; uint32_t psx_brB_BFC1FBA4 = cpu->gpr[0]; @@ -80416,6 +98884,9 @@ label_BFC1FBA4: cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); if (psx_taken_BFC1FBA4) goto label_BFC1FBB8; label_BFC1FBAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FBAC: 0C00CFD1 jal 0xB0033F44 */ /* 0xBFC1FBB0: 24040001 addiu $a0, $zero, 1 */ @@ -80423,10 +98894,16 @@ label_BFC1FBAC: cpu->gpr[31] = 0x80037BB4u; psx_dispatch(cpu, 0x80033F44u); label_BFC1FBB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FBB4: 24190034 addiu $t9, $zero, 52 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); label_BFC1FBB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FBB8: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -80446,6 +98923,9 @@ label_BFC1FBB8: cpu->gpr[31] = 0x80037BD8u; psx_dispatch(cpu, 0x800393FCu); label_BFC1FBD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FBD8: 1440000A bne $v0, $zero, 0xBFC1FC04 */ uint32_t psx_brA_BFC1FBD8 = cpu->gpr[2]; uint32_t psx_brB_BFC1FBD8 = cpu->gpr[0]; @@ -80454,6 +98934,9 @@ label_BFC1FBD8: /* nop */ if (psx_taken_BFC1FBD8) goto label_BFC1FC04; label_BFC1FBE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FBE0: 0C00DF32 jal 0xB0037CC8 */ /* 0xBFC1FBE4: 00000000 nop */ @@ -80461,6 +98944,9 @@ label_BFC1FBE0: cpu->gpr[31] = 0x80037BE8u; psx_dispatch(cpu, 0x80037CC8u); label_BFC1FBE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FBE8: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -80475,6 +98961,9 @@ label_BFC1FBE8: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC1FBF4) goto label_BFC1FCB8; label_BFC1FBFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FBFC: 1000002E beq $zero, $zero, 0xBFC1FCB8 */ uint32_t psx_brA_BFC1FBFC = cpu->gpr[0]; uint32_t psx_brB_BFC1FBFC = cpu->gpr[0]; @@ -80483,6 +98972,9 @@ label_BFC1FBFC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24912)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1FC00u); return; } g_debug_last_store_pc = 0xBFC1FC00u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC1FBFC) goto label_BFC1FCB8; label_BFC1FC04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FC04: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -80497,6 +98989,9 @@ label_BFC1FC04: /* nop */ if (psx_taken_BFC1FC10) goto label_BFC1FC84; label_BFC1FC18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FC18: 0C00D262 jal 0xB0034988 */ /* 0xBFC1FC1C: 00000000 nop */ @@ -80504,6 +98999,9 @@ label_BFC1FC18: cpu->gpr[31] = 0x80037C20u; psx_dispatch(cpu, 0x80034988u); label_BFC1FC20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FC20: 10400003 beq $v0, $zero, 0xBFC1FC30 */ uint32_t psx_brA_BFC1FC20 = cpu->gpr[2]; uint32_t psx_brB_BFC1FC20 = cpu->gpr[0]; @@ -80512,6 +99010,9 @@ label_BFC1FC20: /* nop */ if (psx_taken_BFC1FC20) goto label_BFC1FC30; label_BFC1FC28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FC28: 1000000C beq $zero, $zero, 0xBFC1FC5C */ uint32_t psx_brA_BFC1FC28 = cpu->gpr[0]; uint32_t psx_brB_BFC1FC28 = cpu->gpr[0]; @@ -80520,6 +99021,9 @@ label_BFC1FC28: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC1FC28) goto label_BFC1FC5C; label_BFC1FC30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FC30: 0C00D25E jal 0xB0034978 */ /* 0xBFC1FC34: 00000000 nop */ @@ -80527,6 +99031,9 @@ label_BFC1FC30: cpu->gpr[31] = 0x80037C38u; psx_dispatch(cpu, 0x80034978u); label_BFC1FC38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FC38: 10400005 beq $v0, $zero, 0xBFC1FC50 */ uint32_t psx_brA_BFC1FC38 = cpu->gpr[2]; uint32_t psx_brB_BFC1FC38 = cpu->gpr[0]; @@ -80535,6 +99042,9 @@ label_BFC1FC38: /* nop */ if (psx_taken_BFC1FC38) goto label_BFC1FC50; label_BFC1FC40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FC40: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -80547,6 +99057,9 @@ label_BFC1FC40: cpu->gpr[10] = cpu->gpr[2] << 2u; if (psx_taken_BFC1FC48) goto label_BFC1FC60; label_BFC1FC50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FC50: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -80555,10 +99068,16 @@ label_BFC1FC50: /* 0xBFC1FC58: 00000000 nop */ /* nop */ label_BFC1FC5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FC5C: 00025080 sll $t2, $v0, 2 */ cpu->gpr[10] = cpu->gpr[2] << 2u; label_BFC1FC60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FC60: 3C0B800F lui $t3, 0x800F */ cpu->gpr[11] = 0x800F0000u; @@ -80580,6 +99099,9 @@ label_BFC1FC60: cpu->gpr[31] = 0x80037C84u; psx_dispatch(cpu, 0x80032414u); label_BFC1FC84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FC84: 0C00DDAB jal 0xB00376AC */ /* 0xBFC1FC88: 24040001 addiu $a0, $zero, 1 */ @@ -80587,6 +99109,9 @@ label_BFC1FC84: cpu->gpr[31] = 0x80037C8Cu; psx_dispatch(cpu, 0x800376ACu); label_BFC1FC8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FC8C: 0C00D8F3 jal 0xB00363CC */ /* 0xBFC1FC90: 00000000 nop */ @@ -80594,6 +99119,9 @@ label_BFC1FC8C: cpu->gpr[31] = 0x80037C94u; psx_dispatch(cpu, 0x800363CCu); label_BFC1FC94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FC94: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -80615,10 +99143,16 @@ label_BFC1FC94: cpu->gpr[31] = 0x80037CB8u; psx_dispatch(cpu, 0x80032A90u); label_BFC1FCB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FCB8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1FCB8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC1FCBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FCBC: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -80658,6 +99192,9 @@ void func_1FC1FCC8(CPUState* cpu) { } } label_BFC1FCC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FCC8: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -80691,6 +99228,9 @@ label_BFC1FCC8: cpu->gpr[31] = 0x80037D04u; psx_dispatch(cpu, 0x80032A90u); label_BFC1FD04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FD04: 0C00C905 jal 0xB0032414 */ /* 0xBFC1FD08: 00002021 addu $a0, $zero, $zero */ @@ -80698,6 +99238,9 @@ label_BFC1FD04: cpu->gpr[31] = 0x80037D0Cu; psx_dispatch(cpu, 0x80032414u); label_BFC1FD0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FD0C: 0C00D262 jal 0xB0034988 */ /* 0xBFC1FD10: 00000000 nop */ @@ -80705,6 +99248,9 @@ label_BFC1FD0C: cpu->gpr[31] = 0x80037D14u; psx_dispatch(cpu, 0x80034988u); label_BFC1FD14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FD14: 10400005 beq $v0, $zero, 0xBFC1FD2C */ uint32_t psx_brA_BFC1FD14 = cpu->gpr[2]; uint32_t psx_brB_BFC1FD14 = cpu->gpr[0]; @@ -80713,6 +99259,9 @@ label_BFC1FD14: /* nop */ if (psx_taken_BFC1FD14) goto label_BFC1FD2C; label_BFC1FD1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FD1C: 0C00C905 jal 0xB0032414 */ /* 0xBFC1FD20: 00002021 addu $a0, $zero, $zero */ @@ -80720,6 +99269,9 @@ label_BFC1FD1C: cpu->gpr[31] = 0x80037D24u; psx_dispatch(cpu, 0x80032414u); label_BFC1FD24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FD24: 10000003 beq $zero, $zero, 0xBFC1FD34 */ uint32_t psx_brA_BFC1FD24 = cpu->gpr[0]; uint32_t psx_brB_BFC1FD24 = cpu->gpr[0]; @@ -80728,6 +99280,9 @@ label_BFC1FD24: /* nop */ if (psx_taken_BFC1FD24) goto label_BFC1FD34; label_BFC1FD2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FD2C: 0C00D26A jal 0xB00349A8 */ /* 0xBFC1FD30: 00002021 addu $a0, $zero, $zero */ @@ -80735,6 +99290,9 @@ label_BFC1FD2C: cpu->gpr[31] = 0x80037D34u; psx_dispatch(cpu, 0x800349A8u); label_BFC1FD34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FD34: 0C00D262 jal 0xB0034988 */ /* 0xBFC1FD38: 00000000 nop */ @@ -80742,6 +99300,9 @@ label_BFC1FD34: cpu->gpr[31] = 0x80037D3Cu; psx_dispatch(cpu, 0x80034988u); label_BFC1FD3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FD3C: 1040003E beq $v0, $zero, 0xBFC1FE38 */ uint32_t psx_brA_BFC1FD3C = cpu->gpr[2]; uint32_t psx_brB_BFC1FD3C = cpu->gpr[0]; @@ -80750,6 +99311,9 @@ label_BFC1FD3C: /* nop */ if (psx_taken_BFC1FD3C) goto label_BFC1FE38; label_BFC1FD44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FD44: 0C00CF56 jal 0xB0033D58 */ /* 0xBFC1FD48: 00000000 nop */ @@ -80757,6 +99321,9 @@ label_BFC1FD44: cpu->gpr[31] = 0x80037D4Cu; psx_dispatch(cpu, 0x80033D58u); label_BFC1FD4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FD4C: 14400018 bne $v0, $zero, 0xBFC1FDB0 */ uint32_t psx_brA_BFC1FD4C = cpu->gpr[2]; uint32_t psx_brB_BFC1FD4C = cpu->gpr[0]; @@ -80765,6 +99332,9 @@ label_BFC1FD4C: /* nop */ if (psx_taken_BFC1FD4C) goto label_BFC1FDB0; label_BFC1FD54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FD54: AFB00020 sw $s0, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1FD54u); return; } g_debug_last_store_pc = 0xBFC1FD54u; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -80774,6 +99344,9 @@ label_BFC1FD54: cpu->gpr[31] = 0x80037D60u; psx_dispatch(cpu, 0x80034998u); label_BFC1FD60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FD60: 18400011 blez $v0, 0xBFC1FDA8 */ uint32_t psx_brA_BFC1FD60 = cpu->gpr[2]; @@ -80782,6 +99355,9 @@ label_BFC1FD60: /* nop */ if (psx_taken_BFC1FD60) goto label_BFC1FDA8; label_BFC1FD68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FD68: 3C0F800F lui $t7, 0x800F */ cpu->gpr[15] = 0x800F0000u; @@ -80794,6 +99370,9 @@ label_BFC1FD68: /* 0xBFC1FD78: 01CF8821 addu $s1, $t6, $t7 */ cpu->gpr[17] = cpu->gpr[14] + cpu->gpr[15]; label_BFC1FD7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FD7C: 8E240000 lw $a0, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1FD7Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -80803,6 +99382,9 @@ label_BFC1FD7C: cpu->gpr[31] = 0x80037D88u; psx_dispatch(cpu, 0x800336ECu); label_BFC1FD88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FD88: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -80812,6 +99394,9 @@ label_BFC1FD88: cpu->gpr[31] = 0x80037D94u; psx_dispatch(cpu, 0x80034998u); label_BFC1FD94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FD94: 0050082A slt $at, $v0, $s0 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (int32_t)cpu->gpr[16] ? 1 : 0); @@ -80822,18 +99407,27 @@ label_BFC1FD94: /* nop */ if (psx_taken_BFC1FD98) goto label_BFC1FD7C; label_BFC1FDA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FDA0: 8FB1001C lw $s1, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1FDA0u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } /* 0xBFC1FDA4: 00000000 nop */ /* nop */ label_BFC1FDA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FDA8: 8FB00020 lw $s0, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1FDA8u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } /* 0xBFC1FDAC: 00000000 nop */ /* nop */ label_BFC1FDB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FDB0: 3C188006 lui $t8, 0x8006 */ cpu->gpr[24] = 0x80060000u; @@ -80848,6 +99442,9 @@ label_BFC1FDB0: /* nop */ if (psx_taken_BFC1FDBC) goto label_BFC1FF60; label_BFC1FDC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FDC4: 0C00CF56 jal 0xB0033D58 */ /* 0xBFC1FDC8: 00000000 nop */ @@ -80855,6 +99452,9 @@ label_BFC1FDC4: cpu->gpr[31] = 0x80037DCCu; psx_dispatch(cpu, 0x80033D58u); label_BFC1FDCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FDCC: 14400014 bne $v0, $zero, 0xBFC1FE20 */ uint32_t psx_brA_BFC1FDCC = cpu->gpr[2]; uint32_t psx_brB_BFC1FDCC = cpu->gpr[0]; @@ -80863,6 +99463,9 @@ label_BFC1FDCC: /* nop */ if (psx_taken_BFC1FDCC) goto label_BFC1FE20; label_BFC1FDD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FDD4: AFB00020 sw $s0, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1FDD4u); return; } g_debug_last_store_pc = 0xBFC1FDD4u; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -80873,6 +99476,9 @@ label_BFC1FDD4: /* 0xBFC1FDE0: 24100001 addiu $s0, $zero, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC1FDE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FDE4: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -80889,6 +99495,9 @@ label_BFC1FDE4: /* nop */ if (psx_taken_BFC1FDF4) goto label_BFC1FE14; label_BFC1FDFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FDFC: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -80898,6 +99507,9 @@ label_BFC1FDFC: cpu->gpr[31] = 0x80037E08u; psx_dispatch(cpu, 0x800336ECu); label_BFC1FE08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FE08: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -80908,6 +99520,9 @@ label_BFC1FE08: /* nop */ if (psx_taken_BFC1FE0C) goto label_BFC1FDE4; label_BFC1FE14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FE14: 8FB00020 lw $s0, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1FE14u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -80916,6 +99531,9 @@ label_BFC1FE14: /* 0xBFC1FE1C: 00000000 nop */ /* nop */ label_BFC1FE20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FE20: 0C00D26A jal 0xB00349A8 */ /* 0xBFC1FE24: 00002021 addu $a0, $zero, $zero */ @@ -80923,6 +99541,9 @@ label_BFC1FE20: cpu->gpr[31] = 0x80037E28u; psx_dispatch(cpu, 0x800349A8u); label_BFC1FE28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FE28: 0C00D350 jal 0xB0034D40 */ /* 0xBFC1FE2C: 00000000 nop */ @@ -80930,6 +99551,9 @@ label_BFC1FE28: cpu->gpr[31] = 0x80037E30u; psx_dispatch(cpu, 0x80034D40u); label_BFC1FE30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FE30: 1000004B beq $zero, $zero, 0xBFC1FF60 */ uint32_t psx_brA_BFC1FE30 = cpu->gpr[0]; uint32_t psx_brB_BFC1FE30 = cpu->gpr[0]; @@ -80938,6 +99562,9 @@ label_BFC1FE30: /* nop */ if (psx_taken_BFC1FE30) goto label_BFC1FF60; label_BFC1FE38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FE38: 0C00D25E jal 0xB0034978 */ /* 0xBFC1FE3C: 00000000 nop */ @@ -80945,6 +99572,9 @@ label_BFC1FE38: cpu->gpr[31] = 0x80037E40u; psx_dispatch(cpu, 0x80034978u); label_BFC1FE40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FE40: 10400023 beq $v0, $zero, 0xBFC1FED0 */ uint32_t psx_brA_BFC1FE40 = cpu->gpr[2]; uint32_t psx_brB_BFC1FE40 = cpu->gpr[0]; @@ -80953,6 +99583,9 @@ label_BFC1FE40: /* nop */ if (psx_taken_BFC1FE40) goto label_BFC1FED0; label_BFC1FE48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FE48: 3C088006 lui $t0, 0x8006 */ cpu->gpr[8] = 0x80060000u; @@ -80967,6 +99600,9 @@ label_BFC1FE48: /* nop */ if (psx_taken_BFC1FE54) goto label_BFC1FEB4; label_BFC1FE5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FE5C: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -80987,10 +99623,16 @@ label_BFC1FE5C: cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC1FE74) goto label_BFC1FEAC; label_BFC1FE7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FE7C: 2A010015 slti $at, $s0, 21 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (21) ? 1 : 0); label_BFC1FE80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FE80: 1020000A beq $at, $zero, 0xBFC1FEAC */ uint32_t psx_brA_BFC1FE80 = cpu->gpr[1]; uint32_t psx_brB_BFC1FE80 = cpu->gpr[0]; @@ -80999,6 +99641,9 @@ label_BFC1FE80: /* nop */ if (psx_taken_BFC1FE80) goto label_BFC1FEAC; label_BFC1FE88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FE88: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -81008,6 +99653,9 @@ label_BFC1FE88: cpu->gpr[31] = 0x80037E94u; psx_dispatch(cpu, 0x800336ECu); label_BFC1FE94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FE94: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -81024,12 +99672,18 @@ label_BFC1FE94: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (21) ? 1 : 0); if (psx_taken_BFC1FEA4) goto label_BFC1FE80; label_BFC1FEAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FEAC: 8FB00020 lw $s0, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1FEACu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } /* 0xBFC1FEB0: 00000000 nop */ /* nop */ label_BFC1FEB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FEB4: 0C00D069 jal 0xB00341A4 */ /* 0xBFC1FEB8: 24040001 addiu $a0, $zero, 1 */ @@ -81037,6 +99691,9 @@ label_BFC1FEB4: cpu->gpr[31] = 0x80037EBCu; psx_dispatch(cpu, 0x800341A4u); label_BFC1FEBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FEBC: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -81051,6 +99708,9 @@ label_BFC1FEBC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25008)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1FECCu); return; } g_debug_last_store_pc = 0xBFC1FECCu; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC1FEC8) goto label_BFC1FF60; label_BFC1FED0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FED0: 0C00CF56 jal 0xB0033D58 */ /* 0xBFC1FED4: 00000000 nop */ @@ -81058,6 +99718,9 @@ label_BFC1FED0: cpu->gpr[31] = 0x80037ED8u; psx_dispatch(cpu, 0x80033D58u); label_BFC1FED8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FED8: 14400021 bne $v0, $zero, 0xBFC1FF60 */ uint32_t psx_brA_BFC1FED8 = cpu->gpr[2]; uint32_t psx_brB_BFC1FED8 = cpu->gpr[0]; @@ -81066,6 +99729,9 @@ label_BFC1FED8: /* nop */ if (psx_taken_BFC1FED8) goto label_BFC1FF60; label_BFC1FEE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FEE0: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -81086,6 +99752,9 @@ label_BFC1FEE0: cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC1FEF8) goto label_BFC1FF58; label_BFC1FF00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FF00: AFB1001C sw $s1, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1FF00u); return; } g_debug_last_store_pc = 0xBFC1FF00u; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -81096,6 +99765,9 @@ label_BFC1FF00: /* 0xBFC1FF0C: 2A010015 slti $at, $s0, 21 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (21) ? 1 : 0); label_BFC1FF10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FF10: 14200005 bne $at, $zero, 0xBFC1FF28 */ uint32_t psx_brA_BFC1FF10 = cpu->gpr[1]; uint32_t psx_brB_BFC1FF10 = cpu->gpr[0]; @@ -81104,6 +99776,9 @@ label_BFC1FF10: cpu->gpr[12] = cpu->gpr[16] << 2u; if (psx_taken_BFC1FF10) goto label_BFC1FF28; label_BFC1FF18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FF18: 8FB1001C lw $s1, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1FF18u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -81114,10 +99789,16 @@ label_BFC1FF18: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1FF20u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } if (psx_taken_BFC1FF1C) goto label_BFC1FF5C; label_BFC1FF24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FF24: 00106080 sll $t4, $s0, 2 */ cpu->gpr[12] = cpu->gpr[16] << 2u; label_BFC1FF28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FF28: 022C6821 addu $t5, $s1, $t4 */ cpu->gpr[13] = cpu->gpr[17] + cpu->gpr[12]; @@ -81129,6 +99810,9 @@ label_BFC1FF28: cpu->gpr[31] = 0x80037F38u; psx_dispatch(cpu, 0x800336ECu); label_BFC1FF38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FF38: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -81145,20 +99829,32 @@ label_BFC1FF38: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (21) ? 1 : 0); if (psx_taken_BFC1FF48) goto label_BFC1FF10; label_BFC1FF50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FF50: 8FB1001C lw $s1, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1FF50u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } /* 0xBFC1FF54: 00000000 nop */ /* nop */ label_BFC1FF58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FF58: 8FB00020 lw $s0, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1FF58u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } label_BFC1FF5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FF5C: 00000000 nop */ /* nop */ label_BFC1FF60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FF60: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -81180,6 +99876,9 @@ label_BFC1FF60: cpu->gpr[31] = 0x80037F84u; psx_dispatch(cpu, 0x80032E34u); label_BFC1FF84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FF84: 240F0032 addiu $t7, $zero, 50 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (50)); @@ -81218,6 +99917,9 @@ void func_1FC1FFA8(CPUState* cpu) { } } label_BFC1FFA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FFA8: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -81236,6 +99938,9 @@ label_BFC1FFA8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC1FFC0u); return; } g_debug_last_store_pc = 0xBFC1FFC0u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC1FFBC) goto label_BFC1FFD0; label_BFC1FFC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FFC4: 3C05800F lui $a1, 0x800F */ cpu->gpr[5] = 0x800F0000u; @@ -81246,6 +99951,9 @@ label_BFC1FFC4: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (-12048)); if (psx_taken_BFC1FFC8) goto label_BFC20014; label_BFC1FFD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FFD0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -81260,6 +99968,9 @@ label_BFC1FFD0: /* nop */ if (psx_taken_BFC1FFDC) goto label_BFC1FFF0; label_BFC1FFE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FFE4: 3C05800F lui $a1, 0x800F */ cpu->gpr[5] = 0x800F0000u; @@ -81270,6 +99981,9 @@ label_BFC1FFE4: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (-12048)); if (psx_taken_BFC1FFE8) goto label_BFC20014; label_BFC1FFF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC1FFF0: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -81290,6 +100004,9 @@ label_BFC1FFF0: /* 0xBFC20010: AC209EBC sw $zero, -24900($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24900)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20010u); return; } g_debug_last_store_pc = 0xBFC20010u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC20014: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20014: 10800004 beq $a0, $zero, 0xBFC20028 */ uint32_t psx_brA_BFC20014 = cpu->gpr[4]; uint32_t psx_brB_BFC20014 = cpu->gpr[0]; @@ -81298,6 +100015,9 @@ label_BFC20014: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC20014) goto label_BFC20028; label_BFC2001C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2001C: AC209E60 sw $zero, -24992($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24992)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2001Cu); return; } g_debug_last_store_pc = 0xBFC2001Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -81306,6 +100026,9 @@ label_BFC2001C: /* 0xBFC20024: AC209E64 sw $zero, -24988($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24988)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20024u); return; } g_debug_last_store_pc = 0xBFC20024u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC20028: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20028: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -81316,6 +100039,9 @@ label_BFC20028: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24904)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20030u); return; } g_debug_last_store_pc = 0xBFC20030u; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC2002C) goto label_BFC2029C; label_BFC20034: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20034: 0C00D262 jal 0xB0034988 */ /* 0xBFC20038: 00000000 nop */ @@ -81323,6 +100049,9 @@ label_BFC20034: cpu->gpr[31] = 0x8003803Cu; psx_dispatch(cpu, 0x80034988u); label_BFC2003C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2003C: 3C05800F lui $a1, 0x800F */ cpu->gpr[5] = 0x800F0000u; @@ -81333,6 +100062,9 @@ label_BFC2003C: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (-12048)); if (psx_taken_BFC20040) goto label_BFC200FC; label_BFC20048: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC20048: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -81347,6 +100079,9 @@ label_BFC20048: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (11)); if (psx_taken_BFC20054) goto label_BFC20064; label_BFC2005C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2005C: 14410018 bne $v0, $at, 0xBFC200C0 */ uint32_t psx_brA_BFC2005C = cpu->gpr[2]; uint32_t psx_brB_BFC2005C = cpu->gpr[1]; @@ -81355,6 +100090,9 @@ label_BFC2005C: /* nop */ if (psx_taken_BFC2005C) goto label_BFC200C0; label_BFC20064: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC20064: 3C19800F lui $t9, 0x800F */ cpu->gpr[25] = 0x800F0000u; @@ -81374,6 +100112,9 @@ label_BFC20064: cpu->gpr[31] = 0x80038084u; psx_dispatch(cpu, 0x80034998u); label_BFC20084: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20084: 1440000A bne $v0, $zero, 0xBFC200B0 */ uint32_t psx_brA_BFC20084 = cpu->gpr[2]; uint32_t psx_brB_BFC20084 = cpu->gpr[0]; @@ -81382,6 +100123,9 @@ label_BFC20084: /* nop */ if (psx_taken_BFC20084) goto label_BFC200B0; label_BFC2008C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2008C: 0C00CFD1 jal 0xB0033F44 */ /* 0xBFC20090: 24040001 addiu $a0, $zero, 1 */ @@ -81389,6 +100133,9 @@ label_BFC2008C: cpu->gpr[31] = 0x80038094u; psx_dispatch(cpu, 0x80033F44u); label_BFC20094: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC20094: 3C08800F lui $t0, 0x800F */ cpu->gpr[8] = 0x800F0000u; @@ -81405,6 +100152,9 @@ label_BFC20094: /* 0xBFC200AC: AC239E5C sw $v1, -24996($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24996)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC200ACu); return; } g_debug_last_store_pc = 0xBFC200ACu; cpu->write_word(psx_addr, cpu->gpr[3]); } label_BFC200B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC200B0: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -81417,6 +100167,9 @@ label_BFC200B0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (50)); if (psx_taken_BFC200B8) goto label_BFC202C0; label_BFC200C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC200C0: 1450007F bne $v0, $s0, 0xBFC202C0 */ uint32_t psx_brA_BFC200C0 = cpu->gpr[2]; uint32_t psx_brB_BFC200C0 = cpu->gpr[16]; @@ -81425,6 +100178,9 @@ label_BFC200C0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (50)); if (psx_taken_BFC200C0) goto label_BFC202C0; label_BFC200C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC200C8: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -81439,6 +100195,9 @@ label_BFC200C8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (50)); if (psx_taken_BFC200D4) goto label_BFC202C0; label_BFC200DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC200DC: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -81459,6 +100218,9 @@ label_BFC200DC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24904)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC200F8u); return; } g_debug_last_store_pc = 0xBFC200F8u; cpu->write_word(psx_addr, cpu->gpr[12]); } if (psx_taken_BFC200F4) goto label_BFC202BC; label_BFC200FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC200FC: 0C00D25E jal 0xB0034978 */ /* 0xBFC20100: 00000000 nop */ @@ -81466,6 +100228,9 @@ label_BFC200FC: cpu->gpr[31] = 0x80038104u; psx_dispatch(cpu, 0x80034978u); label_BFC20104: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20104: 3C05800F lui $a1, 0x800F */ cpu->gpr[5] = 0x800F0000u; @@ -81476,6 +100241,9 @@ label_BFC20104: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (-12048)); if (psx_taken_BFC20108) goto label_BFC201A8; label_BFC20110: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC20110: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -81490,6 +100258,9 @@ label_BFC20110: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (11)); if (psx_taken_BFC2011C) goto label_BFC2012C; label_BFC20124: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20124: 14410011 bne $v0, $at, 0xBFC2016C */ uint32_t psx_brA_BFC20124 = cpu->gpr[2]; uint32_t psx_brB_BFC20124 = cpu->gpr[1]; @@ -81498,6 +100269,9 @@ label_BFC20124: /* nop */ if (psx_taken_BFC20124) goto label_BFC2016C; label_BFC2012C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2012C: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -81512,6 +100286,9 @@ label_BFC2012C: cpu->gpr[13] = cpu->gpr[3] << 2u; if (psx_taken_BFC20138) goto label_BFC20150; label_BFC20140: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC20140: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -81522,6 +100299,9 @@ label_BFC20140: /* 0xBFC2014C: 00036880 sll $t5, $v1, 2 */ cpu->gpr[13] = cpu->gpr[3] << 2u; label_BFC20150: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC20150: 00AD7021 addu $t6, $a1, $t5 */ cpu->gpr[14] = cpu->gpr[5] + cpu->gpr[13]; @@ -81540,6 +100320,9 @@ label_BFC20150: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24996)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20168u); return; } g_debug_last_store_pc = 0xBFC20168u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC20164) goto label_BFC202BC; label_BFC2016C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2016C: 14500054 bne $v0, $s0, 0xBFC202C0 */ uint32_t psx_brA_BFC2016C = cpu->gpr[2]; uint32_t psx_brB_BFC2016C = cpu->gpr[16]; @@ -81548,6 +100331,9 @@ label_BFC2016C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (50)); if (psx_taken_BFC2016C) goto label_BFC202C0; label_BFC20174: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC20174: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -81562,6 +100348,9 @@ label_BFC20174: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (50)); if (psx_taken_BFC20180) goto label_BFC202C0; label_BFC20188: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC20188: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -81582,6 +100371,9 @@ label_BFC20188: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24904)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC201A4u); return; } g_debug_last_store_pc = 0xBFC201A4u; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC201A0) goto label_BFC202BC; label_BFC201A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC201A8: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -81596,6 +100388,9 @@ label_BFC201A8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (11)); if (psx_taken_BFC201B4) goto label_BFC201C4; label_BFC201BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC201BC: 14410028 bne $v0, $at, 0xBFC20260 */ uint32_t psx_brA_BFC201BC = cpu->gpr[2]; uint32_t psx_brB_BFC201BC = cpu->gpr[1]; @@ -81604,6 +100399,9 @@ label_BFC201BC: /* nop */ if (psx_taken_BFC201BC) goto label_BFC20260; label_BFC201C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC201C4: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -81618,6 +100416,9 @@ label_BFC201C4: cpu->gpr[10] = cpu->gpr[3] << 2u; if (psx_taken_BFC201D0) goto label_BFC201E8; label_BFC201D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC201D8: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -81628,6 +100429,9 @@ label_BFC201D8: /* 0xBFC201E4: 00035080 sll $t2, $v1, 2 */ cpu->gpr[10] = cpu->gpr[3] << 2u; label_BFC201E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC201E8: 00AA5821 addu $t3, $a1, $t2 */ cpu->gpr[11] = cpu->gpr[5] + cpu->gpr[10]; @@ -81645,6 +100449,9 @@ label_BFC201E8: cpu->gpr[31] = 0x80038204u; psx_dispatch(cpu, 0x80033D58u); label_BFC20204: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20204: 14400012 bne $v0, $zero, 0xBFC20250 */ uint32_t psx_brA_BFC20204 = cpu->gpr[2]; uint32_t psx_brB_BFC20204 = cpu->gpr[0]; @@ -81653,6 +100460,9 @@ label_BFC20204: /* nop */ if (psx_taken_BFC20204) goto label_BFC20250; label_BFC2020C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2020C: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -81673,10 +100483,16 @@ label_BFC2020C: cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC20224) goto label_BFC20250; label_BFC2022C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2022C: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; label_BFC20230: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20230: 0C00CDBB jal 0xB00336EC */ /* 0xBFC20234: 24050008 addiu $a1, $zero, 8 */ @@ -81684,6 +100500,9 @@ label_BFC20230: cpu->gpr[31] = 0x80038238u; psx_dispatch(cpu, 0x800336ECu); label_BFC20238: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC20238: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -81700,6 +100519,9 @@ label_BFC20238: cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; if (psx_taken_BFC20248) goto label_BFC20230; label_BFC20250: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC20250: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -81712,6 +100534,9 @@ label_BFC20250: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (50)); if (psx_taken_BFC20258) goto label_BFC202C0; label_BFC20260: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20260: 14500017 bne $v0, $s0, 0xBFC202C0 */ uint32_t psx_brA_BFC20260 = cpu->gpr[2]; uint32_t psx_brB_BFC20260 = cpu->gpr[16]; @@ -81720,6 +100545,9 @@ label_BFC20260: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (50)); if (psx_taken_BFC20260) goto label_BFC202C0; label_BFC20268: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC20268: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -81734,6 +100562,9 @@ label_BFC20268: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (50)); if (psx_taken_BFC20274) goto label_BFC202C0; label_BFC2027C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2027C: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -81754,6 +100585,9 @@ label_BFC2027C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24904)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20298u); return; } g_debug_last_store_pc = 0xBFC20298u; cpu->write_word(psx_addr, cpu->gpr[24]); } if (psx_taken_BFC20294) goto label_BFC202BC; label_BFC2029C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2029C: 3C198006 lui $t9, 0x8006 */ cpu->gpr[25] = 0x80060000u; @@ -81768,6 +100602,9 @@ label_BFC2029C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (50)); if (psx_taken_BFC202A8) goto label_BFC202C0; label_BFC202B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC202B0: 24080001 addiu $t0, $zero, 1 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -81776,10 +100613,16 @@ label_BFC202B0: /* 0xBFC202B8: AC28695C sw $t0, 26972($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26972)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC202B8u); return; } g_debug_last_store_pc = 0xBFC202B8u; cpu->write_word(psx_addr, cpu->gpr[8]); } label_BFC202BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC202BC: 24010032 addiu $at, $zero, 50 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (50)); label_BFC202C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC202C0: 14410003 bne $v0, $at, 0xBFC202D0 */ uint32_t psx_brA_BFC202C0 = cpu->gpr[2]; uint32_t psx_brB_BFC202C0 = cpu->gpr[1]; @@ -81788,6 +100631,9 @@ label_BFC202C0: /* nop */ if (psx_taken_BFC202C0) goto label_BFC202D0; label_BFC202C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC202C8: 0C00C905 jal 0xB0032414 */ /* 0xBFC202CC: 00002021 addu $a0, $zero, $zero */ @@ -81795,6 +100641,9 @@ label_BFC202C8: cpu->gpr[31] = 0x800382D0u; psx_dispatch(cpu, 0x80032414u); label_BFC202D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(26u); +#endif psx_check_interrupts(cpu); /* 0xBFC202D0: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -81879,6 +100728,9 @@ void func_1FC20338(CPUState* cpu) { } } label_BFC20338: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC20338: 27BDFFC0 addiu $sp, $sp, -64 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-64)); @@ -81890,6 +100742,9 @@ label_BFC20338: cpu->gpr[31] = 0x80038348u; psx_dispatch(cpu, 0x80034988u); label_BFC20348: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20348: 10400054 beq $v0, $zero, 0xBFC2049C */ uint32_t psx_brA_BFC20348 = cpu->gpr[2]; uint32_t psx_brB_BFC20348 = cpu->gpr[0]; @@ -81898,6 +100753,9 @@ label_BFC20348: /* nop */ if (psx_taken_BFC20348) goto label_BFC2049C; label_BFC20350: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC20350: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -81912,6 +100770,9 @@ label_BFC20350: /* nop */ if (psx_taken_BFC2035C) goto label_BFC205CC; label_BFC20364: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC20364: 3C0F8006 lui $t7, 0x8006 */ cpu->gpr[15] = 0x80060000u; @@ -81926,6 +100787,9 @@ label_BFC20364: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (50)); if (psx_taken_BFC20370) goto label_BFC20394; label_BFC20378: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20378: 11E10038 beq $t7, $at, 0xBFC2045C */ uint32_t psx_brA_BFC20378 = cpu->gpr[15]; uint32_t psx_brB_BFC20378 = cpu->gpr[1]; @@ -81934,6 +100798,9 @@ label_BFC20378: /* nop */ if (psx_taken_BFC20378) goto label_BFC2045C; label_BFC20380: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC20380: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -81948,6 +100815,9 @@ label_BFC20380: /* nop */ if (psx_taken_BFC2038C) goto label_BFC2045C; label_BFC20394: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20394: 0C00CB89 jal 0xB0032E24 */ /* 0xBFC20398: 00000000 nop */ @@ -81955,6 +100825,9 @@ label_BFC20394: cpu->gpr[31] = 0x8003839Cu; psx_dispatch(cpu, 0x80032E24u); label_BFC2039C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2039C: 24010002 addiu $at, $zero, 2 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); @@ -81965,6 +100838,9 @@ label_BFC2039C: /* nop */ if (psx_taken_BFC203A0) goto label_BFC2043C; label_BFC203A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC203A8: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -81979,6 +100855,9 @@ label_BFC203A8: /* nop */ if (psx_taken_BFC203B4) goto label_BFC2043C; label_BFC203BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC203BC: 0C00D266 jal 0xB0034998 */ /* 0xBFC203C0: 00000000 nop */ @@ -81986,6 +100865,9 @@ label_BFC203BC: cpu->gpr[31] = 0x800383C4u; psx_dispatch(cpu, 0x80034998u); label_BFC203C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC203C4: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -81995,6 +100877,9 @@ label_BFC203C4: cpu->gpr[31] = 0x800383D0u; psx_dispatch(cpu, 0x80033D58u); label_BFC203D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC203D0: 14400022 bne $v0, $zero, 0xBFC2045C */ uint32_t psx_brA_BFC203D0 = cpu->gpr[2]; uint32_t psx_brB_BFC203D0 = cpu->gpr[0]; @@ -82003,6 +100888,9 @@ label_BFC203D0: /* nop */ if (psx_taken_BFC203D0) goto label_BFC2045C; label_BFC203D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC203D8: AFB10020 sw $s1, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC203D8u); return; } g_debug_last_store_pc = 0xBFC203D8u; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -82012,6 +100900,9 @@ label_BFC203D8: cpu->gpr[31] = 0x800383E4u; psx_dispatch(cpu, 0x80034998u); label_BFC203E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC203E4: 28410002 slti $at, $v0, 2 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (2) ? 1 : 0); @@ -82022,6 +100913,9 @@ label_BFC203E4: /* nop */ if (psx_taken_BFC203E8) goto label_BFC20430; label_BFC203F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC203F0: 3C09800F lui $t1, 0x800F */ cpu->gpr[9] = 0x800F0000u; @@ -82034,6 +100928,9 @@ label_BFC203F0: /* 0xBFC20400: 01098021 addu $s0, $t0, $t1 */ cpu->gpr[16] = cpu->gpr[8] + cpu->gpr[9]; label_BFC20404: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20404: 8E040000 lw $a0, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20404u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -82043,6 +100940,9 @@ label_BFC20404: cpu->gpr[31] = 0x80038410u; psx_dispatch(cpu, 0x800336ECu); label_BFC20410: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20410: 26310001 addiu $s1, $s1, 1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); @@ -82052,6 +100952,9 @@ label_BFC20410: cpu->gpr[31] = 0x8003841Cu; psx_dispatch(cpu, 0x80034998u); label_BFC2041C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2041C: 0222082A slt $at, $s1, $v0 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[17] < (int32_t)cpu->gpr[2] ? 1 : 0); @@ -82062,12 +100965,18 @@ label_BFC2041C: /* nop */ if (psx_taken_BFC20420) goto label_BFC20404; label_BFC20428: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20428: 8FB0001C lw $s0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20428u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } /* 0xBFC2042C: 00000000 nop */ /* nop */ label_BFC20430: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20430: 8FB10020 lw $s1, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20430u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -82078,6 +100987,9 @@ label_BFC20430: /* nop */ if (psx_taken_BFC20434) goto label_BFC2045C; label_BFC2043C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2043C: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -82092,6 +101004,9 @@ label_BFC2043C: /* nop */ if (psx_taken_BFC20448) goto label_BFC2045C; label_BFC20450: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20450: 254BFFFF addiu $t3, $t2, -1 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[10] + (-1)); @@ -82100,6 +101015,9 @@ label_BFC20450: /* 0xBFC20458: AC2B9E5C sw $t3, -24996($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24996)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20458u); return; } g_debug_last_store_pc = 0xBFC20458u; cpu->write_word(psx_addr, cpu->gpr[11]); } label_BFC2045C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2045C: 0C00CF56 jal 0xB0033D58 */ /* 0xBFC20460: 00000000 nop */ @@ -82107,6 +101025,9 @@ label_BFC2045C: cpu->gpr[31] = 0x80038464u; psx_dispatch(cpu, 0x80033D58u); label_BFC20464: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20464: 1440000A bne $v0, $zero, 0xBFC20490 */ uint32_t psx_brA_BFC20464 = cpu->gpr[2]; uint32_t psx_brB_BFC20464 = cpu->gpr[0]; @@ -82115,6 +101036,9 @@ label_BFC20464: cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC20464) goto label_BFC20490; label_BFC2046C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2046C: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -82134,10 +101058,16 @@ label_BFC2046C: cpu->gpr[31] = 0x8003848Cu; psx_dispatch(cpu, 0x800336ECu); label_BFC2048C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2048C: 240E0002 addiu $t6, $zero, 2 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); label_BFC20490: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20490: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -82148,6 +101078,9 @@ label_BFC20490: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25024)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20498u); return; } g_debug_last_store_pc = 0xBFC20498u; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC20494) goto label_BFC205CC; label_BFC2049C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2049C: 0C00D25E jal 0xB0034978 */ /* 0xBFC204A0: 00000000 nop */ @@ -82155,6 +101088,9 @@ label_BFC2049C: cpu->gpr[31] = 0x800384A4u; psx_dispatch(cpu, 0x80034978u); label_BFC204A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC204A4: 1040000D beq $v0, $zero, 0xBFC204DC */ uint32_t psx_brA_BFC204A4 = cpu->gpr[2]; uint32_t psx_brB_BFC204A4 = cpu->gpr[0]; @@ -82163,6 +101099,9 @@ label_BFC204A4: /* nop */ if (psx_taken_BFC204A4) goto label_BFC204DC; label_BFC204AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC204AC: 3C0F8006 lui $t7, 0x8006 */ cpu->gpr[15] = 0x80060000u; @@ -82177,6 +101116,9 @@ label_BFC204AC: /* nop */ if (psx_taken_BFC204B8) goto label_BFC205CC; label_BFC204C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC204C0: 24180002 addiu $t8, $zero, 2 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); @@ -82190,6 +101132,9 @@ label_BFC204C0: cpu->gpr[31] = 0x800384D4u; psx_dispatch(cpu, 0x800376ACu); label_BFC204D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC204D4: 1000003D beq $zero, $zero, 0xBFC205CC */ uint32_t psx_brA_BFC204D4 = cpu->gpr[0]; uint32_t psx_brB_BFC204D4 = cpu->gpr[0]; @@ -82198,6 +101143,9 @@ label_BFC204D4: /* nop */ if (psx_taken_BFC204D4) goto label_BFC205CC; label_BFC204DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC204DC: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -82218,6 +101166,9 @@ label_BFC204DC: /* nop */ if (psx_taken_BFC204F4) goto label_BFC20590; label_BFC204FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC204FC: 3C088006 lui $t0, 0x8006 */ cpu->gpr[8] = 0x80060000u; @@ -82232,6 +101183,9 @@ label_BFC204FC: /* nop */ if (psx_taken_BFC20508) goto label_BFC20528; label_BFC20510: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC20510: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -82248,6 +101202,9 @@ label_BFC20510: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24996)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20524u); return; } g_debug_last_store_pc = 0xBFC20524u; cpu->write_word(psx_addr, cpu->gpr[10]); } if (psx_taken_BFC20520) goto label_BFC20550; label_BFC20528: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC20528: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -82262,6 +101219,9 @@ label_BFC20528: /* nop */ if (psx_taken_BFC20534) goto label_BFC20550; label_BFC2053C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2053C: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -82274,6 +101234,9 @@ label_BFC2053C: /* 0xBFC2054C: AC2D9E5C sw $t5, -24996($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24996)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2054Cu); return; } g_debug_last_store_pc = 0xBFC2054Cu; cpu->write_word(psx_addr, cpu->gpr[13]); } label_BFC20550: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20550: 0C00CF56 jal 0xB0033D58 */ /* 0xBFC20554: 00000000 nop */ @@ -82281,6 +101244,9 @@ label_BFC20550: cpu->gpr[31] = 0x80038558u; psx_dispatch(cpu, 0x80033D58u); label_BFC20558: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20558: 1440000A bne $v0, $zero, 0xBFC20584 */ uint32_t psx_brA_BFC20558 = cpu->gpr[2]; uint32_t psx_brB_BFC20558 = cpu->gpr[0]; @@ -82289,6 +101255,9 @@ label_BFC20558: cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC20558) goto label_BFC20584; label_BFC20560: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC20560: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -82308,10 +101277,16 @@ label_BFC20560: cpu->gpr[31] = 0x80038580u; psx_dispatch(cpu, 0x800336ECu); label_BFC20580: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20580: 24180002 addiu $t8, $zero, 2 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); label_BFC20584: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20584: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -82322,6 +101297,9 @@ label_BFC20584: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25024)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2058Cu); return; } g_debug_last_store_pc = 0xBFC2058Cu; cpu->write_word(psx_addr, cpu->gpr[24]); } if (psx_taken_BFC20588) goto label_BFC205CC; label_BFC20590: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC20590: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -82336,6 +101314,9 @@ label_BFC20590: /* nop */ if (psx_taken_BFC2059C) goto label_BFC205CC; label_BFC205A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC205A4: 3C088006 lui $t0, 0x8006 */ cpu->gpr[8] = 0x80060000u; @@ -82350,6 +101331,9 @@ label_BFC205A4: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC205B0) goto label_BFC205C0; label_BFC205B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC205B8: 10000004 beq $zero, $zero, 0xBFC205CC */ uint32_t psx_brA_BFC205B8 = cpu->gpr[0]; uint32_t psx_brB_BFC205B8 = cpu->gpr[0]; @@ -82358,6 +101342,9 @@ label_BFC205B8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24996)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC205BCu); return; } g_debug_last_store_pc = 0xBFC205BCu; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC205B8) goto label_BFC205CC; label_BFC205C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC205C0: 24090002 addiu $t1, $zero, 2 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); @@ -82366,6 +101353,9 @@ label_BFC205C0: /* 0xBFC205C8: AC299E40 sw $t1, -25024($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25024)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC205C8u); return; } g_debug_last_store_pc = 0xBFC205C8u; cpu->write_word(psx_addr, cpu->gpr[9]); } label_BFC205CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC205CC: 3C0A8006 lui $t2, 0x8006 */ cpu->gpr[10] = 0x80060000u; @@ -82380,6 +101370,9 @@ label_BFC205CC: /* nop */ if (psx_taken_BFC205D8) goto label_BFC20618; label_BFC205E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC205E0: 0C00D262 jal 0xB0034988 */ /* 0xBFC205E4: 00000000 nop */ @@ -82387,6 +101380,9 @@ label_BFC205E0: cpu->gpr[31] = 0x800385E8u; psx_dispatch(cpu, 0x80034988u); label_BFC205E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC205E8: 14400021 bne $v0, $zero, 0xBFC20670 */ uint32_t psx_brA_BFC205E8 = cpu->gpr[2]; uint32_t psx_brB_BFC205E8 = cpu->gpr[0]; @@ -82395,6 +101391,9 @@ label_BFC205E8: /* nop */ if (psx_taken_BFC205E8) goto label_BFC20670; label_BFC205F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC205F0: 0C00D25E jal 0xB0034978 */ /* 0xBFC205F4: 00000000 nop */ @@ -82402,6 +101401,9 @@ label_BFC205F0: cpu->gpr[31] = 0x800385F8u; psx_dispatch(cpu, 0x80034978u); label_BFC205F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC205F8: 1440001D bne $v0, $zero, 0xBFC20670 */ uint32_t psx_brA_BFC205F8 = cpu->gpr[2]; uint32_t psx_brB_BFC205F8 = cpu->gpr[0]; @@ -82410,6 +101412,9 @@ label_BFC205F8: /* nop */ if (psx_taken_BFC205F8) goto label_BFC20670; label_BFC20600: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20600: 0C00C905 jal 0xB0032414 */ /* 0xBFC20604: 00002021 addu $a0, $zero, $zero */ @@ -82417,6 +101422,9 @@ label_BFC20600: cpu->gpr[31] = 0x80038608u; psx_dispatch(cpu, 0x80032414u); label_BFC20608: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20608: 0C00CAA4 jal 0xB0032A90 */ /* 0xBFC2060C: 00000000 nop */ @@ -82424,6 +101432,9 @@ label_BFC20608: cpu->gpr[31] = 0x80038610u; psx_dispatch(cpu, 0x80032A90u); label_BFC20610: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20610: 10000017 beq $zero, $zero, 0xBFC20670 */ uint32_t psx_brA_BFC20610 = cpu->gpr[0]; uint32_t psx_brB_BFC20610 = cpu->gpr[0]; @@ -82432,6 +101443,9 @@ label_BFC20610: /* nop */ if (psx_taken_BFC20610) goto label_BFC20670; label_BFC20618: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC20618: 3C0B8006 lui $t3, 0x8006 */ cpu->gpr[11] = 0x80060000u; @@ -82446,6 +101460,9 @@ label_BFC20618: /* nop */ if (psx_taken_BFC20624) goto label_BFC2063C; label_BFC2062C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2062C: 0C00DDAB jal 0xB00376AC */ /* 0xBFC20630: 24040001 addiu $a0, $zero, 1 */ @@ -82453,6 +101470,9 @@ label_BFC2062C: cpu->gpr[31] = 0x80038634u; psx_dispatch(cpu, 0x800376ACu); label_BFC20634: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20634: 1000000E beq $zero, $zero, 0xBFC20670 */ uint32_t psx_brA_BFC20634 = cpu->gpr[0]; uint32_t psx_brB_BFC20634 = cpu->gpr[0]; @@ -82461,6 +101481,9 @@ label_BFC20634: /* nop */ if (psx_taken_BFC20634) goto label_BFC20670; label_BFC2063C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2063C: 3C0C8006 lui $t4, 0x8006 */ cpu->gpr[12] = 0x80060000u; @@ -82475,6 +101498,9 @@ label_BFC2063C: /* nop */ if (psx_taken_BFC20648) goto label_BFC20670; label_BFC20650: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC20650: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -82494,6 +101520,9 @@ label_BFC20650: cpu->gpr[31] = 0x80038670u; psx_dispatch(cpu, 0x80037FA8u); label_BFC20670: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC20670: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -82556,6 +101585,9 @@ void func_1FC2069C(CPUState* cpu) { } } label_BFC2069C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2069C: 27BDFFB8 addiu $sp, $sp, -72 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-72)); @@ -82567,6 +101599,9 @@ label_BFC2069C: cpu->gpr[31] = 0x800386ACu; psx_dispatch(cpu, 0x80034988u); label_BFC206AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC206AC: 104000AF beq $v0, $zero, 0xBFC2096C */ uint32_t psx_brA_BFC206AC = cpu->gpr[2]; uint32_t psx_brB_BFC206AC = cpu->gpr[0]; @@ -82575,6 +101610,9 @@ label_BFC206AC: /* nop */ if (psx_taken_BFC206AC) goto label_BFC2096C; label_BFC206B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC206B4: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -82589,6 +101627,9 @@ label_BFC206B4: /* nop */ if (psx_taken_BFC206C0) goto label_BFC2094C; label_BFC206C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC206C8: 0C00D266 jal 0xB0034998 */ /* 0xBFC206CC: 00000000 nop */ @@ -82596,6 +101637,9 @@ label_BFC206C8: cpu->gpr[31] = 0x800386D0u; psx_dispatch(cpu, 0x80034998u); label_BFC206D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC206D0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -82612,6 +101656,9 @@ label_BFC206D0: /* nop */ if (psx_taken_BFC206E0) goto label_BFC2094C; label_BFC206E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC206E8: 0C00CB89 jal 0xB0032E24 */ /* 0xBFC206EC: 00000000 nop */ @@ -82619,6 +101666,9 @@ label_BFC206E8: cpu->gpr[31] = 0x800386F0u; psx_dispatch(cpu, 0x80032E24u); label_BFC206F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC206F0: 24010002 addiu $at, $zero, 2 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); @@ -82629,6 +101679,9 @@ label_BFC206F0: /* nop */ if (psx_taken_BFC206F4) goto label_BFC20790; label_BFC206FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC206FC: 0C00D266 jal 0xB0034998 */ /* 0xBFC20700: 00000000 nop */ @@ -82636,6 +101689,9 @@ label_BFC206FC: cpu->gpr[31] = 0x80038704u; psx_dispatch(cpu, 0x80034998u); label_BFC20704: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC20704: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -82650,6 +101706,9 @@ label_BFC20704: /* nop */ if (psx_taken_BFC20710) goto label_BFC20790; label_BFC20718: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC20718: 24180001 addiu $t8, $zero, 1 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -82661,6 +101720,9 @@ label_BFC20718: cpu->gpr[31] = 0x80038728u; psx_dispatch(cpu, 0x80033D58u); label_BFC20728: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20728: 14400025 bne $v0, $zero, 0xBFC207C0 */ uint32_t psx_brA_BFC20728 = cpu->gpr[2]; uint32_t psx_brB_BFC20728 = cpu->gpr[0]; @@ -82669,6 +101731,9 @@ label_BFC20728: /* nop */ if (psx_taken_BFC20728) goto label_BFC207C0; label_BFC20730: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20730: AFB1002C sw $s1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20730u); return; } g_debug_last_store_pc = 0xBFC20730u; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -82678,6 +101743,9 @@ label_BFC20730: cpu->gpr[31] = 0x8003873Cu; psx_dispatch(cpu, 0x80034998u); label_BFC2073C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2073C: 18400011 blez $v0, 0xBFC20784 */ uint32_t psx_brA_BFC2073C = cpu->gpr[2]; @@ -82686,6 +101754,9 @@ label_BFC2073C: /* nop */ if (psx_taken_BFC2073C) goto label_BFC20784; label_BFC20744: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC20744: 3C08800F lui $t0, 0x800F */ cpu->gpr[8] = 0x800F0000u; @@ -82698,6 +101769,9 @@ label_BFC20744: /* 0xBFC20754: 03288021 addu $s0, $t9, $t0 */ cpu->gpr[16] = cpu->gpr[25] + cpu->gpr[8]; label_BFC20758: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20758: 8E040000 lw $a0, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20758u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -82707,6 +101781,9 @@ label_BFC20758: cpu->gpr[31] = 0x80038764u; psx_dispatch(cpu, 0x800336ECu); label_BFC20764: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20764: 26310001 addiu $s1, $s1, 1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); @@ -82716,6 +101793,9 @@ label_BFC20764: cpu->gpr[31] = 0x80038770u; psx_dispatch(cpu, 0x80034998u); label_BFC20770: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20770: 0051082A slt $at, $v0, $s1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (int32_t)cpu->gpr[17] ? 1 : 0); @@ -82726,12 +101806,18 @@ label_BFC20770: /* nop */ if (psx_taken_BFC20774) goto label_BFC20758; label_BFC2077C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2077C: 8FB00024 lw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2077Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } /* 0xBFC20780: 00000000 nop */ /* nop */ label_BFC20784: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20784: 8FB1002C lw $s1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20784u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -82742,6 +101828,9 @@ label_BFC20784: /* nop */ if (psx_taken_BFC20788) goto label_BFC207C0; label_BFC20790: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20790: 0C00D266 jal 0xB0034998 */ /* 0xBFC20794: 00000000 nop */ @@ -82749,6 +101838,9 @@ label_BFC20790: cpu->gpr[31] = 0x80038798u; psx_dispatch(cpu, 0x80034998u); label_BFC20798: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC20798: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -82763,6 +101855,9 @@ label_BFC20798: /* nop */ if (psx_taken_BFC207A4) goto label_BFC207C0; label_BFC207AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC207AC: 252A0001 addiu $t2, $t1, 1 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[9] + (1)); @@ -82775,6 +101870,9 @@ label_BFC207AC: /* 0xBFC207BC: AFAB0040 sw $t3, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC207BCu); return; } g_debug_last_store_pc = 0xBFC207BCu; cpu->write_word(psx_addr, cpu->gpr[11]); } label_BFC207C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC207C0: 0C00CF56 jal 0xB0033D58 */ /* 0xBFC207C4: 00000000 nop */ @@ -82782,6 +101880,9 @@ label_BFC207C0: cpu->gpr[31] = 0x800387C8u; psx_dispatch(cpu, 0x80033D58u); label_BFC207C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC207C8: 1440003C bne $v0, $zero, 0xBFC208BC */ uint32_t psx_brA_BFC207C8 = cpu->gpr[2]; uint32_t psx_brB_BFC207C8 = cpu->gpr[0]; @@ -82790,6 +101891,9 @@ label_BFC207C8: /* nop */ if (psx_taken_BFC207C8) goto label_BFC208BC; label_BFC207D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC207D0: 0C00D266 jal 0xB0034998 */ /* 0xBFC207D4: 00000000 nop */ @@ -82797,6 +101901,9 @@ label_BFC207D0: cpu->gpr[31] = 0x800387D8u; psx_dispatch(cpu, 0x80034998u); label_BFC207D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC207D8: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -82811,6 +101918,9 @@ label_BFC207D8: /* nop */ if (psx_taken_BFC207E4) goto label_BFC208BC; label_BFC207EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC207EC: AFB1002C sw $s1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC207ECu); return; } g_debug_last_store_pc = 0xBFC207ECu; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -82820,6 +101930,9 @@ label_BFC207EC: cpu->gpr[31] = 0x800387F8u; psx_dispatch(cpu, 0x80034998u); label_BFC207F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC207F8: 0051082A slt $at, $v0, $s1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (int32_t)cpu->gpr[17] ? 1 : 0); @@ -82830,6 +101943,9 @@ label_BFC207F8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20800u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } if (psx_taken_BFC207FC) goto label_BFC20878; label_BFC20804: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC20804: 3C0F800F lui $t7, 0x800F */ cpu->gpr[15] = 0x800F0000u; @@ -82844,6 +101960,9 @@ label_BFC20804: /* 0xBFC20818: AFA00034 sw $zero, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20818u); return; } g_debug_last_store_pc = 0xBFC20818u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC2081C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2081C: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -82868,6 +101987,9 @@ label_BFC2081C: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); if (psx_taken_BFC2083C) goto label_BFC20858; label_BFC20844: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC20844: 240A0001 addiu $t2, $zero, 1 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -82880,10 +102002,16 @@ label_BFC20844: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20850u); return; } g_debug_last_store_pc = 0xBFC20850u; cpu->write_word(psx_addr, cpu->gpr[10]); } if (psx_taken_BFC2084C) goto label_BFC20874; label_BFC20854: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20854: 26310001 addiu $s1, $s1, 1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); label_BFC20858: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20858: 0C00D266 jal 0xB0034998 */ /* 0xBFC2085C: 26100004 addiu $s0, $s0, 4 */ @@ -82891,6 +102019,9 @@ label_BFC20858: cpu->gpr[31] = 0x80038860u; psx_dispatch(cpu, 0x80034998u); label_BFC20860: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20860: 0051082A slt $at, $v0, $s1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (int32_t)cpu->gpr[17] ? 1 : 0); @@ -82901,16 +102032,25 @@ label_BFC20860: /* nop */ if (psx_taken_BFC20864) goto label_BFC2081C; label_BFC2086C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2086C: 8FB00024 lw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2086Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } /* 0xBFC20870: 00000000 nop */ /* nop */ label_BFC20874: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20874: 8FAB0034 lw $t3, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20874u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } label_BFC20878: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20878: 00000000 nop */ /* nop */ @@ -82921,6 +102061,9 @@ label_BFC20878: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20880u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } if (psx_taken_BFC2087C) goto label_BFC208B8; label_BFC20884: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC20884: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -82945,6 +102088,9 @@ label_BFC20884: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC208A8u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } if (psx_taken_BFC208A4) goto label_BFC208B8; label_BFC208AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC208AC: 0C00CDBB jal 0xB00336EC */ /* 0xBFC208B0: 24050008 addiu $a1, $zero, 8 */ @@ -82952,14 +102098,23 @@ label_BFC208AC: cpu->gpr[31] = 0x800388B4u; psx_dispatch(cpu, 0x800336ECu); label_BFC208B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC208B4: 8FB1002C lw $s1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC208B4u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } label_BFC208B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC208B8: 00000000 nop */ /* nop */ label_BFC208BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC208BC: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -82980,6 +102135,9 @@ label_BFC208BC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); if (psx_taken_BFC208D4) goto label_BFC20934; label_BFC208DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC208DC: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -83006,6 +102164,9 @@ label_BFC208DC: /* nop */ if (psx_taken_BFC20900) goto label_BFC20920; label_BFC20908: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC20908: 8FA80040 lw $t0, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20908u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -83018,6 +102179,9 @@ label_BFC20908: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC20910) goto label_BFC20920; label_BFC20918: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20918: 1000000C beq $zero, $zero, 0xBFC2094C */ uint32_t psx_brA_BFC20918 = cpu->gpr[0]; uint32_t psx_brB_BFC20918 = cpu->gpr[0]; @@ -83026,6 +102190,9 @@ label_BFC20918: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25024)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2091Cu); return; } g_debug_last_store_pc = 0xBFC2091Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC20918) goto label_BFC2094C; label_BFC20920: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20920: 0C00DFEA jal 0xB0037FA8 */ /* 0xBFC20924: 00000000 nop */ @@ -83033,6 +102200,9 @@ label_BFC20920: cpu->gpr[31] = 0x80038928u; psx_dispatch(cpu, 0x80037FA8u); label_BFC20928: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20928: 10000008 beq $zero, $zero, 0xBFC2094C */ uint32_t psx_brA_BFC20928 = cpu->gpr[0]; uint32_t psx_brB_BFC20928 = cpu->gpr[0]; @@ -83041,10 +102211,16 @@ label_BFC20928: /* nop */ if (psx_taken_BFC20928) goto label_BFC2094C; label_BFC20930: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20930: 24010034 addiu $at, $zero, 52 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); label_BFC20934: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20934: 14410005 bne $v0, $at, 0xBFC2094C */ uint32_t psx_brA_BFC20934 = cpu->gpr[2]; uint32_t psx_brB_BFC20934 = cpu->gpr[1]; @@ -83053,6 +102229,9 @@ label_BFC20934: /* nop */ if (psx_taken_BFC20934) goto label_BFC2094C; label_BFC2093C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2093C: 0C00DDAB jal 0xB00376AC */ /* 0xBFC20940: 24040001 addiu $a0, $zero, 1 */ @@ -83060,12 +102239,18 @@ label_BFC2093C: cpu->gpr[31] = 0x80038944u; psx_dispatch(cpu, 0x800376ACu); label_BFC20944: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20944: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; /* 0xBFC20948: AC209E64 sw $zero, -24988($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24988)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20948u); return; } g_debug_last_store_pc = 0xBFC20948u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC2094C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2094C: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -83086,6 +102271,9 @@ label_BFC2094C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20968u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20964) goto label_BFC20B50; label_BFC2096C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2096C: 0C00D25E jal 0xB0034978 */ /* 0xBFC20970: 00000000 nop */ @@ -83093,6 +102281,9 @@ label_BFC2096C: cpu->gpr[31] = 0x80038974u; psx_dispatch(cpu, 0x80034978u); label_BFC20974: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20974: 10400032 beq $v0, $zero, 0xBFC20A40 */ uint32_t psx_brA_BFC20974 = cpu->gpr[2]; uint32_t psx_brB_BFC20974 = cpu->gpr[0]; @@ -83101,6 +102292,9 @@ label_BFC20974: /* nop */ if (psx_taken_BFC20974) goto label_BFC20A40; label_BFC2097C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2097C: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -83115,6 +102309,9 @@ label_BFC2097C: /* nop */ if (psx_taken_BFC20988) goto label_BFC20B30; label_BFC20990: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC20990: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -83135,6 +102332,9 @@ label_BFC20990: /* nop */ if (psx_taken_BFC209A8) goto label_BFC20B30; label_BFC209B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC209B0: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -83154,6 +102354,9 @@ label_BFC209B0: cpu->gpr[31] = 0x800389D0u; psx_dispatch(cpu, 0x800336ECu); label_BFC209D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC209D0: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -83184,6 +102387,9 @@ label_BFC209D0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); if (psx_taken_BFC209FC) goto label_BFC20A28; label_BFC20A04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC20A04: 00184080 sll $t0, $t8, 2 */ cpu->gpr[8] = cpu->gpr[24] << 2u; @@ -83199,6 +102405,9 @@ label_BFC20A04: cpu->gpr[31] = 0x80038A1Cu; psx_dispatch(cpu, 0x80037FA8u); label_BFC20A1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20A1C: 10000044 beq $zero, $zero, 0xBFC20B30 */ uint32_t psx_brA_BFC20A1C = cpu->gpr[0]; uint32_t psx_brB_BFC20A1C = cpu->gpr[0]; @@ -83207,10 +102416,16 @@ label_BFC20A1C: /* nop */ if (psx_taken_BFC20A1C) goto label_BFC20B30; label_BFC20A24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20A24: 24010034 addiu $at, $zero, 52 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); label_BFC20A28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20A28: 14410041 bne $v0, $at, 0xBFC20B30 */ uint32_t psx_brA_BFC20A28 = cpu->gpr[2]; uint32_t psx_brB_BFC20A28 = cpu->gpr[1]; @@ -83219,6 +102434,9 @@ label_BFC20A28: /* nop */ if (psx_taken_BFC20A28) goto label_BFC20B30; label_BFC20A30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20A30: 0C00DDAB jal 0xB00376AC */ /* 0xBFC20A34: 24040001 addiu $a0, $zero, 1 */ @@ -83226,6 +102444,9 @@ label_BFC20A30: cpu->gpr[31] = 0x80038A38u; psx_dispatch(cpu, 0x800376ACu); label_BFC20A38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20A38: 1000003D beq $zero, $zero, 0xBFC20B30 */ uint32_t psx_brA_BFC20A38 = cpu->gpr[0]; uint32_t psx_brB_BFC20A38 = cpu->gpr[0]; @@ -83234,6 +102455,9 @@ label_BFC20A38: /* nop */ if (psx_taken_BFC20A38) goto label_BFC20B30; label_BFC20A40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC20A40: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -83254,6 +102478,9 @@ label_BFC20A40: /* nop */ if (psx_taken_BFC20A58) goto label_BFC20B30; label_BFC20A60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20A60: 0C00CF56 jal 0xB0033D58 */ /* 0xBFC20A64: 00000000 nop */ @@ -83261,6 +102488,9 @@ label_BFC20A60: cpu->gpr[31] = 0x80038A68u; psx_dispatch(cpu, 0x80033D58u); label_BFC20A68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20A68: 1440000C bne $v0, $zero, 0xBFC20A9C */ uint32_t psx_brA_BFC20A68 = cpu->gpr[2]; uint32_t psx_brB_BFC20A68 = cpu->gpr[0]; @@ -83269,6 +102499,9 @@ label_BFC20A68: /* nop */ if (psx_taken_BFC20A68) goto label_BFC20A9C; label_BFC20A70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC20A70: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -83283,6 +102516,9 @@ label_BFC20A70: /* nop */ if (psx_taken_BFC20A7C) goto label_BFC20A9C; label_BFC20A84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC20A84: 000B6880 sll $t5, $t3, 2 */ cpu->gpr[13] = cpu->gpr[11] << 2u; @@ -83298,6 +102534,9 @@ label_BFC20A84: cpu->gpr[31] = 0x80038A9Cu; psx_dispatch(cpu, 0x800336ECu); label_BFC20A9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC20A9C: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -83328,6 +102567,9 @@ label_BFC20A9C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); if (psx_taken_BFC20AC8) goto label_BFC20AF4; label_BFC20AD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC20AD0: 000EC880 sll $t9, $t6, 2 */ cpu->gpr[25] = cpu->gpr[14] << 2u; @@ -83343,6 +102585,9 @@ label_BFC20AD0: cpu->gpr[31] = 0x80038AE8u; psx_dispatch(cpu, 0x80037FA8u); label_BFC20AE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20AE8: 10000011 beq $zero, $zero, 0xBFC20B30 */ uint32_t psx_brA_BFC20AE8 = cpu->gpr[0]; uint32_t psx_brB_BFC20AE8 = cpu->gpr[0]; @@ -83351,10 +102596,16 @@ label_BFC20AE8: /* nop */ if (psx_taken_BFC20AE8) goto label_BFC20B30; label_BFC20AF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20AF0: 24010034 addiu $at, $zero, 52 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (52)); label_BFC20AF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20AF4: 14410008 bne $v0, $at, 0xBFC20B18 */ uint32_t psx_brA_BFC20AF4 = cpu->gpr[2]; uint32_t psx_brB_BFC20AF4 = cpu->gpr[1]; @@ -83363,6 +102614,9 @@ label_BFC20AF4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (50)); if (psx_taken_BFC20AF4) goto label_BFC20B18; label_BFC20AFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20AFC: 0C00DDAB jal 0xB00376AC */ /* 0xBFC20B00: 24040001 addiu $a0, $zero, 1 */ @@ -83370,6 +102624,9 @@ label_BFC20AFC: cpu->gpr[31] = 0x80038B04u; psx_dispatch(cpu, 0x800376ACu); label_BFC20B04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20B04: 0C00CAA4 jal 0xB0032A90 */ /* 0xBFC20B08: 00000000 nop */ @@ -83377,6 +102634,9 @@ label_BFC20B04: cpu->gpr[31] = 0x80038B0Cu; psx_dispatch(cpu, 0x80032A90u); label_BFC20B0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20B0C: 10000008 beq $zero, $zero, 0xBFC20B30 */ uint32_t psx_brA_BFC20B0C = cpu->gpr[0]; uint32_t psx_brB_BFC20B0C = cpu->gpr[0]; @@ -83385,10 +102645,16 @@ label_BFC20B0C: /* nop */ if (psx_taken_BFC20B0C) goto label_BFC20B30; label_BFC20B14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20B14: 24010032 addiu $at, $zero, 50 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (50)); label_BFC20B18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20B18: 14410005 bne $v0, $at, 0xBFC20B30 */ uint32_t psx_brA_BFC20B18 = cpu->gpr[2]; uint32_t psx_brB_BFC20B18 = cpu->gpr[1]; @@ -83397,6 +102663,9 @@ label_BFC20B18: /* nop */ if (psx_taken_BFC20B18) goto label_BFC20B30; label_BFC20B20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20B20: 0C00C905 jal 0xB0032414 */ /* 0xBFC20B24: 00002021 addu $a0, $zero, $zero */ @@ -83404,6 +102673,9 @@ label_BFC20B20: cpu->gpr[31] = 0x80038B28u; psx_dispatch(cpu, 0x80032414u); label_BFC20B28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20B28: 0C00CAA4 jal 0xB0032A90 */ /* 0xBFC20B2C: 00000000 nop */ @@ -83411,6 +102683,9 @@ label_BFC20B28: cpu->gpr[31] = 0x80038B30u; psx_dispatch(cpu, 0x80032A90u); label_BFC20B30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC20B30: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -83429,6 +102704,9 @@ label_BFC20B30: /* 0xBFC20B4C: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20B4Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC20B50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC20B50: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -83443,6 +102721,9 @@ label_BFC20B50: void func_1FC20B60(CPUState* cpu) { debug_server_log_call_entry(0x1FC20B60u); label_BFC20B60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC20B60: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -83457,6 +102738,9 @@ label_BFC20B60: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (51)); if (psx_taken_BFC20B6C) goto label_BFC20B94; label_BFC20B74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20B74: 14410007 bne $v0, $at, 0xBFC20B94 */ uint32_t psx_brA_BFC20B74 = cpu->gpr[2]; uint32_t psx_brB_BFC20B74 = cpu->gpr[1]; @@ -83465,6 +102749,9 @@ label_BFC20B74: /* nop */ if (psx_taken_BFC20B74) goto label_BFC20B94; label_BFC20B7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC20B7C: 240E0001 addiu $t6, $zero, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -83479,6 +102766,9 @@ label_BFC20B7C: /* 0xBFC20B90: AC2F6944 sw $t7, 26948($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26948)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20B90u); return; } g_debug_last_store_pc = 0xBFC20B90u; cpu->write_word(psx_addr, cpu->gpr[15]); } label_BFC20B94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20B94: 03E00008 jr $ra */ /* 0xBFC20B98: 00000000 nop */ @@ -83489,6 +102779,9 @@ label_BFC20B94: void func_1FC20B9C(CPUState* cpu) { debug_server_log_call_entry(0x1FC20B9Cu); label_BFC20B9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC20B9C: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -83503,6 +102796,9 @@ label_BFC20B9C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (51)); if (psx_taken_BFC20BA8) goto label_BFC20BDC; label_BFC20BB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20BB0: 1441000A bne $v0, $at, 0xBFC20BDC */ uint32_t psx_brA_BFC20BB0 = cpu->gpr[2]; uint32_t psx_brB_BFC20BB0 = cpu->gpr[1]; @@ -83511,6 +102807,9 @@ label_BFC20BB0: /* nop */ if (psx_taken_BFC20BB0) goto label_BFC20BDC; label_BFC20BB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC20BB8: 240E0033 addiu $t6, $zero, 51 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (51)); @@ -83531,6 +102830,9 @@ label_BFC20BB8: /* 0xBFC20BD8: AC386944 sw $t8, 26948($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26948)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20BD8u); return; } g_debug_last_store_pc = 0xBFC20BD8u; cpu->write_word(psx_addr, cpu->gpr[24]); } label_BFC20BDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20BDC: 03E00008 jr $ra */ /* 0xBFC20BE0: 00000000 nop */ @@ -83552,6 +102854,9 @@ void func_1FC20BE4(CPUState* cpu) { } } label_BFC20BE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC20BE4: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -83567,6 +102872,9 @@ label_BFC20BE4: cpu->gpr[31] = 0x80038BFCu; psx_dispatch(cpu, 0x8005AA10u); label_BFC20BFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20BFC: 24100018 addiu $s0, $zero, 24 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (24)); @@ -83577,6 +102885,9 @@ label_BFC20BFC: /* nop */ if (psx_taken_BFC20C00) goto label_BFC20C3C; label_BFC20C08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC20C08: 3C118008 lui $s1, 0x8008 */ cpu->gpr[17] = 0x80080000u; @@ -83588,6 +102899,9 @@ label_BFC20C08: cpu->gpr[31] = 0x80038C18u; psx_dispatch(cpu, 0x80057E60u); label_BFC20C18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20C18: 14400008 bne $v0, $zero, 0xBFC20C3C */ uint32_t psx_brA_BFC20C18 = cpu->gpr[2]; uint32_t psx_brB_BFC20C18 = cpu->gpr[0]; @@ -83596,6 +102910,9 @@ label_BFC20C18: /* nop */ if (psx_taken_BFC20C18) goto label_BFC20C3C; label_BFC20C20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20C20: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); @@ -83606,6 +102923,9 @@ label_BFC20C20: /* nop */ if (psx_taken_BFC20C24) goto label_BFC20C3C; label_BFC20C2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20C2C: 0C015F98 jal 0xB0057E60 */ /* 0xBFC20C30: 02202021 addu $a0, $s1, $zero */ @@ -83613,6 +102933,9 @@ label_BFC20C2C: cpu->gpr[31] = 0x80038C34u; psx_dispatch(cpu, 0x80057E60u); label_BFC20C34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20C34: 1040FFFA beq $v0, $zero, 0xBFC20C20 */ uint32_t psx_brA_BFC20C34 = cpu->gpr[2]; uint32_t psx_brB_BFC20C34 = cpu->gpr[0]; @@ -83621,6 +102944,9 @@ label_BFC20C34: /* nop */ if (psx_taken_BFC20C34) goto label_BFC20C20; label_BFC20C3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20C3C: 16000005 bne $s0, $zero, 0xBFC20C54 */ uint32_t psx_brA_BFC20C3C = cpu->gpr[16]; uint32_t psx_brB_BFC20C3C = cpu->gpr[0]; @@ -83629,6 +102955,9 @@ label_BFC20C3C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20C40u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20C3C) goto label_BFC20C54; label_BFC20C44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20C44: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -83638,10 +102967,16 @@ label_BFC20C44: cpu->gpr[31] = 0x80038C50u; psx_dispatch(cpu, 0x8005A910u); label_BFC20C50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20C50: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20C50u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC20C54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC20C54: 8FB00014 lw $s0, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20C54u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -83666,6 +103001,9 @@ void func_1FC20C64(CPUState* cpu) { } } label_BFC20C64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC20C64: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -83683,6 +103021,9 @@ label_BFC20C64: cpu->gpr[31] = 0x80038C80u; psx_dispatch(cpu, 0x8005AA10u); label_BFC20C80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20C80: 24100009 addiu $s0, $zero, 9 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); @@ -83693,6 +103034,9 @@ label_BFC20C80: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20C88u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20C84) goto label_BFC20CD4; label_BFC20C8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC20C8C: 8FAE0028 lw $t6, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20C8Cu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -83712,6 +103056,9 @@ label_BFC20C8C: cpu->gpr[31] = 0x80038CACu; psx_dispatch(cpu, 0x800572B4u); label_BFC20CAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20CAC: 14400009 bne $v0, $zero, 0xBFC20CD4 */ uint32_t psx_brA_BFC20CAC = cpu->gpr[2]; uint32_t psx_brB_BFC20CAC = cpu->gpr[0]; @@ -83720,10 +103067,16 @@ label_BFC20CAC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20CB0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20CAC) goto label_BFC20CD4; label_BFC20CB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20CB4: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); label_BFC20CB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20CB8: 1A000006 blez $s0, 0xBFC20CD4 */ uint32_t psx_brA_BFC20CB8 = cpu->gpr[16]; @@ -83732,6 +103085,9 @@ label_BFC20CB8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20CBCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20CB8) goto label_BFC20CD4; label_BFC20CC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20CC0: 0C015CAD jal 0xB00572B4 */ /* 0xBFC20CC4: 02202021 addu $a0, $s1, $zero */ @@ -83739,6 +103095,9 @@ label_BFC20CC0: cpu->gpr[31] = 0x80038CC8u; psx_dispatch(cpu, 0x800572B4u); label_BFC20CC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20CC8: 1040FFFB beq $v0, $zero, 0xBFC20CB8 */ uint32_t psx_brA_BFC20CC8 = cpu->gpr[2]; uint32_t psx_brB_BFC20CC8 = cpu->gpr[0]; @@ -83747,10 +103106,16 @@ label_BFC20CC8: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); if (psx_taken_BFC20CC8) goto label_BFC20CB8; label_BFC20CD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20CD0: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20CD0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC20CD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC20CD4: 8FB0001C lw $s0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20CD4u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -83775,6 +103140,9 @@ void func_1FC20CE4(CPUState* cpu) { } } label_BFC20CE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC20CE4: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -83792,6 +103160,9 @@ label_BFC20CE4: cpu->gpr[31] = 0x80038D00u; psx_dispatch(cpu, 0x8005AA10u); label_BFC20D00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20D00: 24100009 addiu $s0, $zero, 9 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); @@ -83802,6 +103173,9 @@ label_BFC20D00: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20D08u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20D04) goto label_BFC20D3C; label_BFC20D0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20D0C: 0C015CAD jal 0xB00572B4 */ /* 0xBFC20D10: 02202021 addu $a0, $s1, $zero */ @@ -83809,6 +103183,9 @@ label_BFC20D0C: cpu->gpr[31] = 0x80038D14u; psx_dispatch(cpu, 0x800572B4u); label_BFC20D14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20D14: 14400009 bne $v0, $zero, 0xBFC20D3C */ uint32_t psx_brA_BFC20D14 = cpu->gpr[2]; uint32_t psx_brB_BFC20D14 = cpu->gpr[0]; @@ -83817,10 +103194,16 @@ label_BFC20D14: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20D18u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20D14) goto label_BFC20D3C; label_BFC20D1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20D1C: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); label_BFC20D20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20D20: 1A000006 blez $s0, 0xBFC20D3C */ uint32_t psx_brA_BFC20D20 = cpu->gpr[16]; @@ -83829,6 +103212,9 @@ label_BFC20D20: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20D24u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20D20) goto label_BFC20D3C; label_BFC20D28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20D28: 0C015CAD jal 0xB00572B4 */ /* 0xBFC20D2C: 02202021 addu $a0, $s1, $zero */ @@ -83836,6 +103222,9 @@ label_BFC20D28: cpu->gpr[31] = 0x80038D30u; psx_dispatch(cpu, 0x800572B4u); label_BFC20D30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20D30: 1040FFFB beq $v0, $zero, 0xBFC20D20 */ uint32_t psx_brA_BFC20D30 = cpu->gpr[2]; uint32_t psx_brB_BFC20D30 = cpu->gpr[0]; @@ -83844,10 +103233,16 @@ label_BFC20D30: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); if (psx_taken_BFC20D30) goto label_BFC20D20; label_BFC20D38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20D38: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20D38u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC20D3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC20D3C: 8FB00014 lw $s0, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20D3Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -83872,6 +103267,9 @@ void func_1FC20D4C(CPUState* cpu) { } } label_BFC20D4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC20D4C: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -83889,6 +103287,9 @@ label_BFC20D4C: cpu->gpr[31] = 0x80038D68u; psx_dispatch(cpu, 0x8005AA10u); label_BFC20D68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20D68: 24100009 addiu $s0, $zero, 9 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); @@ -83899,6 +103300,9 @@ label_BFC20D68: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20D70u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20D6C) goto label_BFC20DA4; label_BFC20D74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20D74: 0C015D21 jal 0xB0057484 */ /* 0xBFC20D78: 02202021 addu $a0, $s1, $zero */ @@ -83906,6 +103310,9 @@ label_BFC20D74: cpu->gpr[31] = 0x80038D7Cu; psx_dispatch(cpu, 0x80057484u); label_BFC20D7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20D7C: 14400009 bne $v0, $zero, 0xBFC20DA4 */ uint32_t psx_brA_BFC20D7C = cpu->gpr[2]; uint32_t psx_brB_BFC20D7C = cpu->gpr[0]; @@ -83914,10 +103321,16 @@ label_BFC20D7C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20D80u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20D7C) goto label_BFC20DA4; label_BFC20D84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20D84: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); label_BFC20D88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20D88: 1A000006 blez $s0, 0xBFC20DA4 */ uint32_t psx_brA_BFC20D88 = cpu->gpr[16]; @@ -83926,6 +103339,9 @@ label_BFC20D88: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20D8Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20D88) goto label_BFC20DA4; label_BFC20D90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20D90: 0C015D21 jal 0xB0057484 */ /* 0xBFC20D94: 02202021 addu $a0, $s1, $zero */ @@ -83933,6 +103349,9 @@ label_BFC20D90: cpu->gpr[31] = 0x80038D98u; psx_dispatch(cpu, 0x80057484u); label_BFC20D98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20D98: 1040FFFB beq $v0, $zero, 0xBFC20D88 */ uint32_t psx_brA_BFC20D98 = cpu->gpr[2]; uint32_t psx_brB_BFC20D98 = cpu->gpr[0]; @@ -83941,10 +103360,16 @@ label_BFC20D98: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); if (psx_taken_BFC20D98) goto label_BFC20D88; label_BFC20DA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20DA0: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20DA0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC20DA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC20DA4: 8FB00014 lw $s0, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20DA4u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -83969,6 +103394,9 @@ void func_1FC20DB4(CPUState* cpu) { } } label_BFC20DB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC20DB4: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -83982,6 +103410,9 @@ label_BFC20DB4: cpu->gpr[31] = 0x80038DC8u; psx_dispatch(cpu, 0x8005AA10u); label_BFC20DC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20DC8: 24100009 addiu $s0, $zero, 9 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); @@ -83992,6 +103423,9 @@ label_BFC20DC8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20DD0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20DCC) goto label_BFC20E04; label_BFC20DD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20DD4: 0C015E6B jal 0xB00579AC */ /* 0xBFC20DD8: 00000000 nop */ @@ -83999,6 +103433,9 @@ label_BFC20DD4: cpu->gpr[31] = 0x80038DDCu; psx_dispatch(cpu, 0x800579ACu); label_BFC20DDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20DDC: 14400009 bne $v0, $zero, 0xBFC20E04 */ uint32_t psx_brA_BFC20DDC = cpu->gpr[2]; uint32_t psx_brB_BFC20DDC = cpu->gpr[0]; @@ -84007,10 +103444,16 @@ label_BFC20DDC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20DE0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20DDC) goto label_BFC20E04; label_BFC20DE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20DE4: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); label_BFC20DE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20DE8: 1A000006 blez $s0, 0xBFC20E04 */ uint32_t psx_brA_BFC20DE8 = cpu->gpr[16]; @@ -84019,6 +103462,9 @@ label_BFC20DE8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20DECu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20DE8) goto label_BFC20E04; label_BFC20DF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20DF0: 0C015E6B jal 0xB00579AC */ /* 0xBFC20DF4: 00000000 nop */ @@ -84026,6 +103472,9 @@ label_BFC20DF0: cpu->gpr[31] = 0x80038DF8u; psx_dispatch(cpu, 0x800579ACu); label_BFC20DF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20DF8: 1040FFFB beq $v0, $zero, 0xBFC20DE8 */ uint32_t psx_brA_BFC20DF8 = cpu->gpr[2]; uint32_t psx_brB_BFC20DF8 = cpu->gpr[0]; @@ -84034,10 +103483,16 @@ label_BFC20DF8: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); if (psx_taken_BFC20DF8) goto label_BFC20DE8; label_BFC20E00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20E00: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20E00u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC20E04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20E04: 8FB00018 lw $s0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20E04u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -84060,6 +103515,9 @@ void func_1FC20E10(CPUState* cpu) { } } label_BFC20E10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC20E10: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -84073,6 +103531,9 @@ label_BFC20E10: cpu->gpr[31] = 0x80038E24u; psx_dispatch(cpu, 0x8005AA10u); label_BFC20E24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20E24: 24100009 addiu $s0, $zero, 9 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); @@ -84083,6 +103544,9 @@ label_BFC20E24: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20E2Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20E28) goto label_BFC20E60; label_BFC20E30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20E30: 0C015E84 jal 0xB0057A10 */ /* 0xBFC20E34: 00000000 nop */ @@ -84090,6 +103554,9 @@ label_BFC20E30: cpu->gpr[31] = 0x80038E38u; psx_dispatch(cpu, 0x80057A10u); label_BFC20E38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20E38: 14400009 bne $v0, $zero, 0xBFC20E60 */ uint32_t psx_brA_BFC20E38 = cpu->gpr[2]; uint32_t psx_brB_BFC20E38 = cpu->gpr[0]; @@ -84098,10 +103565,16 @@ label_BFC20E38: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20E3Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20E38) goto label_BFC20E60; label_BFC20E40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20E40: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); label_BFC20E44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20E44: 1A000006 blez $s0, 0xBFC20E60 */ uint32_t psx_brA_BFC20E44 = cpu->gpr[16]; @@ -84110,6 +103583,9 @@ label_BFC20E44: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20E48u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20E44) goto label_BFC20E60; label_BFC20E4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20E4C: 0C015E84 jal 0xB0057A10 */ /* 0xBFC20E50: 00000000 nop */ @@ -84117,6 +103593,9 @@ label_BFC20E4C: cpu->gpr[31] = 0x80038E54u; psx_dispatch(cpu, 0x80057A10u); label_BFC20E54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20E54: 1040FFFB beq $v0, $zero, 0xBFC20E44 */ uint32_t psx_brA_BFC20E54 = cpu->gpr[2]; uint32_t psx_brB_BFC20E54 = cpu->gpr[0]; @@ -84125,10 +103604,16 @@ label_BFC20E54: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); if (psx_taken_BFC20E54) goto label_BFC20E44; label_BFC20E5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20E5C: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20E5Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC20E60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20E60: 8FB00018 lw $s0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20E60u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -84151,6 +103636,9 @@ void func_1FC20E6C(CPUState* cpu) { } } label_BFC20E6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC20E6C: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -84164,6 +103652,9 @@ label_BFC20E6C: cpu->gpr[31] = 0x80038E80u; psx_dispatch(cpu, 0x8005AA10u); label_BFC20E80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20E80: 24100009 addiu $s0, $zero, 9 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); @@ -84174,6 +103665,9 @@ label_BFC20E80: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20E88u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20E84) goto label_BFC20EBC; label_BFC20E8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20E8C: 0C015EBB jal 0xB0057AEC */ /* 0xBFC20E90: 00000000 nop */ @@ -84181,6 +103675,9 @@ label_BFC20E8C: cpu->gpr[31] = 0x80038E94u; psx_dispatch(cpu, 0x80057AECu); label_BFC20E94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20E94: 14400009 bne $v0, $zero, 0xBFC20EBC */ uint32_t psx_brA_BFC20E94 = cpu->gpr[2]; uint32_t psx_brB_BFC20E94 = cpu->gpr[0]; @@ -84189,10 +103686,16 @@ label_BFC20E94: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20E98u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20E94) goto label_BFC20EBC; label_BFC20E9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20E9C: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); label_BFC20EA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20EA0: 1A000006 blez $s0, 0xBFC20EBC */ uint32_t psx_brA_BFC20EA0 = cpu->gpr[16]; @@ -84201,6 +103704,9 @@ label_BFC20EA0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20EA4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20EA0) goto label_BFC20EBC; label_BFC20EA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20EA8: 0C015EBB jal 0xB0057AEC */ /* 0xBFC20EAC: 00000000 nop */ @@ -84208,6 +103714,9 @@ label_BFC20EA8: cpu->gpr[31] = 0x80038EB0u; psx_dispatch(cpu, 0x80057AECu); label_BFC20EB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20EB0: 1040FFFB beq $v0, $zero, 0xBFC20EA0 */ uint32_t psx_brA_BFC20EB0 = cpu->gpr[2]; uint32_t psx_brB_BFC20EB0 = cpu->gpr[0]; @@ -84216,10 +103725,16 @@ label_BFC20EB0: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); if (psx_taken_BFC20EB0) goto label_BFC20EA0; label_BFC20EB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20EB8: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20EB8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC20EBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20EBC: 8FB00018 lw $s0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20EBCu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -84242,6 +103757,9 @@ void func_1FC20EC8(CPUState* cpu) { } } label_BFC20EC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC20EC8: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -84255,6 +103773,9 @@ label_BFC20EC8: cpu->gpr[31] = 0x80038EDCu; psx_dispatch(cpu, 0x8005AA10u); label_BFC20EDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20EDC: 24100009 addiu $s0, $zero, 9 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); @@ -84265,6 +103786,9 @@ label_BFC20EDC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20EE4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20EE0) goto label_BFC20F18; label_BFC20EE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20EE8: 0C015EDD jal 0xB0057B74 */ /* 0xBFC20EEC: 00000000 nop */ @@ -84272,6 +103796,9 @@ label_BFC20EE8: cpu->gpr[31] = 0x80038EF0u; psx_dispatch(cpu, 0x80057B74u); label_BFC20EF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20EF0: 14400009 bne $v0, $zero, 0xBFC20F18 */ uint32_t psx_brA_BFC20EF0 = cpu->gpr[2]; uint32_t psx_brB_BFC20EF0 = cpu->gpr[0]; @@ -84280,10 +103807,16 @@ label_BFC20EF0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20EF4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20EF0) goto label_BFC20F18; label_BFC20EF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20EF8: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); label_BFC20EFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20EFC: 1A000006 blez $s0, 0xBFC20F18 */ uint32_t psx_brA_BFC20EFC = cpu->gpr[16]; @@ -84292,6 +103825,9 @@ label_BFC20EFC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20F00u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20EFC) goto label_BFC20F18; label_BFC20F04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20F04: 0C015EDD jal 0xB0057B74 */ /* 0xBFC20F08: 00000000 nop */ @@ -84299,6 +103835,9 @@ label_BFC20F04: cpu->gpr[31] = 0x80038F0Cu; psx_dispatch(cpu, 0x80057B74u); label_BFC20F0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20F0C: 1040FFFB beq $v0, $zero, 0xBFC20EFC */ uint32_t psx_brA_BFC20F0C = cpu->gpr[2]; uint32_t psx_brB_BFC20F0C = cpu->gpr[0]; @@ -84307,10 +103846,16 @@ label_BFC20F0C: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); if (psx_taken_BFC20F0C) goto label_BFC20EFC; label_BFC20F14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20F14: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20F14u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC20F18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20F18: 8FB00018 lw $s0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20F18u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -84333,6 +103878,9 @@ void func_1FC20F24(CPUState* cpu) { } } label_BFC20F24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC20F24: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -84350,6 +103898,9 @@ label_BFC20F24: cpu->gpr[31] = 0x80038F40u; psx_dispatch(cpu, 0x8005AA10u); label_BFC20F40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20F40: 24100009 addiu $s0, $zero, 9 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); @@ -84360,6 +103911,9 @@ label_BFC20F40: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20F48u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20F44) goto label_BFC20F7C; label_BFC20F4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20F4C: 0C016061 jal 0xB0058184 */ /* 0xBFC20F50: 02202021 addu $a0, $s1, $zero */ @@ -84367,6 +103921,9 @@ label_BFC20F4C: cpu->gpr[31] = 0x80038F54u; psx_dispatch(cpu, 0x80058184u); label_BFC20F54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20F54: 14400009 bne $v0, $zero, 0xBFC20F7C */ uint32_t psx_brA_BFC20F54 = cpu->gpr[2]; uint32_t psx_brB_BFC20F54 = cpu->gpr[0]; @@ -84375,10 +103932,16 @@ label_BFC20F54: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20F58u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20F54) goto label_BFC20F7C; label_BFC20F5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20F5C: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); label_BFC20F60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20F60: 1A000006 blez $s0, 0xBFC20F7C */ uint32_t psx_brA_BFC20F60 = cpu->gpr[16]; @@ -84387,6 +103950,9 @@ label_BFC20F60: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20F64u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20F60) goto label_BFC20F7C; label_BFC20F68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20F68: 0C016061 jal 0xB0058184 */ /* 0xBFC20F6C: 02202021 addu $a0, $s1, $zero */ @@ -84394,6 +103960,9 @@ label_BFC20F68: cpu->gpr[31] = 0x80038F70u; psx_dispatch(cpu, 0x80058184u); label_BFC20F70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20F70: 1040FFFB beq $v0, $zero, 0xBFC20F60 */ uint32_t psx_brA_BFC20F70 = cpu->gpr[2]; uint32_t psx_brB_BFC20F70 = cpu->gpr[0]; @@ -84402,10 +103971,16 @@ label_BFC20F70: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); if (psx_taken_BFC20F70) goto label_BFC20F60; label_BFC20F78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20F78: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20F78u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC20F7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC20F7C: 8FB00014 lw $s0, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20F7Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -84430,6 +104005,9 @@ void func_1FC20F8C(CPUState* cpu) { } } label_BFC20F8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC20F8C: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -84443,6 +104021,9 @@ label_BFC20F8C: cpu->gpr[31] = 0x80038FA0u; psx_dispatch(cpu, 0x8005AA10u); label_BFC20FA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20FA0: 24100009 addiu $s0, $zero, 9 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); @@ -84453,6 +104034,9 @@ label_BFC20FA0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20FA8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20FA4) goto label_BFC20FDC; label_BFC20FAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20FAC: 0C01600D jal 0xB0058034 */ /* 0xBFC20FB0: 00000000 nop */ @@ -84460,6 +104044,9 @@ label_BFC20FAC: cpu->gpr[31] = 0x80038FB4u; psx_dispatch(cpu, 0x80058034u); label_BFC20FB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20FB4: 14400009 bne $v0, $zero, 0xBFC20FDC */ uint32_t psx_brA_BFC20FB4 = cpu->gpr[2]; uint32_t psx_brB_BFC20FB4 = cpu->gpr[0]; @@ -84468,10 +104055,16 @@ label_BFC20FB4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20FB8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20FB4) goto label_BFC20FDC; label_BFC20FBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20FBC: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); label_BFC20FC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20FC0: 1A000006 blez $s0, 0xBFC20FDC */ uint32_t psx_brA_BFC20FC0 = cpu->gpr[16]; @@ -84480,6 +104073,9 @@ label_BFC20FC0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20FC4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC20FC0) goto label_BFC20FDC; label_BFC20FC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20FC8: 0C01600D jal 0xB0058034 */ /* 0xBFC20FCC: 00000000 nop */ @@ -84487,6 +104083,9 @@ label_BFC20FC8: cpu->gpr[31] = 0x80038FD0u; psx_dispatch(cpu, 0x80058034u); label_BFC20FD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC20FD0: 1040FFFB beq $v0, $zero, 0xBFC20FC0 */ uint32_t psx_brA_BFC20FD0 = cpu->gpr[2]; uint32_t psx_brB_BFC20FD0 = cpu->gpr[0]; @@ -84495,10 +104094,16 @@ label_BFC20FD0: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); if (psx_taken_BFC20FD0) goto label_BFC20FC0; label_BFC20FD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC20FD8: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20FD8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC20FDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20FDC: 8FB00018 lw $s0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC20FDCu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -84521,6 +104126,9 @@ void func_1FC20FE8(CPUState* cpu) { } } label_BFC20FE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC20FE8: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -84534,6 +104142,9 @@ label_BFC20FE8: cpu->gpr[31] = 0x80038FFCu; psx_dispatch(cpu, 0x8005AA10u); label_BFC20FFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC20FFC: 24100009 addiu $s0, $zero, 9 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); @@ -84544,6 +104155,9 @@ label_BFC20FFC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21004u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC21000) goto label_BFC21038; label_BFC21008: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21008: 0C016037 jal 0xB00580DC */ /* 0xBFC2100C: 00000000 nop */ @@ -84551,6 +104165,9 @@ label_BFC21008: cpu->gpr[31] = 0x80039010u; psx_dispatch(cpu, 0x800580DCu); label_BFC21010: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21010: 14400009 bne $v0, $zero, 0xBFC21038 */ uint32_t psx_brA_BFC21010 = cpu->gpr[2]; uint32_t psx_brB_BFC21010 = cpu->gpr[0]; @@ -84559,10 +104176,16 @@ label_BFC21010: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21014u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC21010) goto label_BFC21038; label_BFC21018: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC21018: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); label_BFC2101C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2101C: 1A000006 blez $s0, 0xBFC21038 */ uint32_t psx_brA_BFC2101C = cpu->gpr[16]; @@ -84571,6 +104194,9 @@ label_BFC2101C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21020u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC2101C) goto label_BFC21038; label_BFC21024: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21024: 0C016037 jal 0xB00580DC */ /* 0xBFC21028: 00000000 nop */ @@ -84578,6 +104204,9 @@ label_BFC21024: cpu->gpr[31] = 0x8003902Cu; psx_dispatch(cpu, 0x800580DCu); label_BFC2102C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2102C: 1040FFFB beq $v0, $zero, 0xBFC2101C */ uint32_t psx_brA_BFC2102C = cpu->gpr[2]; uint32_t psx_brB_BFC2102C = cpu->gpr[0]; @@ -84586,10 +104215,16 @@ label_BFC2102C: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); if (psx_taken_BFC2102C) goto label_BFC2101C; label_BFC21034: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC21034: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21034u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC21038: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21038: 8FB00018 lw $s0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21038u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -84613,6 +104248,9 @@ void func_1FC21044(CPUState* cpu) { } } label_BFC21044: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC21044: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -84630,6 +104268,9 @@ label_BFC21044: cpu->gpr[31] = 0x80039060u; psx_dispatch(cpu, 0x8005AA10u); label_BFC21060: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21060: 24100009 addiu $s0, $zero, 9 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); @@ -84640,6 +104281,9 @@ label_BFC21060: /* nop */ if (psx_taken_BFC21064) goto label_BFC21098; label_BFC2106C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2106C: 0C015E39 jal 0xB00578E4 */ /* 0xBFC21070: 02202021 addu $a0, $s1, $zero */ @@ -84647,6 +104291,9 @@ label_BFC2106C: cpu->gpr[31] = 0x80039074u; psx_dispatch(cpu, 0x800578E4u); label_BFC21074: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21074: 14400008 bne $v0, $zero, 0xBFC21098 */ uint32_t psx_brA_BFC21074 = cpu->gpr[2]; uint32_t psx_brB_BFC21074 = cpu->gpr[0]; @@ -84655,6 +104302,9 @@ label_BFC21074: /* nop */ if (psx_taken_BFC21074) goto label_BFC21098; label_BFC2107C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2107C: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); @@ -84665,6 +104315,9 @@ label_BFC2107C: /* nop */ if (psx_taken_BFC21080) goto label_BFC21098; label_BFC21088: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21088: 0C015E39 jal 0xB00578E4 */ /* 0xBFC2108C: 02202021 addu $a0, $s1, $zero */ @@ -84672,6 +104325,9 @@ label_BFC21088: cpu->gpr[31] = 0x80039090u; psx_dispatch(cpu, 0x800578E4u); label_BFC21090: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21090: 1040FFFA beq $v0, $zero, 0xBFC2107C */ uint32_t psx_brA_BFC21090 = cpu->gpr[2]; uint32_t psx_brB_BFC21090 = cpu->gpr[0]; @@ -84680,6 +104336,9 @@ label_BFC21090: /* nop */ if (psx_taken_BFC21090) goto label_BFC2107C; label_BFC21098: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21098: 16000005 bne $s0, $zero, 0xBFC210B0 */ uint32_t psx_brA_BFC21098 = cpu->gpr[16]; uint32_t psx_brB_BFC21098 = cpu->gpr[0]; @@ -84688,6 +104347,9 @@ label_BFC21098: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2109Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC21098) goto label_BFC210B0; label_BFC210A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC210A0: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -84697,10 +104359,16 @@ label_BFC210A0: cpu->gpr[31] = 0x800390ACu; psx_dispatch(cpu, 0x8005A910u); label_BFC210AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC210AC: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC210ACu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC210B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC210B0: 8FB00014 lw $s0, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC210B0u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -84723,6 +104391,9 @@ void func_1FC210C0(CPUState* cpu) { } } label_BFC210C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC210C0: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -84740,6 +104411,9 @@ label_BFC210C0: cpu->gpr[31] = 0x800390DCu; psx_dispatch(cpu, 0x8005AA10u); label_BFC210DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC210DC: 24100009 addiu $s0, $zero, 9 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); @@ -84750,6 +104424,9 @@ label_BFC210DC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC210E4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC210E0) { cpu->pc = 0xBFC21118u; return; } label_BFC210E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC210E8: 0C015D3C jal 0xB00574F0 */ /* 0xBFC210EC: 02202021 addu $a0, $s1, $zero */ @@ -84771,6 +104448,9 @@ void func_1FC210F0(CPUState* cpu) { } } label_BFC210F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC210F0: 14400009 bne $v0, $zero, 0xBFC21118 */ uint32_t psx_brA_BFC210F0 = cpu->gpr[2]; uint32_t psx_brB_BFC210F0 = cpu->gpr[0]; @@ -84779,10 +104459,16 @@ label_BFC210F0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC210F4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC210F0) goto label_BFC21118; label_BFC210F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC210F8: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); label_BFC210FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC210FC: 1A000006 blez $s0, 0xBFC21118 */ uint32_t psx_brA_BFC210FC = cpu->gpr[16]; @@ -84791,6 +104477,9 @@ label_BFC210FC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21100u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC210FC) goto label_BFC21118; label_BFC21104: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21104: 0C015D3C jal 0xB00574F0 */ /* 0xBFC21108: 02202021 addu $a0, $s1, $zero */ @@ -84798,6 +104487,9 @@ label_BFC21104: cpu->gpr[31] = 0x8003910Cu; psx_dispatch(cpu, 0x800574F0u); label_BFC2110C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2110C: 1040FFFB beq $v0, $zero, 0xBFC210FC */ uint32_t psx_brA_BFC2110C = cpu->gpr[2]; uint32_t psx_brB_BFC2110C = cpu->gpr[0]; @@ -84806,10 +104498,16 @@ label_BFC2110C: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); if (psx_taken_BFC2110C) goto label_BFC210FC; label_BFC21114: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC21114: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21114u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC21118: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC21118: 8FB00014 lw $s0, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21118u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -84834,6 +104532,9 @@ void func_1FC21128(CPUState* cpu) { } } label_BFC21128: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC21128: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -84847,6 +104548,9 @@ label_BFC21128: cpu->gpr[31] = 0x8003913Cu; psx_dispatch(cpu, 0x8005AA10u); label_BFC2113C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2113C: 24100009 addiu $s0, $zero, 9 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); @@ -84857,6 +104561,9 @@ label_BFC2113C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21144u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC21140) goto label_BFC21178; label_BFC21148: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21148: 0C015F43 jal 0xB0057D0C */ /* 0xBFC2114C: 00000000 nop */ @@ -84864,6 +104571,9 @@ label_BFC21148: cpu->gpr[31] = 0x80039150u; psx_dispatch(cpu, 0x80057D0Cu); label_BFC21150: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21150: 14400009 bne $v0, $zero, 0xBFC21178 */ uint32_t psx_brA_BFC21150 = cpu->gpr[2]; uint32_t psx_brB_BFC21150 = cpu->gpr[0]; @@ -84872,10 +104582,16 @@ label_BFC21150: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21154u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC21150) goto label_BFC21178; label_BFC21158: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC21158: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); label_BFC2115C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2115C: 1A000006 blez $s0, 0xBFC21178 */ uint32_t psx_brA_BFC2115C = cpu->gpr[16]; @@ -84884,6 +104600,9 @@ label_BFC2115C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21160u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC2115C) goto label_BFC21178; label_BFC21164: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21164: 0C015F43 jal 0xB0057D0C */ /* 0xBFC21168: 00000000 nop */ @@ -84891,6 +104610,9 @@ label_BFC21164: cpu->gpr[31] = 0x8003916Cu; psx_dispatch(cpu, 0x80057D0Cu); label_BFC2116C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2116C: 1040FFFB beq $v0, $zero, 0xBFC2115C */ uint32_t psx_brA_BFC2116C = cpu->gpr[2]; uint32_t psx_brB_BFC2116C = cpu->gpr[0]; @@ -84899,10 +104621,16 @@ label_BFC2116C: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); if (psx_taken_BFC2116C) goto label_BFC2115C; label_BFC21174: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC21174: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21174u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC21178: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21178: 8FB00018 lw $s0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21178u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -84925,6 +104653,9 @@ void func_1FC21184(CPUState* cpu) { } } label_BFC21184: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC21184: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -84946,6 +104677,9 @@ label_BFC21184: cpu->gpr[31] = 0x800391A8u; psx_dispatch(cpu, 0x8005AA10u); label_BFC211A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC211A8: 24100009 addiu $s0, $zero, 9 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); @@ -84956,6 +104690,9 @@ label_BFC211A8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC211B0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC211AC) goto label_BFC211EC; label_BFC211B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC211B4: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -84965,6 +104702,9 @@ label_BFC211B4: cpu->gpr[31] = 0x800391C0u; psx_dispatch(cpu, 0x800583C4u); label_BFC211C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC211C0: 1440000A bne $v0, $zero, 0xBFC211EC */ uint32_t psx_brA_BFC211C0 = cpu->gpr[2]; uint32_t psx_brB_BFC211C0 = cpu->gpr[0]; @@ -84973,10 +104713,16 @@ label_BFC211C0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC211C4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC211C0) goto label_BFC211EC; label_BFC211C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC211C8: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); label_BFC211CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC211CC: 1A000007 blez $s0, 0xBFC211EC */ uint32_t psx_brA_BFC211CC = cpu->gpr[16]; @@ -84985,6 +104731,9 @@ label_BFC211CC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC211D0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC211CC) goto label_BFC211EC; label_BFC211D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC211D4: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -84994,6 +104743,9 @@ label_BFC211D4: cpu->gpr[31] = 0x800391E0u; psx_dispatch(cpu, 0x800583C4u); label_BFC211E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC211E0: 1040FFFA beq $v0, $zero, 0xBFC211CC */ uint32_t psx_brA_BFC211E0 = cpu->gpr[2]; uint32_t psx_brB_BFC211E0 = cpu->gpr[0]; @@ -85002,10 +104754,16 @@ label_BFC211E0: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); if (psx_taken_BFC211E0) goto label_BFC211CC; label_BFC211E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC211E8: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC211E8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC211EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC211EC: 8FB00018 lw $s0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC211ECu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -85031,6 +104789,9 @@ void func_1FC21200(CPUState* cpu) { } } label_BFC21200: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC21200: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -85052,10 +104813,16 @@ label_BFC21200: cpu->gpr[31] = 0x80039224u; psx_dispatch(cpu, 0x8005AA10u); label_BFC21224: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC21224: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); label_BFC21228: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21228: 1A000007 blez $s0, 0xBFC21248 */ uint32_t psx_brA_BFC21228 = cpu->gpr[16]; @@ -85064,6 +104831,9 @@ label_BFC21228: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2122Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC21228) goto label_BFC21248; label_BFC21230: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21230: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -85073,6 +104843,9 @@ label_BFC21230: cpu->gpr[31] = 0x8003923Cu; psx_dispatch(cpu, 0x80058260u); label_BFC2123C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2123C: 1040FFFA beq $v0, $zero, 0xBFC21228 */ uint32_t psx_brA_BFC2123C = cpu->gpr[2]; uint32_t psx_brB_BFC2123C = cpu->gpr[0]; @@ -85081,10 +104854,16 @@ label_BFC2123C: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); if (psx_taken_BFC2123C) goto label_BFC21228; label_BFC21244: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC21244: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21244u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC21248: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC21248: 8FB00018 lw $s0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21248u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -85111,6 +104890,9 @@ void func_1FC2125C(CPUState* cpu) { } } label_BFC2125C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2125C: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -85128,6 +104910,9 @@ label_BFC2125C: cpu->gpr[31] = 0x80039278u; psx_dispatch(cpu, 0x8005AA10u); label_BFC21278: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21278: 24100009 addiu $s0, $zero, 9 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); @@ -85138,6 +104923,9 @@ label_BFC21278: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21280u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC2127C) goto label_BFC212B4; label_BFC21284: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21284: 0C016101 jal 0xB0058404 */ /* 0xBFC21288: 02202021 addu $a0, $s1, $zero */ @@ -85145,6 +104933,9 @@ label_BFC21284: cpu->gpr[31] = 0x8003928Cu; psx_dispatch(cpu, 0x80058404u); label_BFC2128C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2128C: 14400009 bne $v0, $zero, 0xBFC212B4 */ uint32_t psx_brA_BFC2128C = cpu->gpr[2]; uint32_t psx_brB_BFC2128C = cpu->gpr[0]; @@ -85153,10 +104944,16 @@ label_BFC2128C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21290u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC2128C) goto label_BFC212B4; label_BFC21294: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC21294: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); label_BFC21298: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21298: 1A000006 blez $s0, 0xBFC212B4 */ uint32_t psx_brA_BFC21298 = cpu->gpr[16]; @@ -85165,6 +104962,9 @@ label_BFC21298: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2129Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC21298) goto label_BFC212B4; label_BFC212A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC212A0: 0C016101 jal 0xB0058404 */ /* 0xBFC212A4: 02202021 addu $a0, $s1, $zero */ @@ -85172,6 +104972,9 @@ label_BFC212A0: cpu->gpr[31] = 0x800392A8u; psx_dispatch(cpu, 0x80058404u); label_BFC212A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC212A8: 1040FFFB beq $v0, $zero, 0xBFC21298 */ uint32_t psx_brA_BFC212A8 = cpu->gpr[2]; uint32_t psx_brB_BFC212A8 = cpu->gpr[0]; @@ -85180,10 +104983,16 @@ label_BFC212A8: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); if (psx_taken_BFC212A8) goto label_BFC21298; label_BFC212B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC212B0: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC212B0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC212B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC212B4: 8FB00014 lw $s0, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC212B4u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -85208,6 +105017,9 @@ void func_1FC212C4(CPUState* cpu) { } } label_BFC212C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC212C4: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -85221,6 +105033,9 @@ label_BFC212C4: cpu->gpr[31] = 0x800392D8u; psx_dispatch(cpu, 0x8005AA10u); label_BFC212D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC212D8: 24100009 addiu $s0, $zero, 9 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); @@ -85231,6 +105046,9 @@ label_BFC212D8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC212E0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC212DC) goto label_BFC21314; label_BFC212E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC212E4: 0C015D5C jal 0xB0057570 */ /* 0xBFC212E8: 00000000 nop */ @@ -85238,6 +105056,9 @@ label_BFC212E4: cpu->gpr[31] = 0x800392ECu; psx_dispatch(cpu, 0x80057570u); label_BFC212EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC212EC: 14400009 bne $v0, $zero, 0xBFC21314 */ uint32_t psx_brA_BFC212EC = cpu->gpr[2]; uint32_t psx_brB_BFC212EC = cpu->gpr[0]; @@ -85246,10 +105067,16 @@ label_BFC212EC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC212F0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC212EC) goto label_BFC21314; label_BFC212F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC212F4: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); label_BFC212F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC212F8: 1A000006 blez $s0, 0xBFC21314 */ uint32_t psx_brA_BFC212F8 = cpu->gpr[16]; @@ -85258,6 +105085,9 @@ label_BFC212F8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC212FCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC212F8) goto label_BFC21314; label_BFC21300: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21300: 0C015D5C jal 0xB0057570 */ /* 0xBFC21304: 00000000 nop */ @@ -85265,6 +105095,9 @@ label_BFC21300: cpu->gpr[31] = 0x80039308u; psx_dispatch(cpu, 0x80057570u); label_BFC21308: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21308: 1040FFFB beq $v0, $zero, 0xBFC212F8 */ uint32_t psx_brA_BFC21308 = cpu->gpr[2]; uint32_t psx_brB_BFC21308 = cpu->gpr[0]; @@ -85273,10 +105106,16 @@ label_BFC21308: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); if (psx_taken_BFC21308) goto label_BFC212F8; label_BFC21310: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC21310: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21310u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC21314: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21314: 8FB00018 lw $s0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21314u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -85299,6 +105138,9 @@ void func_1FC21320(CPUState* cpu) { } } label_BFC21320: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC21320: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -85316,6 +105158,9 @@ label_BFC21320: cpu->gpr[31] = 0x8003933Cu; psx_dispatch(cpu, 0x8005AA10u); label_BFC2133C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2133C: 24100009 addiu $s0, $zero, 9 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); @@ -85326,6 +105171,9 @@ label_BFC2133C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21344u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC21340) goto label_BFC21390; label_BFC21348: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC21348: 3C11800F lui $s1, 0x800F */ cpu->gpr[17] = 0x800F0000u; @@ -85343,6 +105191,9 @@ label_BFC21348: cpu->gpr[31] = 0x80039364u; psx_dispatch(cpu, 0x800582DCu); label_BFC21364: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21364: 1440000A bne $v0, $zero, 0xBFC21390 */ uint32_t psx_brA_BFC21364 = cpu->gpr[2]; uint32_t psx_brB_BFC21364 = cpu->gpr[0]; @@ -85351,10 +105202,16 @@ label_BFC21364: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21368u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC21364) goto label_BFC21390; label_BFC2136C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2136C: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); label_BFC21370: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21370: 1A000007 blez $s0, 0xBFC21390 */ uint32_t psx_brA_BFC21370 = cpu->gpr[16]; @@ -85363,6 +105220,9 @@ label_BFC21370: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21374u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC21370) goto label_BFC21390; label_BFC21378: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21378: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -85372,6 +105232,9 @@ label_BFC21378: cpu->gpr[31] = 0x80039384u; psx_dispatch(cpu, 0x800582DCu); label_BFC21384: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21384: 1040FFFA beq $v0, $zero, 0xBFC21370 */ uint32_t psx_brA_BFC21384 = cpu->gpr[2]; uint32_t psx_brB_BFC21384 = cpu->gpr[0]; @@ -85380,10 +105243,16 @@ label_BFC21384: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); if (psx_taken_BFC21384) goto label_BFC21370; label_BFC2138C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2138C: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2138Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC21390: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC21390: 8FB00018 lw $s0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21390u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -85409,6 +105278,9 @@ void func_1FC213A4(CPUState* cpu) { } } label_BFC213A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC213A4: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -85424,6 +105296,9 @@ label_BFC213A4: cpu->gpr[31] = 0x800393BCu; psx_dispatch(cpu, 0x800393E8u); label_BFC213BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC213BC: 93A40028 lbu $a0, 40($sp) */ cpu->gpr[4] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (40))); @@ -85433,6 +105308,9 @@ label_BFC213BC: cpu->gpr[31] = 0x800393C8u; psx_dispatch(cpu, 0x800393E8u); label_BFC213C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC213C8: 8FAE0024 lw $t6, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC213C8u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -85455,6 +105333,9 @@ label_BFC213C8: void func_1FC213E8(CPUState* cpu) { debug_server_log_call_entry(0x1FC213E8u); label_BFC213E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC213E8: 308400FF andi $a0, $a0, 0xFF */ cpu->gpr[4] = cpu->gpr[4] & 0xFFu; @@ -85467,6 +105348,9 @@ label_BFC213E8: void func_1FC213F4(CPUState* cpu) { debug_server_log_call_entry(0x1FC213F4u); label_BFC213F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC213F4: 03E00008 jr $ra */ /* 0xBFC213F8: 00000000 nop */ @@ -85486,6 +105370,9 @@ void func_1FC213FC(CPUState* cpu) { } } label_BFC213FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC213FC: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -85512,6 +105399,9 @@ label_BFC213FC: cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC21420) goto label_BFC21468; label_BFC21428: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21428: 0C00D8F3 jal 0xB00363CC */ /* 0xBFC2142C: 00000000 nop */ @@ -85519,6 +105409,9 @@ label_BFC21428: cpu->gpr[31] = 0x80039430u; psx_dispatch(cpu, 0x800363CCu); label_BFC21430: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21430: 0C016720 jal 0xB0059C80 */ /* 0xBFC21434: 00002021 addu $a0, $zero, $zero */ @@ -85526,6 +105419,9 @@ label_BFC21430: cpu->gpr[31] = 0x80039438u; psx_dispatch(cpu, 0x80059C80u); label_BFC21438: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC21438: 3C0E8006 lui $t6, 0x8006 */ cpu->gpr[14] = 0x80060000u; @@ -85540,6 +105436,9 @@ label_BFC21438: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (int32_t)cpu->gpr[18] ? 1 : 0); if (psx_taken_BFC21444) goto label_BFC2146C; label_BFC2144C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2144C: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -85554,6 +105453,9 @@ label_BFC2144C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (int32_t)cpu->gpr[18] ? 1 : 0); if (psx_taken_BFC21458) goto label_BFC2146C; label_BFC21460: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21460: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -85561,11 +105463,17 @@ label_BFC21460: uint32_t psx_brA_BFC21464 = cpu->gpr[16]; uint32_t psx_brB_BFC21464 = cpu->gpr[18]; int psx_taken_BFC21464 = (psx_brA_BFC21464 != psx_brB_BFC21464); label_BFC21468: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC21468: 0212082A slt $at, $s0, $s2 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (int32_t)cpu->gpr[18] ? 1 : 0); if (psx_taken_BFC21464) goto label_BFC21428; label_BFC2146C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2146C: 14200006 bne $at, $zero, 0xBFC21488 */ uint32_t psx_brA_BFC2146C = cpu->gpr[1]; uint32_t psx_brB_BFC2146C = cpu->gpr[0]; @@ -85574,6 +105482,9 @@ label_BFC2146C: cpu->gpr[1] = 0x80060000u; if (psx_taken_BFC2146C) goto label_BFC21488; label_BFC21474: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC21474: AC206950 sw $zero, 26960($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (26960)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21474u); return; } g_debug_last_store_pc = 0xBFC21474u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -85588,10 +105499,16 @@ label_BFC21474: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC21480) goto label_BFC2148C; label_BFC21488: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC21488: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC2148C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2148C: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2148Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -85660,6 +105577,9 @@ void func_1FC214B0(CPUState* cpu) { } } label_BFC214B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC214B0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -85678,6 +105598,9 @@ label_BFC214B0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC214C8u); return; } g_debug_last_store_pc = 0xBFC214C8u; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC214C4) goto label_BFC2150C; label_BFC214CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC214CC: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -85696,6 +105619,9 @@ label_BFC214CC: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC214E0) goto label_BFC214F0; label_BFC214E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC214E8: 10000008 beq $zero, $zero, 0xBFC2150C */ uint32_t psx_brA_BFC214E8 = cpu->gpr[0]; uint32_t psx_brB_BFC214E8 = cpu->gpr[0]; @@ -85704,6 +105630,9 @@ label_BFC214E8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24268)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC214ECu); return; } g_debug_last_store_pc = 0xBFC214ECu; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC214E8) goto label_BFC2150C; label_BFC214F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC214F0: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; @@ -85717,6 +105646,9 @@ label_BFC214F0: cpu->gpr[31] = 0x80039504u; psx_dispatch(cpu, 0x8003CF00u); label_BFC21504: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21504: 0C00F3C0 jal 0xB003CF00 */ /* 0xBFC21508: 24040001 addiu $a0, $zero, 1 */ @@ -85724,6 +105656,9 @@ label_BFC21504: cpu->gpr[31] = 0x8003950Cu; psx_dispatch(cpu, 0x8003CF00u); label_BFC2150C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2150C: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -85738,6 +105673,9 @@ label_BFC2150C: /* nop */ if (psx_taken_BFC21518) goto label_BFC21584; label_BFC21520: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC21520: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -85752,6 +105690,9 @@ label_BFC21520: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (1)); if (psx_taken_BFC2152C) goto label_BFC21564; label_BFC21534: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21534: 0C00E64F jal 0xB003993C */ /* 0xBFC21538: 00002021 addu $a0, $zero, $zero */ @@ -85759,6 +105700,9 @@ label_BFC21534: cpu->gpr[31] = 0x8003953Cu; psx_dispatch(cpu, 0x8003993Cu); label_BFC2153C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2153C: 0C00E64F jal 0xB003993C */ /* 0xBFC21540: 24040001 addiu $a0, $zero, 1 */ @@ -85766,6 +105710,9 @@ label_BFC2153C: cpu->gpr[31] = 0x80039544u; psx_dispatch(cpu, 0x8003993Cu); label_BFC21544: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC21544: 24180001 addiu $t8, $zero, 1 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -85777,6 +105724,9 @@ label_BFC21544: cpu->gpr[31] = 0x80039554u; psx_dispatch(cpu, 0x8003E4A0u); label_BFC21554: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC21554: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -85787,6 +105737,9 @@ label_BFC21554: /* 0xBFC21560: 24420001 addiu $v0, $v0, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (1)); label_BFC21564: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC21564: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -85801,6 +105754,9 @@ label_BFC21564: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21574u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC21570) goto label_BFC218C0; label_BFC21578: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21578: 24190001 addiu $t9, $zero, 1 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -85809,6 +105765,9 @@ label_BFC21578: /* 0xBFC21580: AC39A12C sw $t9, -24276($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24276)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21580u); return; } g_debug_last_store_pc = 0xBFC21580u; cpu->write_word(psx_addr, cpu->gpr[25]); } label_BFC21584: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC21584: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -85823,6 +105782,9 @@ label_BFC21584: /* nop */ if (psx_taken_BFC21590) goto label_BFC21628; label_BFC21598: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(24u); +#endif psx_check_interrupts(cpu); /* 0xBFC21598: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -85875,6 +105837,9 @@ label_BFC21598: /* nop */ if (psx_taken_BFC215F0) goto label_BFC21610; label_BFC215F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC215F8: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -85886,12 +105851,18 @@ label_BFC215F8: cpu->gpr[31] = 0x80039608u; psx_dispatch(cpu, 0x80044B80u); label_BFC21608: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21608: 8FA20024 lw $v0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21608u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } /* 0xBFC2160C: 00000000 nop */ /* nop */ label_BFC21610: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC21610: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -85908,6 +105879,9 @@ label_BFC21610: /* nop */ if (psx_taken_BFC21620) goto label_BFC21598; label_BFC21628: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC21628: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -85922,6 +105896,9 @@ label_BFC21628: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (7)); if (psx_taken_BFC21634) goto label_BFC21658; label_BFC2163C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2163C: 8FA40028 lw $a0, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2163Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -85931,6 +105908,9 @@ label_BFC2163C: cpu->gpr[31] = 0x80039648u; psx_dispatch(cpu, 0x800398CCu); label_BFC21648: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC21648: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -85941,6 +105921,9 @@ label_BFC21648: /* 0xBFC21654: 24010007 addiu $at, $zero, 7 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (7)); label_BFC21658: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21658: 1481000A bne $a0, $at, 0xBFC21684 */ uint32_t psx_brA_BFC21658 = cpu->gpr[4]; uint32_t psx_brB_BFC21658 = cpu->gpr[1]; @@ -85949,6 +105932,9 @@ label_BFC21658: /* nop */ if (psx_taken_BFC21658) goto label_BFC21684; label_BFC21660: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21660: 0C00E6A7 jal 0xB0039A9C */ /* 0xBFC21664: 00002021 addu $a0, $zero, $zero */ @@ -85956,6 +105942,9 @@ label_BFC21660: cpu->gpr[31] = 0x80039668u; psx_dispatch(cpu, 0x80039A9Cu); label_BFC21668: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21668: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -85966,6 +105955,9 @@ label_BFC21668: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21670u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC2166C) goto label_BFC218C0; label_BFC21674: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21674: 0C00E6A7 jal 0xB0039A9C */ /* 0xBFC21678: 24040001 addiu $a0, $zero, 1 */ @@ -85973,6 +105965,9 @@ label_BFC21674: cpu->gpr[31] = 0x8003967Cu; psx_dispatch(cpu, 0x80039A9Cu); label_BFC2167C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2167C: 10000090 beq $zero, $zero, 0xBFC218C0 */ uint32_t psx_brA_BFC2167C = cpu->gpr[0]; uint32_t psx_brB_BFC2167C = cpu->gpr[0]; @@ -85981,6 +105976,9 @@ label_BFC2167C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21680u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC2167C) goto label_BFC218C0; label_BFC21684: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21684: 1080008E beq $a0, $zero, 0xBFC218C0 */ uint32_t psx_brA_BFC21684 = cpu->gpr[4]; uint32_t psx_brB_BFC21684 = cpu->gpr[0]; @@ -85989,6 +105987,9 @@ label_BFC21684: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21688u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC21684) goto label_BFC218C0; label_BFC2168C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2168C: 3C188006 lui $t8, 0x8006 */ cpu->gpr[24] = 0x80060000u; @@ -86003,6 +106004,9 @@ label_BFC2168C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2169Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC21698) goto label_BFC218C0; label_BFC216A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC216A0: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -86017,6 +106021,9 @@ label_BFC216A0: /* nop */ if (psx_taken_BFC216AC) goto label_BFC21880; label_BFC216B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC216B4: 0C00F954 jal 0xB003E550 */ /* 0xBFC216B8: 00000000 nop */ @@ -86024,6 +106031,9 @@ label_BFC216B4: cpu->gpr[31] = 0x800396BCu; psx_dispatch(cpu, 0x8003E550u); label_BFC216BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC216BC: 0C011997 jal 0xB004665C */ /* 0xBFC216C0: 2404000A addiu $a0, $zero, 10 */ @@ -86031,6 +106041,9 @@ label_BFC216BC: cpu->gpr[31] = 0x800396C4u; psx_dispatch(cpu, 0x8004665Cu); label_BFC216C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC216C4: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -86040,6 +106053,9 @@ label_BFC216C4: cpu->gpr[31] = 0x800396D0u; psx_dispatch(cpu, 0x80044A50u); label_BFC216D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC216D0: 0C011997 jal 0xB004665C */ /* 0xBFC216D4: 2404000B addiu $a0, $zero, 11 */ @@ -86047,6 +106063,9 @@ label_BFC216D0: cpu->gpr[31] = 0x800396D8u; psx_dispatch(cpu, 0x8004665Cu); label_BFC216D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC216D8: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -86056,6 +106075,9 @@ label_BFC216D8: cpu->gpr[31] = 0x800396E4u; psx_dispatch(cpu, 0x80044A50u); label_BFC216E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC216E4: 0C011997 jal 0xB004665C */ /* 0xBFC216E8: 24040011 addiu $a0, $zero, 17 */ @@ -86063,6 +106085,9 @@ label_BFC216E4: cpu->gpr[31] = 0x800396ECu; psx_dispatch(cpu, 0x8004665Cu); label_BFC216EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC216EC: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -86072,6 +106097,9 @@ label_BFC216EC: cpu->gpr[31] = 0x800396F8u; psx_dispatch(cpu, 0x80044A50u); label_BFC216F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC216F8: 0C011997 jal 0xB004665C */ /* 0xBFC216FC: 2404006E addiu $a0, $zero, 110 */ @@ -86079,6 +106107,9 @@ label_BFC216F8: cpu->gpr[31] = 0x80039700u; psx_dispatch(cpu, 0x8004665Cu); label_BFC21700: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21700: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -86088,6 +106119,9 @@ label_BFC21700: cpu->gpr[31] = 0x8003970Cu; psx_dispatch(cpu, 0x80044A50u); label_BFC2170C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2170C: 0C011997 jal 0xB004665C */ /* 0xBFC21710: 2404006F addiu $a0, $zero, 111 */ @@ -86095,6 +106129,9 @@ label_BFC2170C: cpu->gpr[31] = 0x80039714u; psx_dispatch(cpu, 0x8004665Cu); label_BFC21714: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21714: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -86104,6 +106141,9 @@ label_BFC21714: cpu->gpr[31] = 0x80039720u; psx_dispatch(cpu, 0x80044A50u); label_BFC21720: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC21720: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -86127,6 +106167,9 @@ label_BFC21720: cpu->gpr[31] = 0x80039748u; psx_dispatch(cpu, 0x80044A50u); label_BFC21748: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21748: 0C011997 jal 0xB004665C */ /* 0xBFC2174C: 24040004 addiu $a0, $zero, 4 */ @@ -86134,6 +106177,9 @@ label_BFC21748: cpu->gpr[31] = 0x80039750u; psx_dispatch(cpu, 0x8004665Cu); label_BFC21750: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21750: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -86143,6 +106189,9 @@ label_BFC21750: cpu->gpr[31] = 0x8003975Cu; psx_dispatch(cpu, 0x80044A50u); label_BFC2175C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2175C: 0C011997 jal 0xB004665C */ /* 0xBFC21760: 24040005 addiu $a0, $zero, 5 */ @@ -86150,6 +106199,9 @@ label_BFC2175C: cpu->gpr[31] = 0x80039764u; psx_dispatch(cpu, 0x8004665Cu); label_BFC21764: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21764: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -86159,6 +106211,9 @@ label_BFC21764: cpu->gpr[31] = 0x80039770u; psx_dispatch(cpu, 0x80044A50u); label_BFC21770: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21770: 0C011951 jal 0xB0046544 */ /* 0xBFC21774: 00000000 nop */ @@ -86166,6 +106221,9 @@ label_BFC21770: cpu->gpr[31] = 0x80039778u; psx_dispatch(cpu, 0x80046544u); label_BFC21778: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21778: 10000031 beq $zero, $zero, 0xBFC21840 */ uint32_t psx_brA_BFC21778 = cpu->gpr[0]; uint32_t psx_brB_BFC21778 = cpu->gpr[0]; @@ -86174,6 +106232,9 @@ label_BFC21778: /* nop */ if (psx_taken_BFC21778) goto label_BFC21840; label_BFC21780: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21780: 0C011997 jal 0xB004665C */ /* 0xBFC21784: 2404000C addiu $a0, $zero, 12 */ @@ -86181,6 +106242,9 @@ label_BFC21780: cpu->gpr[31] = 0x80039788u; psx_dispatch(cpu, 0x8004665Cu); label_BFC21788: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21788: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -86190,6 +106254,9 @@ label_BFC21788: cpu->gpr[31] = 0x80039794u; psx_dispatch(cpu, 0x80044A50u); label_BFC21794: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21794: 0C011997 jal 0xB004665C */ /* 0xBFC21798: 24040012 addiu $a0, $zero, 18 */ @@ -86197,6 +106264,9 @@ label_BFC21794: cpu->gpr[31] = 0x8003979Cu; psx_dispatch(cpu, 0x8004665Cu); label_BFC2179C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2179C: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -86206,6 +106276,9 @@ label_BFC2179C: cpu->gpr[31] = 0x800397A8u; psx_dispatch(cpu, 0x80044A50u); label_BFC217A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC217A8: 0C011913 jal 0xB004644C */ /* 0xBFC217AC: 2404000A addiu $a0, $zero, 10 */ @@ -86213,6 +106286,9 @@ label_BFC217A8: cpu->gpr[31] = 0x800397B0u; psx_dispatch(cpu, 0x8004644Cu); label_BFC217B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC217B0: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -86225,6 +106301,9 @@ label_BFC217B0: /* nop */ if (psx_taken_BFC217B8) goto label_BFC21860; label_BFC217C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC217C0: 0C011997 jal 0xB004665C */ /* 0xBFC217C4: 2404000C addiu $a0, $zero, 12 */ @@ -86232,6 +106311,9 @@ label_BFC217C0: cpu->gpr[31] = 0x800397C8u; psx_dispatch(cpu, 0x8004665Cu); label_BFC217C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC217C8: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -86241,6 +106323,9 @@ label_BFC217C8: cpu->gpr[31] = 0x800397D4u; psx_dispatch(cpu, 0x80044A50u); label_BFC217D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC217D4: 0C011997 jal 0xB004665C */ /* 0xBFC217D8: 24040013 addiu $a0, $zero, 19 */ @@ -86248,6 +106333,9 @@ label_BFC217D4: cpu->gpr[31] = 0x800397DCu; psx_dispatch(cpu, 0x8004665Cu); label_BFC217DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC217DC: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -86257,6 +106345,9 @@ label_BFC217DC: cpu->gpr[31] = 0x800397E8u; psx_dispatch(cpu, 0x80044A50u); label_BFC217E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC217E8: 0C011913 jal 0xB004644C */ /* 0xBFC217EC: 2404000A addiu $a0, $zero, 10 */ @@ -86264,6 +106355,9 @@ label_BFC217E8: cpu->gpr[31] = 0x800397F0u; psx_dispatch(cpu, 0x8004644Cu); label_BFC217F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC217F0: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -86276,6 +106370,9 @@ label_BFC217F0: /* nop */ if (psx_taken_BFC217F8) goto label_BFC21860; label_BFC21800: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21800: 0C011997 jal 0xB004665C */ /* 0xBFC21804: 2404000D addiu $a0, $zero, 13 */ @@ -86283,6 +106380,9 @@ label_BFC21800: cpu->gpr[31] = 0x80039808u; psx_dispatch(cpu, 0x8004665Cu); label_BFC21808: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21808: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -86292,6 +106392,9 @@ label_BFC21808: cpu->gpr[31] = 0x80039814u; psx_dispatch(cpu, 0x80044A50u); label_BFC21814: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21814: 0C011997 jal 0xB004665C */ /* 0xBFC21818: 24040012 addiu $a0, $zero, 18 */ @@ -86299,6 +106402,9 @@ label_BFC21814: cpu->gpr[31] = 0x8003981Cu; psx_dispatch(cpu, 0x8004665Cu); label_BFC2181C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2181C: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -86308,6 +106414,9 @@ label_BFC2181C: cpu->gpr[31] = 0x80039828u; psx_dispatch(cpu, 0x80044A50u); label_BFC21828: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21828: 0C011913 jal 0xB004644C */ /* 0xBFC2182C: 2404000B addiu $a0, $zero, 11 */ @@ -86315,6 +106424,9 @@ label_BFC21828: cpu->gpr[31] = 0x80039830u; psx_dispatch(cpu, 0x8004644Cu); label_BFC21830: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC21830: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -86327,6 +106439,9 @@ label_BFC21830: /* nop */ if (psx_taken_BFC21838) goto label_BFC21860; label_BFC21840: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC21840: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -86341,6 +106456,9 @@ label_BFC21840: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); if (psx_taken_BFC2184C) goto label_BFC21780; label_BFC21854: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21854: 1081FFDA beq $a0, $at, 0xBFC217C0 */ uint32_t psx_brA_BFC21854 = cpu->gpr[4]; uint32_t psx_brB_BFC21854 = cpu->gpr[1]; @@ -86349,16 +106467,25 @@ label_BFC21854: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (6)); if (psx_taken_BFC21854) goto label_BFC217C0; label_BFC2185C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2185C: 1081FFE8 beq $a0, $at, 0xBFC21800 */ uint32_t psx_brA_BFC2185C = cpu->gpr[4]; uint32_t psx_brB_BFC2185C = cpu->gpr[1]; int psx_taken_BFC2185C = (psx_brA_BFC2185C == psx_brB_BFC2185C); label_BFC21860: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC21860: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; if (psx_taken_BFC2185C) goto label_BFC21800; label_BFC21864: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC21864: AC246BB8 sw $a0, 27576($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (27576)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21864u); return; } g_debug_last_store_pc = 0xBFC21864u; cpu->write_word(psx_addr, cpu->gpr[4]); } @@ -86377,6 +106504,9 @@ label_BFC21864: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (27584)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2187Cu); return; } g_debug_last_store_pc = 0xBFC2187Cu; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC21878) goto label_BFC218BC; label_BFC21880: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21880: 0C01196D jal 0xB00465B4 */ /* 0xBFC21884: 00000000 nop */ @@ -86384,6 +106514,9 @@ label_BFC21880: cpu->gpr[31] = 0x80039888u; psx_dispatch(cpu, 0x800465B4u); label_BFC21888: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC21888: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -86395,6 +106528,9 @@ label_BFC21888: cpu->gpr[31] = 0x80039898u; psx_dispatch(cpu, 0x8004644Cu); label_BFC21898: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC21898: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -86415,10 +106551,16 @@ label_BFC21898: /* 0xBFC218B8: AC246BC0 sw $a0, 27584($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (27584)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC218B8u); return; } g_debug_last_store_pc = 0xBFC218B8u; cpu->write_word(psx_addr, cpu->gpr[4]); } label_BFC218BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC218BC: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC218BCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC218C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC218C0: 27BD0028 addiu $sp, $sp, 40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (40)); @@ -86441,6 +106583,9 @@ void func_1FC218CC(CPUState* cpu) { } } label_BFC218CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC218CC: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -86455,6 +106600,9 @@ label_BFC218CC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC218DCu); return; } g_debug_last_store_pc = 0xBFC218DCu; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC218D8) goto label_BFC2192C; label_BFC218E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC218E0: 3C0100F0 lui $at, 0xF0 */ cpu->gpr[1] = 0x00F00000u; @@ -86469,6 +106617,9 @@ label_BFC218E0: cpu->gpr[1] = 0x50000000u; if (psx_taken_BFC218EC) goto label_BFC21914; label_BFC218F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC218F4: 0C00F4C7 jal 0xB003D31C */ /* 0xBFC218F8: AFA40018 sw $a0, 24($sp) */ @@ -86476,6 +106627,9 @@ label_BFC218F4: cpu->gpr[31] = 0x800398FCu; psx_dispatch(cpu, 0x8003D31Cu); label_BFC218FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC218FC: 8FA40018 lw $a0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC218FCu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -86485,6 +106639,9 @@ label_BFC218FC: cpu->gpr[31] = 0x80039908u; psx_dispatch(cpu, 0x8003211Cu); label_BFC21908: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21908: 10000009 beq $zero, $zero, 0xBFC21930 */ uint32_t psx_brA_BFC21908 = cpu->gpr[0]; uint32_t psx_brB_BFC21908 = cpu->gpr[0]; @@ -86493,10 +106650,16 @@ label_BFC21908: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2190Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC21908) goto label_BFC21930; label_BFC21910: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC21910: 3C015000 lui $at, 0x5000 */ cpu->gpr[1] = 0x50000000u; label_BFC21914: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC21914: 34215000 ori $at, $at, 0x5000 */ cpu->gpr[1] = cpu->gpr[1] | 0x5000u; @@ -86509,6 +106672,9 @@ label_BFC21914: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21920u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC2191C) goto label_BFC21930; label_BFC21924: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21924: 0C011A33 jal 0xB00468CC */ /* 0xBFC21928: 00000000 nop */ @@ -86516,10 +106682,16 @@ label_BFC21924: cpu->gpr[31] = 0x8003992Cu; psx_dispatch(cpu, 0x800468CCu); label_BFC2192C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2192C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2192Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC21930: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21930: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -86544,6 +106716,9 @@ void func_1FC2193C(CPUState* cpu) { } } label_BFC2193C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2193C: 27BDFF90 addiu $sp, $sp, -112 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-112)); @@ -86564,6 +106739,9 @@ label_BFC2193C: cpu->gpr[19] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC21954) goto label_BFC21974; label_BFC2195C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2195C: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -86575,6 +106753,9 @@ label_BFC2195C: cpu->gpr[31] = 0x8003996Cu; psx_dispatch(cpu, 0x8005AA20u); label_BFC2196C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2196C: 10000006 beq $zero, $zero, 0xBFC21988 */ uint32_t psx_brA_BFC2196C = cpu->gpr[0]; uint32_t psx_brB_BFC2196C = cpu->gpr[0]; @@ -86583,6 +106764,9 @@ label_BFC2196C: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_taken_BFC2196C) goto label_BFC21988; label_BFC21974: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC21974: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -86594,10 +106778,16 @@ label_BFC21974: cpu->gpr[31] = 0x80039984u; psx_dispatch(cpu, 0x8005AA20u); label_BFC21984: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC21984: 27A40040 addiu $a0, $sp, 64 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (64)); label_BFC21988: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21988: 0C016A8C jal 0xB005AA30 */ /* 0xBFC2198C: 27A50048 addiu $a1, $sp, 72 */ @@ -86605,6 +106795,9 @@ label_BFC21988: cpu->gpr[31] = 0x80039990u; psx_dispatch(cpu, 0x8005AA30u); label_BFC21990: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21990: 27B20048 addiu $s2, $sp, 72 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[29] + (72)); @@ -86615,6 +106808,9 @@ label_BFC21990: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (112)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21998u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } if (psx_taken_BFC21994) goto label_BFC21A78; label_BFC2199C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(32u); +#endif psx_check_interrupts(cpu); /* 0xBFC2199C: 8FA20070 lw $v0, 112($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (112)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2199Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -86681,6 +106877,9 @@ label_BFC2199C: /* 0xBFC21A18: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; label_BFC21A1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21A1C: 0C016A88 jal 0xB005AA20 */ /* 0xBFC21A20: 02402821 addu $a1, $s2, $zero */ @@ -86688,6 +106887,9 @@ label_BFC21A1C: cpu->gpr[31] = 0x80039A24u; psx_dispatch(cpu, 0x8005AA20u); label_BFC21A24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC21A24: 8FAD0060 lw $t5, 96($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (96)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21A24u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -86702,10 +106904,16 @@ label_BFC21A24: cpu->gpr[1] = cpu->gpr[13] + cpu->gpr[0]; if (psx_taken_BFC21A30) goto label_BFC21A3C; label_BFC21A38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC21A38: 24211FFF addiu $at, $at, 8191 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (8191)); label_BFC21A3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC21A3C: 00017343 sra $t6, $at, 13 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[1] >> 13u); @@ -86721,6 +106929,9 @@ label_BFC21A3C: cpu->gpr[31] = 0x80039A54u; psx_dispatch(cpu, 0x8005AA40u); label_BFC21A54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21A54: 14520004 bne $v0, $s2, 0xBFC21A68 */ uint32_t psx_brA_BFC21A54 = cpu->gpr[2]; uint32_t psx_brB_BFC21A54 = cpu->gpr[18]; @@ -86729,6 +106940,9 @@ label_BFC21A54: /* nop */ if (psx_taken_BFC21A54) goto label_BFC21A68; label_BFC21A5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21A5C: 8FA20070 lw $v0, 112($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (112)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21A5Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -86739,6 +106953,9 @@ label_BFC21A5C: cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; if (psx_taken_BFC21A60) goto label_BFC21A1C; label_BFC21A68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC21A68: 8FB0002C lw $s0, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21A68u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -86749,6 +106966,9 @@ label_BFC21A68: /* 0xBFC21A74: 8FAF0070 lw $t7, 112($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (112)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21A74u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } label_BFC21A78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC21A78: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -86798,6 +107018,9 @@ void func_1FC21A9C(CPUState* cpu) { } } label_BFC21A9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC21A9C: 3C0E8006 lui $t6, 0x8006 */ cpu->gpr[14] = 0x80060000u; @@ -86812,6 +107035,9 @@ label_BFC21A9C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21AACu); return; } g_debug_last_store_pc = 0xBFC21AACu; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC21AA8) goto label_BFC22154; label_BFC21AB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC21AB0: 00047880 sll $t7, $a0, 2 */ cpu->gpr[15] = cpu->gpr[4] << 2u; @@ -86838,6 +107064,9 @@ label_BFC21AB0: /* nop */ if (psx_taken_BFC21AD4) goto label_BFC21AF0; label_BFC21ADC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC21ADC: 24590001 addiu $t9, $v0, 1 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[2] + (1)); @@ -86852,6 +107081,9 @@ label_BFC21ADC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21AECu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC21AE8) goto label_BFC22158; label_BFC21AF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21AF0: 0C00F3C0 jal 0xB003CF00 */ /* 0xBFC21AF4: AFA400D0 sw $a0, 208($sp) */ @@ -86859,6 +107091,9 @@ label_BFC21AF0: cpu->gpr[31] = 0x80039AF8u; psx_dispatch(cpu, 0x8003CF00u); label_BFC21AF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21AF8: 2401FFFE addiu $at, $zero, -2 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-2)); @@ -86869,6 +107104,9 @@ label_BFC21AF8: /* nop */ if (psx_taken_BFC21AFC) goto label_BFC21B10; label_BFC21B04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21B04: 8FB40054 lw $s4, 84($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (84)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21B04u); return; } cpu->gpr[20] = cpu->read_word(psx_addr); } @@ -86879,6 +107117,9 @@ label_BFC21B04: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC21B08) goto label_BFC22154; label_BFC21B10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC21B10: AE80000C sw $zero, 12($s4) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[20] + (12)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21B10u); return; } g_debug_last_store_pc = 0xBFC21B10u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -86895,6 +107136,9 @@ label_BFC21B10: /* nop */ if (psx_taken_BFC21B20) goto label_BFC21B5C; label_BFC21B28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC21B28: 3C09800F lui $t1, 0x800F */ cpu->gpr[9] = 0x800F0000u; @@ -86909,6 +107153,9 @@ label_BFC21B28: /* nop */ if (psx_taken_BFC21B34) goto label_BFC21B5C; label_BFC21B3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21B3C: 0C00E859 jal 0xB003A164 */ /* 0xBFC21B40: 00002021 addu $a0, $zero, $zero */ @@ -86916,6 +107163,9 @@ label_BFC21B3C: cpu->gpr[31] = 0x80039B44u; psx_dispatch(cpu, 0x8003A164u); label_BFC21B44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21B44: 0C00E859 jal 0xB003A164 */ /* 0xBFC21B48: 24040001 addiu $a0, $zero, 1 */ @@ -86923,6 +107173,9 @@ label_BFC21B44: cpu->gpr[31] = 0x80039B4Cu; psx_dispatch(cpu, 0x8003A164u); label_BFC21B4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC21B4C: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; @@ -86935,6 +107188,9 @@ label_BFC21B4C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (27584)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21B58u); return; } g_debug_last_store_pc = 0xBFC21B58u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC21B54) goto label_BFC22154; label_BFC21B5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC21B5C: 8E820010 lw $v0, 16($s4) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[20] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21B5Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -86947,6 +107203,9 @@ label_BFC21B5C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (208)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21B68u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } if (psx_taken_BFC21B64) goto label_BFC21B7C; label_BFC21B6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21B6C: 8FB40054 lw $s4, 84($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (84)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21B6Cu); return; } cpu->gpr[20] = cpu->read_word(psx_addr); } @@ -86957,10 +107216,16 @@ label_BFC21B6C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21B74u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC21B70) goto label_BFC22158; label_BFC21B78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC21B78: 8FA600D0 lw $a2, 208($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (208)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21B78u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } label_BFC21B7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC21B7C: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -86985,6 +107250,9 @@ label_BFC21B7C: /* nop */ if (psx_taken_BFC21B9C) goto label_BFC22130; label_BFC21BA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21BA4: 14C00008 bne $a2, $zero, 0xBFC21BC8 */ uint32_t psx_brA_BFC21BA4 = cpu->gpr[6]; uint32_t psx_brB_BFC21BA4 = cpu->gpr[0]; @@ -86993,6 +107261,9 @@ label_BFC21BA4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21BA8u); return; } g_debug_last_store_pc = 0xBFC21BA8u; cpu->write_word(psx_addr, cpu->gpr[18]); } if (psx_taken_BFC21BA4) goto label_BFC21BC8; label_BFC21BAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC21BAC: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -87004,6 +107275,9 @@ label_BFC21BAC: cpu->gpr[31] = 0x80039BBCu; psx_dispatch(cpu, 0x8005AA20u); label_BFC21BBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21BBC: 240D001E addiu $t5, $zero, 30 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (30)); @@ -87014,6 +107288,9 @@ label_BFC21BBC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (140)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21BC4u); return; } g_debug_last_store_pc = 0xBFC21BC4u; cpu->write_word(psx_addr, cpu->gpr[13]); } if (psx_taken_BFC21BC0) goto label_BFC21BE0; label_BFC21BC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC21BC8: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -87025,12 +107302,18 @@ label_BFC21BC8: cpu->gpr[31] = 0x80039BD8u; psx_dispatch(cpu, 0x8005AA20u); label_BFC21BD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21BD8: 240E003C addiu $t6, $zero, 60 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (60)); /* 0xBFC21BDC: AFAE008C sw $t6, 140($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (140)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21BDCu); return; } g_debug_last_store_pc = 0xBFC21BDCu; cpu->write_word(psx_addr, cpu->gpr[14]); } label_BFC21BE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC21BE0: 8E8F0004 lw $t7, 4($s4) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[20] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21BE0u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -87078,6 +107361,9 @@ label_BFC21BE0: cpu->gpr[31] = 0x80039C38u; psx_dispatch(cpu, 0x8005AA50u); label_BFC21C38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC21C38: 8FAC00D0 lw $t4, 208($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (208)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21C38u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -87107,6 +107393,9 @@ label_BFC21C38: cpu->gpr[31] = 0x80039C6Cu; psx_dispatch(cpu, 0x8003AE1Cu); label_BFC21C6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21C6C: 8FA50064 lw $a1, 100($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21C6Cu); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -87117,6 +107406,9 @@ label_BFC21C6C: /* nop */ if (psx_taken_BFC21C70) goto label_BFC21D88; label_BFC21C78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC21C78: 8E920010 lw $s2, 16($s4) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[20] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21C78u); return; } cpu->gpr[18] = cpu->read_word(psx_addr); } @@ -87133,6 +107425,9 @@ label_BFC21C78: cpu->gpr[10] = cpu->gpr[18] << 2u; if (psx_taken_BFC21C88) goto label_BFC21D40; label_BFC21C90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(31u); +#endif psx_check_interrupts(cpu); /* 0xBFC21C90: 8FA200D0 lw $v0, 208($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (208)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21C90u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -87197,6 +107492,9 @@ label_BFC21C90: /* 0xBFC21D08: 018E8021 addu $s0, $t4, $t6 */ cpu->gpr[16] = cpu->gpr[12] + cpu->gpr[14]; label_BFC21D0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21D0C: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -87206,6 +107504,9 @@ label_BFC21D0C: cpu->gpr[31] = 0x80039D18u; psx_dispatch(cpu, 0x8005AA20u); label_BFC21D18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC21D18: 8E680000 lw $t0, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21D18u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -87222,6 +107523,9 @@ label_BFC21D18: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (92)); if (psx_taken_BFC21D28) goto label_BFC21D0C; label_BFC21D30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC21D30: 8FB0003C lw $s0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21D30u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -87232,6 +107536,9 @@ label_BFC21D30: /* 0xBFC21D3C: 00125080 sll $t2, $s2, 2 */ cpu->gpr[10] = cpu->gpr[18] << 2u; label_BFC21D40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC21D40: 01525023 subu $t2, $t2, $s2 */ cpu->gpr[10] = cpu->gpr[10] - cpu->gpr[18]; @@ -87253,6 +107560,9 @@ label_BFC21D40: cpu->gpr[31] = 0x80039D64u; psx_dispatch(cpu, 0x8005AA20u); label_BFC21D64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC21D64: 8E6B0000 lw $t3, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21D64u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -87275,6 +107585,9 @@ label_BFC21D64: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21D84u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC21D80) goto label_BFC22158; label_BFC21D88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC21D88: 80A20002 lb $v0, 2($a1) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (2))); @@ -87289,6 +107602,9 @@ label_BFC21D88: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (20) ? 1 : 0); if (psx_taken_BFC21D94) goto label_BFC21DA4; label_BFC21D9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21D9C: 14200046 bne $at, $zero, 0xBFC21EB8 */ uint32_t psx_brA_BFC21D9C = cpu->gpr[1]; uint32_t psx_brB_BFC21D9C = cpu->gpr[0]; @@ -87297,6 +107613,9 @@ label_BFC21D9C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (208)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21DA0u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } if (psx_taken_BFC21D9C) goto label_BFC21EB8; label_BFC21DA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC21DA4: 8E920010 lw $s2, 16($s4) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[20] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21DA4u); return; } cpu->gpr[18] = cpu->read_word(psx_addr); } @@ -87313,6 +107632,9 @@ label_BFC21DA4: cpu->gpr[24] = cpu->gpr[18] << 2u; if (psx_taken_BFC21DB4) goto label_BFC21E6C; label_BFC21DBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(31u); +#endif psx_check_interrupts(cpu); /* 0xBFC21DBC: 8FA200D0 lw $v0, 208($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (208)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21DBCu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -87377,6 +107699,9 @@ label_BFC21DBC: /* 0xBFC21E34: 01C88021 addu $s0, $t6, $t0 */ cpu->gpr[16] = cpu->gpr[14] + cpu->gpr[8]; label_BFC21E38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21E38: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -87386,6 +107711,9 @@ label_BFC21E38: cpu->gpr[31] = 0x80039E44u; psx_dispatch(cpu, 0x8005AA20u); label_BFC21E44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC21E44: 8E6D0000 lw $t5, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21E44u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -87402,6 +107730,9 @@ label_BFC21E44: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (92)); if (psx_taken_BFC21E54) goto label_BFC21E38; label_BFC21E5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC21E5C: 8FB0003C lw $s0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21E5Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -87412,6 +107743,9 @@ label_BFC21E5C: /* 0xBFC21E68: 0012C080 sll $t8, $s2, 2 */ cpu->gpr[24] = cpu->gpr[18] << 2u; label_BFC21E6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC21E6C: 0312C023 subu $t8, $t8, $s2 */ cpu->gpr[24] = cpu->gpr[24] - cpu->gpr[18]; @@ -87433,6 +107767,9 @@ label_BFC21E6C: cpu->gpr[31] = 0x80039E90u; psx_dispatch(cpu, 0x8005AA20u); label_BFC21E90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC21E90: 8E790000 lw $t9, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21E90u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -87455,10 +107792,16 @@ label_BFC21E90: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21EB0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC21EAC) goto label_BFC22158; label_BFC21EB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC21EB4: 8FA900D0 lw $t1, 208($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (208)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21EB4u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } label_BFC21EB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC21EB8: 8E820010 lw $v0, 16($s4) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[20] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21EB8u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -87507,6 +107850,9 @@ label_BFC21EB8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[3] < (16) ? 1 : 0); if (psx_taken_BFC21F08) goto label_BFC21F18; label_BFC21F10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC21F10: 14200035 bne $at, $zero, 0xBFC21FE8 */ uint32_t psx_brA_BFC21F10 = cpu->gpr[1]; uint32_t psx_brB_BFC21F10 = cpu->gpr[0]; @@ -87515,6 +107861,9 @@ label_BFC21F10: /* nop */ if (psx_taken_BFC21F10) goto label_BFC21FE8; label_BFC21F18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC21F18: 8E6D0000 lw $t5, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21F18u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -87529,6 +107878,9 @@ label_BFC21F18: cpu->gpr[9] = cpu->gpr[18] << 2u; if (psx_taken_BFC21F24) goto label_BFC21FA0; label_BFC21F2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC21F2C: 00127880 sll $t7, $s2, 2 */ cpu->gpr[15] = cpu->gpr[18] << 2u; @@ -87563,6 +107915,9 @@ label_BFC21F2C: /* 0xBFC21F68: 26310078 addiu $s1, $s1, 120 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (120)); label_BFC21F6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC21F6C: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -87572,6 +107927,9 @@ label_BFC21F6C: cpu->gpr[31] = 0x80039F78u; psx_dispatch(cpu, 0x8005AA20u); label_BFC21F78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC21F78: 8E790000 lw $t9, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21F78u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -87588,6 +107946,9 @@ label_BFC21F78: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (92)); if (psx_taken_BFC21F88) goto label_BFC21F6C; label_BFC21F90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC21F90: 8FB0003C lw $s0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21F90u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -87598,6 +107959,9 @@ label_BFC21F90: /* 0xBFC21F9C: 00124880 sll $t1, $s2, 2 */ cpu->gpr[9] = cpu->gpr[18] << 2u; label_BFC21FA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC21FA0: 01324823 subu $t1, $t1, $s2 */ cpu->gpr[9] = cpu->gpr[9] - cpu->gpr[18]; @@ -87619,6 +107983,9 @@ label_BFC21FA0: cpu->gpr[31] = 0x80039FC4u; psx_dispatch(cpu, 0x8005AA20u); label_BFC21FC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC21FC4: 8E6A0000 lw $t2, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21FC4u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -87641,6 +108008,9 @@ label_BFC21FC4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21FE4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC21FE0) goto label_BFC22158; label_BFC21FE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC21FE8: AC830014 sw $v1, 20($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC21FE8u); return; } g_debug_last_store_pc = 0xBFC21FE8u; cpu->write_word(psx_addr, cpu->gpr[3]); } @@ -87677,6 +108047,9 @@ label_BFC21FE8: cpu->gpr[18] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC22020) goto label_BFC220E8; label_BFC22028: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(21u); +#endif psx_check_interrupts(cpu); /* 0xBFC22028: 8FAA00D0 lw $t2, 208($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (208)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22028u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -87721,6 +108094,9 @@ label_BFC22028: /* 0xBFC22078: 3C138002 lui $s3, 0x8002 */ cpu->gpr[19] = 0x80020000u; label_BFC2207C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2207C: 8FA2006C lw $v0, 108($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (108)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2207Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -87740,6 +108116,9 @@ label_BFC2207C: cpu->gpr[31] = 0x8003A09Cu; psx_dispatch(cpu, 0x80047CC4u); label_BFC2209C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2209C: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -87751,6 +108130,9 @@ label_BFC2209C: cpu->gpr[31] = 0x8003A0ACu; psx_dispatch(cpu, 0x800442F0u); label_BFC220AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC220AC: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -87762,6 +108144,9 @@ label_BFC220AC: cpu->gpr[31] = 0x8003A0BCu; psx_dispatch(cpu, 0x80044988u); label_BFC220BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC220BC: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -87771,6 +108156,9 @@ label_BFC220BC: cpu->gpr[31] = 0x8003A0C8u; psx_dispatch(cpu, 0x80044A50u); label_BFC220C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC220C8: 8FAF0084 lw $t7, 132($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (132)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC220C8u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -87785,6 +108173,9 @@ label_BFC220C8: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (128)); if (psx_taken_BFC220D4) goto label_BFC2207C; label_BFC220DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC220DC: 8FB0003C lw $s0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC220DCu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -87793,6 +108184,9 @@ label_BFC220DC: /* 0xBFC220E4: 00000000 nop */ /* nop */ label_BFC220E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC220E8: 8FA400D0 lw $a0, 208($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (208)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC220E8u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -87806,6 +108200,9 @@ label_BFC220E8: cpu->gpr[31] = 0x8003A0FCu; psx_dispatch(cpu, 0x8003AE90u); label_BFC220FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC220FC: 8FB90084 lw $t9, 132($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (132)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC220FCu); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -87836,6 +108233,9 @@ label_BFC220FC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2212Cu); return; } cpu->gpr[19] = cpu->read_word(psx_addr); } if (psx_taken_BFC22128) goto label_BFC2214C; label_BFC22130: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC22130: 8E880008 lw $t0, 8($s4) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[20] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22130u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -87852,16 +108252,25 @@ label_BFC22130: /* 0xBFC22148: 8FB3004C lw $s3, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22148u); return; } cpu->gpr[19] = cpu->read_word(psx_addr); } label_BFC2214C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2214C: 8FB40054 lw $s4, 84($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (84)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2214Cu); return; } cpu->gpr[20] = cpu->read_word(psx_addr); } /* 0xBFC22150: 00000000 nop */ /* nop */ label_BFC22154: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC22154: 8FBF0034 lw $ra, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22154u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC22158: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC22158: 27BD00D0 addiu $sp, $sp, 208 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (208)); @@ -87900,6 +108309,9 @@ void func_1FC22164(CPUState* cpu) { } } label_BFC22164: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC22164: 27BDFB68 addiu $sp, $sp, -1176 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-1176)); @@ -87927,6 +108339,9 @@ label_BFC22164: cpu->gpr[31] = 0x8003A194u; psx_dispatch(cpu, 0x8004322Cu); label_BFC22194: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC22194: 27A40090 addiu $a0, $sp, 144 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (144)); @@ -87936,6 +108351,9 @@ label_BFC22194: cpu->gpr[31] = 0x8003A1A0u; psx_dispatch(cpu, 0x8004322Cu); label_BFC221A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC221A0: 16A0000B bne $s5, $zero, 0xBFC221D0 */ uint32_t psx_brA_BFC221A0 = cpu->gpr[21]; uint32_t psx_brB_BFC221A0 = cpu->gpr[0]; @@ -87944,6 +108362,9 @@ label_BFC221A0: /* nop */ if (psx_taken_BFC221A0) goto label_BFC221D0; label_BFC221A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC221A8: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -87955,6 +108376,9 @@ label_BFC221A8: cpu->gpr[31] = 0x8003A1B8u; psx_dispatch(cpu, 0x8005AA20u); label_BFC221B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC221B8: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -87966,6 +108390,9 @@ label_BFC221B8: cpu->gpr[31] = 0x8003A1C8u; psx_dispatch(cpu, 0x8005AA20u); label_BFC221C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC221C8: 1000000A beq $zero, $zero, 0xBFC221F4 */ uint32_t psx_brA_BFC221C8 = cpu->gpr[0]; uint32_t psx_brB_BFC221C8 = cpu->gpr[0]; @@ -87974,6 +108401,9 @@ label_BFC221C8: cpu->gpr[14] = cpu->gpr[21] << 2u; if (psx_taken_BFC221C8) goto label_BFC221F4; label_BFC221D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC221D0: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -87985,6 +108415,9 @@ label_BFC221D0: cpu->gpr[31] = 0x8003A1E0u; psx_dispatch(cpu, 0x8005AA20u); label_BFC221E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC221E0: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -87996,10 +108429,16 @@ label_BFC221E0: cpu->gpr[31] = 0x8003A1F0u; psx_dispatch(cpu, 0x8005AA20u); label_BFC221F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC221F0: 00157080 sll $t6, $s5, 2 */ cpu->gpr[14] = cpu->gpr[21] << 2u; label_BFC221F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC221F4: 01D57021 addu $t6, $t6, $s5 */ cpu->gpr[14] = cpu->gpr[14] + cpu->gpr[21]; @@ -88024,6 +108463,9 @@ label_BFC221F4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[19] < (15) ? 1 : 0); if (psx_taken_BFC22214) goto label_BFC2230C; label_BFC2221C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2221C: 00157100 sll $t6, $s5, 4 */ cpu->gpr[14] = cpu->gpr[21] << 4u; @@ -88038,6 +108480,9 @@ label_BFC2221C: /* 0xBFC22230: 01CF9021 addu $s2, $t6, $t7 */ cpu->gpr[18] = cpu->gpr[14] + cpu->gpr[15]; label_BFC22234: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22234: 0C016A48 jal 0xB005A920 */ /* 0xBFC22238: 02402021 addu $a0, $s2, $zero */ @@ -88045,6 +108490,9 @@ label_BFC22234: cpu->gpr[31] = 0x8003A23Cu; psx_dispatch(cpu, 0x8005A920u); label_BFC2223C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2223C: 28410020 slti $at, $v0, 32 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (32) ? 1 : 0); @@ -88055,6 +108503,9 @@ label_BFC2223C: cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC22240) goto label_BFC22280; label_BFC22248: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC22248: 27A40294 addiu $a0, $sp, 660 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (660)); @@ -88066,6 +108517,9 @@ label_BFC22248: cpu->gpr[31] = 0x8003A258u; psx_dispatch(cpu, 0x8005AA60u); label_BFC22258: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC22258: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -88077,6 +108531,9 @@ label_BFC22258: cpu->gpr[31] = 0x8003A268u; psx_dispatch(cpu, 0x8005AA50u); label_BFC22268: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC22268: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -88088,6 +108545,9 @@ label_BFC22268: cpu->gpr[31] = 0x8003A278u; psx_dispatch(cpu, 0x8005AA50u); label_BFC22278: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22278: 1000001E beq $zero, $zero, 0xBFC222F4 */ uint32_t psx_brA_BFC22278 = cpu->gpr[0]; uint32_t psx_brB_BFC22278 = cpu->gpr[0]; @@ -88096,6 +108556,9 @@ label_BFC22278: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[20] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2227Cu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } if (psx_taken_BFC22278) goto label_BFC222F4; label_BFC22280: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC22280: 0015C100 sll $t8, $s5, 4 */ cpu->gpr[24] = cpu->gpr[21] << 4u; @@ -88123,6 +108586,9 @@ label_BFC22280: cpu->gpr[31] = 0x8003A2B0u; psx_dispatch(cpu, 0x8005AA60u); label_BFC222B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC222B0: 2A010041 slti $at, $s0, 65 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (65) ? 1 : 0); @@ -88133,6 +108599,9 @@ label_BFC222B0: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[16] + (-32)); if (psx_taken_BFC222B4) goto label_BFC222C8; label_BFC222BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC222BC: 10000002 beq $zero, $zero, 0xBFC222C8 */ uint32_t psx_brA_BFC222BC = cpu->gpr[0]; uint32_t psx_brB_BFC222BC = cpu->gpr[0]; @@ -88141,10 +108610,16 @@ label_BFC222BC: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[0] + (32)); if (psx_taken_BFC222BC) goto label_BFC222C8; label_BFC222C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC222C4: 2606FFE0 addiu $a2, $s0, -32 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[16] + (-32)); label_BFC222C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC222C8: 27A40090 addiu $a0, $sp, 144 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (144)); @@ -88154,6 +108629,9 @@ label_BFC222C8: cpu->gpr[31] = 0x8003A2D4u; psx_dispatch(cpu, 0x8005AA60u); label_BFC222D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC222D4: 2A010040 slti $at, $s0, 64 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (64) ? 1 : 0); @@ -88164,6 +108642,9 @@ label_BFC222D4: /* nop */ if (psx_taken_BFC222D8) goto label_BFC222F0; label_BFC222E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC222E0: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -88175,10 +108656,16 @@ label_BFC222E0: cpu->gpr[31] = 0x8003A2F0u; psx_dispatch(cpu, 0x8005AA50u); label_BFC222F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC222F0: 8E980004 lw $t8, 4($s4) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[20] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC222F0u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } label_BFC222F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC222F4: 26730001 addiu $s3, $s3, 1 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (1)); @@ -88193,10 +108680,16 @@ label_BFC222F4: cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (512)); if (psx_taken_BFC22300) goto label_BFC22234; label_BFC22308: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC22308: 2A61000F slti $at, $s3, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[19] < (15) ? 1 : 0); label_BFC2230C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2230C: 10200010 beq $at, $zero, 0xBFC22350 */ uint32_t psx_brA_BFC2230C = cpu->gpr[1]; uint32_t psx_brB_BFC2230C = cpu->gpr[0]; @@ -88205,6 +108698,9 @@ label_BFC2230C: cpu->gpr[16] = cpu->gpr[21] << 9u; if (psx_taken_BFC2230C) goto label_BFC22350; label_BFC22314: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC22314: 3C108006 lui $s0, 0x8006 */ cpu->gpr[16] = 0x80060000u; @@ -88217,6 +108713,9 @@ label_BFC22314: /* 0xBFC22324: 27A40294 addiu $a0, $sp, 660 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (660)); label_BFC22328: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22328: 0C016A94 jal 0xB005AA50 */ /* 0xBFC2232C: 02002821 addu $a1, $s0, $zero */ @@ -88224,6 +108723,9 @@ label_BFC22328: cpu->gpr[31] = 0x8003A330u; psx_dispatch(cpu, 0x8005AA50u); label_BFC22330: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC22330: 27A40090 addiu $a0, $sp, 144 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (144)); @@ -88233,6 +108735,9 @@ label_BFC22330: cpu->gpr[31] = 0x8003A33Cu; psx_dispatch(cpu, 0x8005AA50u); label_BFC2233C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2233C: 26730001 addiu $s3, $s3, 1 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (1)); @@ -88245,10 +108750,16 @@ label_BFC2233C: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (660)); if (psx_taken_BFC22344) goto label_BFC22328; label_BFC2234C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2234C: 00158240 sll $s0, $s5, 9 */ cpu->gpr[16] = cpu->gpr[21] << 9u; label_BFC22350: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC22350: 02158021 addu $s0, $s0, $s5 */ cpu->gpr[16] = cpu->gpr[16] + cpu->gpr[21]; @@ -88268,6 +108779,9 @@ label_BFC22350: cpu->gpr[31] = 0x8003A370u; psx_dispatch(cpu, 0x8003B2DCu); label_BFC22370: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC22370: 3C018016 lui $at, 0x8016 */ cpu->gpr[1] = 0x80160000u; @@ -88285,6 +108799,9 @@ label_BFC22370: cpu->gpr[31] = 0x8003A38Cu; psx_dispatch(cpu, 0x8003B2DCu); label_BFC2238C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(42u); +#endif psx_check_interrupts(cpu); /* 0xBFC2238C: 00157080 sll $t6, $s5, 2 */ cpu->gpr[14] = cpu->gpr[21] << 2u; @@ -88371,6 +108888,9 @@ label_BFC2238C: /* 0xBFC22430: 24070030 addiu $a3, $zero, 48 */ cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[0] + (48)); label_BFC22434: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(33u); +#endif psx_check_interrupts(cpu); /* 0xBFC22434: AC6D0010 sw $t5, 16($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22434u); return; } g_debug_last_store_pc = 0xBFC22434u; cpu->write_word(psx_addr, cpu->gpr[13]); } @@ -88441,6 +108961,9 @@ label_BFC22434: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (276)); if (psx_taken_BFC224B0) goto label_BFC22434; label_BFC224B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC224B8: 3C19800F lui $t9, 0x800F */ cpu->gpr[25] = 0x800F0000u; @@ -88453,6 +108976,9 @@ label_BFC224B8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC224C4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC224C0) goto label_BFC226A8; label_BFC224C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(26u); +#endif psx_check_interrupts(cpu); /* 0xBFC224C8: 00147080 sll $t6, $s4, 2 */ cpu->gpr[14] = cpu->gpr[20] << 2u; @@ -88508,6 +109034,9 @@ label_BFC224C8: cpu->gpr[31] = 0x8003A530u; psx_dispatch(cpu, 0x800431FCu); label_BFC22530: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(30u); +#endif psx_check_interrupts(cpu); /* 0xBFC22530: 3C148008 lui $s4, 0x8008 */ cpu->gpr[20] = 0x80080000u; @@ -88571,6 +109100,9 @@ label_BFC22530: cpu->gpr[31] = 0x8003A5A8u; psx_dispatch(cpu, 0x800431FCu); label_BFC225A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(64u); +#endif psx_check_interrupts(cpu); /* 0xBFC225A8: 3C148008 lui $s4, 0x8008 */ cpu->gpr[20] = 0x80080000u; @@ -88701,6 +109233,9 @@ label_BFC225A8: /* 0xBFC226A4: 8FBF002C lw $ra, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC226A4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC226A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC226A8: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -88755,6 +109290,9 @@ void func_1FC226D0(CPUState* cpu) { } } label_BFC226D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC226D0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -88769,6 +109307,9 @@ label_BFC226D0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC226E0u); return; } g_debug_last_store_pc = 0xBFC226E0u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC226DC) goto label_BFC228C8; label_BFC226E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC226E4: 3C0100F0 lui $at, 0xF0 */ cpu->gpr[1] = 0x00F00000u; @@ -88783,6 +109324,9 @@ label_BFC226E4: cpu->gpr[1] = 0x50000000u; if (psx_taken_BFC226F0) goto label_BFC227EC; label_BFC226F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC226F8: 0C011934 jal 0xB00464D0 */ /* 0xBFC226FC: AFB0001C sw $s0, 28($sp) */ @@ -88790,6 +109334,9 @@ label_BFC226F8: cpu->gpr[31] = 0x8003A700u; psx_dispatch(cpu, 0x800464D0u); label_BFC22700: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC22700: 2401000A addiu $at, $zero, 10 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); @@ -88807,6 +109354,9 @@ label_BFC22700: cpu->gpr[31] = 0x8003A71Cu; psx_dispatch(cpu, 0x80046574u); label_BFC2271C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2271C: 04410022 bgez $v0, 0xBFC227A8 */ uint32_t psx_brA_BFC2271C = cpu->gpr[2]; @@ -88815,6 +109365,9 @@ label_BFC2271C: /* nop */ if (psx_taken_BFC2271C) goto label_BFC227A8; label_BFC22724: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22724: 0C011951 jal 0xB0046544 */ /* 0xBFC22728: 00000000 nop */ @@ -88822,6 +109375,9 @@ label_BFC22724: cpu->gpr[31] = 0x8003A72Cu; psx_dispatch(cpu, 0x80046544u); label_BFC2272C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2272C: 0C011913 jal 0xB004644C */ /* 0xBFC22730: 2404001E addiu $a0, $zero, 30 */ @@ -88829,6 +109385,9 @@ label_BFC2272C: cpu->gpr[31] = 0x8003A734u; psx_dispatch(cpu, 0x8004644Cu); label_BFC22734: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC22734: 2410FFFF addiu $s0, $zero, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -88839,6 +109398,9 @@ label_BFC22734: /* nop */ if (psx_taken_BFC22738) goto label_BFC22758; label_BFC22740: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22740: 0C00ED49 jal 0xB003B524 */ /* 0xBFC22744: 2404001E addiu $a0, $zero, 30 */ @@ -88846,6 +109408,9 @@ label_BFC22740: cpu->gpr[31] = 0x8003A748u; psx_dispatch(cpu, 0x8003B524u); label_BFC22748: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22748: 0C00F970 jal 0xB003E5C0 */ /* 0xBFC2274C: 00000000 nop */ @@ -88853,6 +109418,9 @@ label_BFC22748: cpu->gpr[31] = 0x8003A750u; psx_dispatch(cpu, 0x8003E5C0u); label_BFC22750: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22750: 10000023 beq $zero, $zero, 0xBFC227E0 */ uint32_t psx_brA_BFC22750 = cpu->gpr[0]; uint32_t psx_brB_BFC22750 = cpu->gpr[0]; @@ -88861,6 +109429,9 @@ label_BFC22750: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22754u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } if (psx_taken_BFC22750) goto label_BFC227E0; label_BFC22758: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22758: 0C011913 jal 0xB004644C */ /* 0xBFC2275C: 2404003C addiu $a0, $zero, 60 */ @@ -88868,6 +109439,9 @@ label_BFC22758: cpu->gpr[31] = 0x8003A760u; psx_dispatch(cpu, 0x8004644Cu); label_BFC22760: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22760: 10500007 beq $v0, $s0, 0xBFC22780 */ uint32_t psx_brA_BFC22760 = cpu->gpr[2]; uint32_t psx_brB_BFC22760 = cpu->gpr[16]; @@ -88876,6 +109450,9 @@ label_BFC22760: /* nop */ if (psx_taken_BFC22760) goto label_BFC22780; label_BFC22768: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22768: 0C00ED49 jal 0xB003B524 */ /* 0xBFC2276C: 2404003C addiu $a0, $zero, 60 */ @@ -88883,6 +109460,9 @@ label_BFC22768: cpu->gpr[31] = 0x8003A770u; psx_dispatch(cpu, 0x8003B524u); label_BFC22770: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22770: 0C00F984 jal 0xB003E610 */ /* 0xBFC22774: 00000000 nop */ @@ -88890,6 +109470,9 @@ label_BFC22770: cpu->gpr[31] = 0x8003A778u; psx_dispatch(cpu, 0x8003E610u); label_BFC22778: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22778: 10000019 beq $zero, $zero, 0xBFC227E0 */ uint32_t psx_brA_BFC22778 = cpu->gpr[0]; uint32_t psx_brB_BFC22778 = cpu->gpr[0]; @@ -88898,6 +109481,9 @@ label_BFC22778: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2277Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } if (psx_taken_BFC22778) goto label_BFC227E0; label_BFC22780: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22780: 0C01195D jal 0xB0046574 */ /* 0xBFC22784: 00000000 nop */ @@ -88905,6 +109491,9 @@ label_BFC22780: cpu->gpr[31] = 0x8003A788u; psx_dispatch(cpu, 0x80046574u); label_BFC22788: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22788: 10500014 beq $v0, $s0, 0xBFC227DC */ uint32_t psx_brA_BFC22788 = cpu->gpr[2]; uint32_t psx_brB_BFC22788 = cpu->gpr[16]; @@ -88913,6 +109502,9 @@ label_BFC22788: /* nop */ if (psx_taken_BFC22788) goto label_BFC227DC; label_BFC22790: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22790: 0C01195D jal 0xB0046574 */ /* 0xBFC22794: 00000000 nop */ @@ -88920,6 +109512,9 @@ label_BFC22790: cpu->gpr[31] = 0x8003A798u; psx_dispatch(cpu, 0x80046574u); label_BFC22798: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22798: 1450FFFD bne $v0, $s0, 0xBFC22790 */ uint32_t psx_brA_BFC22798 = cpu->gpr[2]; uint32_t psx_brB_BFC22798 = cpu->gpr[16]; @@ -88928,6 +109523,9 @@ label_BFC22798: /* nop */ if (psx_taken_BFC22798) goto label_BFC22790; label_BFC227A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC227A0: 1000000F beq $zero, $zero, 0xBFC227E0 */ uint32_t psx_brA_BFC227A0 = cpu->gpr[0]; uint32_t psx_brB_BFC227A0 = cpu->gpr[0]; @@ -88936,6 +109534,9 @@ label_BFC227A0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC227A4u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } if (psx_taken_BFC227A0) goto label_BFC227E0; label_BFC227A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC227A8: 0C00ED40 jal 0xB003B500 */ /* 0xBFC227AC: 00002021 addu $a0, $zero, $zero */ @@ -88943,6 +109544,9 @@ label_BFC227A8: cpu->gpr[31] = 0x8003A7B0u; psx_dispatch(cpu, 0x8003B500u); label_BFC227B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC227B0: 0C00F928 jal 0xB003E4A0 */ /* 0xBFC227B4: 00000000 nop */ @@ -88950,6 +109554,9 @@ label_BFC227B0: cpu->gpr[31] = 0x8003A7B8u; psx_dispatch(cpu, 0x8003E4A0u); label_BFC227B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC227B8: 0C01195D jal 0xB0046574 */ /* 0xBFC227BC: 00000000 nop */ @@ -88957,6 +109564,9 @@ label_BFC227B8: cpu->gpr[31] = 0x8003A7C0u; psx_dispatch(cpu, 0x80046574u); label_BFC227C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC227C0: 2410FFFF addiu $s0, $zero, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -88967,6 +109577,9 @@ label_BFC227C0: /* nop */ if (psx_taken_BFC227C4) goto label_BFC227DC; label_BFC227CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC227CC: 0C01195D jal 0xB0046574 */ /* 0xBFC227D0: 00000000 nop */ @@ -88974,6 +109587,9 @@ label_BFC227CC: cpu->gpr[31] = 0x8003A7D4u; psx_dispatch(cpu, 0x80046574u); label_BFC227D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC227D4: 1450FFFD bne $v0, $s0, 0xBFC227CC */ uint32_t psx_brA_BFC227D4 = cpu->gpr[2]; uint32_t psx_brB_BFC227D4 = cpu->gpr[16]; @@ -88982,10 +109598,16 @@ label_BFC227D4: /* nop */ if (psx_taken_BFC227D4) goto label_BFC227CC; label_BFC227DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC227DC: 8FB0001C lw $s0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC227DCu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } label_BFC227E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC227E0: 1000003A beq $zero, $zero, 0xBFC228CC */ uint32_t psx_brA_BFC227E0 = cpu->gpr[0]; uint32_t psx_brB_BFC227E0 = cpu->gpr[0]; @@ -88994,10 +109616,16 @@ label_BFC227E0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC227E4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC227E0) goto label_BFC228CC; label_BFC227E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC227E8: 3C015000 lui $at, 0x5000 */ cpu->gpr[1] = 0x50000000u; label_BFC227EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC227EC: 34215000 ori $at, $at, 0x5000 */ cpu->gpr[1] = cpu->gpr[1] | 0x5000u; @@ -89010,6 +109638,9 @@ label_BFC227EC: cpu->gpr[1] = 0x00080000u; if (psx_taken_BFC227F4) goto label_BFC22810; label_BFC227FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC227FC: 0C011A33 jal 0xB00468CC */ /* 0xBFC22800: 00000000 nop */ @@ -89017,6 +109648,9 @@ label_BFC227FC: cpu->gpr[31] = 0x8003A804u; psx_dispatch(cpu, 0x800468CCu); label_BFC22804: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22804: 10000031 beq $zero, $zero, 0xBFC228CC */ uint32_t psx_brA_BFC22804 = cpu->gpr[0]; uint32_t psx_brB_BFC22804 = cpu->gpr[0]; @@ -89025,10 +109659,16 @@ label_BFC22804: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22808u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC22804) goto label_BFC228CC; label_BFC2280C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2280C: 3C010008 lui $at, 0x8 */ cpu->gpr[1] = 0x00080000u; label_BFC22810: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC22810: 34210008 ori $at, $at, 0x8 */ cpu->gpr[1] = cpu->gpr[1] | 0x8u; @@ -89041,6 +109681,9 @@ label_BFC22810: cpu->gpr[1] = 0x00020000u; if (psx_taken_BFC22818) goto label_BFC228C8; label_BFC22820: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC22820: 34210002 ori $at, $at, 0x2 */ cpu->gpr[1] = cpu->gpr[1] | 0x2u; @@ -89053,6 +109696,9 @@ label_BFC22820: cpu->gpr[1] = 0x00040000u; if (psx_taken_BFC22828) goto label_BFC228C8; label_BFC22830: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC22830: 34210004 ori $at, $at, 0x4 */ cpu->gpr[1] = cpu->gpr[1] | 0x4u; @@ -89065,6 +109711,9 @@ label_BFC22830: cpu->gpr[1] = 0x00010000u; if (psx_taken_BFC22838) goto label_BFC228C8; label_BFC22840: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC22840: 34210001 ori $at, $at, 0x1 */ cpu->gpr[1] = cpu->gpr[1] | 0x1u; @@ -89077,6 +109726,9 @@ label_BFC22840: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2284Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC22848) goto label_BFC228CC; label_BFC22850: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC22850: AFB0001C sw $s0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22850u); return; } g_debug_last_store_pc = 0xBFC22850u; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -89096,6 +109748,9 @@ label_BFC22850: cpu->gpr[31] = 0x8003A870u; psx_dispatch(cpu, 0x8005AA70u); label_BFC22870: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22870: 10400008 beq $v0, $zero, 0xBFC22894 */ uint32_t psx_brA_BFC22870 = cpu->gpr[2]; uint32_t psx_brB_BFC22870 = cpu->gpr[0]; @@ -89104,6 +109759,9 @@ label_BFC22870: /* nop */ if (psx_taken_BFC22870) goto label_BFC22894; label_BFC22878: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC22878: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -89117,6 +109775,9 @@ label_BFC22878: cpu->gpr[31] = 0x8003A88Cu; psx_dispatch(cpu, 0x8005AA70u); label_BFC2288C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2288C: 1440000C bne $v0, $zero, 0xBFC228C0 */ uint32_t psx_brA_BFC2288C = cpu->gpr[2]; uint32_t psx_brB_BFC2288C = cpu->gpr[0]; @@ -89125,6 +109786,9 @@ label_BFC2288C: /* nop */ if (psx_taken_BFC2288C) goto label_BFC228C0; label_BFC22894: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22894: 0C016AA0 jal 0xB005AA80 */ /* 0xBFC22898: 02002021 addu $a0, $s0, $zero */ @@ -89132,6 +109796,9 @@ label_BFC22894: cpu->gpr[31] = 0x8003A89Cu; psx_dispatch(cpu, 0x8005AA80u); label_BFC2289C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2289C: 14400004 bne $v0, $zero, 0xBFC228B0 */ uint32_t psx_brA_BFC2289C = cpu->gpr[2]; uint32_t psx_brB_BFC2289C = cpu->gpr[0]; @@ -89140,6 +109807,9 @@ label_BFC2289C: /* nop */ if (psx_taken_BFC2289C) goto label_BFC228B0; label_BFC228A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC228A4: 8FB0001C lw $s0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC228A4u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -89150,6 +109820,9 @@ label_BFC228A4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC228ACu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC228A8) goto label_BFC228CC; label_BFC228B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC228B0: 0C00F4C7 jal 0xB003D31C */ /* 0xBFC228B4: 00000000 nop */ @@ -89157,6 +109830,9 @@ label_BFC228B0: cpu->gpr[31] = 0x8003A8B8u; psx_dispatch(cpu, 0x8003D31Cu); label_BFC228B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC228B8: 0C00C696 jal 0xB0031A58 */ /* 0xBFC228BC: 24040001 addiu $a0, $zero, 1 */ @@ -89164,16 +109840,25 @@ label_BFC228B8: cpu->gpr[31] = 0x8003A8C0u; psx_dispatch(cpu, 0x80031A58u); label_BFC228C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC228C0: 8FB0001C lw $s0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC228C0u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } /* 0xBFC228C4: 00000000 nop */ /* nop */ label_BFC228C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC228C8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC228C8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC228CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC228CC: 27BD0030 addiu $sp, $sp, 48 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (48)); @@ -89211,6 +109896,9 @@ void func_1FC228D8(CPUState* cpu) { } } label_BFC228D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC228D8: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -89227,6 +109915,9 @@ label_BFC228D8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25052)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC228ECu); return; } g_debug_last_store_pc = 0xBFC228ECu; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC228E8) goto label_BFC22AAC; label_BFC228F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(31u); +#endif psx_check_interrupts(cpu); /* 0xBFC228F0: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -89292,6 +109983,9 @@ label_BFC228F0: cpu->gpr[31] = 0x8003A96Cu; psx_dispatch(cpu, 0x8004322Cu); label_BFC2296C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2296C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -89303,6 +109997,9 @@ label_BFC2296C: cpu->gpr[31] = 0x8003A97Cu; psx_dispatch(cpu, 0x8004322Cu); label_BFC2297C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2297C: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -89325,6 +110022,9 @@ label_BFC2297C: /* 0xBFC229A0: 24040001 addiu $a0, $zero, 1 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC229A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC229A4: AC400000 sw $zero, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC229A4u); return; } g_debug_last_store_pc = 0xBFC229A4u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -89351,6 +110051,9 @@ label_BFC229A4: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (4)); if (psx_taken_BFC229C8) goto label_BFC229A4; label_BFC229D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC229D0: 0C00E4FD jal 0xB00393F4 */ /* 0xBFC229D4: 00000000 nop */ @@ -89358,6 +110061,9 @@ label_BFC229D0: cpu->gpr[31] = 0x8003A9D8u; psx_dispatch(cpu, 0x800393F4u); label_BFC229D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC229D8: 0C016AA4 jal 0xB005AA90 */ /* 0xBFC229DC: 00000000 nop */ @@ -89365,6 +110071,9 @@ label_BFC229D8: cpu->gpr[31] = 0x8003A9E0u; psx_dispatch(cpu, 0x8005AA90u); label_BFC229E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC229E0: 3C04F400 lui $a0, 0xF400 */ cpu->gpr[4] = 0xF4000000u; @@ -89380,6 +110089,9 @@ label_BFC229E0: cpu->gpr[31] = 0x8003A9F8u; psx_dispatch(cpu, 0x8005A9D0u); label_BFC229F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC229F8: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -89399,6 +110111,9 @@ label_BFC229F8: cpu->gpr[31] = 0x8003AA18u; psx_dispatch(cpu, 0x8005A9D0u); label_BFC22A18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC22A18: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -89418,6 +110133,9 @@ label_BFC22A18: cpu->gpr[31] = 0x8003AA38u; psx_dispatch(cpu, 0x8005A9D0u); label_BFC22A38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC22A38: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -89437,6 +110155,9 @@ label_BFC22A38: cpu->gpr[31] = 0x8003AA58u; psx_dispatch(cpu, 0x8005A9D0u); label_BFC22A58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC22A58: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -89450,6 +110171,9 @@ label_BFC22A58: cpu->gpr[31] = 0x8003AA6Cu; psx_dispatch(cpu, 0x8005A9E0u); label_BFC22A6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC22A6C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -89461,6 +110185,9 @@ label_BFC22A6C: cpu->gpr[31] = 0x8003AA7Cu; psx_dispatch(cpu, 0x8005A9E0u); label_BFC22A7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC22A7C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -89472,6 +110199,9 @@ label_BFC22A7C: cpu->gpr[31] = 0x8003AA8Cu; psx_dispatch(cpu, 0x8005A9E0u); label_BFC22A8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC22A8C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -89483,6 +110213,9 @@ label_BFC22A8C: cpu->gpr[31] = 0x8003AA9Cu; psx_dispatch(cpu, 0x8005A9E0u); label_BFC22A9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22A9C: 0C016A84 jal 0xB005AA10 */ /* 0xBFC22AA0: 00000000 nop */ @@ -89490,12 +110223,18 @@ label_BFC22A9C: cpu->gpr[31] = 0x8003AAA4u; psx_dispatch(cpu, 0x8005AA10u); label_BFC22AA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22AA4: 8FA80038 lw $t0, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22AA4u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } /* 0xBFC22AA8: 00000000 nop */ /* nop */ label_BFC22AAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22AAC: 11000005 beq $t0, $zero, 0xBFC22AC4 */ uint32_t psx_brA_BFC22AAC = cpu->gpr[8]; uint32_t psx_brB_BFC22AAC = cpu->gpr[0]; @@ -89504,6 +110243,9 @@ label_BFC22AAC: /* nop */ if (psx_taken_BFC22AAC) goto label_BFC22AC4; label_BFC22AB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC22AB4: 24090007 addiu $t1, $zero, 7 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (7)); @@ -89516,12 +110258,18 @@ label_BFC22AB4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (27584)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22AC0u); return; } g_debug_last_store_pc = 0xBFC22AC0u; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC22ABC) goto label_BFC22ACC; label_BFC22AC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22AC4: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; /* 0xBFC22AC8: AC206BC0 sw $zero, 27584($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (27584)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22AC8u); return; } g_debug_last_store_pc = 0xBFC22AC8u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC22ACC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC22ACC: 3C0C800F lui $t4, 0x800F */ cpu->gpr[12] = 0x800F0000u; @@ -89565,6 +110313,9 @@ label_BFC22ACC: cpu->gpr[31] = 0x8003AB1Cu; psx_dispatch(cpu, 0x800499ECu); label_BFC22B1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC22B1C: 8FA3002C lw $v1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22B1Cu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -89575,6 +110326,9 @@ label_BFC22B1C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22B24u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } if (psx_taken_BFC22B20) goto label_BFC22B40; label_BFC22B28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22B28: 0C012719 jal 0xB0049C64 */ /* 0xBFC22B2C: 00602021 addu $a0, $v1, $zero */ @@ -89582,6 +110336,9 @@ label_BFC22B28: cpu->gpr[31] = 0x8003AB30u; psx_dispatch(cpu, 0x80049C64u); label_BFC22B30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC22B30: 8FA40028 lw $a0, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22B30u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -89591,10 +110348,16 @@ label_BFC22B30: cpu->gpr[31] = 0x8003AB3Cu; psx_dispatch(cpu, 0x80049D14u); label_BFC22B3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC22B3C: 8FAF0028 lw $t7, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22B3Cu); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } label_BFC22B40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC22B40: 3C18800F lui $t8, 0x800F */ cpu->gpr[24] = 0x800F0000u; @@ -89607,6 +110370,9 @@ label_BFC22B40: /* nop */ if (psx_taken_BFC22B48) goto label_BFC22B64; label_BFC22B50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC22B50: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -89616,6 +110382,9 @@ label_BFC22B50: cpu->gpr[31] = 0x8003AB5Cu; psx_dispatch(cpu, 0x8005AAA0u); label_BFC22B5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22B5C: 10000005 beq $zero, $zero, 0xBFC22B74 */ uint32_t psx_brA_BFC22B5C = cpu->gpr[0]; uint32_t psx_brB_BFC22B5C = cpu->gpr[0]; @@ -89624,6 +110393,9 @@ label_BFC22B5C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22B60u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC22B5C) goto label_BFC22B74; label_BFC22B64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC22B64: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -89633,10 +110405,16 @@ label_BFC22B64: cpu->gpr[31] = 0x8003AB70u; psx_dispatch(cpu, 0x8005AAA0u); label_BFC22B70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC22B70: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22B70u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC22B74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC22B74: 27BD0038 addiu $sp, $sp, 56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (56)); @@ -89684,6 +110462,9 @@ void func_1FC22B80(CPUState* cpu) { } } label_BFC22B80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC22B80: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -89697,6 +110478,9 @@ label_BFC22B80: cpu->gpr[31] = 0x8003AB94u; psx_dispatch(cpu, 0x800464D0u); label_BFC22B94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC22B94: 8FA40020 lw $a0, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22B94u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -89713,6 +110497,9 @@ label_BFC22B94: cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC22BA4) goto label_BFC22C00; label_BFC22BAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC22BAC: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); @@ -89725,6 +110512,9 @@ label_BFC22BAC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (59)); if (psx_taken_BFC22BB4) goto label_BFC22BC8; label_BFC22BBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22BBC: 1000000A beq $zero, $zero, 0xBFC22BE8 */ uint32_t psx_brA_BFC22BBC = cpu->gpr[0]; uint32_t psx_brB_BFC22BBC = cpu->gpr[0]; @@ -89733,10 +110523,16 @@ label_BFC22BBC: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); if (psx_taken_BFC22BBC) goto label_BFC22BE8; label_BFC22BC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC22BC4: 2401003B addiu $at, $zero, 59 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (59)); label_BFC22BC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22BC8: 16010003 bne $s0, $at, 0xBFC22BD8 */ uint32_t psx_brA_BFC22BC8 = cpu->gpr[16]; uint32_t psx_brB_BFC22BC8 = cpu->gpr[1]; @@ -89745,6 +110541,9 @@ label_BFC22BC8: /* nop */ if (psx_taken_BFC22BC8) goto label_BFC22BD8; label_BFC22BD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22BD0: 10000005 beq $zero, $zero, 0xBFC22BE8 */ uint32_t psx_brA_BFC22BD0 = cpu->gpr[0]; uint32_t psx_brB_BFC22BD0 = cpu->gpr[0]; @@ -89753,6 +110552,9 @@ label_BFC22BD0: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); if (psx_taken_BFC22BD0) goto label_BFC22BE8; label_BFC22BD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22BD8: 0C011913 jal 0xB004644C */ /* 0xBFC22BDC: 02002021 addu $a0, $s0, $zero */ @@ -89760,6 +110562,9 @@ label_BFC22BD8: cpu->gpr[31] = 0x8003ABE0u; psx_dispatch(cpu, 0x8004644Cu); label_BFC22BE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22BE0: 0440FFF2 bltz $v0, 0xBFC22BAC */ uint32_t psx_brA_BFC22BE0 = cpu->gpr[2]; @@ -89768,6 +110573,9 @@ label_BFC22BE0: /* nop */ if (psx_taken_BFC22BE0) goto label_BFC22BAC; label_BFC22BE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22BE8: 0C00ED40 jal 0xB003B500 */ /* 0xBFC22BEC: 24040001 addiu $a0, $zero, 1 */ @@ -89775,6 +110583,9 @@ label_BFC22BE8: cpu->gpr[31] = 0x8003ABF0u; psx_dispatch(cpu, 0x8003B500u); label_BFC22BF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22BF0: 0C00ED49 jal 0xB003B524 */ /* 0xBFC22BF4: 02002021 addu $a0, $s0, $zero */ @@ -89782,6 +110593,9 @@ label_BFC22BF0: cpu->gpr[31] = 0x8003ABF8u; psx_dispatch(cpu, 0x8003B524u); label_BFC22BF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22BF8: 10000085 beq $zero, $zero, 0xBFC22E10 */ uint32_t psx_brA_BFC22BF8 = cpu->gpr[0]; uint32_t psx_brB_BFC22BF8 = cpu->gpr[0]; @@ -89790,6 +110604,9 @@ label_BFC22BF8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22BFCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC22BF8) goto label_BFC22E10; label_BFC22C00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC22C00: 3C011000 lui $at, 0x1000 */ cpu->gpr[1] = 0x10000000u; @@ -89804,6 +110621,9 @@ label_BFC22C00: cpu->gpr[1] = 0x09000000u; if (psx_taken_BFC22C0C) goto label_BFC22C48; label_BFC22C14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC22C14: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -89813,6 +110633,9 @@ label_BFC22C14: cpu->gpr[31] = 0x8003AC20u; psx_dispatch(cpu, 0x8004644Cu); label_BFC22C20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22C20: 04410002 bgez $v0, 0xBFC22C2C */ uint32_t psx_brA_BFC22C20 = cpu->gpr[2]; @@ -89821,10 +110644,16 @@ label_BFC22C20: /* nop */ if (psx_taken_BFC22C20) goto label_BFC22C2C; label_BFC22C28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC22C28: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); label_BFC22C2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22C2C: 0C00ED40 jal 0xB003B500 */ /* 0xBFC22C30: 24040001 addiu $a0, $zero, 1 */ @@ -89832,6 +110661,9 @@ label_BFC22C2C: cpu->gpr[31] = 0x8003AC34u; psx_dispatch(cpu, 0x8003B500u); label_BFC22C34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22C34: 0C00ED49 jal 0xB003B524 */ /* 0xBFC22C38: 02002021 addu $a0, $s0, $zero */ @@ -89839,6 +110671,9 @@ label_BFC22C34: cpu->gpr[31] = 0x8003AC3Cu; psx_dispatch(cpu, 0x8003B524u); label_BFC22C3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22C3C: 10000074 beq $zero, $zero, 0xBFC22E10 */ uint32_t psx_brA_BFC22C3C = cpu->gpr[0]; uint32_t psx_brB_BFC22C3C = cpu->gpr[0]; @@ -89847,10 +110682,16 @@ label_BFC22C3C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22C40u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC22C3C) goto label_BFC22E10; label_BFC22C44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC22C44: 3C010900 lui $at, 0x900 */ cpu->gpr[1] = 0x09000000u; label_BFC22C48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC22C48: 34210900 ori $at, $at, 0x900 */ cpu->gpr[1] = cpu->gpr[1] | 0x900u; @@ -89863,6 +110704,9 @@ label_BFC22C48: cpu->gpr[1] = 0x00F00000u; if (psx_taken_BFC22C50) goto label_BFC22CC4; label_BFC22C58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22C58: 0C01195D jal 0xB0046574 */ /* 0xBFC22C5C: 00000000 nop */ @@ -89870,6 +110714,9 @@ label_BFC22C58: cpu->gpr[31] = 0x8003AC60u; psx_dispatch(cpu, 0x80046574u); label_BFC22C60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22C60: 04410002 bgez $v0, 0xBFC22C6C */ uint32_t psx_brA_BFC22C60 = cpu->gpr[2]; @@ -89878,10 +110725,16 @@ label_BFC22C60: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC22C60) goto label_BFC22C6C; label_BFC22C68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC22C68: 24030004 addiu $v1, $zero, 4 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); label_BFC22C6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC22C6C: 2401000A addiu $at, $zero, 10 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); @@ -89895,6 +110748,9 @@ label_BFC22C6C: cpu->gpr[31] = 0x8003AC80u; psx_dispatch(cpu, 0x8004644Cu); label_BFC22C80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22C80: 0C01195D jal 0xB0046574 */ /* 0xBFC22C84: 00000000 nop */ @@ -89902,6 +110758,9 @@ label_BFC22C80: cpu->gpr[31] = 0x8003AC88u; psx_dispatch(cpu, 0x80046574u); label_BFC22C88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC22C88: 2410FFFF addiu $s0, $zero, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -89912,6 +110771,9 @@ label_BFC22C88: /* nop */ if (psx_taken_BFC22C8C) goto label_BFC22CA0; label_BFC22C94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22C94: 0C01195D jal 0xB0046574 */ /* 0xBFC22C98: 00000000 nop */ @@ -89919,16 +110781,25 @@ label_BFC22C94: cpu->gpr[31] = 0x8003AC9Cu; psx_dispatch(cpu, 0x80046574u); label_BFC22C9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC22C9C: 1450FFFD bne $v0, $s0, 0xBFC22C94 */ uint32_t psx_brA_BFC22C9C = cpu->gpr[2]; uint32_t psx_brB_BFC22C9C = cpu->gpr[16]; int psx_taken_BFC22C9C = (psx_brA_BFC22C9C != psx_brB_BFC22C9C); label_BFC22CA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC22CA0: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; if (psx_taken_BFC22C9C) goto label_BFC22C94; label_BFC22CA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC22CA4: AC206BC0 sw $zero, 27584($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (27584)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22CA4u); return; } g_debug_last_store_pc = 0xBFC22CA4u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -89938,6 +110809,9 @@ label_BFC22CA4: cpu->gpr[31] = 0x8003ACB0u; psx_dispatch(cpu, 0x8003B500u); label_BFC22CB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22CB0: 0C00F928 jal 0xB003E4A0 */ /* 0xBFC22CB4: 00000000 nop */ @@ -89945,6 +110819,9 @@ label_BFC22CB0: cpu->gpr[31] = 0x8003ACB8u; psx_dispatch(cpu, 0x8003E4A0u); label_BFC22CB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22CB8: 10000055 beq $zero, $zero, 0xBFC22E10 */ uint32_t psx_brA_BFC22CB8 = cpu->gpr[0]; uint32_t psx_brB_BFC22CB8 = cpu->gpr[0]; @@ -89953,10 +110830,16 @@ label_BFC22CB8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22CBCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC22CB8) goto label_BFC22E10; label_BFC22CC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC22CC0: 3C0100F0 lui $at, 0xF0 */ cpu->gpr[1] = 0x00F00000u; label_BFC22CC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC22CC4: 342100F0 ori $at, $at, 0xF0 */ cpu->gpr[1] = cpu->gpr[1] | 0xF0u; @@ -89969,6 +110852,9 @@ label_BFC22CC4: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC22CCC) goto label_BFC22D80; label_BFC22CD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22CD4: 0C011934 jal 0xB00464D0 */ /* 0xBFC22CD8: 00000000 nop */ @@ -89976,6 +110862,9 @@ label_BFC22CD4: cpu->gpr[31] = 0x8003ACDCu; psx_dispatch(cpu, 0x800464D0u); label_BFC22CDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC22CDC: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; @@ -89985,6 +110874,9 @@ label_BFC22CDC: cpu->gpr[31] = 0x8003ACE8u; psx_dispatch(cpu, 0x80046574u); label_BFC22CE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22CE8: 0441000A bgez $v0, 0xBFC22D14 */ uint32_t psx_brA_BFC22CE8 = cpu->gpr[2]; @@ -89993,6 +110885,9 @@ label_BFC22CE8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); if (psx_taken_BFC22CE8) goto label_BFC22D14; label_BFC22CF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22CF0: 0C011951 jal 0xB0046544 */ /* 0xBFC22CF4: 00000000 nop */ @@ -90000,6 +110895,9 @@ label_BFC22CF0: cpu->gpr[31] = 0x8003ACF8u; psx_dispatch(cpu, 0x80046544u); label_BFC22CF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC22CF8: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -90011,6 +110909,9 @@ label_BFC22CF8: cpu->gpr[31] = 0x8003AD08u; psx_dispatch(cpu, 0x8004644Cu); label_BFC22D08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22D08: 10000041 beq $zero, $zero, 0xBFC22E10 */ uint32_t psx_brA_BFC22D08 = cpu->gpr[0]; uint32_t psx_brB_BFC22D08 = cpu->gpr[0]; @@ -90019,10 +110920,16 @@ label_BFC22D08: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22D0Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC22D08) goto label_BFC22E10; label_BFC22D10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC22D10: 24010005 addiu $at, $zero, 5 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); label_BFC22D14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22D14: 14410014 bne $v0, $at, 0xBFC22D68 */ uint32_t psx_brA_BFC22D14 = cpu->gpr[2]; uint32_t psx_brB_BFC22D14 = cpu->gpr[1]; @@ -90031,10 +110938,16 @@ label_BFC22D14: cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC22D14) goto label_BFC22D68; label_BFC22D1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC22D1C: 00008021 addu $s0, $zero, $zero */ cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; label_BFC22D20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC22D20: 3C088006 lui $t0, 0x8006 */ cpu->gpr[8] = 0x80060000u; @@ -90051,6 +110964,9 @@ label_BFC22D20: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (60)); if (psx_taken_BFC22D30) goto label_BFC22D44; label_BFC22D38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22D38: 10000002 beq $zero, $zero, 0xBFC22D44 */ uint32_t psx_brA_BFC22D38 = cpu->gpr[0]; uint32_t psx_brB_BFC22D38 = cpu->gpr[0]; @@ -90059,10 +110975,16 @@ label_BFC22D38: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (30)); if (psx_taken_BFC22D38) goto label_BFC22D44; label_BFC22D40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC22D40: 2402003C addiu $v0, $zero, 60 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (60)); label_BFC22D44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22D44: 0C011913 jal 0xB004644C */ /* 0xBFC22D48: 00502021 addu $a0, $v0, $s0 */ @@ -90070,6 +110992,9 @@ label_BFC22D44: cpu->gpr[31] = 0x8003AD4Cu; psx_dispatch(cpu, 0x8004644Cu); label_BFC22D4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22D4C: 0C011951 jal 0xB0046544 */ /* 0xBFC22D50: 00000000 nop */ @@ -90077,6 +111002,9 @@ label_BFC22D4C: cpu->gpr[31] = 0x8003AD54u; psx_dispatch(cpu, 0x80046544u); label_BFC22D54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC22D54: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -90089,10 +111017,16 @@ label_BFC22D54: /* nop */ if (psx_taken_BFC22D5C) goto label_BFC22D20; label_BFC22D64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC22D64: 24090001 addiu $t1, $zero, 1 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC22D68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC22D68: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -90102,6 +111036,9 @@ label_BFC22D68: cpu->gpr[31] = 0x8003AD74u; psx_dispatch(cpu, 0x8003E550u); label_BFC22D74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22D74: 10000026 beq $zero, $zero, 0xBFC22E10 */ uint32_t psx_brA_BFC22D74 = cpu->gpr[0]; uint32_t psx_brB_BFC22D74 = cpu->gpr[0]; @@ -90110,10 +111047,16 @@ label_BFC22D74: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22D78u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC22D74) goto label_BFC22E10; label_BFC22D7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC22D7C: 3C018000 lui $at, 0x8000 */ cpu->gpr[1] = 0x80000000u; label_BFC22D80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC22D80: 34218000 ori $at, $at, 0x8000 */ cpu->gpr[1] = cpu->gpr[1] | 0x8000u; @@ -90126,6 +111069,9 @@ label_BFC22D80: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (60) ? 1 : 0); if (psx_taken_BFC22D88) goto label_BFC22DC8; label_BFC22D90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22D90: 1420001F bne $at, $zero, 0xBFC22E10 */ uint32_t psx_brA_BFC22D90 = cpu->gpr[1]; uint32_t psx_brB_BFC22D90 = cpu->gpr[0]; @@ -90134,6 +111080,9 @@ label_BFC22D90: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22D94u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC22D90) goto label_BFC22E10; label_BFC22D98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22D98: 0C011913 jal 0xB004644C */ /* 0xBFC22D9C: 2404001E addiu $a0, $zero, 30 */ @@ -90141,6 +111090,9 @@ label_BFC22D98: cpu->gpr[31] = 0x8003ADA0u; psx_dispatch(cpu, 0x8004644Cu); label_BFC22DA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22DA0: 0440001B bltz $v0, 0xBFC22E10 */ uint32_t psx_brA_BFC22DA0 = cpu->gpr[2]; @@ -90149,6 +111101,9 @@ label_BFC22DA0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22DA4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC22DA0) goto label_BFC22E10; label_BFC22DA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22DA8: 0C00ED40 jal 0xB003B500 */ /* 0xBFC22DAC: 24040001 addiu $a0, $zero, 1 */ @@ -90156,6 +111111,9 @@ label_BFC22DA8: cpu->gpr[31] = 0x8003ADB0u; psx_dispatch(cpu, 0x8003B500u); label_BFC22DB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22DB0: 0C00ED49 jal 0xB003B524 */ /* 0xBFC22DB4: 2404001E addiu $a0, $zero, 30 */ @@ -90163,6 +111121,9 @@ label_BFC22DB0: cpu->gpr[31] = 0x8003ADB8u; psx_dispatch(cpu, 0x8003B524u); label_BFC22DB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22DB8: 0C00F970 jal 0xB003E5C0 */ /* 0xBFC22DBC: 00000000 nop */ @@ -90170,6 +111131,9 @@ label_BFC22DB8: cpu->gpr[31] = 0x8003ADC0u; psx_dispatch(cpu, 0x8003E5C0u); label_BFC22DC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22DC0: 10000013 beq $zero, $zero, 0xBFC22E10 */ uint32_t psx_brA_BFC22DC0 = cpu->gpr[0]; uint32_t psx_brB_BFC22DC0 = cpu->gpr[0]; @@ -90178,6 +111142,9 @@ label_BFC22DC0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22DC4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC22DC0) goto label_BFC22E10; label_BFC22DC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC22DC8: 3C012000 lui $at, 0x2000 */ cpu->gpr[1] = 0x20000000u; @@ -90192,6 +111159,9 @@ label_BFC22DC8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (60) ? 1 : 0); if (psx_taken_BFC22DD4) goto label_BFC22E0C; label_BFC22DDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22DDC: 1020000C beq $at, $zero, 0xBFC22E10 */ uint32_t psx_brA_BFC22DDC = cpu->gpr[1]; uint32_t psx_brB_BFC22DDC = cpu->gpr[0]; @@ -90200,6 +111170,9 @@ label_BFC22DDC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22DE0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC22DDC) goto label_BFC22E10; label_BFC22DE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22DE4: 0C011913 jal 0xB004644C */ /* 0xBFC22DE8: 2404003C addiu $a0, $zero, 60 */ @@ -90207,6 +111180,9 @@ label_BFC22DE4: cpu->gpr[31] = 0x8003ADECu; psx_dispatch(cpu, 0x8004644Cu); label_BFC22DEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22DEC: 04400008 bltz $v0, 0xBFC22E10 */ uint32_t psx_brA_BFC22DEC = cpu->gpr[2]; @@ -90215,6 +111191,9 @@ label_BFC22DEC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22DF0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC22DEC) goto label_BFC22E10; label_BFC22DF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22DF4: 0C00ED40 jal 0xB003B500 */ /* 0xBFC22DF8: 24040001 addiu $a0, $zero, 1 */ @@ -90222,6 +111201,9 @@ label_BFC22DF4: cpu->gpr[31] = 0x8003ADFCu; psx_dispatch(cpu, 0x8003B500u); label_BFC22DFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22DFC: 0C00ED49 jal 0xB003B524 */ /* 0xBFC22E00: 2404003C addiu $a0, $zero, 60 */ @@ -90229,6 +111211,9 @@ label_BFC22DFC: cpu->gpr[31] = 0x8003AE04u; psx_dispatch(cpu, 0x8003B524u); label_BFC22E04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22E04: 0C00F984 jal 0xB003E610 */ /* 0xBFC22E08: 00000000 nop */ @@ -90236,10 +111221,16 @@ label_BFC22E04: cpu->gpr[31] = 0x8003AE0Cu; psx_dispatch(cpu, 0x8003E610u); label_BFC22E0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC22E0C: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22E0Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC22E10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC22E10: 8FB00018 lw $s0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22E10u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -90263,6 +111254,9 @@ void func_1FC22E1C(CPUState* cpu) { } } label_BFC22E1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC22E1C: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -90276,6 +111270,9 @@ label_BFC22E1C: cpu->gpr[31] = 0x8003AE30u; psx_dispatch(cpu, 0x8005AAB0u); label_BFC22E30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC22E30: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -90286,6 +111283,9 @@ label_BFC22E30: cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC22E34) goto label_BFC22E44; label_BFC22E3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22E3C: 10000010 beq $zero, $zero, 0xBFC22E80 */ uint32_t psx_brA_BFC22E3C = cpu->gpr[0]; uint32_t psx_brB_BFC22E3C = cpu->gpr[0]; @@ -90294,6 +111294,9 @@ label_BFC22E3C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC22E3C) goto label_BFC22E80; label_BFC22E44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC22E44: 8FA5002C lw $a1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22E44u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -90305,6 +111308,9 @@ label_BFC22E44: cpu->gpr[31] = 0x8003AE54u; psx_dispatch(cpu, 0x8005AAC0u); label_BFC22E54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC22E54: 8FA40024 lw $a0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22E54u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -90317,6 +111323,9 @@ label_BFC22E54: /* nop */ if (psx_taken_BFC22E5C) goto label_BFC22E74; label_BFC22E64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22E64: 0C016AB4 jal 0xB005AAD0 */ /* 0xBFC22E68: 00000000 nop */ @@ -90324,6 +111333,9 @@ label_BFC22E64: cpu->gpr[31] = 0x8003AE6Cu; psx_dispatch(cpu, 0x8005AAD0u); label_BFC22E6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22E6C: 10000004 beq $zero, $zero, 0xBFC22E80 */ uint32_t psx_brA_BFC22E6C = cpu->gpr[0]; uint32_t psx_brB_BFC22E6C = cpu->gpr[0]; @@ -90332,6 +111344,9 @@ label_BFC22E6C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC22E6C) goto label_BFC22E80; label_BFC22E74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC22E74: 0C016AB4 jal 0xB005AAD0 */ /* 0xBFC22E78: 00000000 nop */ @@ -90339,10 +111354,16 @@ label_BFC22E74: cpu->gpr[31] = 0x8003AE7Cu; psx_dispatch(cpu, 0x8005AAD0u); label_BFC22E7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC22E7C: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC22E80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC22E80: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22E80u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -90367,6 +111388,9 @@ void func_1FC22E90(CPUState* cpu) { } } label_BFC22E90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(52u); +#endif psx_check_interrupts(cpu); /* 0xBFC22E90: 27BDFF60 addiu $sp, $sp, -160 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-160)); @@ -90475,6 +111499,9 @@ label_BFC22E90: cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (-16)); if (psx_taken_BFC22F58) goto label_BFC23054; label_BFC22F60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(25u); +#endif psx_check_interrupts(cpu); /* 0xBFC22F60: 00045080 sll $t2, $a0, 2 */ cpu->gpr[10] = cpu->gpr[4] << 2u; @@ -90527,6 +111554,9 @@ label_BFC22F60: /* 0xBFC22FC0: AFB20030 sw $s2, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22FC0u); return; } g_debug_last_store_pc = 0xBFC22FC0u; cpu->write_word(psx_addr, cpu->gpr[18]); } label_BFC22FC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC22FC4: 8EB80000 lw $t8, 0($s5) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[21] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC22FC4u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -90550,6 +111580,9 @@ label_BFC22FC4: cpu->gpr[31] = 0x8003AFECu; psx_dispatch(cpu, 0x800447F4u); label_BFC22FEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC22FEC: 27A40064 addiu $a0, $sp, 100 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (100)); @@ -90559,6 +111592,9 @@ label_BFC22FEC: cpu->gpr[31] = 0x8003AFF8u; psx_dispatch(cpu, 0x80044F54u); label_BFC22FF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC22FF8: 2A610002 slti $at, $s3, 2 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[19] < (2) ? 1 : 0); @@ -90569,10 +111605,16 @@ label_BFC22FF8: cpu->gpr[18] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC22FFC) goto label_BFC23020; label_BFC23004: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC23004: 26900070 addiu $s0, $s4, 112 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[20] + (112)); label_BFC23008: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC23008: 02402021 addu $a0, $s2, $zero */ cpu->gpr[4] = cpu->gpr[18] + cpu->gpr[0]; @@ -90582,6 +111624,9 @@ label_BFC23008: cpu->gpr[31] = 0x8003B014u; psx_dispatch(cpu, 0x80046A94u); label_BFC23014: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC23014: 26310001 addiu $s1, $s1, 1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); @@ -90592,6 +111637,9 @@ label_BFC23014: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (112)); if (psx_taken_BFC23018) goto label_BFC23008; label_BFC23020: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC23020: 8EA80000 lw $t0, 0($s5) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[21] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC23020u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -90610,6 +111658,9 @@ label_BFC23020: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[21] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC23038u); return; } g_debug_last_store_pc = 0xBFC23038u; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC23034) goto label_BFC22FC4; label_BFC2303C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2303C: 8FB00038 lw $s0, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2303Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -90624,6 +111675,9 @@ label_BFC2303C: /* 0xBFC23050: 00000000 nop */ /* nop */ label_BFC23054: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC23054: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC23054u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -90652,6 +111706,9 @@ void func_1FC23078(CPUState* cpu) { } } label_BFC23078: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC23078: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -90670,6 +111727,9 @@ label_BFC23078: /* 0xBFC23094: 00008021 addu $s0, $zero, $zero */ cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; label_BFC23098: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC23098: 0C011429 jal 0xB00450A4 */ /* 0xBFC2309C: 02502021 addu $a0, $s2, $s0 */ @@ -90677,6 +111737,9 @@ label_BFC23098: cpu->gpr[31] = 0x8003B0A0u; psx_dispatch(cpu, 0x800450A4u); label_BFC230A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC230A0: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -90687,6 +111750,9 @@ label_BFC230A0: /* nop */ if (psx_taken_BFC230A4) goto label_BFC23098; label_BFC230AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC230AC: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC230ACu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -90713,6 +111779,9 @@ void func_1FC230C4(CPUState* cpu) { } } label_BFC230C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC230C4: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -90727,6 +111796,9 @@ label_BFC230C4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC230D4u); return; } g_debug_last_store_pc = 0xBFC230D4u; cpu->write_word(psx_addr, cpu->gpr[16]); } if (psx_taken_BFC230D0) goto label_BFC230E0; label_BFC230D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC230D8: 10000002 beq $zero, $zero, 0xBFC230E4 */ uint32_t psx_brA_BFC230D8 = cpu->gpr[0]; uint32_t psx_brB_BFC230D8 = cpu->gpr[0]; @@ -90735,10 +111807,16 @@ label_BFC230D8: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[0] + (45)); if (psx_taken_BFC230D8) goto label_BFC230E4; label_BFC230E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC230E0: 2411004B addiu $s1, $zero, 75 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[0] + (75)); label_BFC230E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC230E4: 00B1082A slt $at, $a1, $s1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[5] < (int32_t)cpu->gpr[17] ? 1 : 0); @@ -90749,6 +111827,9 @@ label_BFC230E4: cpu->gpr[16] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC230E8) goto label_BFC23108; label_BFC230F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC230F0: 0C011429 jal 0xB00450A4 */ /* 0xBFC230F4: 02002021 addu $a0, $s0, $zero */ @@ -90756,6 +111837,9 @@ label_BFC230F0: cpu->gpr[31] = 0x8003B0F8u; psx_dispatch(cpu, 0x800450A4u); label_BFC230F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC230F8: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -90768,6 +111852,9 @@ label_BFC230F8: /* nop */ if (psx_taken_BFC23100) goto label_BFC230F0; label_BFC23108: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC23108: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC23108u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -90794,6 +111881,9 @@ void func_1FC2311C(CPUState* cpu) { } } label_BFC2311C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(21u); +#endif psx_check_interrupts(cpu); /* 0xBFC2311C: 27BDFFD0 addiu $sp, $sp, -48 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-48)); @@ -90838,6 +111928,9 @@ label_BFC2311C: /* 0xBFC2316C: 24130010 addiu $s3, $zero, 16 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); label_BFC23170: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC23170: 02402021 addu $a0, $s2, $zero */ cpu->gpr[4] = cpu->gpr[18] + cpu->gpr[0]; @@ -90847,6 +111940,9 @@ label_BFC23170: cpu->gpr[31] = 0x8003B17Cu; psx_dispatch(cpu, 0x8005A900u); label_BFC2317C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2317C: 14400029 bne $v0, $zero, 0xBFC23224 */ uint32_t psx_brA_BFC2317C = cpu->gpr[2]; uint32_t psx_brB_BFC2317C = cpu->gpr[0]; @@ -90855,6 +111951,9 @@ label_BFC2317C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[17] < (15) ? 1 : 0); if (psx_taken_BFC2317C) goto label_BFC23224; label_BFC23184: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC23184: 1020001A beq $at, $zero, 0xBFC231F0 */ uint32_t psx_brA_BFC23184 = cpu->gpr[1]; uint32_t psx_brB_BFC23184 = cpu->gpr[0]; @@ -90863,6 +111962,9 @@ label_BFC23184: cpu->gpr[18] = cpu->gpr[17] + cpu->gpr[0]; if (psx_taken_BFC23184) goto label_BFC231F0; label_BFC2318C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC2318C: 8FA80030 lw $t0, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2318Cu); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -90897,6 +111999,9 @@ label_BFC2318C: /* 0xBFC231C8: 2611005C addiu $s1, $s0, 92 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[16] + (92)); label_BFC231CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC231CC: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -90908,6 +112013,9 @@ label_BFC231CC: cpu->gpr[31] = 0x8003B1DCu; psx_dispatch(cpu, 0x800431FCu); label_BFC231DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC231DC: 26520001 addiu $s2, $s2, 1 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (1)); @@ -90922,6 +112030,9 @@ label_BFC231DC: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (92)); if (psx_taken_BFC231E8) goto label_BFC231CC; label_BFC231F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC231F0: 8FAD0030 lw $t5, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC231F0u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -90947,6 +112058,9 @@ label_BFC231F0: cpu->gpr[31] = 0x8003B21Cu; psx_dispatch(cpu, 0x8004322Cu); label_BFC2321C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2321C: 10000005 beq $zero, $zero, 0xBFC23234 */ uint32_t psx_brA_BFC2321C = cpu->gpr[0]; uint32_t psx_brB_BFC2321C = cpu->gpr[0]; @@ -90955,6 +112069,9 @@ label_BFC2321C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC23220u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC2321C) goto label_BFC23234; label_BFC23224: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC23224: 26310001 addiu $s1, $s1, 1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); @@ -90965,10 +112082,16 @@ label_BFC23224: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (92)); if (psx_taken_BFC23228) goto label_BFC23170; label_BFC23230: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC23230: 8FBF002C lw $ra, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC23230u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC23234: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC23234: 8FB0001C lw $s0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC23234u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -90995,6 +112118,9 @@ void func_1FC2324C(CPUState* cpu) { } } label_BFC2324C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC2324C: 00057080 sll $t6, $a1, 2 */ cpu->gpr[14] = cpu->gpr[5] << 2u; @@ -91033,6 +112159,9 @@ label_BFC2324C: /* 0xBFC23290: 24120010 addiu $s2, $zero, 16 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); label_BFC23294: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC23294: 02602021 addu $a0, $s3, $zero */ cpu->gpr[4] = cpu->gpr[19] + cpu->gpr[0]; @@ -91042,6 +112171,9 @@ label_BFC23294: cpu->gpr[31] = 0x8003B2A0u; psx_dispatch(cpu, 0x8005A900u); label_BFC232A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC232A0: 14400004 bne $v0, $zero, 0xBFC232B4 */ uint32_t psx_brA_BFC232A0 = cpu->gpr[2]; uint32_t psx_brB_BFC232A0 = cpu->gpr[0]; @@ -91050,6 +112182,9 @@ label_BFC232A0: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); if (psx_taken_BFC232A0) goto label_BFC232B4; label_BFC232A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC232A8: 10000005 beq $zero, $zero, 0xBFC232C0 */ uint32_t psx_brA_BFC232A8 = cpu->gpr[0]; uint32_t psx_brB_BFC232A8 = cpu->gpr[0]; @@ -91058,10 +112193,16 @@ label_BFC232A8: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC232A8) goto label_BFC232C0; label_BFC232B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC232B0: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); label_BFC232B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC232B4: 1612FFF7 bne $s0, $s2, 0xBFC23294 */ uint32_t psx_brA_BFC232B4 = cpu->gpr[16]; uint32_t psx_brB_BFC232B4 = cpu->gpr[18]; @@ -91070,10 +112211,16 @@ label_BFC232B4: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (92)); if (psx_taken_BFC232B4) goto label_BFC23294; label_BFC232BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC232BC: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC232C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC232C0: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC232C0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -91110,6 +112257,9 @@ void func_1FC232DC(CPUState* cpu) { } } label_BFC232DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC232DC: 27BDFFC0 addiu $sp, $sp, -64 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-64)); @@ -91129,6 +112279,9 @@ label_BFC232DC: cpu->gpr[31] = 0x8003B2FCu; psx_dispatch(cpu, 0x8004322Cu); label_BFC232FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC232FC: AFA00010 sw $zero, 16($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC232FCu); return; } g_debug_last_store_pc = 0xBFC232FCu; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -91156,6 +112309,9 @@ label_BFC232FC: cpu->gpr[31] = 0x8003B32Cu; psx_dispatch(cpu, 0x800424E0u); label_BFC2332C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2332C: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -91172,6 +112328,9 @@ label_BFC2332C: cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC2333C) goto label_BFC234E0; label_BFC23344: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC23344: 3C19800F lui $t9, 0x800F */ cpu->gpr[25] = 0x800F0000u; @@ -91189,6 +112348,9 @@ label_BFC23344: cpu->gpr[31] = 0x8003B360u; psx_dispatch(cpu, 0x80049DC4u); label_BFC23360: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC23360: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -91206,6 +112368,9 @@ label_BFC23360: cpu->gpr[31] = 0x8003B37Cu; psx_dispatch(cpu, 0x80049DC4u); label_BFC2337C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC2337C: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -91243,6 +112408,9 @@ label_BFC2337C: cpu->gpr[31] = 0x8003B3C0u; psx_dispatch(cpu, 0x800442F0u); label_BFC233C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC233C0: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -91284,6 +112452,9 @@ label_BFC233C0: cpu->gpr[31] = 0x8003B40Cu; psx_dispatch(cpu, 0x800447F4u); label_BFC2340C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC2340C: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -91321,6 +112492,9 @@ label_BFC2340C: cpu->gpr[31] = 0x8003B450u; psx_dispatch(cpu, 0x80044988u); label_BFC23450: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC23450: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -91356,6 +112530,9 @@ label_BFC23450: cpu->gpr[31] = 0x8003B490u; psx_dispatch(cpu, 0x80044AE0u); label_BFC23490: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC23490: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -91391,6 +112568,9 @@ label_BFC23490: cpu->gpr[31] = 0x8003B4D0u; psx_dispatch(cpu, 0x80044A50u); label_BFC234D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC234D0: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -91401,6 +112581,9 @@ label_BFC234D0: /* 0xBFC234DC: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; label_BFC234E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC234E0: 24630001 addiu $v1, $v1, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1)); @@ -91431,6 +112614,9 @@ void func_1FC23500(CPUState* cpu) { } } label_BFC23500: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC23500: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -91441,6 +112627,9 @@ label_BFC23500: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC23508u); return; } g_debug_last_store_pc = 0xBFC23508u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC23504) goto label_BFC23514; label_BFC2350C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2350C: 0C00ED49 jal 0xB003B524 */ /* 0xBFC23510: 00000000 nop */ @@ -91448,6 +112637,9 @@ label_BFC2350C: cpu->gpr[31] = 0x8003B514u; psx_dispatch(cpu, 0x8003B524u); label_BFC23514: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC23514: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC23514u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -91483,6 +112675,9 @@ void func_1FC23524(CPUState* cpu) { } } label_BFC23524: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC23524: 27BDFF60 addiu $sp, $sp, -160 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-160)); @@ -91503,6 +112698,9 @@ label_BFC23524: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC23540u); return; } g_debug_last_store_pc = 0xBFC23540u; cpu->write_word(psx_addr, cpu->gpr[17]); } if (psx_taken_BFC2353C) goto label_BFC23570; label_BFC23544: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC23544: 3C0F800F lui $t7, 0x800F */ cpu->gpr[15] = 0x800F0000u; @@ -91529,6 +112727,9 @@ label_BFC23544: cpu->gpr[20] = cpu->gpr[15] + cpu->gpr[0]; if (psx_taken_BFC23568) goto label_BFC23634; label_BFC23570: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC23570: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -91539,6 +112740,9 @@ label_BFC23570: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (60) ? 1 : 0); if (psx_taken_BFC23574) goto label_BFC235A8; label_BFC2357C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2357C: 3C18800F lui $t8, 0x800F */ cpu->gpr[24] = 0x800F0000u; @@ -91563,10 +112767,16 @@ label_BFC2357C: cpu->gpr[20] = cpu->gpr[24] + cpu->gpr[0]; if (psx_taken_BFC2359C) goto label_BFC23634; label_BFC235A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC235A4: 2881003C slti $at, $a0, 60 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (60) ? 1 : 0); label_BFC235A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC235A8: 10200007 beq $at, $zero, 0xBFC235C8 */ uint32_t psx_brA_BFC235A8 = cpu->gpr[1]; uint32_t psx_brB_BFC235A8 = cpu->gpr[0]; @@ -91575,6 +112785,9 @@ label_BFC235A8: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC235A8) goto label_BFC235C8; label_BFC235B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC235B0: 24190001 addiu $t9, $zero, 1 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -91589,16 +112802,25 @@ label_BFC235B0: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[4] + (-29)); if (psx_taken_BFC235BC) goto label_BFC235D0; label_BFC235C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC235C4: 24030001 addiu $v1, $zero, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC235C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC235C8: AFA00098 sw $zero, 152($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (152)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC235C8u); return; } g_debug_last_store_pc = 0xBFC235C8u; cpu->write_word(psx_addr, cpu->gpr[0]); } /* 0xBFC235CC: 2485FFC5 addiu $a1, $a0, -59 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[4] + (-59)); label_BFC235D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC235D0: 00036880 sll $t5, $v1, 2 */ cpu->gpr[13] = cpu->gpr[3] << 2u; @@ -91643,6 +112865,9 @@ label_BFC235D0: cpu->gpr[18] = cpu->gpr[2] & 0xFFu; if (psx_taken_BFC23618) goto label_BFC23630; label_BFC23620: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC23620: 16400003 bne $s2, $zero, 0xBFC23630 */ uint32_t psx_brA_BFC23620 = cpu->gpr[18]; uint32_t psx_brB_BFC23620 = cpu->gpr[0]; @@ -91651,16 +112876,25 @@ label_BFC23620: /* nop */ if (psx_taken_BFC23620) goto label_BFC23630; label_BFC23628: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC23628: 00008821 addu $s1, $zero, $zero */ cpu->gpr[17] = cpu->gpr[0] + cpu->gpr[0]; /* 0xBFC2362C: 24120001 addiu $s2, $zero, 1 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC23630: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC23630: AFA40040 sw $a0, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC23630u); return; } g_debug_last_store_pc = 0xBFC23630u; cpu->write_word(psx_addr, cpu->gpr[4]); } label_BFC23634: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC23634: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -91677,6 +112911,9 @@ label_BFC23634: /* nop */ if (psx_taken_BFC23644) goto label_BFC23660; label_BFC2364C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2364C: 3C138008 lui $s3, 0x8008 */ cpu->gpr[19] = 0x80080000u; @@ -91691,6 +112928,9 @@ label_BFC2364C: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-23256)); if (psx_taken_BFC23658) goto label_BFC23B54; label_BFC23660: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(34u); +#endif psx_check_interrupts(cpu); /* 0xBFC23660: 3C138008 lui $s3, 0x8008 */ cpu->gpr[19] = 0x80080000u; @@ -91762,6 +113002,9 @@ label_BFC23660: cpu->gpr[31] = 0x8003B6E8u; psx_dispatch(cpu, 0x80049DC4u); label_BFC236E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(34u); +#endif psx_check_interrupts(cpu); /* 0xBFC236E8: 3C138008 lui $s3, 0x8008 */ cpu->gpr[19] = 0x80080000u; @@ -91833,6 +113076,9 @@ label_BFC236E8: cpu->gpr[31] = 0x8003B770u; psx_dispatch(cpu, 0x80049E74u); label_BFC23770: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC23770: 3C138008 lui $s3, 0x8008 */ cpu->gpr[19] = 0x80080000u; @@ -91876,6 +113122,9 @@ label_BFC23770: cpu->gpr[31] = 0x8003B7C0u; psx_dispatch(cpu, 0x800442F0u); label_BFC237C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC237C0: 3C138008 lui $s3, 0x8008 */ cpu->gpr[19] = 0x80080000u; @@ -91905,6 +113154,9 @@ label_BFC237C0: cpu->gpr[31] = 0x8003B7F4u; psx_dispatch(cpu, 0x800447F4u); label_BFC237F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC237F4: 3C138008 lui $s3, 0x8008 */ cpu->gpr[19] = 0x80080000u; @@ -91934,6 +113186,9 @@ label_BFC237F4: cpu->gpr[31] = 0x8003B828u; psx_dispatch(cpu, 0x80044988u); label_BFC23828: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC23828: 3C138008 lui $s3, 0x8008 */ cpu->gpr[19] = 0x80080000u; @@ -91961,6 +113216,9 @@ label_BFC23828: cpu->gpr[31] = 0x8003B858u; psx_dispatch(cpu, 0x80044AE0u); label_BFC23858: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(34u); +#endif psx_check_interrupts(cpu); /* 0xBFC23858: 3C138008 lui $s3, 0x8008 */ cpu->gpr[19] = 0x80080000u; @@ -92032,6 +113290,9 @@ label_BFC23858: cpu->gpr[31] = 0x8003B8E0u; psx_dispatch(cpu, 0x80049DC4u); label_BFC238E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(34u); +#endif psx_check_interrupts(cpu); /* 0xBFC238E0: 3C138008 lui $s3, 0x8008 */ cpu->gpr[19] = 0x80080000u; @@ -92103,6 +113364,9 @@ label_BFC238E0: cpu->gpr[31] = 0x8003B968u; psx_dispatch(cpu, 0x80049E74u); label_BFC23968: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC23968: 3C138008 lui $s3, 0x8008 */ cpu->gpr[19] = 0x80080000u; @@ -92142,6 +113406,9 @@ label_BFC23968: cpu->gpr[31] = 0x8003B9B0u; psx_dispatch(cpu, 0x800442F0u); label_BFC239B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC239B0: 3C138008 lui $s3, 0x8008 */ cpu->gpr[19] = 0x80080000u; @@ -92171,6 +113438,9 @@ label_BFC239B0: cpu->gpr[31] = 0x8003B9E4u; psx_dispatch(cpu, 0x800447F4u); label_BFC239E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC239E4: 3C138008 lui $s3, 0x8008 */ cpu->gpr[19] = 0x80080000u; @@ -92200,6 +113470,9 @@ label_BFC239E4: cpu->gpr[31] = 0x8003BA18u; psx_dispatch(cpu, 0x80044988u); label_BFC23A18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC23A18: 3C138008 lui $s3, 0x8008 */ cpu->gpr[19] = 0x80080000u; @@ -92227,6 +113500,9 @@ label_BFC23A18: cpu->gpr[31] = 0x8003BA48u; psx_dispatch(cpu, 0x80044AE0u); label_BFC23A48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC23A48: 8FA30040 lw $v1, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC23A48u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -92245,6 +113521,9 @@ label_BFC23A48: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (152)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC23A60u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } if (psx_taken_BFC23A5C) goto label_BFC23A78; label_BFC23A64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC23A64: 8C6A0008 lw $t2, 8($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC23A64u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -92257,10 +113536,16 @@ label_BFC23A64: /* nop */ if (psx_taken_BFC23A6C) goto label_BFC23AA4; label_BFC23A74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC23A74: 8FB80098 lw $t8, 152($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (152)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC23A74u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } label_BFC23A78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC23A78: 3C0F800F lui $t7, 0x800F */ cpu->gpr[15] = 0x800F0000u; @@ -92285,6 +113570,9 @@ label_BFC23A78: /* 0xBFC23AA0: 00000000 nop */ /* nop */ label_BFC23AA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC23AA4: 3C138008 lui $s3, 0x8008 */ cpu->gpr[19] = 0x80080000u; @@ -92297,6 +113585,9 @@ label_BFC23AA4: /* 0xBFC23AB4: 24090010 addiu $t1, $zero, 16 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); label_BFC23AB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC23AB8: 8CB90018 lw $t9, 24($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC23AB8u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -92309,6 +113600,9 @@ label_BFC23AB8: /* nop */ if (psx_taken_BFC23AC0) goto label_BFC23B3C; label_BFC23AC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(29u); +#endif psx_check_interrupts(cpu); /* 0xBFC23AC8: 001370C0 sll $t6, $s3, 3 */ cpu->gpr[14] = cpu->gpr[19] << 3u; @@ -92369,6 +113663,9 @@ label_BFC23AC8: /* 0xBFC23B38: ACAD000C sw $t5, 12($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (12)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC23B38u); return; } g_debug_last_store_pc = 0xBFC23B38u; cpu->write_word(psx_addr, cpu->gpr[13]); } label_BFC23B3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC23B3C: 24E70001 addiu $a3, $a3, 1 */ cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[7] + (1)); @@ -92379,6 +113676,9 @@ label_BFC23B3C: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (92)); if (psx_taken_BFC23B40) goto label_BFC23AB8; label_BFC23B48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC23B48: 8E8C0018 lw $t4, 24($s4) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[20] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC23B48u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -92387,6 +113687,9 @@ label_BFC23B48: /* 0xBFC23B50: AC2C3B68 sw $t4, 15208($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (15208)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC23B50u); return; } g_debug_last_store_pc = 0xBFC23B50u; cpu->write_word(psx_addr, cpu->gpr[12]); } label_BFC23B54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(30u); +#endif psx_check_interrupts(cpu); /* 0xBFC23B54: 0013C880 sll $t9, $s3, 2 */ cpu->gpr[25] = cpu->gpr[19] << 2u; @@ -92450,6 +113753,9 @@ label_BFC23B54: cpu->gpr[31] = 0x8003BBCCu; psx_dispatch(cpu, 0x800308B4u); label_BFC23BCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(32u); +#endif psx_check_interrupts(cpu); /* 0xBFC23BCC: 3C138008 lui $s3, 0x8008 */ cpu->gpr[19] = 0x80080000u; @@ -92517,6 +113823,9 @@ label_BFC23BCC: cpu->gpr[31] = 0x8003BC4Cu; psx_dispatch(cpu, 0x800308B4u); label_BFC23C4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(60u); +#endif psx_check_interrupts(cpu); /* 0xBFC23C4C: 3C138008 lui $s3, 0x8008 */ cpu->gpr[19] = 0x80080000u; @@ -92692,6 +114001,9 @@ void func_1FC23D3C(CPUState* cpu) { } } label_BFC23D3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC23D3C: 27BDFF40 addiu $sp, $sp, -192 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-192)); @@ -92712,6 +114024,9 @@ label_BFC23D3C: cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC23D54) goto label_BFC24014; label_BFC23D5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC23D5C: 1480000C bne $a0, $zero, 0xBFC23D90 */ uint32_t psx_brA_BFC23D5C = cpu->gpr[4]; uint32_t psx_brB_BFC23D5C = cpu->gpr[0]; @@ -92720,6 +114035,9 @@ label_BFC23D5C: /* nop */ if (psx_taken_BFC23D5C) goto label_BFC23D90; label_BFC23D64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC23D64: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -92731,6 +114049,9 @@ label_BFC23D64: cpu->gpr[31] = 0x8003BD74u; psx_dispatch(cpu, 0x8005AA20u); label_BFC23D74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC23D74: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -92744,6 +114065,9 @@ label_BFC23D74: cpu->gpr[31] = 0x8003BD88u; psx_dispatch(cpu, 0x8005AA20u); label_BFC23D88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC23D88: 1000000B beq $zero, $zero, 0xBFC23DB8 */ uint32_t psx_brA_BFC23D88 = cpu->gpr[0]; uint32_t psx_brB_BFC23D88 = cpu->gpr[0]; @@ -92752,6 +114076,9 @@ label_BFC23D88: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (128)); if (psx_taken_BFC23D88) goto label_BFC23DB8; label_BFC23D90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC23D90: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -92763,6 +114090,9 @@ label_BFC23D90: cpu->gpr[31] = 0x8003BDA0u; psx_dispatch(cpu, 0x8005AA20u); label_BFC23DA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC23DA0: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -92776,10 +114106,16 @@ label_BFC23DA0: cpu->gpr[31] = 0x8003BDB4u; psx_dispatch(cpu, 0x8005AA20u); label_BFC23DB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC23DB4: 27A40080 addiu $a0, $sp, 128 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (128)); label_BFC23DB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC23DB8: 0C016A88 jal 0xB005AA20 */ /* 0xBFC23DBC: 27A50038 addiu $a1, $sp, 56 */ @@ -92787,6 +114123,9 @@ label_BFC23DB8: cpu->gpr[31] = 0x8003BDC0u; psx_dispatch(cpu, 0x8005AA20u); label_BFC23DC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC23DC0: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -92800,6 +114139,9 @@ label_BFC23DC0: cpu->gpr[31] = 0x8003BDD4u; psx_dispatch(cpu, 0x8005AA20u); label_BFC23DD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC23DD4: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -92811,6 +114153,9 @@ label_BFC23DD4: cpu->gpr[31] = 0x8003BDE4u; psx_dispatch(cpu, 0x8005AA20u); label_BFC23DE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC23DE4: 8FA500C4 lw $a1, 196($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (196)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC23DE4u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -92820,6 +114165,9 @@ label_BFC23DE4: cpu->gpr[31] = 0x8003BDF0u; psx_dispatch(cpu, 0x8005AA50u); label_BFC23DF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC23DF0: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -92831,6 +114179,9 @@ label_BFC23DF0: cpu->gpr[31] = 0x8003BE00u; psx_dispatch(cpu, 0x8005AA50u); label_BFC23E00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC23E00: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -92842,6 +114193,9 @@ label_BFC23E00: cpu->gpr[31] = 0x8003BE10u; psx_dispatch(cpu, 0x8005AA50u); label_BFC23E10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC23E10: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -92853,6 +114207,9 @@ label_BFC23E10: cpu->gpr[31] = 0x8003BE20u; psx_dispatch(cpu, 0x8005AA20u); label_BFC23E20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC23E20: 27A40080 addiu $a0, $sp, 128 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (128)); @@ -92862,6 +114219,9 @@ label_BFC23E20: cpu->gpr[31] = 0x8003BE2Cu; psx_dispatch(cpu, 0x8005AAB0u); label_BFC23E2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC23E2C: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -92872,6 +114232,9 @@ label_BFC23E2C: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC23E30) goto label_BFC23E4C; label_BFC23E38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC23E38: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; @@ -92886,12 +114249,18 @@ label_BFC23E38: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC23E44) goto label_BFC24278; label_BFC23E4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC23E4C: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; /* 0xBFC23E50: AC236B00 sw $v1, 27392($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (27392)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC23E50u); return; } g_debug_last_store_pc = 0xBFC23E50u; cpu->write_word(psx_addr, cpu->gpr[3]); } label_BFC23E54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC23E54: 3C038006 lui $v1, 0x8006 */ cpu->gpr[3] = 0x80060000u; @@ -92909,6 +114278,9 @@ label_BFC23E54: cpu->gpr[31] = 0x8003BE70u; psx_dispatch(cpu, 0x8005AAC0u); label_BFC23E70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC23E70: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -92919,6 +114291,9 @@ label_BFC23E70: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (200)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC23E78u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } if (psx_taken_BFC23E74) goto label_BFC23EB4; label_BFC23E7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC23E7C: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -92931,6 +114306,9 @@ label_BFC23E7C: /* nop */ if (psx_taken_BFC23E84) goto label_BFC23E54; label_BFC23E8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC23E8C: 3C038006 lui $v1, 0x8006 */ cpu->gpr[3] = 0x80060000u; @@ -92942,6 +114320,9 @@ label_BFC23E8C: cpu->gpr[31] = 0x8003BE9Cu; psx_dispatch(cpu, 0x8005AAD0u); label_BFC23E9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC23E9C: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; @@ -92956,10 +114337,16 @@ label_BFC23E9C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC23EA8) goto label_BFC24278; label_BFC23EB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC23EB0: 8FAF00C8 lw $t7, 200($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (200)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC23EB0u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } label_BFC23EB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC23EB4: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -92973,6 +114360,9 @@ label_BFC23EB4: cpu->gpr[31] = 0x8003BEC8u; psx_dispatch(cpu, 0x8005AAA0u); label_BFC23EC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC23EC8: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -92988,6 +114378,9 @@ label_BFC23EC8: cpu->gpr[31] = 0x8003BEE0u; psx_dispatch(cpu, 0x8005AAB0u); label_BFC23EE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC23EE0: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -92998,6 +114391,9 @@ label_BFC23EE0: cpu->gpr[7] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC23EE4) goto label_BFC23F18; label_BFC23EEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC23EEC: 3C038006 lui $v1, 0x8006 */ cpu->gpr[3] = 0x80060000u; @@ -93013,6 +114409,9 @@ label_BFC23EEC: cpu->gpr[31] = 0x8003BF04u; psx_dispatch(cpu, 0x8005AAD0u); label_BFC23F04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC23F04: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; @@ -93027,6 +114426,9 @@ label_BFC23F04: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC23F10) goto label_BFC24278; label_BFC23F18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC23F18: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; @@ -93038,6 +114440,9 @@ label_BFC23F18: cpu->gpr[31] = 0x8003BF28u; psx_dispatch(cpu, 0x8005AAD0u); label_BFC23F28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC23F28: 27A40040 addiu $a0, $sp, 64 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (64)); @@ -93047,6 +114452,9 @@ label_BFC23F28: cpu->gpr[31] = 0x8003BF34u; psx_dispatch(cpu, 0x8005AAB0u); label_BFC23F34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC23F34: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -93057,6 +114465,9 @@ label_BFC23F34: cpu->gpr[7] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC23F38) goto label_BFC23F74; label_BFC23F40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC23F40: 3C038006 lui $v1, 0x8006 */ cpu->gpr[3] = 0x80060000u; @@ -93072,6 +114483,9 @@ label_BFC23F40: cpu->gpr[31] = 0x8003BF58u; psx_dispatch(cpu, 0x8005AAD0u); label_BFC23F58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC23F58: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; @@ -93085,6 +114499,9 @@ label_BFC23F58: cpu->gpr[31] = 0x8003BF6Cu; psx_dispatch(cpu, 0x8005AAA0u); label_BFC23F6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC23F6C: 100000C2 beq $zero, $zero, 0xBFC24278 */ uint32_t psx_brA_BFC23F6C = cpu->gpr[0]; uint32_t psx_brB_BFC23F6C = cpu->gpr[0]; @@ -93093,12 +114510,18 @@ label_BFC23F6C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC23F6C) goto label_BFC24278; label_BFC23F74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC23F74: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; /* 0xBFC23F78: AC276B04 sw $a3, 27396($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (27396)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC23F78u); return; } g_debug_last_store_pc = 0xBFC23F78u; cpu->write_word(psx_addr, cpu->gpr[7]); } label_BFC23F7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC23F7C: 3C078006 lui $a3, 0x8006 */ cpu->gpr[7] = 0x80060000u; @@ -93116,6 +114539,9 @@ label_BFC23F7C: cpu->gpr[31] = 0x8003BF98u; psx_dispatch(cpu, 0x8005AAE0u); label_BFC23F98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC23F98: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -93126,6 +114552,9 @@ label_BFC23F98: /* nop */ if (psx_taken_BFC23F9C) goto label_BFC23FFC; label_BFC23FA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC23FA4: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -93138,6 +114567,9 @@ label_BFC23FA4: /* nop */ if (psx_taken_BFC23FAC) goto label_BFC23F7C; label_BFC23FB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC23FB4: 3C038006 lui $v1, 0x8006 */ cpu->gpr[3] = 0x80060000u; @@ -93149,6 +114581,9 @@ label_BFC23FB4: cpu->gpr[31] = 0x8003BFC4u; psx_dispatch(cpu, 0x8005AAD0u); label_BFC23FC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC23FC4: 3C078006 lui $a3, 0x8006 */ cpu->gpr[7] = 0x80060000u; @@ -93160,6 +114595,9 @@ label_BFC23FC4: cpu->gpr[31] = 0x8003BFD4u; psx_dispatch(cpu, 0x8005AAD0u); label_BFC23FD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC23FD4: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; @@ -93179,6 +114617,9 @@ label_BFC23FD4: cpu->gpr[31] = 0x8003BFF4u; psx_dispatch(cpu, 0x8005AAA0u); label_BFC23FF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC23FF4: 100000A0 beq $zero, $zero, 0xBFC24278 */ uint32_t psx_brA_BFC23FF4 = cpu->gpr[0]; uint32_t psx_brB_BFC23FF4 = cpu->gpr[0]; @@ -93187,6 +114628,9 @@ label_BFC23FF4: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC23FF4) goto label_BFC24278; label_BFC23FFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC23FFC: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -93203,6 +114647,9 @@ label_BFC23FFC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-23468)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24010u); return; } g_debug_last_store_pc = 0xBFC24010u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC2400C) goto label_BFC24278; label_BFC24014: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC24014: 3C038006 lui $v1, 0x8006 */ cpu->gpr[3] = 0x80060000u; @@ -93217,6 +114664,9 @@ label_BFC24014: /* nop */ if (psx_taken_BFC24020) goto label_BFC2426C; label_BFC24028: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC24028: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -93231,6 +114681,9 @@ label_BFC24028: /* nop */ if (psx_taken_BFC24034) goto label_BFC240EC; label_BFC2403C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2403C: 3C038006 lui $v1, 0x8006 */ cpu->gpr[3] = 0x80060000u; @@ -93248,6 +114701,9 @@ label_BFC2403C: cpu->gpr[31] = 0x8003C058u; psx_dispatch(cpu, 0x8005AAC0u); label_BFC24058: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24058: 24010080 addiu $at, $zero, 128 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (128)); @@ -93258,6 +114714,9 @@ label_BFC24058: cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC2405C) goto label_BFC240E0; label_BFC24064: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC24064: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -93270,6 +114729,9 @@ label_BFC24064: /* nop */ if (psx_taken_BFC2406C) goto label_BFC2403C; label_BFC24074: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC24074: 3C078006 lui $a3, 0x8006 */ cpu->gpr[7] = 0x80060000u; @@ -93281,6 +114743,9 @@ label_BFC24074: cpu->gpr[31] = 0x8003C084u; psx_dispatch(cpu, 0x8005AAD0u); label_BFC24084: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC24084: 3C038006 lui $v1, 0x8006 */ cpu->gpr[3] = 0x80060000u; @@ -93292,6 +114757,9 @@ label_BFC24084: cpu->gpr[31] = 0x8003C094u; psx_dispatch(cpu, 0x8005AAD0u); label_BFC24094: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC24094: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; @@ -93315,6 +114783,9 @@ label_BFC24094: cpu->gpr[31] = 0x8003C0BCu; psx_dispatch(cpu, 0x8005AA20u); label_BFC240BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC240BC: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -93326,6 +114797,9 @@ label_BFC240BC: cpu->gpr[31] = 0x8003C0CCu; psx_dispatch(cpu, 0x8005AA50u); label_BFC240CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC240CC: 0C016AA8 jal 0xB005AAA0 */ /* 0xBFC240D0: 27A40040 addiu $a0, $sp, 64 */ @@ -93333,6 +114807,9 @@ label_BFC240CC: cpu->gpr[31] = 0x8003C0D4u; psx_dispatch(cpu, 0x8005AAA0u); label_BFC240D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC240D4: 10000068 beq $zero, $zero, 0xBFC24278 */ uint32_t psx_brA_BFC240D4 = cpu->gpr[0]; uint32_t psx_brB_BFC240D4 = cpu->gpr[0]; @@ -93341,10 +114818,16 @@ label_BFC240D4: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC240D4) goto label_BFC24278; label_BFC240DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC240DC: 24190001 addiu $t9, $zero, 1 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC240E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC240E0: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -93355,6 +114838,9 @@ label_BFC240E0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-23472)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC240E8u); return; } g_debug_last_store_pc = 0xBFC240E8u; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC240E4) goto label_BFC24274; label_BFC240EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC240EC: 3C078006 lui $a3, 0x8006 */ cpu->gpr[7] = 0x80060000u; @@ -93372,6 +114858,9 @@ label_BFC240EC: cpu->gpr[31] = 0x8003C108u; psx_dispatch(cpu, 0x8005AAE0u); label_BFC24108: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24108: 24010080 addiu $at, $zero, 128 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (128)); @@ -93382,6 +114871,9 @@ label_BFC24108: /* nop */ if (psx_taken_BFC2410C) goto label_BFC2418C; label_BFC24114: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC24114: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -93394,6 +114886,9 @@ label_BFC24114: /* nop */ if (psx_taken_BFC2411C) goto label_BFC240EC; label_BFC24124: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC24124: 3C078006 lui $a3, 0x8006 */ cpu->gpr[7] = 0x80060000u; @@ -93405,6 +114900,9 @@ label_BFC24124: cpu->gpr[31] = 0x8003C134u; psx_dispatch(cpu, 0x8005AAD0u); label_BFC24134: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC24134: 3C038006 lui $v1, 0x8006 */ cpu->gpr[3] = 0x80060000u; @@ -93416,6 +114914,9 @@ label_BFC24134: cpu->gpr[31] = 0x8003C144u; psx_dispatch(cpu, 0x8005AAD0u); label_BFC24144: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC24144: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; @@ -93439,6 +114940,9 @@ label_BFC24144: cpu->gpr[31] = 0x8003C16Cu; psx_dispatch(cpu, 0x8005AA20u); label_BFC2416C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2416C: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -93450,6 +114954,9 @@ label_BFC2416C: cpu->gpr[31] = 0x8003C17Cu; psx_dispatch(cpu, 0x8005AA50u); label_BFC2417C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2417C: 0C016AA8 jal 0xB005AAA0 */ /* 0xBFC24180: 27A40040 addiu $a0, $sp, 64 */ @@ -93457,6 +114964,9 @@ label_BFC2417C: cpu->gpr[31] = 0x8003C184u; psx_dispatch(cpu, 0x8005AAA0u); label_BFC24184: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24184: 1000003C beq $zero, $zero, 0xBFC24278 */ uint32_t psx_brA_BFC24184 = cpu->gpr[0]; uint32_t psx_brB_BFC24184 = cpu->gpr[0]; @@ -93465,6 +114975,9 @@ label_BFC24184: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC24184) goto label_BFC24278; label_BFC2418C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC2418C: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -93491,6 +115004,9 @@ label_BFC2418C: /* nop */ if (psx_taken_BFC241B0) goto label_BFC24238; label_BFC241B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC241B8: 3C078006 lui $a3, 0x8006 */ cpu->gpr[7] = 0x80060000u; @@ -93506,6 +115022,9 @@ label_BFC241B8: cpu->gpr[31] = 0x8003C1D0u; psx_dispatch(cpu, 0x8005AAD0u); label_BFC241D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC241D0: 3C038006 lui $v1, 0x8006 */ cpu->gpr[3] = 0x80060000u; @@ -93517,6 +115036,9 @@ label_BFC241D0: cpu->gpr[31] = 0x8003C1E0u; psx_dispatch(cpu, 0x8005AAD0u); label_BFC241E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC241E0: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; @@ -93540,6 +115062,9 @@ label_BFC241E0: cpu->gpr[31] = 0x8003C208u; psx_dispatch(cpu, 0x8005AA20u); label_BFC24208: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC24208: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -93551,6 +115076,9 @@ label_BFC24208: cpu->gpr[31] = 0x8003C218u; psx_dispatch(cpu, 0x8005AA50u); label_BFC24218: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC24218: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -93562,6 +115090,9 @@ label_BFC24218: cpu->gpr[31] = 0x8003C228u; psx_dispatch(cpu, 0x8005AAF0u); label_BFC24228: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC24228: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -93574,6 +115105,9 @@ label_BFC24228: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24234u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC24230) goto label_BFC2427C; label_BFC24238: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC24238: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -93586,6 +115120,9 @@ label_BFC24238: cpu->gpr[10] = cpu->gpr[2] & 0x1FFFu; if (psx_taken_BFC24240) goto label_BFC24254; label_BFC24248: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24248: 11400002 beq $t2, $zero, 0xBFC24254 */ uint32_t psx_brA_BFC24248 = cpu->gpr[10]; uint32_t psx_brB_BFC24248 = cpu->gpr[0]; @@ -93594,10 +115131,16 @@ label_BFC24248: /* nop */ if (psx_taken_BFC24248) goto label_BFC24254; label_BFC24250: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC24250: 254AE000 addiu $t2, $t2, -8192 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[10] + (-8192)); label_BFC24254: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24254: 15400008 bne $t2, $zero, 0xBFC24278 */ uint32_t psx_brA_BFC24254 = cpu->gpr[10]; uint32_t psx_brB_BFC24254 = cpu->gpr[0]; @@ -93606,6 +115149,9 @@ label_BFC24254: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC24254) goto label_BFC24278; label_BFC2425C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2425C: 240BFFFF addiu $t3, $zero, -1 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -93618,6 +115164,9 @@ label_BFC2425C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24876)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24268u); return; } g_debug_last_store_pc = 0xBFC24268u; cpu->write_word(psx_addr, cpu->gpr[11]); } if (psx_taken_BFC24264) goto label_BFC24274; label_BFC2426C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2426C: 10000002 beq $zero, $zero, 0xBFC24278 */ uint32_t psx_brA_BFC2426C = cpu->gpr[0]; uint32_t psx_brB_BFC2426C = cpu->gpr[0]; @@ -93626,14 +115175,23 @@ label_BFC2426C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC2426C) goto label_BFC24278; label_BFC24274: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC24274: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC24278: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC24278: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24278u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC2427C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2427C: 8FB00020 lw $s0, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2427Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -93659,6 +115217,9 @@ void func_1FC24288(CPUState* cpu) { } } label_BFC24288: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC24288: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -93675,6 +115236,9 @@ label_BFC24288: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2429Cu); return; } g_debug_last_store_pc = 0xBFC2429Cu; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC24298) goto label_BFC24408; label_BFC242A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC242A0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -93689,6 +115253,9 @@ label_BFC242A0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC242B0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC242AC) goto label_BFC2440C; label_BFC242B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC242B4: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -93703,6 +115270,9 @@ label_BFC242B4: cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC242C0) goto label_BFC24308; label_BFC242C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC242C8: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -93717,6 +115287,9 @@ label_BFC242C8: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (1)); if (psx_taken_BFC242D4) goto label_BFC242FC; label_BFC242DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC242DC: 0C016720 jal 0xB0059C80 */ /* 0xBFC242E0: 00002021 addu $a0, $zero, $zero */ @@ -93724,6 +115297,9 @@ label_BFC242DC: cpu->gpr[31] = 0x8003C2E4u; psx_dispatch(cpu, 0x80059C80u); label_BFC242E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC242E4: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; @@ -93738,20 +115314,32 @@ label_BFC242E4: cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC242F0) goto label_BFC24304; label_BFC242F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC242F8: 24420001 addiu $v0, $v0, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (1)); label_BFC242FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC242FC: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; /* 0xBFC24300: AC22A520 sw $v0, -23264($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-23264)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24300u); return; } g_debug_last_store_pc = 0xBFC24300u; cpu->write_word(psx_addr, cpu->gpr[2]); } label_BFC24304: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC24304: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; label_BFC24308: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24308: 00002821 addu $a1, $zero, $zero */ cpu->gpr[5] = cpu->gpr[0] + cpu->gpr[0]; @@ -93761,6 +115349,9 @@ label_BFC24308: cpu->gpr[31] = 0x8003C314u; psx_dispatch(cpu, 0x8003BD3Cu); label_BFC24314: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC24314: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -93777,6 +115368,9 @@ label_BFC24314: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC24324) goto label_BFC24338; label_BFC2432C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2432C: 10000002 beq $zero, $zero, 0xBFC24338 */ uint32_t psx_brA_BFC2432C = cpu->gpr[0]; uint32_t psx_brB_BFC2432C = cpu->gpr[0]; @@ -93785,10 +115379,16 @@ label_BFC2432C: cpu->gpr[6] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC2432C) goto label_BFC24338; label_BFC24334: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC24334: 24060001 addiu $a2, $zero, 1 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC24338: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24338: 14470017 bne $v0, $a3, 0xBFC24398 */ uint32_t psx_brA_BFC24338 = cpu->gpr[2]; uint32_t psx_brB_BFC24338 = cpu->gpr[7]; @@ -93797,6 +115397,9 @@ label_BFC24338: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC24338) goto label_BFC24398; label_BFC24340: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC24340: AC259ED0 sw $a1, -24880($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24880)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24340u); return; } g_debug_last_store_pc = 0xBFC24340u; cpu->write_word(psx_addr, cpu->gpr[5]); } @@ -93808,6 +115411,9 @@ label_BFC24340: cpu->gpr[31] = 0x8003C350u; psx_dispatch(cpu, 0x8003B0C4u); label_BFC24350: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24350: 8FA60018 lw $a2, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24350u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -93817,6 +115423,9 @@ label_BFC24350: cpu->gpr[31] = 0x8003C35Cu; psx_dispatch(cpu, 0x8003B11Cu); label_BFC2435C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC2435C: 2418FFFF addiu $t8, $zero, -1 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -93846,6 +115455,9 @@ label_BFC2435C: cpu->gpr[31] = 0x8003C390u; psx_dispatch(cpu, 0x8003B500u); label_BFC24390: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24390: 1000001E beq $zero, $zero, 0xBFC2440C */ uint32_t psx_brA_BFC24390 = cpu->gpr[0]; uint32_t psx_brB_BFC24390 = cpu->gpr[0]; @@ -93854,6 +115466,9 @@ label_BFC24390: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24394u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC24390) goto label_BFC2440C; label_BFC24398: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24398: 1840001C blez $v0, 0xBFC2440C */ uint32_t psx_brA_BFC24398 = cpu->gpr[2]; @@ -93862,6 +115477,9 @@ label_BFC24398: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2439Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC24398) goto label_BFC2440C; label_BFC243A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC243A0: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -93910,6 +115528,9 @@ label_BFC243A0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24880)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC243F4u); return; } g_debug_last_store_pc = 0xBFC243F4u; cpu->write_word(psx_addr, cpu->gpr[5]); } if (psx_taken_BFC243F0) goto label_BFC24408; label_BFC243F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC243F8: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -93921,10 +115542,16 @@ label_BFC243F8: cpu->gpr[31] = 0x8003C408u; psx_dispatch(cpu, 0x8003B500u); label_BFC24408: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC24408: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24408u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC2440C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2440C: 27BD0020 addiu $sp, $sp, 32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (32)); @@ -93954,6 +115581,9 @@ void func_1FC24418(CPUState* cpu) { } } label_BFC24418: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC24418: 27BDFF78 addiu $sp, $sp, -136 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-136)); @@ -93976,6 +115606,9 @@ label_BFC24418: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24438u); return; } g_debug_last_store_pc = 0xBFC24438u; cpu->write_word(psx_addr, cpu->gpr[16]); } if (psx_taken_BFC24434) goto label_BFC24484; label_BFC2443C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2443C: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -93991,6 +115624,9 @@ label_BFC2443C: cpu->gpr[31] = 0x8003C454u; psx_dispatch(cpu, 0x8005AA20u); label_BFC24454: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC24454: 00107080 sll $t6, $s0, 2 */ cpu->gpr[14] = cpu->gpr[16] << 2u; @@ -94014,6 +115650,9 @@ label_BFC24454: cpu->gpr[31] = 0x8003C47Cu; psx_dispatch(cpu, 0x8005AA50u); label_BFC2447C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2447C: 10000011 beq $zero, $zero, 0xBFC244C4 */ uint32_t psx_brA_BFC2447C = cpu->gpr[0]; uint32_t psx_brB_BFC2447C = cpu->gpr[0]; @@ -94022,6 +115661,9 @@ label_BFC2447C: /* nop */ if (psx_taken_BFC2447C) goto label_BFC244C4; label_BFC24484: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC24484: 3C058006 lui $a1, 0x8006 */ cpu->gpr[5] = 0x80060000u; @@ -94037,6 +115679,9 @@ label_BFC24484: cpu->gpr[31] = 0x8003C49Cu; psx_dispatch(cpu, 0x8005AA20u); label_BFC2449C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2449C: 0010C080 sll $t8, $s0, 2 */ cpu->gpr[24] = cpu->gpr[16] << 2u; @@ -94060,6 +115705,9 @@ label_BFC2449C: cpu->gpr[31] = 0x8003C4C4u; psx_dispatch(cpu, 0x8005AA50u); label_BFC244C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC244C4: 0C016AA8 jal 0xB005AAA0 */ /* 0xBFC244C8: 27A4003C addiu $a0, $sp, 60 */ @@ -94067,6 +115715,9 @@ label_BFC244C4: cpu->gpr[31] = 0x8003C4CCu; psx_dispatch(cpu, 0x8005AAA0u); label_BFC244CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC244CC: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -94077,6 +115728,9 @@ label_BFC244CC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC244D4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC244D0) goto label_BFC2462C; label_BFC244D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC244D8: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -94090,6 +115744,9 @@ label_BFC244D8: cpu->gpr[31] = 0x8003C4ECu; psx_dispatch(cpu, 0x8005AA20u); label_BFC244EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(25u); +#endif psx_check_interrupts(cpu); /* 0xBFC244EC: 00135080 sll $t2, $s3, 2 */ cpu->gpr[10] = cpu->gpr[19] << 2u; @@ -94144,6 +115801,9 @@ label_BFC244EC: cpu->gpr[18] = cpu->gpr[16] + cpu->gpr[0]; if (psx_taken_BFC24548) goto label_BFC245AC; label_BFC24550: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC24550: 0012C880 sll $t9, $s2, 2 */ cpu->gpr[25] = cpu->gpr[18] << 2u; @@ -94174,6 +115834,9 @@ label_BFC24550: /* 0xBFC24584: 2631005C addiu $s1, $s1, 92 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (92)); label_BFC24588: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC24588: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -94185,6 +115848,9 @@ label_BFC24588: cpu->gpr[31] = 0x8003C598u; psx_dispatch(cpu, 0x800431FCu); label_BFC24598: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC24598: 26520001 addiu $s2, $s2, 1 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (1)); @@ -94199,6 +115865,9 @@ label_BFC24598: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (92)); if (psx_taken_BFC245A4) goto label_BFC24588; label_BFC245AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC245AC: 00134880 sll $t1, $s3, 2 */ cpu->gpr[9] = cpu->gpr[19] << 2u; @@ -94222,6 +115891,9 @@ label_BFC245AC: cpu->gpr[31] = 0x8003C5D4u; psx_dispatch(cpu, 0x8004322Cu); label_BFC245D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC245D4: 3C118006 lui $s1, 0x8006 */ cpu->gpr[17] = 0x80060000u; @@ -94235,6 +115907,9 @@ label_BFC245D4: cpu->gpr[31] = 0x8003C5E8u; psx_dispatch(cpu, 0x80046C90u); label_BFC245E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC245E8: 00008821 addu $s1, $zero, $zero */ cpu->gpr[17] = cpu->gpr[0] + cpu->gpr[0]; @@ -94248,6 +115923,9 @@ label_BFC245E8: cpu->gpr[31] = 0x8003C5FCu; psx_dispatch(cpu, 0x8003B500u); label_BFC245FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC245FC: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -94274,6 +115952,9 @@ label_BFC245FC: /* 0xBFC24628: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24628u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC2462C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2462C: 8FB00018 lw $s0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2462Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -94311,6 +115992,9 @@ void func_1FC24640(CPUState* cpu) { } } label_BFC24640: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC24640: 27BDFF40 addiu $sp, $sp, -192 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-192)); @@ -94332,6 +116016,9 @@ label_BFC24640: cpu->gpr[31] = 0x8003C664u; psx_dispatch(cpu, 0x8004322Cu); label_BFC24664: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC24664: 3C038006 lui $v1, 0x8006 */ cpu->gpr[3] = 0x80060000u; @@ -94348,6 +116035,9 @@ label_BFC24664: cpu->gpr[8] = cpu->gpr[3] << 2u; if (psx_taken_BFC24674) goto label_BFC246FC; label_BFC2467C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC2467C: 00037080 sll $t6, $v1, 2 */ cpu->gpr[14] = cpu->gpr[3] << 2u; @@ -94381,6 +116071,9 @@ label_BFC2467C: cpu->gpr[31] = 0x8003C6B8u; psx_dispatch(cpu, 0x8003B24Cu); label_BFC246B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC246B8: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -94391,6 +116084,9 @@ label_BFC246B8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC246C0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC246BC) goto label_BFC24A34; label_BFC246C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC246C4: 0014C080 sll $t8, $s4, 2 */ cpu->gpr[24] = cpu->gpr[20] << 2u; @@ -94416,6 +116112,9 @@ label_BFC246C4: cpu->gpr[31] = 0x8003C6F0u; psx_dispatch(cpu, 0x8005AA20u); label_BFC246F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC246F0: 1000001F beq $zero, $zero, 0xBFC24770 */ uint32_t psx_brA_BFC246F0 = cpu->gpr[0]; uint32_t psx_brB_BFC246F0 = cpu->gpr[0]; @@ -94424,10 +116123,16 @@ label_BFC246F0: cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[0] + (60)); if (psx_taken_BFC246F0) goto label_BFC24770; label_BFC246F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC246F8: 00034080 sll $t0, $v1, 2 */ cpu->gpr[8] = cpu->gpr[3] << 2u; label_BFC246FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC246FC: 01034023 subu $t0, $t0, $v1 */ cpu->gpr[8] = cpu->gpr[8] - cpu->gpr[3]; @@ -94459,6 +116164,9 @@ label_BFC246FC: cpu->gpr[31] = 0x8003C734u; psx_dispatch(cpu, 0x8003B24Cu); label_BFC24734: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24734: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -94469,6 +116177,9 @@ label_BFC24734: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2473Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC24738) goto label_BFC24A34; label_BFC24740: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC24740: 00145080 sll $t2, $s4, 2 */ cpu->gpr[10] = cpu->gpr[20] << 2u; @@ -94494,10 +116205,16 @@ label_BFC24740: cpu->gpr[31] = 0x8003C76Cu; psx_dispatch(cpu, 0x8005AA20u); label_BFC2476C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2476C: 2413001E addiu $s3, $zero, 30 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[0] + (30)); label_BFC24770: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(23u); +#endif psx_check_interrupts(cpu); /* 0xBFC24770: 00167080 sll $t6, $s6, 2 */ cpu->gpr[14] = cpu->gpr[22] << 2u; @@ -94548,6 +116265,9 @@ label_BFC24770: /* nop */ if (psx_taken_BFC247C4) goto label_BFC247D8; label_BFC247CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC247CC: 8FB3003C lw $s3, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC247CCu); return; } cpu->gpr[19] = cpu->read_word(psx_addr); } @@ -94558,6 +116278,9 @@ label_BFC247CC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC247D4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC247D0) goto label_BFC24A34; label_BFC247D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC247D8: AFB00034 sw $s0, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC247D8u); return; } g_debug_last_store_pc = 0xBFC247D8u; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -94572,6 +116295,9 @@ label_BFC247D8: /* 0xBFC247EC: 00008021 addu $s0, $zero, $zero */ cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; label_BFC247F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC247F0: 0C011BB0 jal 0xB0046EC0 */ /* 0xBFC247F4: 02702021 addu $a0, $s3, $s0 */ @@ -94579,6 +116305,9 @@ label_BFC247F0: cpu->gpr[31] = 0x8003C7F8u; psx_dispatch(cpu, 0x80046EC0u); label_BFC247F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC247F8: 10400004 beq $v0, $zero, 0xBFC2480C */ uint32_t psx_brA_BFC247F8 = cpu->gpr[2]; uint32_t psx_brB_BFC247F8 = cpu->gpr[0]; @@ -94587,6 +116316,9 @@ label_BFC247F8: /* nop */ if (psx_taken_BFC247F8) goto label_BFC2480C; label_BFC24800: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24800: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -94597,6 +116329,9 @@ label_BFC24800: cpu->gpr[17] = cpu->gpr[17] + cpu->gpr[2]; if (psx_taken_BFC24804) goto label_BFC247F0; label_BFC2480C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2480C: 16120008 bne $s0, $s2, 0xBFC24830 */ uint32_t psx_brA_BFC2480C = cpu->gpr[16]; uint32_t psx_brB_BFC2480C = cpu->gpr[18]; @@ -94605,6 +116340,9 @@ label_BFC2480C: cpu->gpr[9] = cpu->gpr[22] << 2u; if (psx_taken_BFC2480C) goto label_BFC24830; label_BFC24814: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC24814: 8FB00034 lw $s0, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24814u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -94621,10 +116359,16 @@ label_BFC24814: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24828u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC24824) goto label_BFC24A34; label_BFC2482C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2482C: 00164880 sll $t1, $s6, 2 */ cpu->gpr[9] = cpu->gpr[22] << 2u; label_BFC24830: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(27u); +#endif psx_check_interrupts(cpu); /* 0xBFC24830: 00156080 sll $t4, $s5, 2 */ cpu->gpr[12] = cpu->gpr[21] << 2u; @@ -94682,6 +116426,9 @@ label_BFC24830: cpu->gpr[31] = 0x8003C89Cu; psx_dispatch(cpu, 0x800431FCu); label_BFC2489C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2489C: 3C038006 lui $v1, 0x8006 */ cpu->gpr[3] = 0x80060000u; @@ -94695,6 +116442,9 @@ label_BFC2489C: cpu->gpr[31] = 0x8003C8B0u; psx_dispatch(cpu, 0x80046F40u); label_BFC248B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC248B0: 0040B021 addu $s6, $v0, $zero */ cpu->gpr[22] = cpu->gpr[2] + cpu->gpr[0]; @@ -94706,6 +116456,9 @@ label_BFC248B0: cpu->gpr[31] = 0x8003C8C0u; psx_dispatch(cpu, 0x80046F00u); label_BFC248C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC248C0: 1840004F blez $v0, 0xBFC24A00 */ uint32_t psx_brA_BFC248C0 = cpu->gpr[2]; @@ -94714,6 +116467,9 @@ label_BFC248C0: cpu->gpr[4] = cpu->gpr[22] + cpu->gpr[0]; if (psx_taken_BFC248C0) goto label_BFC24A00; label_BFC248C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC248C8: 0015C100 sll $t8, $s5, 4 */ cpu->gpr[24] = cpu->gpr[21] << 4u; @@ -94742,6 +116498,9 @@ label_BFC248C8: /* 0xBFC248F8: 02C02021 addu $a0, $s6, $zero */ cpu->gpr[4] = cpu->gpr[22] + cpu->gpr[0]; label_BFC248FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC248FC: 0C011B9B jal 0xB0046E6C */ /* 0xBFC24900: 02802821 addu $a1, $s4, $zero */ @@ -94749,6 +116508,9 @@ label_BFC248FC: cpu->gpr[31] = 0x8003C904u; psx_dispatch(cpu, 0x80046E6Cu); label_BFC24904: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC24904: 00025880 sll $t3, $v0, 2 */ cpu->gpr[11] = cpu->gpr[2] << 2u; @@ -94780,6 +116542,9 @@ label_BFC24904: cpu->gpr[31] = 0x8003C93Cu; psx_dispatch(cpu, 0x8005A9B0u); label_BFC2493C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC2493C: 0011C080 sll $t8, $s1, 2 */ cpu->gpr[24] = cpu->gpr[17] << 2u; @@ -94801,6 +116566,9 @@ label_BFC2493C: cpu->gpr[31] = 0x8003C960u; psx_dispatch(cpu, 0x8005A9B0u); label_BFC24960: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC24960: 8E080008 lw $t0, 8($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24960u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -94817,6 +116585,9 @@ label_BFC24960: cpu->gpr[3] = cpu->gpr[18] + cpu->gpr[2]; if (psx_taken_BFC24970) goto label_BFC2499C; label_BFC24978: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24978: 02421821 addu $v1, $s2, $v0 */ cpu->gpr[3] = cpu->gpr[18] + cpu->gpr[2]; @@ -94827,10 +116598,16 @@ label_BFC24978: cpu->gpr[1] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC2497C) goto label_BFC24988; label_BFC24984: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC24984: 2421007F addiu $at, $at, 127 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (127)); label_BFC24988: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC24988: 000119C3 sra $v1, $at, 7 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[1] >> 7u); @@ -94843,10 +116620,16 @@ label_BFC24988: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24994u); return; } g_debug_last_store_pc = 0xBFC24994u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC24990) goto label_BFC249B8; label_BFC24998: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC24998: 02421821 addu $v1, $s2, $v0 */ cpu->gpr[3] = cpu->gpr[18] + cpu->gpr[2]; label_BFC2499C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2499C: 04610002 bgez $v1, 0xBFC249A8 */ uint32_t psx_brA_BFC2499C = cpu->gpr[3]; @@ -94855,10 +116638,16 @@ label_BFC2499C: cpu->gpr[1] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC2499C) goto label_BFC249A8; label_BFC249A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC249A4: 2421007F addiu $at, $at, 127 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (127)); label_BFC249A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC249A8: 000119C3 sra $v1, $at, 7 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[1] >> 7u); @@ -94869,6 +116658,9 @@ label_BFC249A8: /* 0xBFC249B4: AE0A0010 sw $t2, 16($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC249B4u); return; } g_debug_last_store_pc = 0xBFC249B4u; cpu->write_word(psx_addr, cpu->gpr[10]); } label_BFC249B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC249B8: 8E0B000C lw $t3, 12($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (12)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC249B8u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -94885,6 +116677,9 @@ label_BFC249B8: cpu->gpr[14] = cpu->gpr[0] - cpu->gpr[3]; if (psx_taken_BFC249C8) goto label_BFC249DC; label_BFC249D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC249D0: 10000003 beq $zero, $zero, 0xBFC249E0 */ uint32_t psx_brA_BFC249D0 = cpu->gpr[0]; uint32_t psx_brB_BFC249D0 = cpu->gpr[0]; @@ -94893,14 +116688,23 @@ label_BFC249D0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC249D4u); return; } g_debug_last_store_pc = 0xBFC249D4u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC249D0) goto label_BFC249E0; label_BFC249D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC249D8: 00037023 subu $t6, $zero, $v1 */ cpu->gpr[14] = cpu->gpr[0] - cpu->gpr[3]; label_BFC249DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC249DC: AE0E0014 sw $t6, 20($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC249DCu); return; } g_debug_last_store_pc = 0xBFC249DCu; cpu->write_word(psx_addr, cpu->gpr[14]); } label_BFC249E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC249E0: 26940001 addiu $s4, $s4, 1 */ cpu->gpr[20] = (uint32_t)((int32_t)cpu->gpr[20] + (1)); @@ -94912,6 +116716,9 @@ label_BFC249E0: cpu->gpr[31] = 0x8003C9F0u; psx_dispatch(cpu, 0x80046F00u); label_BFC249F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC249F0: 0282082A slt $at, $s4, $v0 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[20] < (int32_t)cpu->gpr[2] ? 1 : 0); @@ -94922,10 +116729,16 @@ label_BFC249F0: cpu->gpr[4] = cpu->gpr[22] + cpu->gpr[0]; if (psx_taken_BFC249F4) goto label_BFC248FC; label_BFC249FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC249FC: 02C02021 addu $a0, $s6, $zero */ cpu->gpr[4] = cpu->gpr[22] + cpu->gpr[0]; label_BFC24A00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24A00: 0C011B24 jal 0xB0046C90 */ /* 0xBFC24A04: 24050020 addiu $a1, $zero, 32 */ @@ -94933,6 +116746,9 @@ label_BFC24A00: cpu->gpr[31] = 0x8003CA08u; psx_dispatch(cpu, 0x80046C90u); label_BFC24A08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC24A08: 240F0001 addiu $t7, $zero, 1 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -94957,6 +116773,9 @@ label_BFC24A08: /* 0xBFC24A30: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24A30u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC24A34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC24A34: 8FB40018 lw $s4, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24A34u); return; } cpu->gpr[20] = cpu->read_word(psx_addr); } @@ -94995,6 +116814,9 @@ void func_1FC24A48(CPUState* cpu) { } } label_BFC24A48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC24A48: 27BDFF28 addiu $sp, $sp, -216 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-216)); @@ -95024,6 +116846,9 @@ label_BFC24A48: cpu->gpr[31] = 0x8003CA7Cu; psx_dispatch(cpu, 0x8004322Cu); label_BFC24A7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC24A7C: 3C0E8006 lui $t6, 0x8006 */ cpu->gpr[14] = 0x80060000u; @@ -95040,6 +116865,9 @@ label_BFC24A7C: /* nop */ if (psx_taken_BFC24A8C) goto label_BFC24AB0; label_BFC24A94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC24A94: 240F0001 addiu $t7, $zero, 1 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -95058,6 +116886,9 @@ label_BFC24A94: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (188)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24AACu); return; } g_debug_last_store_pc = 0xBFC24AACu; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC24AA8) goto label_BFC24AC8; label_BFC24AB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC24AB0: AFA000C4 sw $zero, 196($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (196)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24AB0u); return; } g_debug_last_store_pc = 0xBFC24AB0u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -95072,6 +116903,9 @@ label_BFC24AB0: /* 0xBFC24AC4: 241E001E addiu $fp, $zero, 30 */ cpu->gpr[30] = (uint32_t)((int32_t)cpu->gpr[0] + (30)); label_BFC24AC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC24AC8: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; @@ -95086,6 +116920,9 @@ label_BFC24AC8: /* 0xBFC24ADC: 2417000F addiu $s7, $zero, 15 */ cpu->gpr[23] = (uint32_t)((int32_t)cpu->gpr[0] + (15)); label_BFC24AE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC24AE0: 8FA200D4 lw $v0, 212($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (212)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24AE0u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -95097,6 +116934,9 @@ label_BFC24AE0: cpu->gpr[31] = 0x8003CAF0u; psx_dispatch(cpu, 0x800465C0u); label_BFC24AF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24AF0: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -95107,6 +116947,9 @@ label_BFC24AF0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (212)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24AF8u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } if (psx_taken_BFC24AF4) goto label_BFC24BC4; label_BFC24AFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC24AFC: 8FA800C8 lw $t0, 200($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (200)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24AFCu); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -95146,6 +116989,9 @@ label_BFC24AFC: cpu->gpr[31] = 0x8003CB44u; psx_dispatch(cpu, 0x8003B24Cu); label_BFC24B44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24B44: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -95156,12 +117002,18 @@ label_BFC24B44: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (212)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24B4Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } if (psx_taken_BFC24B48) goto label_BFC24BC4; label_BFC24B50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24B50: 00008021 addu $s0, $zero, $zero */ cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; /* 0xBFC24B54: 00008821 addu $s1, $zero, $zero */ cpu->gpr[17] = cpu->gpr[0] + cpu->gpr[0]; label_BFC24B58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24B58: 0C011BB0 jal 0xB0046EC0 */ /* 0xBFC24B5C: 03D02021 addu $a0, $fp, $s0 */ @@ -95169,6 +117021,9 @@ label_BFC24B58: cpu->gpr[31] = 0x8003CB60u; psx_dispatch(cpu, 0x80046EC0u); label_BFC24B60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24B60: 10400004 beq $v0, $zero, 0xBFC24B74 */ uint32_t psx_brA_BFC24B60 = cpu->gpr[2]; uint32_t psx_brB_BFC24B60 = cpu->gpr[0]; @@ -95177,6 +117032,9 @@ label_BFC24B60: /* nop */ if (psx_taken_BFC24B60) goto label_BFC24B74; label_BFC24B68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24B68: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -95187,6 +117045,9 @@ label_BFC24B68: cpu->gpr[17] = cpu->gpr[17] + cpu->gpr[2]; if (psx_taken_BFC24B6C) goto label_BFC24B58; label_BFC24B74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24B74: 12170019 beq $s0, $s7, 0xBFC24BDC */ uint32_t psx_brA_BFC24B74 = cpu->gpr[16]; uint32_t psx_brB_BFC24B74 = cpu->gpr[23]; @@ -95195,6 +117056,9 @@ label_BFC24B74: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (196)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24B78u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } if (psx_taken_BFC24B74) goto label_BFC24BDC; label_BFC24B7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC24B7C: 8FAE00C8 lw $t6, 200($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (200)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24B7Cu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -95233,6 +117097,9 @@ label_BFC24B7C: /* 0xBFC24BC0: 8FA200D4 lw $v0, 212($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (212)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24BC0u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } label_BFC24BC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC24BC4: 00000000 nop */ /* nop */ @@ -95247,10 +117114,16 @@ label_BFC24BC4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (212)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24BD4u); return; } g_debug_last_store_pc = 0xBFC24BD4u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC24BD0) goto label_BFC24AE0; label_BFC24BD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC24BD8: 8FAB00C4 lw $t3, 196($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (196)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24BD8u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } label_BFC24BDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC24BDC: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -95273,6 +117146,9 @@ label_BFC24BDC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24BFCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC24BF8) goto label_BFC24EE0; label_BFC24C00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC24C00: AFB60044 sw $s6, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24C00u); return; } g_debug_last_store_pc = 0xBFC24C00u; cpu->write_word(psx_addr, cpu->gpr[22]); } @@ -95289,6 +117165,9 @@ label_BFC24C00: /* 0xBFC24C18: 26D6D2A0 addiu $s6, $s6, -11616 */ cpu->gpr[22] = (uint32_t)((int32_t)cpu->gpr[22] + (-11616)); label_BFC24C1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC24C1C: 8FA200D4 lw $v0, 212($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (212)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24C1Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -95304,6 +117183,9 @@ label_BFC24C1C: cpu->gpr[31] = 0x8003CC34u; psx_dispatch(cpu, 0x800465C0u); label_BFC24C34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24C34: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -95314,6 +117196,9 @@ label_BFC24C34: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (212)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24C3Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } if (psx_taken_BFC24C38) goto label_BFC24EB4; label_BFC24C40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC24C40: 8FB900C8 lw $t9, 200($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (200)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24C40u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -95353,6 +117238,9 @@ label_BFC24C40: cpu->gpr[31] = 0x8003CC88u; psx_dispatch(cpu, 0x8003B24Cu); label_BFC24C88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24C88: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -95363,12 +117251,18 @@ label_BFC24C88: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (212)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24C90u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } if (psx_taken_BFC24C8C) goto label_BFC24EB4; label_BFC24C94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24C94: 00008021 addu $s0, $zero, $zero */ cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; /* 0xBFC24C98: 00008821 addu $s1, $zero, $zero */ cpu->gpr[17] = cpu->gpr[0] + cpu->gpr[0]; label_BFC24C9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24C9C: 0C011BB0 jal 0xB0046EC0 */ /* 0xBFC24CA0: 03D02021 addu $a0, $fp, $s0 */ @@ -95376,6 +117270,9 @@ label_BFC24C9C: cpu->gpr[31] = 0x8003CCA4u; psx_dispatch(cpu, 0x80046EC0u); label_BFC24CA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24CA4: 10400004 beq $v0, $zero, 0xBFC24CB8 */ uint32_t psx_brA_BFC24CA4 = cpu->gpr[2]; uint32_t psx_brB_BFC24CA4 = cpu->gpr[0]; @@ -95384,6 +117281,9 @@ label_BFC24CA4: /* nop */ if (psx_taken_BFC24CA4) goto label_BFC24CB8; label_BFC24CAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24CAC: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -95394,6 +117294,9 @@ label_BFC24CAC: cpu->gpr[17] = cpu->gpr[17] + cpu->gpr[2]; if (psx_taken_BFC24CB0) goto label_BFC24C9C; label_BFC24CB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24CB8: 12170083 beq $s0, $s7, 0xBFC24EC8 */ uint32_t psx_brA_BFC24CB8 = cpu->gpr[16]; uint32_t psx_brB_BFC24CB8 = cpu->gpr[23]; @@ -95402,6 +117305,9 @@ label_BFC24CB8: /* nop */ if (psx_taken_BFC24CB8) goto label_BFC24EC8; label_BFC24CC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(31u); +#endif psx_check_interrupts(cpu); /* 0xBFC24CC0: 8FAC00C8 lw $t4, 200($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (200)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24CC0u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -95467,6 +117373,9 @@ label_BFC24CC0: cpu->gpr[31] = 0x8003CD3Cu; psx_dispatch(cpu, 0x800431FCu); label_BFC24D3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24D3C: 02402021 addu $a0, $s2, $zero */ cpu->gpr[4] = cpu->gpr[18] + cpu->gpr[0]; @@ -95476,6 +117385,9 @@ label_BFC24D3C: cpu->gpr[31] = 0x8003CD48u; psx_dispatch(cpu, 0x80046F40u); label_BFC24D48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24D48: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -95486,6 +117398,9 @@ label_BFC24D48: cpu->gpr[21] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC24D4C) goto label_BFC24EB0; label_BFC24D54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24D54: 0000A021 addu $s4, $zero, $zero */ cpu->gpr[20] = cpu->gpr[0] + cpu->gpr[0]; @@ -95495,6 +117410,9 @@ label_BFC24D54: cpu->gpr[31] = 0x8003CD60u; psx_dispatch(cpu, 0x80046F00u); label_BFC24D60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24D60: 1840004E blez $v0, 0xBFC24E9C */ uint32_t psx_brA_BFC24D60 = cpu->gpr[2]; @@ -95503,6 +117421,9 @@ label_BFC24D60: cpu->gpr[4] = cpu->gpr[21] + cpu->gpr[0]; if (psx_taken_BFC24D60) goto label_BFC24E9C; label_BFC24D68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC24D68: 8FAB00C4 lw $t3, 196($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (196)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24D68u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -95529,6 +117450,9 @@ label_BFC24D68: /* 0xBFC24D94: 02A02021 addu $a0, $s5, $zero */ cpu->gpr[4] = cpu->gpr[21] + cpu->gpr[0]; label_BFC24D98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24D98: 0C011B9B jal 0xB0046E6C */ /* 0xBFC24D9C: 02802821 addu $a1, $s4, $zero */ @@ -95536,6 +117460,9 @@ label_BFC24D98: cpu->gpr[31] = 0x8003CDA0u; psx_dispatch(cpu, 0x80046E6Cu); label_BFC24DA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC24DA0: 0002C080 sll $t8, $v0, 2 */ cpu->gpr[24] = cpu->gpr[2] << 2u; @@ -95567,6 +117494,9 @@ label_BFC24DA0: cpu->gpr[31] = 0x8003CDD8u; psx_dispatch(cpu, 0x8005A9B0u); label_BFC24DD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC24DD8: 00116080 sll $t4, $s1, 2 */ cpu->gpr[12] = cpu->gpr[17] << 2u; @@ -95588,6 +117518,9 @@ label_BFC24DD8: cpu->gpr[31] = 0x8003CDFCu; psx_dispatch(cpu, 0x8005A9B0u); label_BFC24DFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC24DFC: 8E0E0008 lw $t6, 8($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24DFCu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -95604,6 +117537,9 @@ label_BFC24DFC: cpu->gpr[3] = cpu->gpr[18] + cpu->gpr[2]; if (psx_taken_BFC24E0C) goto label_BFC24E38; label_BFC24E14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24E14: 02421821 addu $v1, $s2, $v0 */ cpu->gpr[3] = cpu->gpr[18] + cpu->gpr[2]; @@ -95614,10 +117550,16 @@ label_BFC24E14: cpu->gpr[1] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC24E18) goto label_BFC24E24; label_BFC24E20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC24E20: 2421007F addiu $at, $at, 127 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (127)); label_BFC24E24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC24E24: 000119C3 sra $v1, $at, 7 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[1] >> 7u); @@ -95630,10 +117572,16 @@ label_BFC24E24: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24E30u); return; } g_debug_last_store_pc = 0xBFC24E30u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC24E2C) goto label_BFC24E54; label_BFC24E34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC24E34: 02421821 addu $v1, $s2, $v0 */ cpu->gpr[3] = cpu->gpr[18] + cpu->gpr[2]; label_BFC24E38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24E38: 04610002 bgez $v1, 0xBFC24E44 */ uint32_t psx_brA_BFC24E38 = cpu->gpr[3]; @@ -95642,10 +117590,16 @@ label_BFC24E38: cpu->gpr[1] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC24E38) goto label_BFC24E44; label_BFC24E40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC24E40: 2421007F addiu $at, $at, 127 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (127)); label_BFC24E44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC24E44: 000119C3 sra $v1, $at, 7 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[1] >> 7u); @@ -95656,6 +117610,9 @@ label_BFC24E44: /* 0xBFC24E50: AE080010 sw $t0, 16($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24E50u); return; } g_debug_last_store_pc = 0xBFC24E50u; cpu->write_word(psx_addr, cpu->gpr[8]); } label_BFC24E54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC24E54: 8E18000C lw $t8, 12($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (12)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24E54u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -95672,6 +117629,9 @@ label_BFC24E54: cpu->gpr[9] = cpu->gpr[0] - cpu->gpr[3]; if (psx_taken_BFC24E64) goto label_BFC24E78; label_BFC24E6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24E6C: 10000003 beq $zero, $zero, 0xBFC24E7C */ uint32_t psx_brA_BFC24E6C = cpu->gpr[0]; uint32_t psx_brB_BFC24E6C = cpu->gpr[0]; @@ -95680,14 +117640,23 @@ label_BFC24E6C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24E70u); return; } g_debug_last_store_pc = 0xBFC24E70u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC24E6C) goto label_BFC24E7C; label_BFC24E74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC24E74: 00034823 subu $t1, $zero, $v1 */ cpu->gpr[9] = cpu->gpr[0] - cpu->gpr[3]; label_BFC24E78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC24E78: AE090014 sw $t1, 20($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24E78u); return; } g_debug_last_store_pc = 0xBFC24E78u; cpu->write_word(psx_addr, cpu->gpr[9]); } label_BFC24E7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC24E7C: 26940001 addiu $s4, $s4, 1 */ cpu->gpr[20] = (uint32_t)((int32_t)cpu->gpr[20] + (1)); @@ -95699,6 +117668,9 @@ label_BFC24E7C: cpu->gpr[31] = 0x8003CE8Cu; psx_dispatch(cpu, 0x80046F00u); label_BFC24E8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24E8C: 0282082A slt $at, $s4, $v0 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[20] < (int32_t)cpu->gpr[2] ? 1 : 0); @@ -95709,10 +117681,16 @@ label_BFC24E8C: cpu->gpr[4] = cpu->gpr[21] + cpu->gpr[0]; if (psx_taken_BFC24E90) goto label_BFC24D98; label_BFC24E98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC24E98: 02A02021 addu $a0, $s5, $zero */ cpu->gpr[4] = cpu->gpr[21] + cpu->gpr[0]; label_BFC24E9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24E9C: 0C011B24 jal 0xB0046C90 */ /* 0xBFC24EA0: 24050020 addiu $a1, $zero, 32 */ @@ -95720,6 +117698,9 @@ label_BFC24E9C: cpu->gpr[31] = 0x8003CEA4u; psx_dispatch(cpu, 0x80046C90u); label_BFC24EA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24EA4: 240B0001 addiu $t3, $zero, 1 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -95728,10 +117709,16 @@ label_BFC24EA4: /* 0xBFC24EAC: AC2B9EC8 sw $t3, -24888($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24888)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24EACu); return; } g_debug_last_store_pc = 0xBFC24EACu; cpu->write_word(psx_addr, cpu->gpr[11]); } label_BFC24EB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC24EB0: 8FA200D4 lw $v0, 212($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (212)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24EB0u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } label_BFC24EB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC24EB4: 00000000 nop */ /* nop */ @@ -95746,6 +117733,9 @@ label_BFC24EB4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (212)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24EC4u); return; } g_debug_last_store_pc = 0xBFC24EC4u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC24EC0) goto label_BFC24C1C; label_BFC24EC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC24EC8: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; @@ -95760,6 +117750,9 @@ label_BFC24EC8: /* 0xBFC24EDC: 8FBF003C lw $ra, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24EDCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC24EE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC24EE0: 8FB00024 lw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24EE0u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -95822,6 +117815,9 @@ void func_1FC24F00(CPUState* cpu) { } } label_BFC24F00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC24F00: 27BDFFB8 addiu $sp, $sp, -72 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-72)); @@ -95838,6 +117834,9 @@ label_BFC24F00: cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (60)); if (psx_taken_BFC24F10) goto label_BFC24F2C; label_BFC24F18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC24F18: 240F001E addiu $t7, $zero, 30 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (30)); @@ -95850,16 +117849,25 @@ label_BFC24F18: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24F24u); return; } g_debug_last_store_pc = 0xBFC24F24u; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC24F20) goto label_BFC24F34; label_BFC24F28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC24F28: 2418003C addiu $t8, $zero, 60 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (60)); label_BFC24F2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24F2C: 24040010 addiu $a0, $zero, 16 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); /* 0xBFC24F30: AFB80040 sw $t8, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24F30u); return; } g_debug_last_store_pc = 0xBFC24F30u; cpu->write_word(psx_addr, cpu->gpr[24]); } label_BFC24F34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24F34: 0C00F46A jal 0xB003D1A8 */ /* 0xBFC24F38: 00000000 nop */ @@ -95867,6 +117875,9 @@ label_BFC24F34: cpu->gpr[31] = 0x8003CF3Cu; psx_dispatch(cpu, 0x8003D1A8u); label_BFC24F3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24F3C: 10400004 beq $v0, $zero, 0xBFC24F50 */ uint32_t psx_brA_BFC24F3C = cpu->gpr[2]; uint32_t psx_brB_BFC24F3C = cpu->gpr[0]; @@ -95875,6 +117886,9 @@ label_BFC24F3C: cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC24F3C) goto label_BFC24F50; label_BFC24F44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24F44: 8FA50048 lw $a1, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24F44u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -95885,6 +117899,9 @@ label_BFC24F44: cpu->gpr[10] = cpu->gpr[5] << 2u; if (psx_taken_BFC24F48) goto label_BFC24F84; label_BFC24F50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC24F50: 8FA50048 lw $a1, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24F50u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -95907,6 +117924,9 @@ label_BFC24F50: cpu->gpr[10] = cpu->gpr[5] << 2u; if (psx_taken_BFC24F6C) goto label_BFC24F84; label_BFC24F74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24F74: 24040001 addiu $a0, $zero, 1 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -95917,10 +117937,16 @@ label_BFC24F74: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24F7Cu); return; } g_debug_last_store_pc = 0xBFC24F7Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC24F78) goto label_BFC24F90; label_BFC24F80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC24F80: 00055080 sll $t2, $a1, 2 */ cpu->gpr[10] = cpu->gpr[5] << 2u; label_BFC24F84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24F84: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -95929,6 +117955,9 @@ label_BFC24F84: /* 0xBFC24F8C: AC22A1C8 sw $v0, -24120($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24120)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC24F8Cu); return; } g_debug_last_store_pc = 0xBFC24F8Cu; cpu->write_word(psx_addr, cpu->gpr[2]); } label_BFC24F90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24F90: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -95939,6 +117968,9 @@ label_BFC24F90: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC24F94) goto label_BFC25154; label_BFC24F9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC24F9C: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -95959,6 +117991,9 @@ label_BFC24F9C: /* nop */ if (psx_taken_BFC24FB4) goto label_BFC25148; label_BFC24FBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24FBC: 2404000A addiu $a0, $zero, 10 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); @@ -95968,6 +118003,9 @@ label_BFC24FBC: cpu->gpr[31] = 0x8003CFC8u; psx_dispatch(cpu, 0x8004665Cu); label_BFC24FC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24FC8: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -95977,6 +118015,9 @@ label_BFC24FC8: cpu->gpr[31] = 0x8003CFD4u; psx_dispatch(cpu, 0x80044A50u); label_BFC24FD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24FD4: 0C011997 jal 0xB004665C */ /* 0xBFC24FD8: 2404000B addiu $a0, $zero, 11 */ @@ -95984,6 +118025,9 @@ label_BFC24FD4: cpu->gpr[31] = 0x8003CFDCu; psx_dispatch(cpu, 0x8004665Cu); label_BFC24FDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24FDC: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -95993,6 +118037,9 @@ label_BFC24FDC: cpu->gpr[31] = 0x8003CFE8u; psx_dispatch(cpu, 0x80044A50u); label_BFC24FE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24FE8: 0C011997 jal 0xB004665C */ /* 0xBFC24FEC: 2404006E addiu $a0, $zero, 110 */ @@ -96000,6 +118047,9 @@ label_BFC24FE8: cpu->gpr[31] = 0x8003CFF0u; psx_dispatch(cpu, 0x8004665Cu); label_BFC24FF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC24FF0: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -96009,6 +118059,9 @@ label_BFC24FF0: cpu->gpr[31] = 0x8003CFFCu; psx_dispatch(cpu, 0x80044A50u); label_BFC24FFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC24FFC: 0C011997 jal 0xB004665C */ /* 0xBFC25000: 2404006F addiu $a0, $zero, 111 */ @@ -96016,6 +118069,9 @@ label_BFC24FFC: cpu->gpr[31] = 0x8003D004u; psx_dispatch(cpu, 0x8004665Cu); label_BFC25004: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC25004: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -96025,6 +118081,9 @@ label_BFC25004: cpu->gpr[31] = 0x8003D010u; psx_dispatch(cpu, 0x80044A50u); label_BFC25010: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25010: 0C011997 jal 0xB004665C */ /* 0xBFC25014: 2404000C addiu $a0, $zero, 12 */ @@ -96032,6 +118091,9 @@ label_BFC25010: cpu->gpr[31] = 0x8003D018u; psx_dispatch(cpu, 0x8004665Cu); label_BFC25018: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC25018: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -96041,6 +118103,9 @@ label_BFC25018: cpu->gpr[31] = 0x8003D024u; psx_dispatch(cpu, 0x80044A50u); label_BFC25024: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25024: 0C011997 jal 0xB004665C */ /* 0xBFC25028: 2404000D addiu $a0, $zero, 13 */ @@ -96048,6 +118113,9 @@ label_BFC25024: cpu->gpr[31] = 0x8003D02Cu; psx_dispatch(cpu, 0x8004665Cu); label_BFC2502C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2502C: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -96057,6 +118125,9 @@ label_BFC2502C: cpu->gpr[31] = 0x8003D038u; psx_dispatch(cpu, 0x80044A50u); label_BFC25038: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25038: 0C011997 jal 0xB004665C */ /* 0xBFC2503C: 24040011 addiu $a0, $zero, 17 */ @@ -96064,6 +118135,9 @@ label_BFC25038: cpu->gpr[31] = 0x8003D040u; psx_dispatch(cpu, 0x8004665Cu); label_BFC25040: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC25040: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -96073,6 +118147,9 @@ label_BFC25040: cpu->gpr[31] = 0x8003D04Cu; psx_dispatch(cpu, 0x80044A50u); label_BFC2504C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2504C: 0C011997 jal 0xB004665C */ /* 0xBFC25050: 24040012 addiu $a0, $zero, 18 */ @@ -96080,6 +118157,9 @@ label_BFC2504C: cpu->gpr[31] = 0x8003D054u; psx_dispatch(cpu, 0x8004665Cu); label_BFC25054: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC25054: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -96089,6 +118169,9 @@ label_BFC25054: cpu->gpr[31] = 0x8003D060u; psx_dispatch(cpu, 0x80044A50u); label_BFC25060: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25060: 0C011997 jal 0xB004665C */ /* 0xBFC25064: 24040013 addiu $a0, $zero, 19 */ @@ -96096,6 +118179,9 @@ label_BFC25060: cpu->gpr[31] = 0x8003D068u; psx_dispatch(cpu, 0x8004665Cu); label_BFC25068: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC25068: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -96105,6 +118191,9 @@ label_BFC25068: cpu->gpr[31] = 0x8003D074u; psx_dispatch(cpu, 0x80044A50u); label_BFC25074: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC25074: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -96128,6 +118217,9 @@ label_BFC25074: cpu->gpr[31] = 0x8003D09Cu; psx_dispatch(cpu, 0x80044A50u); label_BFC2509C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2509C: 0C011997 jal 0xB004665C */ /* 0xBFC250A0: 24040004 addiu $a0, $zero, 4 */ @@ -96135,6 +118227,9 @@ label_BFC2509C: cpu->gpr[31] = 0x8003D0A4u; psx_dispatch(cpu, 0x8004665Cu); label_BFC250A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC250A4: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -96144,6 +118239,9 @@ label_BFC250A4: cpu->gpr[31] = 0x8003D0B0u; psx_dispatch(cpu, 0x80044A50u); label_BFC250B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC250B0: 0C011997 jal 0xB004665C */ /* 0xBFC250B4: 24040005 addiu $a0, $zero, 5 */ @@ -96151,6 +118249,9 @@ label_BFC250B0: cpu->gpr[31] = 0x8003D0B8u; psx_dispatch(cpu, 0x8004665Cu); label_BFC250B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC250B8: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; @@ -96160,6 +118261,9 @@ label_BFC250B8: cpu->gpr[31] = 0x8003D0C4u; psx_dispatch(cpu, 0x80044A50u); label_BFC250C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC250C4: 8FA40040 lw $a0, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC250C4u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -96169,6 +118273,9 @@ label_BFC250C4: cpu->gpr[31] = 0x8003D0D0u; psx_dispatch(cpu, 0x8003B078u); label_BFC250D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC250D0: 0C01195D jal 0xB0046574 */ /* 0xBFC250D4: 00000000 nop */ @@ -96176,6 +118283,9 @@ label_BFC250D0: cpu->gpr[31] = 0x8003D0D8u; psx_dispatch(cpu, 0x80046574u); label_BFC250D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC250D8: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -96186,6 +118296,9 @@ label_BFC250D8: /* nop */ if (psx_taken_BFC250DC) goto label_BFC250F8; label_BFC250E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC250E4: 0C01195D jal 0xB0046574 */ /* 0xBFC250E8: 00000000 nop */ @@ -96193,6 +118306,9 @@ label_BFC250E4: cpu->gpr[31] = 0x8003D0ECu; psx_dispatch(cpu, 0x80046574u); label_BFC250EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC250EC: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -96203,6 +118319,9 @@ label_BFC250EC: /* nop */ if (psx_taken_BFC250F0) goto label_BFC250E4; label_BFC250F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC250F8: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -96214,6 +118333,9 @@ label_BFC250F8: cpu->gpr[31] = 0x8003D108u; psx_dispatch(cpu, 0x8004644Cu); label_BFC25108: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25108: 0C00F928 jal 0xB003E4A0 */ /* 0xBFC2510C: 00000000 nop */ @@ -96221,6 +118343,9 @@ label_BFC25108: cpu->gpr[31] = 0x8003D110u; psx_dispatch(cpu, 0x8003E4A0u); label_BFC25110: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC25110: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; @@ -96232,6 +118357,9 @@ label_BFC25110: cpu->gpr[31] = 0x8003D120u; psx_dispatch(cpu, 0x8003B500u); label_BFC25120: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC25120: 8FB90028 lw $t9, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25120u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -96254,6 +118382,9 @@ label_BFC25120: /* 0xBFC25144: AC209EC8 sw $zero, -24888($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24888)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25144u); return; } g_debug_last_store_pc = 0xBFC25144u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC25148: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25148: 10000013 beq $zero, $zero, 0xBFC25198 */ uint32_t psx_brA_BFC25148 = cpu->gpr[0]; uint32_t psx_brB_BFC25148 = cpu->gpr[0]; @@ -96262,10 +118393,16 @@ label_BFC25148: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC25148) goto label_BFC25198; label_BFC25150: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC25150: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC25154: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25154: 1481000F bne $a0, $at, 0xBFC25194 */ uint32_t psx_brA_BFC25154 = cpu->gpr[4]; uint32_t psx_brB_BFC25154 = cpu->gpr[1]; @@ -96274,6 +118411,9 @@ label_BFC25154: cpu->gpr[1] = 0x80060000u; if (psx_taken_BFC25154) goto label_BFC25194; label_BFC2515C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2515C: 0C00F4C7 jal 0xB003D31C */ /* 0xBFC25160: AC206BBC sw $zero, 27580($at) */ @@ -96281,6 +118421,9 @@ label_BFC2515C: cpu->gpr[31] = 0x8003D164u; psx_dispatch(cpu, 0x8003D31Cu); label_BFC25164: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC25164: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -96294,6 +118437,9 @@ label_BFC25164: cpu->gpr[31] = 0x8003D178u; psx_dispatch(cpu, 0x8004F334u); label_BFC25178: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25178: 0C00C696 jal 0xB0031A58 */ /* 0xBFC2517C: 24040001 addiu $a0, $zero, 1 */ @@ -96301,6 +118447,9 @@ label_BFC25178: cpu->gpr[31] = 0x8003D180u; psx_dispatch(cpu, 0x80031A58u); label_BFC25180: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC25180: 240A0001 addiu $t2, $zero, 1 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -96315,10 +118464,16 @@ label_BFC25180: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-2)); if (psx_taken_BFC2518C) goto label_BFC25198; label_BFC25194: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC25194: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC25198: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC25198: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25198u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -96343,6 +118498,9 @@ void func_1FC251A8(CPUState* cpu) { } } label_BFC251A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC251A8: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -96354,6 +118512,9 @@ label_BFC251A8: cpu->gpr[31] = 0x8003D1B8u; psx_dispatch(cpu, 0x8005AB00u); label_BFC251B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC251B8: 8FA40020 lw $a0, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC251B8u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -96363,6 +118524,9 @@ label_BFC251B8: cpu->gpr[31] = 0x8003D1C4u; psx_dispatch(cpu, 0x8005AB10u); label_BFC251C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC251C4: 14400003 bne $v0, $zero, 0xBFC251D4 */ uint32_t psx_brA_BFC251C4 = cpu->gpr[2]; uint32_t psx_brB_BFC251C4 = cpu->gpr[0]; @@ -96371,6 +118535,9 @@ label_BFC251C4: /* nop */ if (psx_taken_BFC251C4) goto label_BFC251D4; label_BFC251CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC251CC: 10000008 beq $zero, $zero, 0xBFC251F0 */ uint32_t psx_brA_BFC251CC = cpu->gpr[0]; uint32_t psx_brB_BFC251CC = cpu->gpr[0]; @@ -96379,6 +118546,9 @@ label_BFC251CC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC251CC) goto label_BFC251F0; label_BFC251D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC251D4: 0C00F480 jal 0xB003D200 */ /* 0xBFC251D8: 00000000 nop */ @@ -96386,6 +118556,9 @@ label_BFC251D4: cpu->gpr[31] = 0x8003D1DCu; psx_dispatch(cpu, 0x8003D200u); label_BFC251DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC251DC: 00027080 sll $t6, $v0, 2 */ cpu->gpr[14] = cpu->gpr[2] << 2u; @@ -96398,6 +118571,9 @@ label_BFC251DC: /* 0xBFC251EC: 00000000 nop */ /* nop */ label_BFC251F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC251F0: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC251F0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -96427,6 +118603,9 @@ void func_1FC25200(CPUState* cpu) { } } label_BFC25200: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC25200: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -96437,6 +118616,9 @@ label_BFC25200: /* 0xBFC2520C: AFBF001C sw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2520Cu); return; } g_debug_last_store_pc = 0xBFC2520Cu; cpu->write_word(psx_addr, cpu->gpr[31]); } label_BFC25210: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC25210: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -96448,6 +118630,9 @@ label_BFC25210: cpu->gpr[31] = 0x8003D220u; psx_dispatch(cpu, 0x8005AA00u); label_BFC25220: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25220: 14500005 bne $v0, $s0, 0xBFC25238 */ uint32_t psx_brA_BFC25220 = cpu->gpr[2]; uint32_t psx_brB_BFC25220 = cpu->gpr[16]; @@ -96456,6 +118641,9 @@ label_BFC25220: /* nop */ if (psx_taken_BFC25220) goto label_BFC25238; label_BFC25228: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25228: 0C00F4AF jal 0xB003D2BC */ /* 0xBFC2522C: 00000000 nop */ @@ -96463,6 +118651,9 @@ label_BFC25228: cpu->gpr[31] = 0x8003D230u; psx_dispatch(cpu, 0x8003D2BCu); label_BFC25230: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25230: 1000001E beq $zero, $zero, 0xBFC252AC */ uint32_t psx_brA_BFC25230 = cpu->gpr[0]; uint32_t psx_brB_BFC25230 = cpu->gpr[0]; @@ -96471,6 +118662,9 @@ label_BFC25230: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC25230) goto label_BFC252AC; label_BFC25238: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC25238: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -96482,6 +118676,9 @@ label_BFC25238: cpu->gpr[31] = 0x8003D248u; psx_dispatch(cpu, 0x8005AA00u); label_BFC25248: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25248: 14500005 bne $v0, $s0, 0xBFC25260 */ uint32_t psx_brA_BFC25248 = cpu->gpr[2]; uint32_t psx_brB_BFC25248 = cpu->gpr[16]; @@ -96490,6 +118687,9 @@ label_BFC25248: /* nop */ if (psx_taken_BFC25248) goto label_BFC25260; label_BFC25250: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25250: 0C00F4AF jal 0xB003D2BC */ /* 0xBFC25254: 00000000 nop */ @@ -96497,6 +118697,9 @@ label_BFC25250: cpu->gpr[31] = 0x8003D258u; psx_dispatch(cpu, 0x8003D2BCu); label_BFC25258: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25258: 10000014 beq $zero, $zero, 0xBFC252AC */ uint32_t psx_brA_BFC25258 = cpu->gpr[0]; uint32_t psx_brB_BFC25258 = cpu->gpr[0]; @@ -96505,6 +118708,9 @@ label_BFC25258: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC25258) goto label_BFC252AC; label_BFC25260: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC25260: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -96516,6 +118722,9 @@ label_BFC25260: cpu->gpr[31] = 0x8003D270u; psx_dispatch(cpu, 0x8005AA00u); label_BFC25270: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25270: 14500005 bne $v0, $s0, 0xBFC25288 */ uint32_t psx_brA_BFC25270 = cpu->gpr[2]; uint32_t psx_brB_BFC25270 = cpu->gpr[16]; @@ -96524,6 +118733,9 @@ label_BFC25270: /* nop */ if (psx_taken_BFC25270) goto label_BFC25288; label_BFC25278: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25278: 0C00F4AF jal 0xB003D2BC */ /* 0xBFC2527C: 00000000 nop */ @@ -96531,6 +118743,9 @@ label_BFC25278: cpu->gpr[31] = 0x8003D280u; psx_dispatch(cpu, 0x8003D2BCu); label_BFC25280: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25280: 1000000A beq $zero, $zero, 0xBFC252AC */ uint32_t psx_brA_BFC25280 = cpu->gpr[0]; uint32_t psx_brB_BFC25280 = cpu->gpr[0]; @@ -96539,6 +118754,9 @@ label_BFC25280: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC25280) goto label_BFC252AC; label_BFC25288: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC25288: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -96550,6 +118768,9 @@ label_BFC25288: cpu->gpr[31] = 0x8003D298u; psx_dispatch(cpu, 0x8005AA00u); label_BFC25298: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25298: 1450FFDD bne $v0, $s0, 0xBFC25210 */ uint32_t psx_brA_BFC25298 = cpu->gpr[2]; uint32_t psx_brB_BFC25298 = cpu->gpr[16]; @@ -96558,6 +118779,9 @@ label_BFC25298: /* nop */ if (psx_taken_BFC25298) goto label_BFC25210; label_BFC252A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC252A0: 0C00F4AF jal 0xB003D2BC */ /* 0xBFC252A4: 00000000 nop */ @@ -96565,10 +118789,16 @@ label_BFC252A0: cpu->gpr[31] = 0x8003D2A8u; psx_dispatch(cpu, 0x8003D2BCu); label_BFC252A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC252A8: 24020003 addiu $v0, $zero, 3 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); label_BFC252AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC252AC: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC252ACu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -96594,6 +118824,9 @@ void func_1FC252BC(CPUState* cpu) { } } label_BFC252BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC252BC: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -96609,6 +118842,9 @@ label_BFC252BC: cpu->gpr[31] = 0x8003D2D4u; psx_dispatch(cpu, 0x8005AB20u); label_BFC252D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC252D4: 3C04F400 lui $a0, 0xF400 */ cpu->gpr[4] = 0xF4000000u; @@ -96620,6 +118856,9 @@ label_BFC252D4: cpu->gpr[31] = 0x8003D2E4u; psx_dispatch(cpu, 0x8005AB20u); label_BFC252E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC252E4: 3C04F400 lui $a0, 0xF400 */ cpu->gpr[4] = 0xF4000000u; @@ -96631,6 +118870,9 @@ label_BFC252E4: cpu->gpr[31] = 0x8003D2F4u; psx_dispatch(cpu, 0x8005AB20u); label_BFC252F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC252F4: 3C04F400 lui $a0, 0xF400 */ cpu->gpr[4] = 0xF4000000u; @@ -96642,6 +118884,9 @@ label_BFC252F4: cpu->gpr[31] = 0x8003D304u; psx_dispatch(cpu, 0x8005AB20u); label_BFC25304: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC25304: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25304u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -96656,6 +118901,9 @@ label_BFC25304: void func_1FC25314(CPUState* cpu) { debug_server_log_call_entry(0x1FC25314u); label_BFC25314: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25314: 03E00008 jr $ra */ /* 0xBFC25318: 00000000 nop */ @@ -96679,6 +118927,9 @@ void func_1FC2531C(CPUState* cpu) { } } label_BFC2531C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2531C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -96690,6 +118941,9 @@ label_BFC2531C: cpu->gpr[31] = 0x8003D32Cu; psx_dispatch(cpu, 0x8005AA90u); label_BFC2532C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2532C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -96701,6 +118955,9 @@ label_BFC2532C: cpu->gpr[31] = 0x8003D33Cu; psx_dispatch(cpu, 0x8005AB30u); label_BFC2533C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2533C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -96712,6 +118969,9 @@ label_BFC2533C: cpu->gpr[31] = 0x8003D34Cu; psx_dispatch(cpu, 0x8005AB30u); label_BFC2534C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2534C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -96723,6 +118983,9 @@ label_BFC2534C: cpu->gpr[31] = 0x8003D35Cu; psx_dispatch(cpu, 0x8005AB30u); label_BFC2535C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2535C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -96734,6 +118997,9 @@ label_BFC2535C: cpu->gpr[31] = 0x8003D36Cu; psx_dispatch(cpu, 0x8005AB30u); label_BFC2536C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2536C: 0C016A84 jal 0xB005AA10 */ /* 0xBFC25370: 00000000 nop */ @@ -96741,6 +119007,9 @@ label_BFC2536C: cpu->gpr[31] = 0x8003D374u; psx_dispatch(cpu, 0x8005AA10u); label_BFC25374: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC25374: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25374u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -96768,6 +119037,9 @@ void func_1FC25390(CPUState* cpu) { } } label_BFC25390: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC25390: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -96782,6 +119054,9 @@ label_BFC25390: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC253A0u); return; } g_debug_last_store_pc = 0xBFC253A0u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC2539C) goto label_BFC254A0; label_BFC253A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC253A4: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -96796,6 +119071,9 @@ label_BFC253A4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC253B4u); return; } g_debug_last_store_pc = 0xBFC253B4u; cpu->write_word(psx_addr, cpu->gpr[17]); } if (psx_taken_BFC253B0) goto label_BFC253C0; label_BFC253B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC253B8: 10000002 beq $zero, $zero, 0xBFC253C4 */ uint32_t psx_brA_BFC253B8 = cpu->gpr[0]; uint32_t psx_brB_BFC253B8 = cpu->gpr[0]; @@ -96804,10 +119082,16 @@ label_BFC253B8: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (74)); if (psx_taken_BFC253B8) goto label_BFC253C4; label_BFC253C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC253C0: 24030016 addiu $v1, $zero, 22 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (22)); label_BFC253C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC253C4: 3C11F200 lui $s1, 0xF200 */ cpu->gpr[17] = 0xF2000000u; @@ -96821,6 +119105,9 @@ label_BFC253C4: cpu->gpr[31] = 0x8003D3D8u; psx_dispatch(cpu, 0x80059F88u); label_BFC253D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC253D8: 8FA3002C lw $v1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC253D8u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -96830,6 +119117,9 @@ label_BFC253D8: cpu->gpr[31] = 0x8003D3E4u; psx_dispatch(cpu, 0x80059ED8u); label_BFC253E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC253E4: 8FA3002C lw $v1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC253E4u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -96850,6 +119140,9 @@ label_BFC253E4: /* nop */ if (psx_taken_BFC253FC) goto label_BFC25418; label_BFC25404: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25404: 0C0167B6 jal 0xB0059ED8 */ /* 0xBFC25408: 02202021 addu $a0, $s1, $zero */ @@ -96857,6 +119150,9 @@ label_BFC25404: cpu->gpr[31] = 0x8003D40Cu; psx_dispatch(cpu, 0x80059ED8u); label_BFC2540C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2540C: 0050082A slt $at, $v0, $s0 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (int32_t)cpu->gpr[16] ? 1 : 0); @@ -96867,6 +119163,9 @@ label_BFC2540C: /* nop */ if (psx_taken_BFC25410) goto label_BFC25404; label_BFC25418: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC25418: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -96892,6 +119191,9 @@ label_BFC25418: cpu->gpr[31] = 0x8003D444u; psx_dispatch(cpu, 0x8004F434u); label_BFC25444: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC25444: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -96913,6 +119215,9 @@ label_BFC25444: cpu->gpr[31] = 0x8003D468u; psx_dispatch(cpu, 0x8004F4ECu); label_BFC25468: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC25468: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -96930,6 +119235,9 @@ label_BFC25468: cpu->gpr[31] = 0x8003D484u; psx_dispatch(cpu, 0x8004F3E0u); label_BFC25484: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC25484: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -96946,6 +119254,9 @@ label_BFC25484: /* 0xBFC2549C: AC383C58 sw $t8, 15448($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (15448)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2549Cu); return; } g_debug_last_store_pc = 0xBFC2549Cu; cpu->write_word(psx_addr, cpu->gpr[24]); } label_BFC254A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC254A0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC254A0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -96975,6 +119286,9 @@ void func_1FC254B0(CPUState* cpu) { } } label_BFC254B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC254B0: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -96986,6 +119300,9 @@ label_BFC254B0: cpu->gpr[31] = 0x8003D4C0u; psx_dispatch(cpu, 0x8005AA90u); label_BFC254C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC254C0: 3C04F200 lui $a0, 0xF200 */ cpu->gpr[4] = 0xF2000000u; @@ -97003,6 +119320,9 @@ label_BFC254C0: cpu->gpr[31] = 0x8003D4DCu; psx_dispatch(cpu, 0x8005A9D0u); label_BFC254DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC254DC: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -97014,6 +119334,9 @@ label_BFC254DC: cpu->gpr[31] = 0x8003D4ECu; psx_dispatch(cpu, 0x8005A9E0u); label_BFC254EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC254EC: 3C04F200 lui $a0, 0xF200 */ cpu->gpr[4] = 0xF2000000u; @@ -97027,6 +119350,9 @@ label_BFC254EC: cpu->gpr[31] = 0x8003D500u; psx_dispatch(cpu, 0x80059E30u); label_BFC25500: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC25500: 3C04F200 lui $a0, 0xF200 */ cpu->gpr[4] = 0xF2000000u; @@ -97036,6 +119362,9 @@ label_BFC25500: cpu->gpr[31] = 0x8003D50Cu; psx_dispatch(cpu, 0x80059F10u); label_BFC2550C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2550C: 3C04F200 lui $a0, 0xF200 */ cpu->gpr[4] = 0xF2000000u; @@ -97049,6 +119378,9 @@ label_BFC2550C: cpu->gpr[31] = 0x8003D520u; psx_dispatch(cpu, 0x80059E30u); label_BFC25520: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC25520: 3C04F200 lui $a0, 0xF200 */ cpu->gpr[4] = 0xF2000000u; @@ -97058,6 +119390,9 @@ label_BFC25520: cpu->gpr[31] = 0x8003D52Cu; psx_dispatch(cpu, 0x80059F10u); label_BFC2552C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2552C: 0C016A84 jal 0xB005AA10 */ /* 0xBFC25530: 00000000 nop */ @@ -97065,6 +119400,9 @@ label_BFC2552C: cpu->gpr[31] = 0x8003D534u; psx_dispatch(cpu, 0x8005AA10u); label_BFC25534: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC25534: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -97099,6 +119437,9 @@ void func_1FC25558(CPUState* cpu) { } } label_BFC25558: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC25558: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -97114,6 +119455,9 @@ label_BFC25558: cpu->gpr[31] = 0x8003D570u; psx_dispatch(cpu, 0x8005AB30u); label_BFC25570: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC25570: 3C04F200 lui $a0, 0xF200 */ cpu->gpr[4] = 0xF2000000u; @@ -97127,6 +119471,9 @@ label_BFC25570: cpu->gpr[31] = 0x8003D584u; psx_dispatch(cpu, 0x80059E30u); label_BFC25584: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC25584: 3C04F200 lui $a0, 0xF200 */ cpu->gpr[4] = 0xF2000000u; @@ -97136,6 +119483,9 @@ label_BFC25584: cpu->gpr[31] = 0x8003D590u; psx_dispatch(cpu, 0x80059F54u); label_BFC25590: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC25590: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25590u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -97158,6 +119508,9 @@ void func_1FC255A0(CPUState* cpu) { } } label_BFC255A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC255A0: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -97189,6 +119542,9 @@ label_BFC255A0: cpu->gpr[31] = 0x8003D5D8u; psx_dispatch(cpu, 0x8003D754u); label_BFC255D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC255D8: 8FA2001C lw $v0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC255D8u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -97213,6 +119569,9 @@ label_BFC255D8: /* 0xBFC25600: 03194021 addu $t0, $t8, $t9 */ cpu->gpr[8] = cpu->gpr[24] + cpu->gpr[25]; label_BFC25604: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC25604: 8D210000 lw $at, 0($t1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25604u); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -97235,6 +119594,9 @@ label_BFC25604: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[8] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25624u); return; } g_debug_last_store_pc = 0xBFC25624u; cpu->write_word(psx_addr, cpu->gpr[1]); } if (psx_taken_BFC25620) goto label_BFC25604; label_BFC25628: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC25628: 8D210000 lw $at, 0($t1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25628u); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -97261,6 +119623,9 @@ label_BFC25628: /* 0xBFC25654: AD0A0004 sw $t2, 4($t0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[8] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25654u); return; } g_debug_last_store_pc = 0xBFC25654u; cpu->write_word(psx_addr, cpu->gpr[10]); } label_BFC25658: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC25658: 89C10003 lwl $at, 3($t6) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[14] + (3)); uint32_t psx_aligned = psx_addr & ~3u; uint32_t psx_byte_offset = psx_addr & 3u; uint32_t psx_shift_left = (3u - psx_byte_offset) * 8u; uint32_t psx_keep_mask = (1u << psx_shift_left) - 1u; uint32_t psx_word = cpu->read_word(psx_aligned); uint32_t psx_old_rt = cpu->gpr[1]; cpu->gpr[1] = (psx_old_rt & psx_keep_mask) | (psx_word << psx_shift_left); } @@ -97297,6 +119662,9 @@ label_BFC25658: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[13] + (-4)); uint32_t psx_aligned = psx_addr & ~3u; uint32_t psx_shift_bytes = psx_addr & 3u; uint32_t psx_shift_bits = psx_shift_bytes * 8u; uint32_t psx_keep_mask = 0xFFFFFF00u << ((3u - psx_shift_bytes) * 8u); uint32_t psx_mem = cpu->read_word(psx_aligned); uint32_t psx_new = (psx_mem & psx_keep_mask) | (cpu->gpr[1] << psx_shift_bits); g_debug_last_store_pc = 0xBFC25694u; cpu->write_word(psx_aligned, psx_new); } if (psx_taken_BFC25690) goto label_BFC25658; label_BFC25698: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC25698: 89C10003 lwl $at, 3($t6) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[14] + (3)); uint32_t psx_aligned = psx_addr & ~3u; uint32_t psx_byte_offset = psx_addr & 3u; uint32_t psx_shift_left = (3u - psx_byte_offset) * 8u; uint32_t psx_keep_mask = (1u << psx_shift_left) - 1u; uint32_t psx_word = cpu->read_word(psx_aligned); uint32_t psx_old_rt = cpu->gpr[1]; cpu->gpr[1] = (psx_old_rt & psx_keep_mask) | (psx_word << psx_shift_left); } @@ -97335,6 +119703,9 @@ label_BFC25698: void func_1FC256D8(CPUState* cpu) { debug_server_log_call_entry(0x1FC256D8u); label_BFC256D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC256D8: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -97345,6 +119716,9 @@ label_BFC256D8: /* nop */ if (psx_taken_BFC256DC) goto label_BFC25714; label_BFC256E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC256E4: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -97361,6 +119735,9 @@ label_BFC256E4: /* nop */ if (psx_taken_BFC256F4) goto label_BFC25714; label_BFC256FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC256FC: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -97377,6 +119754,9 @@ label_BFC256FC: /* nop */ if (psx_taken_BFC2570C) goto label_BFC256FC; label_BFC25714: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25714: 1480000B bne $a0, $zero, 0xBFC25744 */ uint32_t psx_brA_BFC25714 = cpu->gpr[4]; uint32_t psx_brB_BFC25714 = cpu->gpr[0]; @@ -97385,6 +119765,9 @@ label_BFC25714: /* nop */ if (psx_taken_BFC25714) goto label_BFC25744; label_BFC2571C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2571C: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -97399,6 +119782,9 @@ label_BFC2571C: /* nop */ if (psx_taken_BFC25728) goto label_BFC25744; label_BFC25730: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC25730: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -97413,6 +119799,9 @@ label_BFC25730: /* nop */ if (psx_taken_BFC2573C) goto label_BFC25730; label_BFC25744: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC25744: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -97435,6 +119824,9 @@ void func_1FC25754(CPUState* cpu) { } } label_BFC25754: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC25754: 27BDFFD0 addiu $sp, $sp, -48 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-48)); @@ -97463,6 +119855,9 @@ label_BFC25754: /* 0xBFC25784: 02609021 addu $s2, $s3, $zero */ cpu->gpr[18] = cpu->gpr[19] + cpu->gpr[0]; label_BFC25788: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC25788: 8E230000 lw $v1, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25788u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -97481,6 +119876,9 @@ label_BFC25788: /* nop */ if (psx_taken_BFC2579C) goto label_BFC25840; label_BFC257A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC257A4: 00107880 sll $t7, $s0, 2 */ cpu->gpr[15] = cpu->gpr[16] << 2u; @@ -97515,6 +119913,9 @@ label_BFC257A4: cpu->gpr[11] = cpu->gpr[5] << 8u; if (psx_taken_BFC257D8) goto label_BFC25800; label_BFC257E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC257E0: 26250004 addiu $a1, $s1, 4 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[17] + (4)); @@ -97524,6 +119925,9 @@ label_BFC257E0: cpu->gpr[31] = 0x8003D7ECu; psx_dispatch(cpu, 0x8003D884u); label_BFC257EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC257EC: 8E250000 lw $a1, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC257ECu); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -97536,6 +119940,9 @@ label_BFC257EC: /* 0xBFC257FC: 00055A00 sll $t3, $a1, 8 */ cpu->gpr[11] = cpu->gpr[5] << 8u; label_BFC25800: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC25800: 000B6202 srl $t4, $t3, 8 */ cpu->gpr[12] = cpu->gpr[11] >> 8u; @@ -97546,6 +119953,9 @@ label_BFC25800: /* nop */ if (psx_taken_BFC25804) goto label_BFC25840; label_BFC2580C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC2580C: 8E420000 lw $v0, 0($s2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[18] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2580Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -97576,6 +119986,9 @@ label_BFC2580C: cpu->gpr[17] = cpu->gpr[17] >> 8u; if (psx_taken_BFC25838) goto label_BFC25788; label_BFC25840: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC25840: 8E490000 lw $t1, 0($s2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[18] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25840u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -97616,6 +120029,9 @@ label_BFC25840: void func_1FC25884(CPUState* cpu) { debug_server_log_call_entry(0x1FC25884u); label_BFC25884: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC25884: 00C01021 addu $v0, $a2, $zero */ cpu->gpr[2] = cpu->gpr[6] + cpu->gpr[0]; @@ -97626,6 +120042,9 @@ label_BFC25884: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (-1)); if (psx_taken_BFC25888) goto label_BFC258AC; label_BFC25890: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC25890: 8CAE0000 lw $t6, 0($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25890u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -97644,6 +120063,9 @@ label_BFC25890: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC258A8u); return; } g_debug_last_store_pc = 0xBFC258A8u; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC258A4) goto label_BFC25890; label_BFC258AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC258AC: 03E00008 jr $ra */ /* 0xBFC258B0: 00000000 nop */ @@ -97654,6 +120076,9 @@ label_BFC258AC: void func_1FC2592C(CPUState* cpu) { debug_server_log_call_entry(0x1FC2592Cu); label_BFC2592C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2592C: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -97670,6 +120095,9 @@ label_BFC2592C: /* nop */ if (psx_taken_BFC2593C) goto label_BFC2594C; label_BFC25944: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25944: 10000008 beq $zero, $zero, 0xBFC25968 */ uint32_t psx_brA_BFC25944 = cpu->gpr[0]; uint32_t psx_brB_BFC25944 = cpu->gpr[0]; @@ -97678,6 +120106,9 @@ label_BFC25944: cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC25944) goto label_BFC25968; label_BFC2594C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2594C: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -97694,10 +120125,16 @@ label_BFC2594C: /* nop */ if (psx_taken_BFC2595C) goto label_BFC25968; label_BFC25964: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC25964: 00402021 addu $a0, $v0, $zero */ cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; label_BFC25968: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC25968: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -97714,6 +120151,9 @@ label_BFC25968: /* nop */ if (psx_taken_BFC25978) goto label_BFC25988; label_BFC25980: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25980: 10000008 beq $zero, $zero, 0xBFC259A4 */ uint32_t psx_brA_BFC25980 = cpu->gpr[0]; uint32_t psx_brB_BFC25980 = cpu->gpr[0]; @@ -97722,6 +120162,9 @@ label_BFC25980: cpu->gpr[5] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC25980) goto label_BFC259A4; label_BFC25988: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC25988: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -97738,10 +120181,16 @@ label_BFC25988: /* nop */ if (psx_taken_BFC25998) goto label_BFC259A4; label_BFC259A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC259A0: 00402821 addu $a1, $v0, $zero */ cpu->gpr[5] = cpu->gpr[2] + cpu->gpr[0]; label_BFC259A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC259A4: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; @@ -97758,6 +120207,9 @@ label_BFC259A4: void func_1FC259D8(CPUState* cpu) { debug_server_log_call_entry(0x1FC259D8u); label_BFC259D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC259D8: ACA00000 sw $zero, 0($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC259D8u); return; } g_debug_last_store_pc = 0xBFC259D8u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -97784,12 +120236,18 @@ label_BFC259D8: /* nop */ if (psx_taken_BFC259FC) goto label_BFC25A0C; label_BFC25A04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25A04: 03E00008 jr $ra */ /* 0xBFC25A08: 2402FFFF addiu $v0, $zero, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); return; label_BFC25A0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC25A0C: 90440001 lbu $a0, 1($v0) */ cpu->gpr[4] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[2] + (1))); @@ -97800,6 +120258,9 @@ label_BFC25A0C: cpu->gpr[3] = cpu->gpr[4] & 0xF0u; if (psx_taken_BFC25A10) goto label_BFC25B48; label_BFC25A18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC25A18: 24010012 addiu $at, $zero, 18 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (18)); @@ -97810,6 +120271,9 @@ label_BFC25A18: /* nop */ if (psx_taken_BFC25A1C) goto label_BFC25A2C; label_BFC25A24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25A24: 10000050 beq $zero, $zero, 0xBFC25B68 */ uint32_t psx_brA_BFC25A24 = cpu->gpr[0]; uint32_t psx_brB_BFC25A24 = cpu->gpr[0]; @@ -97818,6 +120282,9 @@ label_BFC25A24: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC25A24) goto label_BFC25B68; label_BFC25A2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC25A2C: 80590004 lb $t9, 4($v0) */ cpu->gpr[25] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[2] + (4))); @@ -97848,6 +120315,9 @@ label_BFC25A2C: /* nop */ if (psx_taken_BFC25A58) goto label_BFC25A74; label_BFC25A60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC25A60: 8CEC0000 lw $t4, 0($a3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[7] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25A60u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -97860,6 +120330,9 @@ label_BFC25A60: /* 0xBFC25A70: ACED0000 sw $t5, 0($a3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[7] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25A70u); return; } g_debug_last_store_pc = 0xBFC25A70u; cpu->write_word(psx_addr, cpu->gpr[13]); } label_BFC25A74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC25A74: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -97874,6 +120347,9 @@ label_BFC25A74: /* nop */ if (psx_taken_BFC25A80) goto label_BFC25AD4; label_BFC25A88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC25A88: 904F0003 lbu $t7, 3($v0) */ cpu->gpr[15] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[2] + (3))); @@ -97890,6 +120366,9 @@ label_BFC25A88: /* nop */ if (psx_taken_BFC25A98) goto label_BFC25AB4; label_BFC25AA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC25AA0: 8CE80000 lw $t0, 0($a3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[7] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25AA0u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -97902,6 +120381,9 @@ label_BFC25AA0: /* 0xBFC25AB0: ACE90000 sw $t1, 0($a3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[7] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25AB0u); return; } g_debug_last_store_pc = 0xBFC25AB0u; cpu->write_word(psx_addr, cpu->gpr[9]); } label_BFC25AB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC25AB4: 8CEA0000 lw $t2, 0($a3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[7] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25AB4u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -97916,6 +120398,9 @@ label_BFC25AB4: /* nop */ if (psx_taken_BFC25AC0) goto label_BFC25AD4; label_BFC25AC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC25AC8: 3C0C000F lui $t4, 0xF */ cpu->gpr[12] = 0x000F0000u; @@ -97924,6 +120409,9 @@ label_BFC25AC8: /* 0xBFC25AD0: ACEC0000 sw $t4, 0($a3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[7] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25AD0u); return; } g_debug_last_store_pc = 0xBFC25AD0u; cpu->write_word(psx_addr, cpu->gpr[12]); } label_BFC25AD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC25AD4: 3C0D8006 lui $t5, 0x8006 */ cpu->gpr[13] = 0x80060000u; @@ -97940,6 +120428,9 @@ label_BFC25AD4: cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC25AE4) goto label_BFC25B6C; label_BFC25AEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC25AEC: 8CEE0000 lw $t6, 0($a3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[7] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25AECu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -97952,6 +120443,9 @@ label_BFC25AEC: cpu->gpr[1] = 0x80060000u; if (psx_taken_BFC25AF4) goto label_BFC25B04; label_BFC25AFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25AFC: 1000001A beq $zero, $zero, 0xBFC25B68 */ uint32_t psx_brA_BFC25AFC = cpu->gpr[0]; uint32_t psx_brB_BFC25AFC = cpu->gpr[0]; @@ -97960,6 +120454,9 @@ label_BFC25AFC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (28344)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25B00u); return; } g_debug_last_store_pc = 0xBFC25B00u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC25AFC) goto label_BFC25B68; label_BFC25B04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC25B04: ACE00000 sw $zero, 0($a3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[7] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25B04u); return; } g_debug_last_store_pc = 0xBFC25B04u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -97972,6 +120469,9 @@ label_BFC25B04: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25B10u); return; } g_debug_last_store_pc = 0xBFC25B10u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC25B0C) goto label_BFC25B68; label_BFC25B14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC25B14: 904F0002 lbu $t7, 2($v0) */ cpu->gpr[15] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[2] + (2))); @@ -98002,6 +120502,9 @@ label_BFC25B14: cpu->gpr[3] = cpu->gpr[3] & 0xF0u; if (psx_taken_BFC25B40) goto label_BFC25B68; label_BFC25B48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC25B48: 24010010 addiu $at, $zero, 16 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); @@ -98012,6 +120515,9 @@ label_BFC25B48: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (32)); if (psx_taken_BFC25B4C) goto label_BFC25A18; label_BFC25B54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25B54: 1061FFEF beq $v1, $at, 0xBFC25B14 */ uint32_t psx_brA_BFC25B54 = cpu->gpr[3]; uint32_t psx_brB_BFC25B54 = cpu->gpr[1]; @@ -98020,6 +120526,9 @@ label_BFC25B54: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (64)); if (psx_taken_BFC25B54) goto label_BFC25B14; label_BFC25B5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25B5C: 1061FFED beq $v1, $at, 0xBFC25B14 */ uint32_t psx_brA_BFC25B5C = cpu->gpr[3]; uint32_t psx_brB_BFC25B5C = cpu->gpr[1]; @@ -98028,14 +120537,23 @@ label_BFC25B5C: /* nop */ if (psx_taken_BFC25B5C) goto label_BFC25B14; label_BFC25B64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC25B64: 2403FFFF addiu $v1, $zero, -1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); label_BFC25B68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC25B68: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; label_BFC25B6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25B6C: 03E00008 jr $ra */ /* 0xBFC25B70: 00000000 nop */ @@ -98056,6 +120574,9 @@ void func_1FC25B74(CPUState* cpu) { } } label_BFC25B74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC25B74: 27BDFFB8 addiu $sp, $sp, -72 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-72)); @@ -98079,6 +120600,9 @@ label_BFC25B74: cpu->gpr[31] = 0x8003DB9Cu; psx_dispatch(cpu, 0x8003D9D8u); label_BFC25B9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC25B9C: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -98089,6 +120613,9 @@ label_BFC25B9C: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC25BA0) goto label_BFC25BC0; label_BFC25BA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC25BA8: 24040001 addiu $a0, $zero, 1 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -98102,10 +120629,16 @@ label_BFC25BA8: cpu->gpr[31] = 0x8003DBBCu; psx_dispatch(cpu, 0x8003D9D8u); label_BFC25BBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC25BBC: 00401821 addu $v1, $v0, $zero */ cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; label_BFC25BC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC25BC0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -98120,6 +120653,9 @@ label_BFC25BC0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25BD0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC25BCC) goto label_BFC25C38; label_BFC25BD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC25BD4: 3C0F8006 lui $t7, 0x8006 */ cpu->gpr[15] = 0x80060000u; @@ -98143,6 +120679,9 @@ label_BFC25BD4: cpu->gpr[31] = 0x8003DBFCu; psx_dispatch(cpu, 0x8003D92Cu); label_BFC25BFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC25BFC: 3C098006 lui $t1, 0x8006 */ cpu->gpr[9] = 0x80060000u; @@ -98175,6 +120714,9 @@ label_BFC25BFC: /* 0xBFC25C34: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25C34u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC25C38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC25C38: 27BD0048 addiu $sp, $sp, 72 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (72)); @@ -98187,6 +120729,9 @@ label_BFC25C38: void func_1FC25C74(CPUState* cpu) { debug_server_log_call_entry(0x1FC25C74u); label_BFC25C74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25C74: 03E00008 jr $ra */ /* 0xBFC25C78: 00000000 nop */ @@ -98197,6 +120742,9 @@ label_BFC25C74: void func_1FC25C7C(CPUState* cpu) { debug_server_log_call_entry(0x1FC25C7Cu); label_BFC25C7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25C7C: 03E00008 jr $ra */ /* 0xBFC25C80: 00000000 nop */ @@ -98207,6 +120755,9 @@ label_BFC25C7C: void func_1FC25C84(CPUState* cpu) { debug_server_log_call_entry(0x1FC25C84u); label_BFC25C84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25C84: 03E00008 jr $ra */ /* 0xBFC25C88: 00000000 nop */ @@ -98217,6 +120768,9 @@ label_BFC25C84: void func_1FC25C8C(CPUState* cpu) { debug_server_log_call_entry(0x1FC25C8Cu); label_BFC25C8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25C8C: 03E00008 jr $ra */ /* 0xBFC25C90: AFA40000 sw $a0, 0($sp) */ @@ -98227,6 +120781,9 @@ label_BFC25C8C: void func_1FC25C94(CPUState* cpu) { debug_server_log_call_entry(0x1FC25C94u); label_BFC25C94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25C94: 03E00008 jr $ra */ /* 0xBFC25C98: 00000000 nop */ @@ -98237,6 +120794,9 @@ label_BFC25C94: void func_1FC25CB0(CPUState* cpu) { debug_server_log_call_entry(0x1FC25CB0u); label_BFC25CB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25CB0: 03E00008 jr $ra */ /* 0xBFC25CB4: AFA40000 sw $a0, 0($sp) */ @@ -98247,6 +120807,9 @@ label_BFC25CB0: void func_1FC25CB8(CPUState* cpu) { debug_server_log_call_entry(0x1FC25CB8u); label_BFC25CB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25CB8: 03E00008 jr $ra */ /* 0xBFC25CBC: 00000000 nop */ @@ -98267,6 +120830,9 @@ void func_1FC25CC0(CPUState* cpu) { } } label_BFC25CC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC25CC0: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -98290,6 +120856,9 @@ label_BFC25CC0: cpu->gpr[31] = 0x8003DCE8u; psx_dispatch(cpu, 0x8003D92Cu); label_BFC25CE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC25CE8: 8FA40020 lw $a0, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25CE8u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -98308,6 +120877,9 @@ label_BFC25CE8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC25CFC) goto label_BFC25D18; label_BFC25D04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC25D04: 3C0E8006 lui $t6, 0x8006 */ cpu->gpr[14] = 0x80060000u; @@ -98322,6 +120894,9 @@ label_BFC25D04: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC25D10) goto label_BFC25D20; label_BFC25D18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25D18: 14810019 bne $a0, $at, 0xBFC25D80 */ uint32_t psx_brA_BFC25D18 = cpu->gpr[4]; uint32_t psx_brB_BFC25D18 = cpu->gpr[1]; @@ -98330,6 +120905,9 @@ label_BFC25D18: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25D1Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC25D18) goto label_BFC25D80; label_BFC25D20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC25D20: 3C0F8006 lui $t7, 0x8006 */ cpu->gpr[15] = 0x80060000u; @@ -98359,6 +120937,9 @@ label_BFC25D20: cpu->gpr[31] = 0x8003DD54u; psx_dispatch(cpu, 0x800447F4u); label_BFC25D54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC25D54: 3C0A8006 lui $t2, 0x8006 */ cpu->gpr[10] = 0x80060000u; @@ -98382,10 +120963,16 @@ label_BFC25D54: cpu->gpr[31] = 0x8003DD7Cu; psx_dispatch(cpu, 0x80044B80u); label_BFC25D7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC25D7C: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25D7Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC25D80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC25D80: 27BD0020 addiu $sp, $sp, 32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (32)); @@ -98413,6 +121000,9 @@ void func_1FC25D8C(CPUState* cpu) { } } label_BFC25D8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC25D8C: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -98430,6 +121020,9 @@ label_BFC25D8C: cpu->gpr[31] = 0x8003DDA8u; psx_dispatch(cpu, 0x8003DC84u); label_BFC25DA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25DA8: 0C00F71F jal 0xB003DC7C */ /* 0xBFC25DAC: 00000000 nop */ @@ -98437,6 +121030,9 @@ label_BFC25DA8: cpu->gpr[31] = 0x8003DDB0u; psx_dispatch(cpu, 0x8003DC7Cu); label_BFC25DB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25DB0: 0C00F725 jal 0xB003DC94 */ /* 0xBFC25DB4: 00000000 nop */ @@ -98444,6 +121040,9 @@ label_BFC25DB0: cpu->gpr[31] = 0x8003DDB8u; psx_dispatch(cpu, 0x8003DC94u); label_BFC25DB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25DB8: 0C00F71D jal 0xB003DC74 */ /* 0xBFC25DBC: 00000000 nop */ @@ -98451,6 +121050,9 @@ label_BFC25DB8: cpu->gpr[31] = 0x8003DDC0u; psx_dispatch(cpu, 0x8003DC74u); label_BFC25DC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC25DC0: 3C108008 lui $s0, 0x8008 */ cpu->gpr[16] = 0x80080000u; @@ -98469,6 +121071,9 @@ label_BFC25DC0: /* 0xBFC25DDC: 24120001 addiu $s2, $zero, 1 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC25DE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC25DE0: 8E250000 lw $a1, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25DE0u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -98480,6 +121085,9 @@ label_BFC25DE0: cpu->gpr[31] = 0x8003DDF0u; psx_dispatch(cpu, 0x800442F0u); label_BFC25DF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC25DF0: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -98491,6 +121099,9 @@ label_BFC25DF0: cpu->gpr[31] = 0x8003DE00u; psx_dispatch(cpu, 0x800447F4u); label_BFC25E00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC25E00: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -98500,6 +121111,9 @@ label_BFC25E00: cpu->gpr[31] = 0x8003DE0Cu; psx_dispatch(cpu, 0x80044A9Cu); label_BFC25E0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC25E0C: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -98509,6 +121123,9 @@ label_BFC25E0C: cpu->gpr[31] = 0x8003DE18u; psx_dispatch(cpu, 0x80044AE0u); label_BFC25E18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC25E18: 26310004 addiu $s1, $s1, 4 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (4)); @@ -98521,6 +121138,9 @@ label_BFC25E18: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (112)); if (psx_taken_BFC25E20) goto label_BFC25DE0; label_BFC25E28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC25E28: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -98535,10 +121155,16 @@ label_BFC25E28: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC25E34) goto label_BFC25E40; label_BFC25E3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC25E3C: AC209EC8 sw $zero, -24888($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24888)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25E3Cu); return; } g_debug_last_store_pc = 0xBFC25E3Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC25E40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC25E40: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25E40u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -98561,6 +121187,9 @@ label_BFC25E40: void func_1FC25E60(CPUState* cpu) { debug_server_log_call_entry(0x1FC25E60u); label_BFC25E60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC25E60: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; @@ -98602,6 +121231,9 @@ void func_1FC25E8C(CPUState* cpu) { } } label_BFC25E8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC25E8C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -98613,6 +121245,9 @@ label_BFC25E8C: cpu->gpr[31] = 0x8003DE9Cu; psx_dispatch(cpu, 0x8003EAF8u); label_BFC25E9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC25E9C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -98630,6 +121265,9 @@ label_BFC25E9C: cpu->gpr[31] = 0x8003DEB8u; psx_dispatch(cpu, 0x8005AB40u); label_BFC25EB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC25EB8: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -98643,6 +121281,9 @@ label_BFC25EB8: cpu->gpr[31] = 0x8003DECCu; psx_dispatch(cpu, 0x8003DE60u); label_BFC25ECC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC25ECC: 24040050 addiu $a0, $zero, 80 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (80)); @@ -98652,6 +121293,9 @@ label_BFC25ECC: cpu->gpr[31] = 0x8003DED8u; psx_dispatch(cpu, 0x8003D92Cu); label_BFC25ED8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25ED8: 0C016AD4 jal 0xB005AB50 */ /* 0xBFC25EDC: 00000000 nop */ @@ -98659,6 +121303,9 @@ label_BFC25ED8: cpu->gpr[31] = 0x8003DEE0u; psx_dispatch(cpu, 0x8005AB50u); label_BFC25EE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25EE0: 0C016A60 jal 0xB005A980 */ /* 0xBFC25EE4: 00002021 addu $a0, $zero, $zero */ @@ -98666,6 +121313,9 @@ label_BFC25EE0: cpu->gpr[31] = 0x8003DEE8u; psx_dispatch(cpu, 0x8005A980u); label_BFC25EE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC25EE8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25EE8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -98697,6 +121347,9 @@ void func_1FC25EF8(CPUState* cpu) { } } label_BFC25EF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC25EF8: 27BDFFA8 addiu $sp, $sp, -88 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-88)); @@ -98723,6 +121376,9 @@ label_BFC25EF8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25F20u); return; } g_debug_last_store_pc = 0xBFC25F20u; cpu->write_word(psx_addr, cpu->gpr[7]); } if (psx_taken_BFC25F1C) goto label_BFC25F34; label_BFC25F24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC25F24: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; @@ -98734,6 +121390,9 @@ label_BFC25F24: cpu->gpr[31] = 0x8003DF34u; psx_dispatch(cpu, 0x8003DCB0u); label_BFC25F34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25F34: 0C011934 jal 0xB00464D0 */ /* 0xBFC25F38: 00000000 nop */ @@ -98741,6 +121400,9 @@ label_BFC25F34: cpu->gpr[31] = 0x8003DF3Cu; psx_dispatch(cpu, 0x800464D0u); label_BFC25F3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC25F3C: 3C098011 lui $t1, 0x8011 */ cpu->gpr[9] = 0x80110000u; @@ -98749,6 +121411,9 @@ label_BFC25F3C: /* 0xBFC25F44: 00005021 addu $t2, $zero, $zero */ cpu->gpr[10] = cpu->gpr[0] + cpu->gpr[0]; label_BFC25F48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC25F48: 8D280004 lw $t0, 4($t1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25F48u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -98761,6 +121426,9 @@ label_BFC25F48: /* nop */ if (psx_taken_BFC25F50) goto label_BFC25F6C; label_BFC25F58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25F58: 14480004 bne $v0, $t0, 0xBFC25F6C */ uint32_t psx_brA_BFC25F58 = cpu->gpr[2]; uint32_t psx_brB_BFC25F58 = cpu->gpr[8]; @@ -98769,6 +121437,9 @@ label_BFC25F58: /* nop */ if (psx_taken_BFC25F58) goto label_BFC25F6C; label_BFC25F60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC25F60: 8D230000 lw $v1, 0($t1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25F60u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -98779,6 +121450,9 @@ label_BFC25F60: /* nop */ if (psx_taken_BFC25F64) goto label_BFC25F74; label_BFC25F6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25F6C: 1000FFF6 beq $zero, $zero, 0xBFC25F48 */ uint32_t psx_brA_BFC25F6C = cpu->gpr[0]; uint32_t psx_brB_BFC25F6C = cpu->gpr[0]; @@ -98787,6 +121461,9 @@ label_BFC25F6C: cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[9] + (1672)); if (psx_taken_BFC25F6C) goto label_BFC25F48; label_BFC25F74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC25F74: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -98801,6 +121478,9 @@ label_BFC25F74: /* nop */ if (psx_taken_BFC25F80) goto label_BFC25FF0; label_BFC25F88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC25F88: 3C188006 lui $t8, 0x8006 */ cpu->gpr[24] = 0x80060000u; @@ -98815,6 +121495,9 @@ label_BFC25F88: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (180) ? 1 : 0); if (psx_taken_BFC25F94) goto label_BFC25FF0; label_BFC25F9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25F9C: 14200009 bne $at, $zero, 0xBFC25FC4 */ uint32_t psx_brA_BFC25F9C = cpu->gpr[1]; uint32_t psx_brB_BFC25F9C = cpu->gpr[0]; @@ -98823,6 +121506,9 @@ label_BFC25F9C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); if (psx_taken_BFC25F9C) goto label_BFC25FC4; label_BFC25FA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25FA4: 14610008 bne $v1, $at, 0xBFC25FC8 */ uint32_t psx_brA_BFC25FA4 = cpu->gpr[3]; uint32_t psx_brB_BFC25FA4 = cpu->gpr[1]; @@ -98831,6 +121517,9 @@ label_BFC25FA4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (437) ? 1 : 0); if (psx_taken_BFC25FA4) goto label_BFC25FC8; label_BFC25FAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC25FAC: 8FAE0068 lw $t6, 104($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (104)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25FACu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -98847,10 +121536,16 @@ label_BFC25FAC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[14] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25FC0u); return; } g_debug_last_store_pc = 0xBFC25FC0u; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC25FBC) goto label_BFC26318; label_BFC25FC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC25FC4: 2A0101B5 slti $at, $s0, 437 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (437) ? 1 : 0); label_BFC25FC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25FC8: 10200009 beq $at, $zero, 0xBFC25FF0 */ uint32_t psx_brA_BFC25FC8 = cpu->gpr[1]; uint32_t psx_brB_BFC25FC8 = cpu->gpr[0]; @@ -98859,6 +121554,9 @@ label_BFC25FC8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); if (psx_taken_BFC25FC8) goto label_BFC25FF0; label_BFC25FD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC25FD0: 14610007 bne $v1, $at, 0xBFC25FF0 */ uint32_t psx_brA_BFC25FD0 = cpu->gpr[3]; uint32_t psx_brB_BFC25FD0 = cpu->gpr[1]; @@ -98867,6 +121565,9 @@ label_BFC25FD0: /* nop */ if (psx_taken_BFC25FD0) goto label_BFC25FF0; label_BFC25FD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC25FD8: 8FB80068 lw $t8, 104($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (104)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25FD8u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -98883,6 +121584,9 @@ label_BFC25FD8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[24] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC25FECu); return; } g_debug_last_store_pc = 0xBFC25FECu; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC25FE8) goto label_BFC26318; label_BFC25FF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC25FF0: 3C198006 lui $t9, 0x8006 */ cpu->gpr[25] = 0x80060000u; @@ -98931,10 +121635,16 @@ label_BFC25FF0: cpu->gpr[1] = cpu->gpr[24] + cpu->gpr[0]; if (psx_taken_BFC26040) goto label_BFC2604C; label_BFC26048: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC26048: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC2604C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2604C: 0001C843 sra $t9, $at, 1 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -98949,16 +121659,25 @@ label_BFC2604C: cpu->gpr[1] = cpu->gpr[14] + cpu->gpr[0]; if (psx_taken_BFC26058) goto label_BFC26064; label_BFC26060: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC26060: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC26064: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26064: 00017843 sra $t7, $at, 1 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); /* 0xBFC26068: 022F8821 addu $s1, $s1, $t7 */ cpu->gpr[17] = cpu->gpr[17] + cpu->gpr[15]; label_BFC2606C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2606C: 8D280004 lw $t0, 4($t1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2606Cu); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -98971,6 +121690,9 @@ label_BFC2606C: /* nop */ if (psx_taken_BFC26074) goto label_BFC26294; label_BFC2607C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2607C: 8D380034 lw $t8, 52($t1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2607Cu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -98983,6 +121705,9 @@ label_BFC2607C: /* nop */ if (psx_taken_BFC26084) goto label_BFC26294; label_BFC2608C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2608C: 000BC8C0 sll $t9, $t3, 3 */ cpu->gpr[25] = cpu->gpr[11] << 3u; @@ -99003,6 +121728,9 @@ label_BFC2608C: /* nop */ if (psx_taken_BFC260A4) goto label_BFC26294; label_BFC260AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC260AC: 000AC080 sll $t8, $t2, 2 */ cpu->gpr[24] = cpu->gpr[10] << 2u; @@ -99045,10 +121773,16 @@ label_BFC260AC: cpu->gpr[1] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC260F0) goto label_BFC260FC; label_BFC260F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC260F8: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC260FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC260FC: 0001C043 sra $t8, $at, 1 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -99061,10 +121795,16 @@ label_BFC260FC: cpu->gpr[1] = cpu->gpr[6] + cpu->gpr[0]; if (psx_taken_BFC26104) goto label_BFC26110; label_BFC2610C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2610C: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC26110: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC26110: 00017043 sra $t6, $at, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -99077,6 +121817,9 @@ label_BFC26110: cpu->gpr[7] = cpu->gpr[25] - cpu->gpr[14]; if (psx_taken_BFC26118) goto label_BFC26294; label_BFC26120: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC26120: 00A47821 addu $t7, $a1, $a0 */ cpu->gpr[15] = cpu->gpr[5] + cpu->gpr[4]; @@ -99089,6 +121832,9 @@ label_BFC26120: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[7] < (int32_t)cpu->gpr[17] ? 1 : 0); if (psx_taken_BFC26128) goto label_BFC26294; label_BFC26130: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26130: 10200058 beq $at, $zero, 0xBFC26294 */ uint32_t psx_brA_BFC26130 = cpu->gpr[1]; uint32_t psx_brB_BFC26130 = cpu->gpr[0]; @@ -99097,6 +121843,9 @@ label_BFC26130: /* nop */ if (psx_taken_BFC26130) goto label_BFC26294; label_BFC26138: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC26138: 00E6C021 addu $t8, $a3, $a2 */ cpu->gpr[24] = cpu->gpr[7] + cpu->gpr[6]; @@ -99109,6 +121858,9 @@ label_BFC26138: cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[10] + (1)); if (psx_taken_BFC26140) goto label_BFC26298; label_BFC26148: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26148: 10480019 beq $v0, $t0, 0xBFC261B0 */ uint32_t psx_brA_BFC26148 = cpu->gpr[2]; uint32_t psx_brB_BFC26148 = cpu->gpr[8]; @@ -99117,6 +121869,9 @@ label_BFC26148: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2614Cu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } if (psx_taken_BFC26148) goto label_BFC261B0; label_BFC26150: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC26150: 8D39002C lw $t9, 44($t1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26150u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -99131,6 +121886,9 @@ label_BFC26150: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26160u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } if (psx_taken_BFC2615C) goto label_BFC261B0; label_BFC26164: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC26164: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -99145,6 +121903,9 @@ label_BFC26164: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (22)); if (psx_taken_BFC26170) goto label_BFC26198; label_BFC26178: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26178: 15010008 bne $t0, $at, 0xBFC2619C */ uint32_t psx_brA_BFC26178 = cpu->gpr[8]; uint32_t psx_brB_BFC26178 = cpu->gpr[1]; @@ -99153,6 +121914,9 @@ label_BFC26178: cpu->gpr[4] = cpu->gpr[8] + cpu->gpr[0]; if (psx_taken_BFC26178) goto label_BFC2619C; label_BFC26180: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC26180: 2404000A addiu $a0, $zero, 10 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); @@ -99162,6 +121926,9 @@ label_BFC26180: cpu->gpr[31] = 0x8003E18Cu; psx_dispatch(cpu, 0x8004644Cu); label_BFC2618C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2618C: 8FA90034 lw $t1, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2618Cu); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -99172,10 +121939,16 @@ label_BFC2618C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26194u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } if (psx_taken_BFC26190) goto label_BFC261B0; label_BFC26198: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC26198: 01002021 addu $a0, $t0, $zero */ cpu->gpr[4] = cpu->gpr[8] + cpu->gpr[0]; label_BFC2619C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2619C: 0C011913 jal 0xB004644C */ /* 0xBFC261A0: AFA90034 sw $t1, 52($sp) */ @@ -99183,6 +121956,9 @@ label_BFC2619C: cpu->gpr[31] = 0x8003E1A4u; psx_dispatch(cpu, 0x8004644Cu); label_BFC261A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC261A4: 8FA90034 lw $t1, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC261A4u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -99191,6 +121967,9 @@ label_BFC261A4: /* 0xBFC261AC: 8FB80038 lw $t8, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC261ACu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } label_BFC261B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC261B0: 8FB90060 lw $t9, 96($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (96)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC261B0u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -99209,6 +121988,9 @@ label_BFC261B0: /* nop */ if (psx_taken_BFC261C4) goto label_BFC26208; label_BFC261CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC261CC: 8D2F002C lw $t7, 44($t1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC261CCu); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -99223,6 +122005,9 @@ label_BFC261CC: /* nop */ if (psx_taken_BFC261D8) goto label_BFC2628C; label_BFC261E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC261E0: 24040001 addiu $a0, $zero, 1 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -99232,6 +122017,9 @@ label_BFC261E0: cpu->gpr[31] = 0x8003E1ECu; psx_dispatch(cpu, 0x8003B500u); label_BFC261EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC261EC: 8FA90034 lw $t1, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC261ECu); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -99245,6 +122033,9 @@ label_BFC261EC: cpu->gpr[31] = 0x8003E200u; psx_dispatch(cpu, 0x8003B524u); label_BFC26200: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26200: 10000022 beq $zero, $zero, 0xBFC2628C */ uint32_t psx_brA_BFC26200 = cpu->gpr[0]; uint32_t psx_brB_BFC26200 = cpu->gpr[0]; @@ -99253,6 +122044,9 @@ label_BFC26200: /* nop */ if (psx_taken_BFC26200) goto label_BFC2628C; label_BFC26208: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC26208: 3C198006 lui $t9, 0x8006 */ cpu->gpr[25] = 0x80060000u; @@ -99267,6 +122061,9 @@ label_BFC26208: /* nop */ if (psx_taken_BFC26214) goto label_BFC2628C; label_BFC2621C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2621C: 3C0E8004 lui $t6, 0x8004 */ cpu->gpr[14] = 0x80040000u; @@ -99279,6 +122076,9 @@ label_BFC2621C: /* nop */ if (psx_taken_BFC26224) goto label_BFC26254; label_BFC2622C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2622C: 8FAF0064 lw $t7, 100($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2622Cu); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -99295,6 +122095,9 @@ label_BFC2622C: /* nop */ if (psx_taken_BFC2623C) goto label_BFC26254; label_BFC26244: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26244: 0C00F99C jal 0xB003E670 */ /* 0xBFC26248: 00000000 nop */ @@ -99302,6 +122105,9 @@ label_BFC26244: cpu->gpr[31] = 0x8003E24Cu; psx_dispatch(cpu, 0x8003E670u); label_BFC2624C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2624C: 10000032 beq $zero, $zero, 0xBFC26318 */ uint32_t psx_brA_BFC2624C = cpu->gpr[0]; uint32_t psx_brB_BFC2624C = cpu->gpr[0]; @@ -99310,6 +122116,9 @@ label_BFC2624C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-2)); if (psx_taken_BFC2624C) goto label_BFC26318; label_BFC26254: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC26254: 3C198003 lui $t9, 0x8003 */ cpu->gpr[25] = 0x80030000u; @@ -99322,6 +122131,9 @@ label_BFC26254: /* nop */ if (psx_taken_BFC2625C) goto label_BFC2628C; label_BFC26264: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC26264: 8FAE0064 lw $t6, 100($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26264u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -99338,6 +122150,9 @@ label_BFC26264: /* nop */ if (psx_taken_BFC26274) goto label_BFC2628C; label_BFC2627C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2627C: 0C00F99C jal 0xB003E670 */ /* 0xBFC26280: 00000000 nop */ @@ -99345,6 +122160,9 @@ label_BFC2627C: cpu->gpr[31] = 0x8003E284u; psx_dispatch(cpu, 0x8003E670u); label_BFC26284: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26284: 10000024 beq $zero, $zero, 0xBFC26318 */ uint32_t psx_brA_BFC26284 = cpu->gpr[0]; uint32_t psx_brB_BFC26284 = cpu->gpr[0]; @@ -99353,6 +122171,9 @@ label_BFC26284: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-2)); if (psx_taken_BFC26284) goto label_BFC26318; label_BFC2628C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2628C: 10000022 beq $zero, $zero, 0xBFC26318 */ uint32_t psx_brA_BFC2628C = cpu->gpr[0]; uint32_t psx_brB_BFC2628C = cpu->gpr[0]; @@ -99361,10 +122182,16 @@ label_BFC2628C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC2628C) goto label_BFC26318; label_BFC26294: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC26294: 254A0001 addiu $t2, $t2, 1 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[10] + (1)); label_BFC26298: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26298: 154CFF74 bne $t2, $t4, 0xBFC2606C */ uint32_t psx_brA_BFC26298 = cpu->gpr[10]; uint32_t psx_brB_BFC26298 = cpu->gpr[12]; @@ -99373,6 +122200,9 @@ label_BFC26298: cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[9] + (1672)); if (psx_taken_BFC26298) goto label_BFC2606C; label_BFC262A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC262A0: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -99387,6 +122217,9 @@ label_BFC262A0: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC262AC) goto label_BFC26318; label_BFC262B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC262B4: 3C198006 lui $t9, 0x8006 */ cpu->gpr[25] = 0x80060000u; @@ -99401,6 +122234,9 @@ label_BFC262B4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[17] < (114) ? 1 : 0); if (psx_taken_BFC262C0) goto label_BFC26314; label_BFC262C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC262C8: 14200012 bne $at, $zero, 0xBFC26314 */ uint32_t psx_brA_BFC262C8 = cpu->gpr[1]; uint32_t psx_brB_BFC262C8 = cpu->gpr[0]; @@ -99409,6 +122245,9 @@ label_BFC262C8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[17] < (363) ? 1 : 0); if (psx_taken_BFC262C8) goto label_BFC26314; label_BFC262D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC262D0: 10200010 beq $at, $zero, 0xBFC26314 */ uint32_t psx_brA_BFC262D0 = cpu->gpr[1]; uint32_t psx_brB_BFC262D0 = cpu->gpr[0]; @@ -99417,6 +122256,9 @@ label_BFC262D0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (21) ? 1 : 0); if (psx_taken_BFC262D0) goto label_BFC26314; label_BFC262D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC262D8: 14200007 bne $at, $zero, 0xBFC262F8 */ uint32_t psx_brA_BFC262D8 = cpu->gpr[1]; uint32_t psx_brB_BFC262D8 = cpu->gpr[0]; @@ -99425,6 +122267,9 @@ label_BFC262D8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (179) ? 1 : 0); if (psx_taken_BFC262D8) goto label_BFC262F8; label_BFC262E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC262E0: 10200006 beq $at, $zero, 0xBFC262FC */ uint32_t psx_brA_BFC262E0 = cpu->gpr[1]; uint32_t psx_brB_BFC262E0 = cpu->gpr[0]; @@ -99433,6 +122278,9 @@ label_BFC262E0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (423) ? 1 : 0); if (psx_taken_BFC262E0) goto label_BFC262FC; label_BFC262E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC262E8: 0C00ED49 jal 0xB003B524 */ /* 0xBFC262EC: 00002021 addu $a0, $zero, $zero */ @@ -99440,6 +122288,9 @@ label_BFC262E8: cpu->gpr[31] = 0x8003E2F0u; psx_dispatch(cpu, 0x8003B524u); label_BFC262F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC262F0: 10000009 beq $zero, $zero, 0xBFC26318 */ uint32_t psx_brA_BFC262F0 = cpu->gpr[0]; uint32_t psx_brB_BFC262F0 = cpu->gpr[0]; @@ -99448,10 +122299,16 @@ label_BFC262F0: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC262F0) goto label_BFC26318; label_BFC262F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC262F8: 2A0101A7 slti $at, $s0, 423 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (423) ? 1 : 0); label_BFC262FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC262FC: 14200005 bne $at, $zero, 0xBFC26314 */ uint32_t psx_brA_BFC262FC = cpu->gpr[1]; uint32_t psx_brB_BFC262FC = cpu->gpr[0]; @@ -99460,6 +122317,9 @@ label_BFC262FC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (581) ? 1 : 0); if (psx_taken_BFC262FC) goto label_BFC26314; label_BFC26304: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26304: 10200004 beq $at, $zero, 0xBFC26318 */ uint32_t psx_brA_BFC26304 = cpu->gpr[1]; uint32_t psx_brB_BFC26304 = cpu->gpr[0]; @@ -99468,6 +122328,9 @@ label_BFC26304: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC26304) goto label_BFC26318; label_BFC2630C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2630C: 0C00ED49 jal 0xB003B524 */ /* 0xBFC26310: 24040001 addiu $a0, $zero, 1 */ @@ -99475,10 +122338,16 @@ label_BFC2630C: cpu->gpr[31] = 0x8003E314u; psx_dispatch(cpu, 0x8003B524u); label_BFC26314: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC26314: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC26318: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC26318: 8FBF002C lw $ra, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26318u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -99506,6 +122375,9 @@ void func_1FC2632C(CPUState* cpu) { } } label_BFC2632C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2632C: 3C0E8006 lui $t6, 0x8006 */ cpu->gpr[14] = 0x80060000u; @@ -99522,6 +122394,9 @@ label_BFC2632C: cpu->gpr[8] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC2633C) goto label_BFC26360; label_BFC26344: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC26344: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; @@ -99535,12 +122410,18 @@ label_BFC26344: cpu->gpr[31] = 0x8003E358u; psx_dispatch(cpu, 0x8003DCB0u); label_BFC26358: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26358: 8FA80018 lw $t0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26358u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } /* 0xBFC2635C: 00000000 nop */ /* nop */ label_BFC26360: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26360: 0C011934 jal 0xB00464D0 */ /* 0xBFC26364: AFA80018 sw $t0, 24($sp) */ @@ -99548,6 +122429,9 @@ label_BFC26360: cpu->gpr[31] = 0x8003E368u; psx_dispatch(cpu, 0x800464D0u); label_BFC26368: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC26368: 3C048011 lui $a0, 0x8011 */ cpu->gpr[4] = 0x80110000u; @@ -99558,6 +122442,9 @@ label_BFC26368: /* 0xBFC26374: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; label_BFC26378: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC26378: 8C830004 lw $v1, 4($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26378u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -99570,6 +122457,9 @@ label_BFC26378: /* nop */ if (psx_taken_BFC26380) goto label_BFC26390; label_BFC26388: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26388: 10000007 beq $zero, $zero, 0xBFC263A8 */ uint32_t psx_brA_BFC26388 = cpu->gpr[0]; uint32_t psx_brB_BFC26388 = cpu->gpr[0]; @@ -99578,6 +122468,9 @@ label_BFC26388: cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC26388) goto label_BFC263A8; label_BFC26390: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26390: 14430003 bne $v0, $v1, 0xBFC263A0 */ uint32_t psx_brA_BFC26390 = cpu->gpr[2]; uint32_t psx_brB_BFC26390 = cpu->gpr[3]; @@ -99586,6 +122479,9 @@ label_BFC26390: /* nop */ if (psx_taken_BFC26390) goto label_BFC263A0; label_BFC26398: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26398: 10000003 beq $zero, $zero, 0xBFC263A8 */ uint32_t psx_brA_BFC26398 = cpu->gpr[0]; uint32_t psx_brB_BFC26398 = cpu->gpr[0]; @@ -99594,6 +122490,9 @@ label_BFC26398: cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC26398) goto label_BFC263A8; label_BFC263A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC263A0: 1000FFF5 beq $zero, $zero, 0xBFC26378 */ uint32_t psx_brA_BFC263A0 = cpu->gpr[0]; uint32_t psx_brB_BFC263A0 = cpu->gpr[0]; @@ -99602,6 +122501,9 @@ label_BFC263A0: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (1672)); if (psx_taken_BFC263A0) goto label_BFC26378; label_BFC263A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC263A8: 3C048011 lui $a0, 0x8011 */ cpu->gpr[4] = 0x80110000u; @@ -99620,6 +122522,9 @@ label_BFC263A8: /* 0xBFC263C4: 24840EC8 addiu $a0, $a0, 3784 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (3784)); label_BFC263C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC263C8: 8C830004 lw $v1, 4($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC263C8u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -99632,6 +122537,9 @@ label_BFC263C8: /* nop */ if (psx_taken_BFC263D0) goto label_BFC26438; label_BFC263D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC263D8: 14430015 bne $v0, $v1, 0xBFC26430 */ uint32_t psx_brA_BFC263D8 = cpu->gpr[2]; uint32_t psx_brB_BFC263D8 = cpu->gpr[3]; @@ -99640,6 +122548,9 @@ label_BFC263D8: /* nop */ if (psx_taken_BFC263D8) goto label_BFC26430; label_BFC263E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC263E0: 8C830034 lw $v1, 52($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC263E0u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -99652,6 +122563,9 @@ label_BFC263E0: /* nop */ if (psx_taken_BFC263E8) goto label_BFC2640C; label_BFC263F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC263F0: 01057824 and $t7, $t0, $a1 */ cpu->gpr[15] = cpu->gpr[8] & cpu->gpr[5]; @@ -99662,6 +122576,9 @@ label_BFC263F0: /* nop */ if (psx_taken_BFC263F4) goto label_BFC2640C; label_BFC263FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC263FC: 0C00F99C jal 0xB003E670 */ /* 0xBFC26400: 00000000 nop */ @@ -99669,6 +122586,9 @@ label_BFC263FC: cpu->gpr[31] = 0x8003E404u; psx_dispatch(cpu, 0x8003E670u); label_BFC26404: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26404: 1000000D beq $zero, $zero, 0xBFC2643C */ uint32_t psx_brA_BFC26404 = cpu->gpr[0]; uint32_t psx_brB_BFC26404 = cpu->gpr[0]; @@ -99677,6 +122597,9 @@ label_BFC26404: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-2)); if (psx_taken_BFC26404) goto label_BFC2643C; label_BFC2640C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2640C: 14E30008 bne $a3, $v1, 0xBFC26430 */ uint32_t psx_brA_BFC2640C = cpu->gpr[7]; uint32_t psx_brB_BFC2640C = cpu->gpr[3]; @@ -99685,6 +122608,9 @@ label_BFC2640C: /* nop */ if (psx_taken_BFC2640C) goto label_BFC26430; label_BFC26414: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC26414: 0105C024 and $t8, $t0, $a1 */ cpu->gpr[24] = cpu->gpr[8] & cpu->gpr[5]; @@ -99695,6 +122621,9 @@ label_BFC26414: /* nop */ if (psx_taken_BFC26418) goto label_BFC26430; label_BFC26420: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26420: 0C00F99C jal 0xB003E670 */ /* 0xBFC26424: 00000000 nop */ @@ -99702,6 +122631,9 @@ label_BFC26420: cpu->gpr[31] = 0x8003E428u; psx_dispatch(cpu, 0x8003E670u); label_BFC26428: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26428: 10000004 beq $zero, $zero, 0xBFC2643C */ uint32_t psx_brA_BFC26428 = cpu->gpr[0]; uint32_t psx_brB_BFC26428 = cpu->gpr[0]; @@ -99710,6 +122642,9 @@ label_BFC26428: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-2)); if (psx_taken_BFC26428) goto label_BFC2643C; label_BFC26430: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26430: 1000FFE5 beq $zero, $zero, 0xBFC263C8 */ uint32_t psx_brA_BFC26430 = cpu->gpr[0]; uint32_t psx_brB_BFC26430 = cpu->gpr[0]; @@ -99718,10 +122653,16 @@ label_BFC26430: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (1672)); if (psx_taken_BFC26430) goto label_BFC263C8; label_BFC26438: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC26438: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC2643C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2643C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2643Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -99745,6 +122686,9 @@ void func_1FC2644C(CPUState* cpu) { } } label_BFC2644C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2644C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -99762,6 +122706,9 @@ label_BFC2644C: cpu->gpr[31] = 0x8003E468u; psx_dispatch(cpu, 0x8003DE60u); label_BFC26468: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC26468: 24040064 addiu $a0, $zero, 100 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (100)); @@ -99771,6 +122718,9 @@ label_BFC26468: cpu->gpr[31] = 0x8003E474u; psx_dispatch(cpu, 0x8003D92Cu); label_BFC26474: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC26474: 240E0002 addiu $t6, $zero, 2 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); @@ -99813,6 +122763,9 @@ void func_1FC264A0(CPUState* cpu) { } } label_BFC264A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC264A0: 3C0E8006 lui $t6, 0x8006 */ cpu->gpr[14] = 0x80060000u; @@ -99829,6 +122782,9 @@ label_BFC264A0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC264B4u); return; } g_debug_last_store_pc = 0xBFC264B4u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC264B0) goto label_BFC264EC; label_BFC264B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC264B8: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; @@ -99844,6 +122800,9 @@ label_BFC264B8: cpu->gpr[31] = 0x8003E4D0u; psx_dispatch(cpu, 0x80044A50u); label_BFC264D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC264D0: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -99861,6 +122820,9 @@ label_BFC264D0: cpu->gpr[31] = 0x8003E4ECu; psx_dispatch(cpu, 0x800447F4u); label_BFC264EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC264EC: 0C00F72E jal 0xB003DCB8 */ /* 0xBFC264F0: 00000000 nop */ @@ -99868,6 +122830,9 @@ label_BFC264EC: cpu->gpr[31] = 0x8003E4F4u; psx_dispatch(cpu, 0x8003DCB8u); label_BFC264F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC264F4: 240400DE addiu $a0, $zero, 222 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (222)); @@ -99881,6 +122846,9 @@ label_BFC264F4: cpu->gpr[31] = 0x8003E508u; psx_dispatch(cpu, 0x8003DE60u); label_BFC26508: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26508: 0C011934 jal 0xB00464D0 */ /* 0xBFC2650C: 00000000 nop */ @@ -99888,6 +122856,9 @@ label_BFC26508: cpu->gpr[31] = 0x8003E510u; psx_dispatch(cpu, 0x800464D0u); label_BFC26510: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26510: 0C011997 jal 0xB004665C */ /* 0xBFC26514: 00402021 addu $a0, $v0, $zero */ @@ -99895,6 +122866,9 @@ label_BFC26510: cpu->gpr[31] = 0x8003E518u; psx_dispatch(cpu, 0x8004665Cu); label_BFC26518: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC26518: 84440042 lh $a0, 66($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (66)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26518u); return; } cpu->gpr[4] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -99908,6 +122882,9 @@ label_BFC26518: cpu->gpr[31] = 0x8003E52Cu; psx_dispatch(cpu, 0x8003D92Cu); label_BFC2652C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC2652C: 240F0001 addiu $t7, $zero, 1 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -99942,6 +122919,9 @@ void func_1FC26550(CPUState* cpu) { } } label_BFC26550: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC26550: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -99959,6 +122939,9 @@ label_BFC26550: cpu->gpr[31] = 0x8003E56Cu; psx_dispatch(cpu, 0x8003DE60u); label_BFC2656C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2656C: 3C0E8006 lui $t6, 0x8006 */ cpu->gpr[14] = 0x80060000u; @@ -99973,6 +122956,9 @@ label_BFC2656C: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (260)); if (psx_taken_BFC26578) goto label_BFC26598; label_BFC26580: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC26580: 24040164 addiu $a0, $zero, 356 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (356)); @@ -99982,6 +122968,9 @@ label_BFC26580: cpu->gpr[31] = 0x8003E58Cu; psx_dispatch(cpu, 0x8003D92Cu); label_BFC2658C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2658C: 10000005 beq $zero, $zero, 0xBFC265A4 */ uint32_t psx_brA_BFC2658C = cpu->gpr[0]; uint32_t psx_brB_BFC2658C = cpu->gpr[0]; @@ -99990,10 +122979,16 @@ label_BFC2658C: cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC2658C) goto label_BFC265A4; label_BFC26594: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC26594: 24040104 addiu $a0, $zero, 260 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (260)); label_BFC26598: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26598: 0C00F64B jal 0xB003D92C */ /* 0xBFC2659C: 240500E4 addiu $a1, $zero, 228 */ @@ -100001,10 +122996,16 @@ label_BFC26598: cpu->gpr[31] = 0x8003E5A0u; psx_dispatch(cpu, 0x8003D92Cu); label_BFC265A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC265A0: 240F0001 addiu $t7, $zero, 1 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC265A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC265A4: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; @@ -100035,6 +123036,9 @@ void func_1FC265C0(CPUState* cpu) { } } label_BFC265C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC265C0: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -100046,6 +123050,9 @@ label_BFC265C0: cpu->gpr[31] = 0x8003E5D0u; psx_dispatch(cpu, 0x8003DCB0u); label_BFC265D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC265D0: 24040014 addiu $a0, $zero, 20 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (20)); @@ -100059,6 +123066,9 @@ label_BFC265D0: cpu->gpr[31] = 0x8003E5E4u; psx_dispatch(cpu, 0x8003DE60u); label_BFC265E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC265E4: 2404006B addiu $a0, $zero, 107 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (107)); @@ -100068,6 +123078,9 @@ label_BFC265E4: cpu->gpr[31] = 0x8003E5F0u; psx_dispatch(cpu, 0x8003D92Cu); label_BFC265F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC265F0: 240E0001 addiu $t6, $zero, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -100100,6 +123113,9 @@ void func_1FC26610(CPUState* cpu) { } } label_BFC26610: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC26610: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -100111,6 +123127,9 @@ label_BFC26610: cpu->gpr[31] = 0x8003E620u; psx_dispatch(cpu, 0x8003DCB0u); label_BFC26620: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC26620: 240401A6 addiu $a0, $zero, 422 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (422)); @@ -100124,6 +123143,9 @@ label_BFC26620: cpu->gpr[31] = 0x8003E634u; psx_dispatch(cpu, 0x8003DE60u); label_BFC26634: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC26634: 240401FD addiu $a0, $zero, 509 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (509)); @@ -100133,6 +123155,9 @@ label_BFC26634: cpu->gpr[31] = 0x8003E640u; psx_dispatch(cpu, 0x8003D92Cu); label_BFC26640: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC26640: 240E0001 addiu $t6, $zero, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -100155,6 +123180,9 @@ label_BFC26640: void func_1FC26660(CPUState* cpu) { debug_server_log_call_entry(0x1FC26660u); label_BFC26660: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC26660: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -100177,6 +123205,9 @@ void func_1FC26670(CPUState* cpu) { } } label_BFC26670: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC26670: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -100188,6 +123219,9 @@ label_BFC26670: cpu->gpr[31] = 0x8003E680u; psx_dispatch(cpu, 0x800464D0u); label_BFC26680: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC26680: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -100228,6 +123262,9 @@ void func_1FC266B0(CPUState* cpu) { } } label_BFC266B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC266B0: 3C0E8006 lui $t6, 0x8006 */ cpu->gpr[14] = 0x80060000u; @@ -100244,6 +123281,9 @@ label_BFC266B0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC266C4u); return; } g_debug_last_store_pc = 0xBFC266C4u; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC266C0) goto label_BFC268DC; label_BFC266C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC266C8: 3C0F8006 lui $t7, 0x8006 */ cpu->gpr[15] = 0x80060000u; @@ -100258,6 +123298,9 @@ label_BFC266C8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC266D8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC266D4) goto label_BFC268E0; label_BFC266DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC266DC: 27A40044 addiu $a0, $sp, 68 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (68)); @@ -100269,6 +123312,9 @@ label_BFC266DC: cpu->gpr[31] = 0x8003E6ECu; psx_dispatch(cpu, 0x8003DB74u); label_BFC266EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC266EC: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -100285,6 +123331,9 @@ label_BFC266EC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC266FC) goto label_BFC26824; label_BFC26704: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC26704: 8FA40044 lw $a0, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26704u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -100306,6 +123355,9 @@ label_BFC26704: cpu->gpr[31] = 0x8003E728u; psx_dispatch(cpu, 0x8003DEF8u); label_BFC26728: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC26728: 3C078008 lui $a3, 0x8008 */ cpu->gpr[7] = 0x80080000u; @@ -100320,6 +123372,9 @@ label_BFC26728: /* nop */ if (psx_taken_BFC26734) goto label_BFC26748; label_BFC2673C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2673C: 24190001 addiu $t9, $zero, 1 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -100328,6 +123383,9 @@ label_BFC2673C: /* 0xBFC26744: AC396F00 sw $t9, 28416($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (28416)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26744u); return; } g_debug_last_store_pc = 0xBFC26744u; cpu->write_word(psx_addr, cpu->gpr[25]); } label_BFC26748: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26748: 1440000A bne $v0, $zero, 0xBFC26774 */ uint32_t psx_brA_BFC26748 = cpu->gpr[2]; uint32_t psx_brB_BFC26748 = cpu->gpr[0]; @@ -100336,6 +123394,9 @@ label_BFC26748: cpu->gpr[1] = 0x08000000u; if (psx_taken_BFC26748) goto label_BFC26774; label_BFC26750: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC26750: 34210800 ori $at, $at, 0x800 */ cpu->gpr[1] = cpu->gpr[1] | 0x800u; @@ -100348,6 +123409,9 @@ label_BFC26750: /* nop */ if (psx_taken_BFC26758) goto label_BFC267B4; label_BFC26760: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26760: 10E00002 beq $a3, $zero, 0xBFC2676C */ uint32_t psx_brA_BFC26760 = cpu->gpr[7]; uint32_t psx_brB_BFC26760 = cpu->gpr[0]; @@ -100356,10 +123420,16 @@ label_BFC26760: cpu->gpr[1] = 0x80060000u; if (psx_taken_BFC26760) goto label_BFC2676C; label_BFC26768: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC26768: AC206F00 sw $zero, 28416($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (28416)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26768u); return; } g_debug_last_store_pc = 0xBFC26768u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC2676C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2676C: 10000011 beq $zero, $zero, 0xBFC267B4 */ uint32_t psx_brA_BFC2676C = cpu->gpr[0]; uint32_t psx_brB_BFC2676C = cpu->gpr[0]; @@ -100368,6 +123438,9 @@ label_BFC2676C: cpu->gpr[7] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC2676C) goto label_BFC267B4; label_BFC26774: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC26774: 2401FFFE addiu $at, $zero, -2 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-2)); @@ -100378,6 +123451,9 @@ label_BFC26774: cpu->gpr[1] = 0x80060000u; if (psx_taken_BFC26778) goto label_BFC26798; label_BFC26780: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC26780: AC206C68 sw $zero, 27752($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (27752)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26780u); return; } g_debug_last_store_pc = 0xBFC26780u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -100394,6 +123470,9 @@ label_BFC26780: cpu->gpr[7] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC26790) goto label_BFC267B4; label_BFC26798: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC26798: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -100404,6 +123483,9 @@ label_BFC26798: /* nop */ if (psx_taken_BFC2679C) goto label_BFC267B4; label_BFC267A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC267A4: 14E00003 bne $a3, $zero, 0xBFC267B4 */ uint32_t psx_brA_BFC267A4 = cpu->gpr[7]; uint32_t psx_brB_BFC267A4 = cpu->gpr[0]; @@ -100412,12 +123494,18 @@ label_BFC267A4: /* nop */ if (psx_taken_BFC267A4) goto label_BFC267B4; label_BFC267AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC267AC: 8FA70034 lw $a3, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC267ACu); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } /* 0xBFC267B0: 00000000 nop */ /* nop */ label_BFC267B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC267B4: 3C0A8006 lui $t2, 0x8006 */ cpu->gpr[10] = 0x80060000u; @@ -100432,10 +123520,16 @@ label_BFC267B4: /* nop */ if (psx_taken_BFC267C0) goto label_BFC267CC; label_BFC267C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC267C8: 00003821 addu $a3, $zero, $zero */ cpu->gpr[7] = cpu->gpr[0] + cpu->gpr[0]; label_BFC267CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC267CC: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -100450,6 +123544,9 @@ label_BFC267CC: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC267D8) goto label_BFC267E8; label_BFC267E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC267E0: 1000003E beq $zero, $zero, 0xBFC268DC */ uint32_t psx_brA_BFC267E0 = cpu->gpr[0]; uint32_t psx_brB_BFC267E0 = cpu->gpr[0]; @@ -100458,6 +123555,9 @@ label_BFC267E0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25060)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC267E4u); return; } g_debug_last_store_pc = 0xBFC267E4u; cpu->write_word(psx_addr, cpu->gpr[7]); } if (psx_taken_BFC267E0) goto label_BFC268DC; label_BFC267E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC267E8: 3C0100F0 lui $at, 0xF0 */ cpu->gpr[1] = 0x00F00000u; @@ -100472,6 +123572,9 @@ label_BFC267E8: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC267F4) goto label_BFC26804; label_BFC267FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC267FC: 10000037 beq $zero, $zero, 0xBFC268DC */ uint32_t psx_brA_BFC267FC = cpu->gpr[0]; uint32_t psx_brB_BFC267FC = cpu->gpr[0]; @@ -100480,6 +123583,9 @@ label_BFC267FC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25060)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26800u); return; } g_debug_last_store_pc = 0xBFC26800u; cpu->write_word(psx_addr, cpu->gpr[7]); } if (psx_taken_BFC267FC) goto label_BFC268DC; label_BFC26804: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC26804: 240D0040 addiu $t5, $zero, 64 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (64)); @@ -100498,10 +123604,16 @@ label_BFC26804: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25060)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2681Cu); return; } g_debug_last_store_pc = 0xBFC2681Cu; cpu->write_word(psx_addr, cpu->gpr[7]); } if (psx_taken_BFC26818) goto label_BFC268DC; label_BFC26820: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC26820: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); label_BFC26824: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26824: 14410003 bne $v0, $at, 0xBFC26834 */ uint32_t psx_brA_BFC26824 = cpu->gpr[2]; uint32_t psx_brB_BFC26824 = cpu->gpr[1]; @@ -100510,6 +123622,9 @@ label_BFC26824: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC26824) goto label_BFC26834; label_BFC2682C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2682C: 1000002B beq $zero, $zero, 0xBFC268DC */ uint32_t psx_brA_BFC2682C = cpu->gpr[0]; uint32_t psx_brB_BFC2682C = cpu->gpr[0]; @@ -100518,6 +123633,9 @@ label_BFC2682C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25060)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26830u); return; } g_debug_last_store_pc = 0xBFC26830u; cpu->write_word(psx_addr, cpu->gpr[7]); } if (psx_taken_BFC2682C) goto label_BFC268DC; label_BFC26834: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC26834: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -100529,6 +123647,9 @@ label_BFC26834: cpu->gpr[31] = 0x8003E844u; psx_dispatch(cpu, 0x8003E32Cu); label_BFC26844: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC26844: 2401FFFE addiu $at, $zero, -2 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-2)); @@ -100539,6 +123660,9 @@ label_BFC26844: cpu->gpr[1] = 0x80060000u; if (psx_taken_BFC26848) goto label_BFC26880; label_BFC26850: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC26850: AC206C68 sw $zero, 27752($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (27752)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26850u); return; } g_debug_last_store_pc = 0xBFC26850u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -100558,6 +123682,9 @@ label_BFC26850: cpu->gpr[31] = 0x8003E870u; psx_dispatch(cpu, 0x800464D0u); label_BFC26870: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26870: 0C011997 jal 0xB004665C */ /* 0xBFC26874: 00402021 addu $a0, $v0, $zero */ @@ -100565,12 +123692,18 @@ label_BFC26870: cpu->gpr[31] = 0x8003E878u; psx_dispatch(cpu, 0x8004665Cu); label_BFC26878: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26878: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; /* 0xBFC2687C: AC223D44 sw $v0, 15684($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (15684)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2687Cu); return; } g_debug_last_store_pc = 0xBFC2687Cu; cpu->write_word(psx_addr, cpu->gpr[2]); } label_BFC26880: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC26880: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -100585,6 +123718,9 @@ label_BFC26880: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26890u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC2688C) goto label_BFC268E0; label_BFC26894: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC26894: 3C078008 lui $a3, 0x8008 */ cpu->gpr[7] = 0x80080000u; @@ -100603,6 +123739,9 @@ label_BFC26894: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC268ACu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC268A8) goto label_BFC268E0; label_BFC268B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC268B0: 24190040 addiu $t9, $zero, 64 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (64)); @@ -100620,6 +123759,9 @@ label_BFC268B0: cpu->gpr[31] = 0x8003E8CCu; psx_dispatch(cpu, 0x800464D0u); label_BFC268CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC268CC: 0C011997 jal 0xB004665C */ /* 0xBFC268D0: 00402021 addu $a0, $v0, $zero */ @@ -100627,16 +123769,25 @@ label_BFC268CC: cpu->gpr[31] = 0x8003E8D4u; psx_dispatch(cpu, 0x8004665Cu); label_BFC268D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC268D4: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; /* 0xBFC268D8: AC223D44 sw $v0, 15684($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (15684)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC268D8u); return; } g_debug_last_store_pc = 0xBFC268D8u; cpu->write_word(psx_addr, cpu->gpr[2]); } label_BFC268DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC268DC: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC268DCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC268E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC268E0: 27BD0048 addiu $sp, $sp, 72 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (72)); @@ -100663,6 +123814,9 @@ void func_1FC268EC(CPUState* cpu) { } } label_BFC268EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC268EC: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -100681,6 +123835,9 @@ label_BFC268EC: cpu->gpr[11] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC26900) goto label_BFC26AE8; label_BFC26908: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC26908: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -100695,6 +123852,9 @@ label_BFC26908: /* nop */ if (psx_taken_BFC26914) goto label_BFC269F8; label_BFC2691C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2691C: 2442FFFF addiu $v0, $v0, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (-1)); @@ -100705,6 +123865,9 @@ label_BFC2691C: cpu->gpr[1] = 0x80060000u; if (psx_taken_BFC26920) goto label_BFC26940; label_BFC26928: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC26928: AC226C68 sw $v0, 27752($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (27752)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26928u); return; } g_debug_last_store_pc = 0xBFC26928u; cpu->write_word(psx_addr, cpu->gpr[2]); } @@ -100721,6 +123884,9 @@ label_BFC26928: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25060)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2693Cu); return; } g_debug_last_store_pc = 0xBFC2693Cu; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC26938) goto label_BFC26AE8; label_BFC26940: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC26940: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; @@ -100739,6 +123905,9 @@ label_BFC26940: /* nop */ if (psx_taken_BFC26954) goto label_BFC269E8; label_BFC2695C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(33u); +#endif psx_check_interrupts(cpu); /* 0xBFC2695C: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -100808,6 +123977,9 @@ label_BFC2695C: cpu->gpr[31] = 0x8003E9E0u; psx_dispatch(cpu, 0x8003DC8Cu); label_BFC269E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC269E0: 10000042 beq $zero, $zero, 0xBFC26AEC */ uint32_t psx_brA_BFC269E0 = cpu->gpr[0]; uint32_t psx_brB_BFC269E0 = cpu->gpr[0]; @@ -100816,6 +123988,9 @@ label_BFC269E0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC269E4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC269E0) goto label_BFC26AEC; label_BFC269E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC269E8: 0C00F723 jal 0xB003DC8C */ /* 0xBFC269EC: 01602021 addu $a0, $t3, $zero */ @@ -100823,6 +123998,9 @@ label_BFC269E8: cpu->gpr[31] = 0x8003E9F0u; psx_dispatch(cpu, 0x8003DC8Cu); label_BFC269F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC269F0: 1000003E beq $zero, $zero, 0xBFC26AEC */ uint32_t psx_brA_BFC269F0 = cpu->gpr[0]; uint32_t psx_brB_BFC269F0 = cpu->gpr[0]; @@ -100831,6 +124009,9 @@ label_BFC269F0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC269F4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC269F0) goto label_BFC26AEC; label_BFC269F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC269F8: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -100845,6 +124026,9 @@ label_BFC269F8: cpu->gpr[4] = cpu->gpr[11] + cpu->gpr[0]; if (psx_taken_BFC26A04) goto label_BFC26A80; label_BFC26A0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC26A0C: 2442FFFE addiu $v0, $v0, -2 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (-2)); @@ -100870,6 +124054,9 @@ label_BFC26A0C: cpu->gpr[31] = 0x8003EA38u; psx_dispatch(cpu, 0x80044A58u); label_BFC26A38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC26A38: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -100884,6 +124071,9 @@ label_BFC26A38: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26A48u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC26A44) goto label_BFC26AEC; label_BFC26A4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC26A4C: 3C0C00F0 lui $t4, 0xF0 */ cpu->gpr[12] = 0x00F00000u; @@ -100907,6 +124097,9 @@ label_BFC26A4C: cpu->gpr[31] = 0x8003EA74u; psx_dispatch(cpu, 0x80044A58u); label_BFC26A74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26A74: 1000001D beq $zero, $zero, 0xBFC26AEC */ uint32_t psx_brA_BFC26A74 = cpu->gpr[0]; uint32_t psx_brB_BFC26A74 = cpu->gpr[0]; @@ -100915,10 +124108,16 @@ label_BFC26A74: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26A78u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC26A74) goto label_BFC26AEC; label_BFC26A7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC26A7C: 01602021 addu $a0, $t3, $zero */ cpu->gpr[4] = cpu->gpr[11] + cpu->gpr[0]; label_BFC26A80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26A80: 0C00F723 jal 0xB003DC8C */ /* 0xBFC26A84: AFAB0018 sw $t3, 24($sp) */ @@ -100926,6 +124125,9 @@ label_BFC26A80: cpu->gpr[31] = 0x8003EA88u; psx_dispatch(cpu, 0x8003DC8Cu); label_BFC26A88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC26A88: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -100942,6 +124144,9 @@ label_BFC26A88: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC26A98) goto label_BFC26AB8; label_BFC26AA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC26AA0: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -100951,6 +124156,9 @@ label_BFC26AA0: cpu->gpr[31] = 0x8003EAACu; psx_dispatch(cpu, 0x8003DCC0u); label_BFC26AAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26AAC: 1000000F beq $zero, $zero, 0xBFC26AEC */ uint32_t psx_brA_BFC26AAC = cpu->gpr[0]; uint32_t psx_brB_BFC26AAC = cpu->gpr[0]; @@ -100959,10 +124167,16 @@ label_BFC26AAC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26AB0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC26AAC) goto label_BFC26AEC; label_BFC26AB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC26AB4: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); label_BFC26AB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26AB8: 1041000C beq $v0, $at, 0xBFC26AEC */ uint32_t psx_brA_BFC26AB8 = cpu->gpr[2]; uint32_t psx_brB_BFC26AB8 = cpu->gpr[1]; @@ -100971,6 +124185,9 @@ label_BFC26AB8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26ABCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC26AB8) goto label_BFC26AEC; label_BFC26AC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC26AC0: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -100994,10 +124211,16 @@ label_BFC26AC0: cpu->gpr[31] = 0x8003EAE8u; psx_dispatch(cpu, 0x80031630u); label_BFC26AE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC26AE8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26AE8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC26AEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC26AEC: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -101010,6 +124233,9 @@ label_BFC26AEC: void func_1FC26AF8(CPUState* cpu) { debug_server_log_call_entry(0x1FC26AF8u); label_BFC26AF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(68u); +#endif psx_check_interrupts(cpu); /* 0xBFC26AF8: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; @@ -101168,6 +124394,9 @@ void func_1FC26C10(CPUState* cpu) { } } label_BFC26C10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC26C10: 27BDFF90 addiu $sp, $sp, -112 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-112)); @@ -101181,6 +124410,9 @@ label_BFC26C10: cpu->gpr[31] = 0x8003EC24u; psx_dispatch(cpu, 0x80030788u); label_BFC26C24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC26C24: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -101198,6 +124430,9 @@ label_BFC26C24: cpu->gpr[31] = 0x8003EC40u; psx_dispatch(cpu, 0x8003EEF8u); label_BFC26C40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26C40: 1C400003 bgtz $v0, 0xBFC26C50 */ uint32_t psx_brA_BFC26C40 = cpu->gpr[2]; @@ -101206,6 +124441,9 @@ label_BFC26C40: /* nop */ if (psx_taken_BFC26C40) goto label_BFC26C50; label_BFC26C48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26C48: 10000082 beq $zero, $zero, 0xBFC26E54 */ uint32_t psx_brA_BFC26C48 = cpu->gpr[0]; uint32_t psx_brB_BFC26C48 = cpu->gpr[0]; @@ -101214,6 +124452,9 @@ label_BFC26C48: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC26C48) goto label_BFC26E54; label_BFC26C50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC26C50: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -101234,6 +124475,9 @@ label_BFC26C50: /* 0xBFC26C70: 2404000A addiu $a0, $zero, 10 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); label_BFC26C74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC26C74: 80620000 lb $v0, 0($v1) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[3] + (0))); @@ -101246,6 +124490,9 @@ label_BFC26C74: /* nop */ if (psx_taken_BFC26C7C) goto label_BFC26C9C; label_BFC26C84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26C84: 10400005 beq $v0, $zero, 0xBFC26C9C */ uint32_t psx_brA_BFC26C84 = cpu->gpr[2]; uint32_t psx_brB_BFC26C84 = cpu->gpr[0]; @@ -101254,6 +124501,9 @@ label_BFC26C84: /* nop */ if (psx_taken_BFC26C84) goto label_BFC26C9C; label_BFC26C8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC26C8C: 24E70001 addiu $a3, $a3, 1 */ cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[7] + (1)); @@ -101266,6 +124516,9 @@ label_BFC26C8C: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1)); if (psx_taken_BFC26C94) goto label_BFC26C74; label_BFC26C9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC26C9C: A0E00000 sb $zero, 0($a3) */ g_debug_last_store_pc = 0xBFC26C9Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[7] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -101281,6 +124534,9 @@ label_BFC26C9C: cpu->gpr[31] = 0x8003ECB4u; psx_dispatch(cpu, 0x8003EEF8u); label_BFC26CB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26CB4: 1C400004 bgtz $v0, 0xBFC26CC8 */ uint32_t psx_brA_BFC26CB4 = cpu->gpr[2]; @@ -101289,6 +124545,9 @@ label_BFC26CB4: /* nop */ if (psx_taken_BFC26CB4) goto label_BFC26CC8; label_BFC26CBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC26CBC: 8FB2002C lw $s2, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26CBCu); return; } cpu->gpr[18] = cpu->read_word(psx_addr); } @@ -101299,6 +124558,9 @@ label_BFC26CBC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC26CC0) goto label_BFC26E54; label_BFC26CC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC26CC8: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -101313,6 +124575,9 @@ label_BFC26CC8: cpu->gpr[18] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC26CD4) goto label_BFC26D30; label_BFC26CDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC26CDC: AFB1001C sw $s1, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26CDCu); return; } g_debug_last_store_pc = 0xBFC26CDCu; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -101325,6 +124590,9 @@ label_BFC26CDC: /* 0xBFC26CEC: 26319E08 addiu $s1, $s1, -25080 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (-25080)); label_BFC26CF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC26CF0: 82220000 lb $v0, 0($s1) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (0))); @@ -101339,6 +124607,9 @@ label_BFC26CF0: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); if (psx_taken_BFC26CFC) goto label_BFC26D18; label_BFC26D04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26D04: 0C00C1E2 jal 0xB0030788 */ /* 0xBFC26D08: 24040007 addiu $a0, $zero, 7 */ @@ -101346,6 +124617,9 @@ label_BFC26D04: cpu->gpr[31] = 0x8003ED0Cu; psx_dispatch(cpu, 0x80030788u); label_BFC26D0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC26D0C: 24040042 addiu $a0, $zero, 66 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (66)); @@ -101355,6 +124629,9 @@ label_BFC26D0C: cpu->gpr[31] = 0x8003ED18u; psx_dispatch(cpu, 0x8005AB60u); label_BFC26D18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC26D18: 26520001 addiu $s2, $s2, 1 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (1)); @@ -101367,18 +124644,27 @@ label_BFC26D18: /* nop */ if (psx_taken_BFC26D20) goto label_BFC26CF0; label_BFC26D28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26D28: 8FB1001C lw $s1, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26D28u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } /* 0xBFC26D2C: 00009021 addu $s2, $zero, $zero */ cpu->gpr[18] = cpu->gpr[0] + cpu->gpr[0]; label_BFC26D30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26D30: 27A20070 addiu $v0, $sp, 112 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[29] + (112)); /* 0xBFC26D34: 27A30078 addiu $v1, $sp, 120 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[29] + (120)); label_BFC26D38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC26D38: A040FFD8 sb $zero, -40($v0) */ g_debug_last_store_pc = 0xBFC26D38u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[2] + (-40)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -101395,6 +124681,9 @@ label_BFC26D38: g_debug_last_store_pc = 0xBFC26D4Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[2] + (-41)), (uint8_t)(cpu->gpr[0] & 0xFFu)); if (psx_taken_BFC26D48) goto label_BFC26D38; label_BFC26D50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC26D50: 27A40048 addiu $a0, $sp, 72 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (72)); @@ -101404,6 +124693,9 @@ label_BFC26D50: cpu->gpr[31] = 0x8003ED5Cu; psx_dispatch(cpu, 0x8003EE64u); label_BFC26D5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26D5C: 04410027 bgez $v0, 0xBFC26DFC */ uint32_t psx_brA_BFC26D5C = cpu->gpr[2]; @@ -101412,6 +124704,9 @@ label_BFC26D5C: cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC26D5C) goto label_BFC26DFC; label_BFC26D64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC26D64: 93A20048 lbu $v0, 72($sp) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (72))); @@ -101426,6 +124721,9 @@ label_BFC26D64: /* nop */ if (psx_taken_BFC26D70) goto label_BFC26DA0; label_BFC26D78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC26D78: 93AF0044 lbu $t7, 68($sp) */ cpu->gpr[15] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (68))); @@ -101440,6 +124738,9 @@ label_BFC26D78: /* nop */ if (psx_taken_BFC26D84) goto label_BFC26DA0; label_BFC26D8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC26D8C: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -101449,6 +124750,9 @@ label_BFC26D8C: cpu->gpr[31] = 0x8003ED98u; psx_dispatch(cpu, 0x8005A910u); label_BFC26D98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26D98: 1000000C beq $zero, $zero, 0xBFC26DCC */ uint32_t psx_brA_BFC26D98 = cpu->gpr[0]; uint32_t psx_brB_BFC26D98 = cpu->gpr[0]; @@ -101457,6 +124761,9 @@ label_BFC26D98: cpu->gpr[9] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (72))); if (psx_taken_BFC26D98) goto label_BFC26DCC; label_BFC26DA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26DA0: 1040000A beq $v0, $zero, 0xBFC26DCC */ uint32_t psx_brA_BFC26DA0 = cpu->gpr[2]; uint32_t psx_brB_BFC26DA0 = cpu->gpr[0]; @@ -101465,6 +124772,9 @@ label_BFC26DA0: cpu->gpr[9] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (72))); if (psx_taken_BFC26DA0) goto label_BFC26DCC; label_BFC26DA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC26DA8: 93B90044 lbu $t9, 68($sp) */ cpu->gpr[25] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (68))); @@ -101479,6 +124789,9 @@ label_BFC26DA8: cpu->gpr[9] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (72))); if (psx_taken_BFC26DB4) goto label_BFC26DCC; label_BFC26DBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC26DBC: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -101488,10 +124801,16 @@ label_BFC26DBC: cpu->gpr[31] = 0x8003EDC8u; psx_dispatch(cpu, 0x8005A910u); label_BFC26DC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC26DC8: 93A90048 lbu $t1, 72($sp) */ cpu->gpr[9] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (72))); label_BFC26DCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC26DCC: 00000000 nop */ /* nop */ @@ -101504,6 +124823,9 @@ label_BFC26DCC: cpu->gpr[2] = cpu->gpr[16] + cpu->gpr[0]; if (psx_taken_BFC26DD4) goto label_BFC26DEC; label_BFC26DDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC26DDC: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -101513,10 +124835,16 @@ label_BFC26DDC: cpu->gpr[31] = 0x8003EDE8u; psx_dispatch(cpu, 0x8005A910u); label_BFC26DE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC26DE8: 02001021 addu $v0, $s0, $zero */ cpu->gpr[2] = cpu->gpr[16] + cpu->gpr[0]; label_BFC26DEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC26DEC: 8FB00024 lw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26DECu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -101529,6 +124857,9 @@ label_BFC26DEC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26DF8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC26DF4) goto label_BFC26E58; label_BFC26DFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC26DFC: 93AB004D lbu $t3, 77($sp) */ cpu->gpr[11] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (77))); @@ -101559,6 +124890,9 @@ label_BFC26DFC: g_debug_last_store_pc = 0xBFC26E2Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[1] + (-24864)), (uint8_t)(cpu->gpr[0] & 0xFFu)); if (psx_taken_BFC26E28) goto label_BFC26E3C; label_BFC26E30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC26E30: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -101569,6 +124903,9 @@ label_BFC26E30: g_debug_last_store_pc = 0xBFC26E38u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[1] + (-24868)), (uint8_t)(cpu->gpr[2] & 0xFFu)); if (psx_taken_BFC26E34) goto label_BFC26E48; label_BFC26E3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC26E3C: 24020020 addiu $v0, $zero, 32 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (32)); @@ -101577,6 +124914,9 @@ label_BFC26E3C: /* 0xBFC26E44: A0229EDC sb $v0, -24868($at) */ g_debug_last_store_pc = 0xBFC26E44u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[1] + (-24868)), (uint8_t)(cpu->gpr[2] & 0xFFu)); label_BFC26E48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC26E48: 8FB00024 lw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26E48u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -101585,10 +124925,16 @@ label_BFC26E48: /* 0xBFC26E50: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC26E54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC26E54: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26E54u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC26E58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC26E58: 27BD0070 addiu $sp, $sp, 112 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (112)); @@ -101612,6 +124958,9 @@ void func_1FC26E64(CPUState* cpu) { } } label_BFC26E64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC26E64: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -101633,6 +124982,9 @@ label_BFC26E64: cpu->gpr[31] = 0x8003EE88u; psx_dispatch(cpu, 0x80058260u); label_BFC26E88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26E88: 10400004 beq $v0, $zero, 0xBFC26E9C */ uint32_t psx_brA_BFC26E88 = cpu->gpr[2]; uint32_t psx_brB_BFC26E88 = cpu->gpr[0]; @@ -101641,6 +124993,9 @@ label_BFC26E88: cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; if (psx_taken_BFC26E88) goto label_BFC26E9C; label_BFC26E90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26E90: 10000007 beq $zero, $zero, 0xBFC26EB0 */ uint32_t psx_brA_BFC26E90 = cpu->gpr[0]; uint32_t psx_brB_BFC26E90 = cpu->gpr[0]; @@ -101649,10 +125004,16 @@ label_BFC26E90: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC26E90) goto label_BFC26EB0; label_BFC26E98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC26E98: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; label_BFC26E9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26E9C: 0C016098 jal 0xB0058260 */ /* 0xBFC26EA0: 02202821 addu $a1, $s1, $zero */ @@ -101660,6 +125021,9 @@ label_BFC26E9C: cpu->gpr[31] = 0x8003EEA4u; psx_dispatch(cpu, 0x80058260u); label_BFC26EA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26EA4: 1040FFFD beq $v0, $zero, 0xBFC26E9C */ uint32_t psx_brA_BFC26EA4 = cpu->gpr[2]; uint32_t psx_brB_BFC26EA4 = cpu->gpr[0]; @@ -101668,10 +125032,16 @@ label_BFC26EA4: cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; if (psx_taken_BFC26EA4) goto label_BFC26E9C; label_BFC26EAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC26EAC: 24100001 addiu $s0, $zero, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC26EB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC26EB0: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -101683,6 +125053,9 @@ label_BFC26EB0: cpu->gpr[31] = 0x8003EEC0u; psx_dispatch(cpu, 0x8005AA00u); label_BFC26EC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26EC0: 10500009 beq $v0, $s0, 0xBFC26EE8 */ uint32_t psx_brA_BFC26EC0 = cpu->gpr[2]; uint32_t psx_brB_BFC26EC0 = cpu->gpr[16]; @@ -101691,6 +125064,9 @@ label_BFC26EC0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26EC4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC26EC0) goto label_BFC26EE8; label_BFC26EC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC26EC8: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -101702,6 +125078,9 @@ label_BFC26EC8: cpu->gpr[31] = 0x8003EED8u; psx_dispatch(cpu, 0x8005AA00u); label_BFC26ED8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26ED8: 1450FFF5 bne $v0, $s0, 0xBFC26EB0 */ uint32_t psx_brA_BFC26ED8 = cpu->gpr[2]; uint32_t psx_brB_BFC26ED8 = cpu->gpr[16]; @@ -101710,12 +125089,18 @@ label_BFC26ED8: /* nop */ if (psx_taken_BFC26ED8) goto label_BFC26EB0; label_BFC26EE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC26EE0: 2402FFFF addiu $v0, $zero, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); /* 0xBFC26EE4: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26EE4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC26EE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC26EE8: 8FB00014 lw $s0, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC26EE8u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -101746,6 +125131,9 @@ void func_1FC26EF8(CPUState* cpu) { } } label_BFC26EF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(75u); +#endif psx_check_interrupts(cpu); /* 0xBFC26EF8: 24A50096 addiu $a1, $a1, 150 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (150)); @@ -101899,6 +125287,9 @@ label_BFC26EF8: cpu->gpr[31] = 0x8003F024u; psx_dispatch(cpu, 0x800571B8u); label_BFC27024: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27024: 10400003 beq $v0, $zero, 0xBFC27034 */ uint32_t psx_brA_BFC27024 = cpu->gpr[2]; uint32_t psx_brB_BFC27024 = cpu->gpr[0]; @@ -101907,6 +125298,9 @@ label_BFC27024: /* nop */ if (psx_taken_BFC27024) goto label_BFC27034; label_BFC2702C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2702C: 10000006 beq $zero, $zero, 0xBFC27048 */ uint32_t psx_brA_BFC2702C = cpu->gpr[0]; uint32_t psx_brB_BFC2702C = cpu->gpr[0]; @@ -101915,6 +125309,9 @@ label_BFC2702C: cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC2702C) goto label_BFC27048; label_BFC27034: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27034: 0C015C6E jal 0xB00571B8 */ /* 0xBFC27038: 27A40058 addiu $a0, $sp, 88 */ @@ -101922,6 +125319,9 @@ label_BFC27034: cpu->gpr[31] = 0x8003F03Cu; psx_dispatch(cpu, 0x800571B8u); label_BFC2703C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2703C: 1040FFFD beq $v0, $zero, 0xBFC27034 */ uint32_t psx_brA_BFC2703C = cpu->gpr[2]; uint32_t psx_brB_BFC2703C = cpu->gpr[0]; @@ -101930,10 +125330,16 @@ label_BFC2703C: /* nop */ if (psx_taken_BFC2703C) goto label_BFC27034; label_BFC27044: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC27044: 24120001 addiu $s2, $zero, 1 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC27048: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC27048: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -101945,6 +125351,9 @@ label_BFC27048: cpu->gpr[31] = 0x8003F058u; psx_dispatch(cpu, 0x8005AA00u); label_BFC27058: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27058: 14520004 bne $v0, $s2, 0xBFC2706C */ uint32_t psx_brA_BFC27058 = cpu->gpr[2]; uint32_t psx_brB_BFC27058 = cpu->gpr[18]; @@ -101953,6 +125362,9 @@ label_BFC27058: /* nop */ if (psx_taken_BFC27058) goto label_BFC2706C; label_BFC27060: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC27060: AFB10030 sw $s1, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC27060u); return; } g_debug_last_store_pc = 0xBFC27060u; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -101963,6 +125375,9 @@ label_BFC27060: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC27068u); return; } g_debug_last_store_pc = 0xBFC27068u; cpu->write_word(psx_addr, cpu->gpr[19]); } if (psx_taken_BFC27064) goto label_BFC2708C; label_BFC2706C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2706C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -101974,6 +125389,9 @@ label_BFC2706C: cpu->gpr[31] = 0x8003F07Cu; psx_dispatch(cpu, 0x8005AA00u); label_BFC2707C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2707C: 1452FFF2 bne $v0, $s2, 0xBFC27048 */ uint32_t psx_brA_BFC2707C = cpu->gpr[2]; uint32_t psx_brB_BFC2707C = cpu->gpr[18]; @@ -101982,6 +125400,9 @@ label_BFC2707C: /* nop */ if (psx_taken_BFC2707C) goto label_BFC27048; label_BFC27084: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27084: 10000039 beq $zero, $zero, 0xBFC2716C */ uint32_t psx_brA_BFC27084 = cpu->gpr[0]; uint32_t psx_brB_BFC27084 = cpu->gpr[0]; @@ -101990,6 +125411,9 @@ label_BFC27084: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC27084) goto label_BFC2716C; label_BFC2708C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2708C: 3C110001 lui $s1, 0x1 */ cpu->gpr[17] = 0x00010000u; @@ -102005,6 +125429,9 @@ label_BFC2708C: cpu->gpr[31] = 0x8003F0A4u; psx_dispatch(cpu, 0x800575D8u); label_BFC270A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC270A4: 1440000A bne $v0, $zero, 0xBFC270D0 */ uint32_t psx_brA_BFC270A4 = cpu->gpr[2]; uint32_t psx_brB_BFC270A4 = cpu->gpr[0]; @@ -102013,6 +125440,9 @@ label_BFC270A4: cpu->gpr[19] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC270A4) goto label_BFC270D0; label_BFC270AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC270AC: 2631FFFF addiu $s1, $s1, -1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (-1)); @@ -102023,6 +125453,9 @@ label_BFC270AC: /* nop */ if (psx_taken_BFC270B0) goto label_BFC270D0; label_BFC270B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC270B8: 02802021 addu $a0, $s4, $zero */ cpu->gpr[4] = cpu->gpr[20] + cpu->gpr[0]; @@ -102034,6 +125467,9 @@ label_BFC270B8: cpu->gpr[31] = 0x8003F0C8u; psx_dispatch(cpu, 0x800575D8u); label_BFC270C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC270C8: 1040FFF8 beq $v0, $zero, 0xBFC270AC */ uint32_t psx_brA_BFC270C8 = cpu->gpr[2]; uint32_t psx_brB_BFC270C8 = cpu->gpr[0]; @@ -102042,6 +125478,9 @@ label_BFC270C8: cpu->gpr[19] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC270C8) goto label_BFC270AC; label_BFC270D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC270D0: 1A200022 blez $s1, 0xBFC2715C */ uint32_t psx_brA_BFC270D0 = cpu->gpr[17]; @@ -102050,6 +125489,9 @@ label_BFC270D0: cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC270D0) goto label_BFC2715C; label_BFC270D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC270D8: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -102061,6 +125503,9 @@ label_BFC270D8: cpu->gpr[31] = 0x8003F0E8u; psx_dispatch(cpu, 0x8005AA00u); label_BFC270E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC270E8: 14520006 bne $v0, $s2, 0xBFC27104 */ uint32_t psx_brA_BFC270E8 = cpu->gpr[2]; uint32_t psx_brB_BFC270E8 = cpu->gpr[18]; @@ -102069,6 +125514,9 @@ label_BFC270E8: /* nop */ if (psx_taken_BFC270E8) goto label_BFC27104; label_BFC270F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC270F0: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -102079,6 +125527,9 @@ label_BFC270F0: /* nop */ if (psx_taken_BFC270F4) goto label_BFC27104; label_BFC270FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC270FC: 10000017 beq $zero, $zero, 0xBFC2715C */ uint32_t psx_brA_BFC270FC = cpu->gpr[0]; uint32_t psx_brB_BFC270FC = cpu->gpr[0]; @@ -102087,6 +125538,9 @@ label_BFC270FC: cpu->gpr[19] = cpu->gpr[20] + cpu->gpr[0]; if (psx_taken_BFC270FC) goto label_BFC2715C; label_BFC27104: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC27104: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -102098,6 +125552,9 @@ label_BFC27104: cpu->gpr[31] = 0x8003F114u; psx_dispatch(cpu, 0x8005AA00u); label_BFC27114: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27114: 14520005 bne $v0, $s2, 0xBFC2712C */ uint32_t psx_brA_BFC27114 = cpu->gpr[2]; uint32_t psx_brB_BFC27114 = cpu->gpr[18]; @@ -102106,6 +125563,9 @@ label_BFC27114: /* nop */ if (psx_taken_BFC27114) goto label_BFC2712C; label_BFC2711C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2711C: 8FB10030 lw $s1, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2711Cu); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -102118,6 +125578,9 @@ label_BFC2711C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC27124) goto label_BFC2716C; label_BFC2712C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2712C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -102129,6 +125592,9 @@ label_BFC2712C: cpu->gpr[31] = 0x8003F13Cu; psx_dispatch(cpu, 0x8005AA00u); label_BFC2713C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2713C: 14520005 bne $v0, $s2, 0xBFC27154 */ uint32_t psx_brA_BFC2713C = cpu->gpr[2]; uint32_t psx_brB_BFC2713C = cpu->gpr[18]; @@ -102137,6 +125603,9 @@ label_BFC2713C: /* nop */ if (psx_taken_BFC2713C) goto label_BFC27154; label_BFC27144: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC27144: 8FB10030 lw $s1, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC27144u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -102149,6 +125618,9 @@ label_BFC27144: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC2714C) goto label_BFC2716C; label_BFC27154: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27154: 1E20FFE0 bgtz $s1, 0xBFC270D8 */ uint32_t psx_brA_BFC27154 = cpu->gpr[17]; @@ -102157,6 +125629,9 @@ label_BFC27154: /* nop */ if (psx_taken_BFC27154) goto label_BFC270D8; label_BFC2715C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2715C: 02601021 addu $v0, $s3, $zero */ cpu->gpr[2] = cpu->gpr[19] + cpu->gpr[0]; @@ -102167,6 +125642,9 @@ label_BFC2715C: /* 0xBFC27168: 00000000 nop */ /* nop */ label_BFC2716C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2716C: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2716Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -102203,6 +125681,9 @@ void func_1FC27190(CPUState* cpu) { } } label_BFC27190: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC27190: 27BDFFC0 addiu $sp, $sp, -64 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-64)); @@ -102230,6 +125711,9 @@ label_BFC27190: cpu->gpr[31] = 0x8003F1C0u; psx_dispatch(cpu, 0x8004ED1Cu); label_BFC271C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC271C0: 0C010FC4 jal 0xB0043F10 */ /* 0xBFC271C4: 24040001 addiu $a0, $zero, 1 */ @@ -102237,6 +125721,9 @@ label_BFC271C0: cpu->gpr[31] = 0x8003F1C8u; psx_dispatch(cpu, 0x80043F10u); label_BFC271C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC271C8: 3C04800F lui $a0, 0x800F */ cpu->gpr[4] = 0x800F0000u; @@ -102256,6 +125743,9 @@ label_BFC271C8: cpu->gpr[31] = 0x8003F1E8u; psx_dispatch(cpu, 0x8005154Cu); label_BFC271E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC271E8: 3C04800F lui $a0, 0x800F */ cpu->gpr[4] = 0x800F0000u; @@ -102275,6 +125765,9 @@ label_BFC271E8: cpu->gpr[31] = 0x8003F208u; psx_dispatch(cpu, 0x8005154Cu); label_BFC27208: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC27208: 3C04800F lui $a0, 0x800F */ cpu->gpr[4] = 0x800F0000u; @@ -102294,6 +125787,9 @@ label_BFC27208: cpu->gpr[31] = 0x8003F228u; psx_dispatch(cpu, 0x800515ECu); label_BFC27228: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC27228: 3C04800F lui $a0, 0x800F */ cpu->gpr[4] = 0x800F0000u; @@ -102313,6 +125809,9 @@ label_BFC27228: cpu->gpr[31] = 0x8003F248u; psx_dispatch(cpu, 0x800515ECu); label_BFC27248: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC27248: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -102327,6 +125826,9 @@ label_BFC27248: cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (239)); if (psx_taken_BFC27254) goto label_BFC272B8; label_BFC2725C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(23u); +#endif psx_check_interrupts(cpu); /* 0xBFC2725C: 24090003 addiu $t1, $zero, 3 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); @@ -102375,6 +125877,9 @@ label_BFC2725C: /* 0xBFC272B4: 240F00EF addiu $t7, $zero, 239 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (239)); label_BFC272B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC272B8: 3C01800F lui $at, 0x800F */ cpu->gpr[1] = 0x800F0000u; @@ -102403,6 +125908,9 @@ label_BFC272B8: /* 0xBFC272E8: 24150008 addiu $s5, $zero, 8 */ cpu->gpr[21] = (uint32_t)((int32_t)cpu->gpr[0] + (8)); label_BFC272EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC272EC: 0C011DA8 jal 0xB00476A0 */ /* 0xBFC272F0: 00000000 nop */ @@ -102410,6 +125918,9 @@ label_BFC272EC: cpu->gpr[31] = 0x8003F2F4u; psx_dispatch(cpu, 0x800476A0u); label_BFC272F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC272F4: 0002C880 sll $t9, $v0, 2 */ cpu->gpr[25] = cpu->gpr[2] << 2u; @@ -102437,10 +125948,16 @@ label_BFC272F4: cpu->gpr[31] = 0x8003F324u; psx_dispatch(cpu, 0x80044A58u); label_BFC27324: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC27324: 00008021 addu $s0, $zero, $zero */ cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; label_BFC27328: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27328: 12120003 beq $s0, $s2, 0xBFC27338 */ uint32_t psx_brA_BFC27328 = cpu->gpr[16]; uint32_t psx_brB_BFC27328 = cpu->gpr[18]; @@ -102449,6 +125966,9 @@ label_BFC27328: /* nop */ if (psx_taken_BFC27328) goto label_BFC27338; label_BFC27330: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27330: 16130006 bne $s0, $s3, 0xBFC2734C */ uint32_t psx_brA_BFC27330 = cpu->gpr[16]; uint32_t psx_brB_BFC27330 = cpu->gpr[19]; @@ -102457,6 +125977,9 @@ label_BFC27330: /* nop */ if (psx_taken_BFC27330) goto label_BFC2734C; label_BFC27338: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC27338: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -102471,6 +125994,9 @@ label_BFC27338: /* nop */ if (psx_taken_BFC27344) goto label_BFC2738C; label_BFC2734C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC2734C: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -102506,6 +126032,9 @@ label_BFC2734C: cpu->gpr[31] = 0x8003F38Cu; psx_dispatch(cpu, 0x80044B24u); label_BFC2738C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2738C: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -102516,6 +126045,9 @@ label_BFC2738C: /* nop */ if (psx_taken_BFC27390) goto label_BFC27328; label_BFC27398: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27398: 0C011DC6 jal 0xB0047718 */ /* 0xBFC2739C: 00000000 nop */ @@ -102523,6 +126055,9 @@ label_BFC27398: cpu->gpr[31] = 0x8003F3A0u; psx_dispatch(cpu, 0x80047718u); label_BFC273A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC273A0: 0C00FEF7 jal 0xB003FBDC */ /* 0xBFC273A4: 00000000 nop */ @@ -102530,6 +126065,9 @@ label_BFC273A0: cpu->gpr[31] = 0x8003F3A8u; psx_dispatch(cpu, 0x8003FBDCu); label_BFC273A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC273A8: 26F70001 addiu $s7, $s7, 1 */ cpu->gpr[23] = (uint32_t)((int32_t)cpu->gpr[23] + (1)); @@ -102542,6 +126080,9 @@ label_BFC273A8: cpu->gpr[22] = (uint32_t)((int32_t)cpu->gpr[22] + (5)); if (psx_taken_BFC273B0) goto label_BFC272EC; label_BFC273B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC273B8: 8FBF003C lw $ra, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC273B8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -102598,6 +126139,9 @@ void func_1FC273E4(CPUState* cpu) { } } label_BFC273E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC273E4: 27BDFEE8 addiu $sp, $sp, -280 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-280)); @@ -102640,6 +126184,9 @@ label_BFC273E4: /* 0xBFC27430: 0000A021 addu $s4, $zero, $zero */ cpu->gpr[20] = cpu->gpr[0] + cpu->gpr[0]; label_BFC27434: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC27434: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -102654,6 +126201,9 @@ label_BFC27434: /* nop */ if (psx_taken_BFC27440) goto label_BFC27454; label_BFC27448: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC27448: 3C038006 lui $v1, 0x8006 */ cpu->gpr[3] = 0x80060000u; @@ -102664,12 +126214,18 @@ label_BFC27448: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (28512)); if (psx_taken_BFC2744C) goto label_BFC2745C; label_BFC27454: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27454: 3C038006 lui $v1, 0x8006 */ cpu->gpr[3] = 0x80060000u; /* 0xBFC27458: 24637F40 addiu $v1, $v1, 32576 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (32576)); label_BFC2745C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2745C: 02A02021 addu $a0, $s5, $zero */ cpu->gpr[4] = cpu->gpr[21] + cpu->gpr[0]; @@ -102681,6 +126237,9 @@ label_BFC2745C: cpu->gpr[31] = 0x8003F46Cu; psx_dispatch(cpu, 0x800442F0u); label_BFC2746C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2746C: 3C058007 lui $a1, 0x8007 */ cpu->gpr[5] = 0x80070000u; @@ -102694,6 +126253,9 @@ label_BFC2746C: cpu->gpr[31] = 0x8003F480u; psx_dispatch(cpu, 0x800442F0u); label_BFC27480: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC27480: 02A02021 addu $a0, $s5, $zero */ cpu->gpr[4] = cpu->gpr[21] + cpu->gpr[0]; @@ -102707,6 +126269,9 @@ label_BFC27480: cpu->gpr[31] = 0x8003F494u; psx_dispatch(cpu, 0x80044A58u); label_BFC27494: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC27494: 02C02021 addu $a0, $s6, $zero */ cpu->gpr[4] = cpu->gpr[22] + cpu->gpr[0]; @@ -102720,6 +126285,9 @@ label_BFC27494: cpu->gpr[31] = 0x8003F4A8u; psx_dispatch(cpu, 0x80044A58u); label_BFC274A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC274A8: 24030001 addiu $v1, $zero, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -102738,10 +126306,16 @@ label_BFC274A8: /* nop */ if (psx_taken_BFC274BC) goto label_BFC274C8; label_BFC274C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC274C4: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC274C4u); return; label_BFC274C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC274C8: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -102752,6 +126326,9 @@ label_BFC274C8: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC274CC) goto label_BFC274E0; label_BFC274D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC274D4: 15E10002 bne $t7, $at, 0xBFC274E0 */ uint32_t psx_brA_BFC274D4 = cpu->gpr[15]; uint32_t psx_brB_BFC274D4 = cpu->gpr[1]; @@ -102760,10 +126337,16 @@ label_BFC274D4: /* nop */ if (psx_taken_BFC274D4) goto label_BFC274E0; label_BFC274DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC274DC: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC274DCu); return; label_BFC274E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC274E0: 00003012 mflo $a2 */ cpu->gpr[6] = cpu->lo; @@ -102773,6 +126356,9 @@ label_BFC274E0: cpu->gpr[31] = 0x8003F4ECu; psx_dispatch(cpu, 0x800447F4u); label_BFC274EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC274EC: 24030001 addiu $v1, $zero, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -102791,10 +126377,16 @@ label_BFC274EC: /* nop */ if (psx_taken_BFC27500) goto label_BFC2750C; label_BFC27508: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC27508: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC27508u); return; label_BFC2750C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2750C: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -102805,6 +126397,9 @@ label_BFC2750C: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC27510) goto label_BFC27524; label_BFC27518: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27518: 17010002 bne $t8, $at, 0xBFC27524 */ uint32_t psx_brA_BFC27518 = cpu->gpr[24]; uint32_t psx_brB_BFC27518 = cpu->gpr[1]; @@ -102813,10 +126408,16 @@ label_BFC27518: /* nop */ if (psx_taken_BFC27518) goto label_BFC27524; label_BFC27520: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC27520: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC27520u); return; label_BFC27524: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC27524: 00003012 mflo $a2 */ cpu->gpr[6] = cpu->lo; @@ -102826,6 +126427,9 @@ label_BFC27524: cpu->gpr[31] = 0x8003F530u; psx_dispatch(cpu, 0x80044988u); label_BFC27530: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC27530: 24030001 addiu $v1, $zero, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -102844,10 +126448,16 @@ label_BFC27530: /* nop */ if (psx_taken_BFC27544) goto label_BFC27550; label_BFC2754C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2754C: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC2754Cu); return; label_BFC27550: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC27550: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -102858,6 +126468,9 @@ label_BFC27550: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC27554) goto label_BFC27568; label_BFC2755C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2755C: 17210002 bne $t9, $at, 0xBFC27568 */ uint32_t psx_brA_BFC2755C = cpu->gpr[25]; uint32_t psx_brB_BFC2755C = cpu->gpr[1]; @@ -102866,10 +126479,16 @@ label_BFC2755C: /* nop */ if (psx_taken_BFC2755C) goto label_BFC27568; label_BFC27564: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC27564: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC27564u); return; label_BFC27568: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC27568: 00003012 mflo $a2 */ cpu->gpr[6] = cpu->lo; @@ -102879,6 +126498,9 @@ label_BFC27568: cpu->gpr[31] = 0x8003F574u; psx_dispatch(cpu, 0x800447F4u); label_BFC27574: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC27574: 24030001 addiu $v1, $zero, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -102897,10 +126519,16 @@ label_BFC27574: /* nop */ if (psx_taken_BFC27588) goto label_BFC27594; label_BFC27590: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC27590: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC27590u); return; label_BFC27594: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC27594: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -102911,6 +126539,9 @@ label_BFC27594: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC27598) goto label_BFC275AC; label_BFC275A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC275A0: 15010002 bne $t0, $at, 0xBFC275AC */ uint32_t psx_brA_BFC275A0 = cpu->gpr[8]; uint32_t psx_brB_BFC275A0 = cpu->gpr[1]; @@ -102919,10 +126550,16 @@ label_BFC275A0: /* nop */ if (psx_taken_BFC275A0) goto label_BFC275AC; label_BFC275A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC275A8: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC275A8u); return; label_BFC275AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC275AC: 00003012 mflo $a2 */ cpu->gpr[6] = cpu->lo; @@ -102932,6 +126569,9 @@ label_BFC275AC: cpu->gpr[31] = 0x8003F5B8u; psx_dispatch(cpu, 0x80044988u); label_BFC275B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC275B8: 0C016A48 jal 0xB005A920 */ /* 0xBFC275BC: 02602021 addu $a0, $s3, $zero */ @@ -102939,6 +126579,9 @@ label_BFC275B8: cpu->gpr[31] = 0x8003F5C0u; psx_dispatch(cpu, 0x8005A920u); label_BFC275C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC275C0: 1840000F blez $v0, 0xBFC27600 */ uint32_t psx_brA_BFC275C0 = cpu->gpr[2]; @@ -102947,6 +126590,9 @@ label_BFC275C0: cpu->gpr[11] = cpu->gpr[29] + cpu->gpr[18]; if (psx_taken_BFC275C0) goto label_BFC27600; label_BFC275C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC275C8: 27A90118 addiu $t1, $sp, 280 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[29] + (280)); @@ -102955,6 +126601,9 @@ label_BFC275C8: /* 0xBFC275D0: 02728821 addu $s1, $s3, $s2 */ cpu->gpr[17] = cpu->gpr[19] + cpu->gpr[18]; label_BFC275D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC275D4: 822A0000 lb $t2, 0($s1) */ cpu->gpr[10] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[17] + (0))); @@ -102972,6 +126621,9 @@ label_BFC275D4: cpu->gpr[31] = 0x8003F5F0u; psx_dispatch(cpu, 0x8005A920u); label_BFC275F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC275F0: 0242082A slt $at, $s2, $v0 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[18] < (int32_t)cpu->gpr[2] ? 1 : 0); @@ -102982,10 +126634,16 @@ label_BFC275F0: /* nop */ if (psx_taken_BFC275F4) goto label_BFC275D4; label_BFC275FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC275FC: 03B25821 addu $t3, $sp, $s2 */ cpu->gpr[11] = cpu->gpr[29] + cpu->gpr[18]; label_BFC27600: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC27600: A1600084 sb $zero, 132($t3) */ g_debug_last_store_pc = 0xBFC27600u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[11] + (132)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -103000,6 +126658,9 @@ label_BFC27600: /* nop */ if (psx_taken_BFC2760C) goto label_BFC27804; label_BFC27614: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(46u); +#endif psx_check_interrupts(cpu); /* 0xBFC27614: 00146880 sll $t5, $s4, 2 */ cpu->gpr[13] = cpu->gpr[20] << 2u; @@ -103095,6 +126756,9 @@ label_BFC27614: cpu->gpr[31] = 0x8003F6CCu; psx_dispatch(cpu, 0x8005A920u); label_BFC276CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC276CC: 24010003 addiu $at, $zero, 3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); @@ -103105,6 +126769,9 @@ label_BFC276CC: /* nop */ if (psx_taken_BFC276D0) goto label_BFC27700; label_BFC276D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC276D8: 24180010 addiu $t8, $zero, 16 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); @@ -103124,6 +126791,9 @@ label_BFC276D8: cpu->gpr[31] = 0x8003F6F8u; psx_dispatch(cpu, 0x8003F868u); label_BFC276F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC276F8: 10000019 beq $zero, $zero, 0xBFC27760 */ uint32_t psx_brA_BFC276F8 = cpu->gpr[0]; uint32_t psx_brB_BFC276F8 = cpu->gpr[0]; @@ -103132,6 +126802,9 @@ label_BFC276F8: cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); if (psx_taken_BFC276F8) goto label_BFC27760; label_BFC27700: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27700: 0C016A48 jal 0xB005A920 */ /* 0xBFC27704: 27A400C4 addiu $a0, $sp, 196 */ @@ -103139,6 +126812,9 @@ label_BFC27700: cpu->gpr[31] = 0x8003F708u; psx_dispatch(cpu, 0x8005A920u); label_BFC27708: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC27708: 24010006 addiu $at, $zero, 6 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (6)); @@ -103149,6 +126825,9 @@ label_BFC27708: /* nop */ if (psx_taken_BFC2770C) goto label_BFC2773C; label_BFC27714: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC27714: 24190010 addiu $t9, $zero, 16 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); @@ -103168,6 +126847,9 @@ label_BFC27714: cpu->gpr[31] = 0x8003F734u; psx_dispatch(cpu, 0x8003F868u); label_BFC27734: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27734: 1000000A beq $zero, $zero, 0xBFC27760 */ uint32_t psx_brA_BFC27734 = cpu->gpr[0]; uint32_t psx_brB_BFC27734 = cpu->gpr[0]; @@ -103176,6 +126858,9 @@ label_BFC27734: cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); if (psx_taken_BFC27734) goto label_BFC27760; label_BFC2773C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2773C: 3C058007 lui $a1, 0x8007 */ cpu->gpr[5] = 0x80070000u; @@ -103195,10 +126880,16 @@ label_BFC2773C: cpu->gpr[31] = 0x8003F75Cu; psx_dispatch(cpu, 0x8003F868u); label_BFC2775C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2775C: 24090010 addiu $t1, $zero, 16 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); label_BFC27760: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC27760: A3A000C4 sb $zero, 196($sp) */ g_debug_last_store_pc = 0xBFC27760u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[29] + (196)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -103216,6 +126907,9 @@ label_BFC27760: cpu->gpr[31] = 0x8003F77Cu; psx_dispatch(cpu, 0x8003F868u); label_BFC2777C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2777C: 8FA40060 lw $a0, 96($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (96)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2777Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -103235,6 +126929,9 @@ label_BFC2777C: cpu->gpr[31] = 0x8003F79Cu; psx_dispatch(cpu, 0x8003F868u); label_BFC2779C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2779C: 8FA4005C lw $a0, 92($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (92)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2779Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -103254,6 +126951,9 @@ label_BFC2779C: cpu->gpr[31] = 0x8003F7BCu; psx_dispatch(cpu, 0x8003F868u); label_BFC277BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC277BC: 8FA40058 lw $a0, 88($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (88)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC277BCu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -103273,6 +126973,9 @@ label_BFC277BC: cpu->gpr[31] = 0x8003F7DCu; psx_dispatch(cpu, 0x8003F868u); label_BFC277DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC277DC: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -103292,6 +126995,9 @@ label_BFC277DC: cpu->gpr[31] = 0x8003F7FCu; psx_dispatch(cpu, 0x8003F868u); label_BFC277FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC277FC: 1000000A beq $zero, $zero, 0xBFC27828 */ uint32_t psx_brA_BFC277FC = cpu->gpr[0]; uint32_t psx_brB_BFC277FC = cpu->gpr[0]; @@ -103300,6 +127006,9 @@ label_BFC277FC: cpu->gpr[20] = (uint32_t)((int32_t)cpu->gpr[20] + (1)); if (psx_taken_BFC277FC) goto label_BFC27828; label_BFC27804: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC27804: 3C058007 lui $a1, 0x8007 */ cpu->gpr[5] = 0x80070000u; @@ -103319,10 +127028,16 @@ label_BFC27804: cpu->gpr[31] = 0x8003F824u; psx_dispatch(cpu, 0x8003F868u); label_BFC27824: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC27824: 26940001 addiu $s4, $s4, 1 */ cpu->gpr[20] = (uint32_t)((int32_t)cpu->gpr[20] + (1)); label_BFC27828: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC27828: 2A810002 slti $at, $s4, 2 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[20] < (2) ? 1 : 0); @@ -103337,6 +127052,9 @@ label_BFC27828: cpu->gpr[23] = (uint32_t)((int32_t)cpu->gpr[23] + (1344)); if (psx_taken_BFC27834) goto label_BFC27434; label_BFC2783C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC2783C: 8FBF004C lw $ra, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2783Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -103376,6 +127094,9 @@ void func_1FC27868(CPUState* cpu) { } } label_BFC27868: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC27868: 27BDFFC0 addiu $sp, $sp, -64 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-64)); @@ -103400,6 +127121,9 @@ label_BFC27868: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2788Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC27888) goto label_BFC278F8; label_BFC27890: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC27890: AFA0001C sw $zero, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC27890u); return; } g_debug_last_store_pc = 0xBFC27890u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -103431,6 +127155,9 @@ label_BFC27890: cpu->gpr[31] = 0x8003F8C8u; psx_dispatch(cpu, 0x80043260u); label_BFC278C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC278C8: 8FA40040 lw $a0, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC278C8u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -103442,6 +127169,9 @@ label_BFC278C8: cpu->gpr[31] = 0x8003F8D8u; psx_dispatch(cpu, 0x800442F0u); label_BFC278D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC278D8: 8FA40040 lw $a0, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC278D8u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -103455,6 +127185,9 @@ label_BFC278D8: cpu->gpr[31] = 0x8003F8ECu; psx_dispatch(cpu, 0x800447F4u); label_BFC278EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC278EC: 0C016A50 jal 0xB005A940 */ /* 0xBFC278F0: 3C04801E lui $a0, 0x801E */ @@ -103462,10 +127195,16 @@ label_BFC278EC: cpu->gpr[31] = 0x8003F8F4u; psx_dispatch(cpu, 0x8005A940u); label_BFC278F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC278F4: 8FBF003C lw $ra, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC278F4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC278F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC278F8: 27BD0040 addiu $sp, $sp, 64 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (64)); @@ -103488,6 +127227,9 @@ void func_1FC27910(CPUState* cpu) { } } label_BFC27910: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC27910: 27BDFFD0 addiu $sp, $sp, -48 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-48)); @@ -103505,6 +127247,9 @@ label_BFC27910: cpu->gpr[31] = 0x8003F92Cu; psx_dispatch(cpu, 0x80040064u); label_BFC2792C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2792C: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -103529,6 +127274,9 @@ label_BFC2792C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC2794C) goto label_BFC27A18; label_BFC27954: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC27954: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -103549,6 +127297,9 @@ label_BFC27954: /* nop */ if (psx_taken_BFC2796C) goto label_BFC279D8; label_BFC27974: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC27974: 82190006 lb $t9, 6($s0) */ cpu->gpr[25] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (6))); @@ -103572,6 +127323,9 @@ label_BFC27974: cpu->gpr[31] = 0x8003F99Cu; psx_dispatch(cpu, 0x80052D68u); label_BFC2799C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC2799C: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -103606,6 +127360,9 @@ label_BFC2799C: /* nop */ if (psx_taken_BFC279D0) goto label_BFC27974; label_BFC279D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC279D8: 0C014F9B jal 0xB0053E6C */ /* 0xBFC279DC: 00000000 nop */ @@ -103613,6 +127370,9 @@ label_BFC279D8: cpu->gpr[31] = 0x8003F9E0u; psx_dispatch(cpu, 0x80053E6Cu); label_BFC279E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC279E0: 8FAB0030 lw $t3, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC279E0u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -103625,6 +127385,9 @@ label_BFC279E0: cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (89)); if (psx_taken_BFC279E8) goto label_BFC27A04; label_BFC279F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC279F0: 240C004A addiu $t4, $zero, 74 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[0] + (74)); @@ -103637,16 +127400,25 @@ label_BFC279F0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (15988)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC279FCu); return; } g_debug_last_store_pc = 0xBFC279FCu; cpu->write_word(psx_addr, cpu->gpr[12]); } if (psx_taken_BFC279F8) goto label_BFC27A0C; label_BFC27A00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC27A00: 240D0059 addiu $t5, $zero, 89 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (89)); label_BFC27A04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27A04: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; /* 0xBFC27A08: AC2D3E74 sw $t5, 15988($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (15988)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC27A08u); return; } g_debug_last_store_pc = 0xBFC27A08u; cpu->write_word(psx_addr, cpu->gpr[13]); } label_BFC27A0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27A0C: 10000002 beq $zero, $zero, 0xBFC27A18 */ uint32_t psx_brA_BFC27A0C = cpu->gpr[0]; uint32_t psx_brB_BFC27A0C = cpu->gpr[0]; @@ -103655,10 +127427,16 @@ label_BFC27A0C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC27A0C) goto label_BFC27A18; label_BFC27A14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC27A14: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC27A18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC27A18: 8FBF002C lw $ra, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC27A18u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -103684,6 +127462,9 @@ void func_1FC27A2C(CPUState* cpu) { } } label_BFC27A2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC27A2C: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -103716,6 +127497,9 @@ label_BFC27A2C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC27A5C) goto label_BFC27B10; label_BFC27A64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC27A64: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -103736,6 +127520,9 @@ label_BFC27A64: /* nop */ if (psx_taken_BFC27A7C) goto label_BFC27AE8; label_BFC27A84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC27A84: 82190006 lb $t9, 6($s0) */ cpu->gpr[25] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (6))); @@ -103759,6 +127546,9 @@ label_BFC27A84: cpu->gpr[31] = 0x8003FAACu; psx_dispatch(cpu, 0x80052D68u); label_BFC27AAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC27AAC: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -103793,6 +127583,9 @@ label_BFC27AAC: /* nop */ if (psx_taken_BFC27AE0) goto label_BFC27A84; label_BFC27AE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27AE8: 0C014F9B jal 0xB0053E6C */ /* 0xBFC27AEC: 00000000 nop */ @@ -103800,6 +127593,9 @@ label_BFC27AE8: cpu->gpr[31] = 0x8003FAF0u; psx_dispatch(cpu, 0x80053E6Cu); label_BFC27AF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC27AF0: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -103818,10 +127614,16 @@ label_BFC27AF0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC27B04) goto label_BFC27B10; label_BFC27B0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC27B0C: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC27B10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC27B10: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC27B10u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -103851,6 +127653,9 @@ void func_1FC27B24(CPUState* cpu) { } } label_BFC27B24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC27B24: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -103862,6 +127667,9 @@ label_BFC27B24: cpu->gpr[31] = 0x8003FB34u; psx_dispatch(cpu, 0x80059C80u); label_BFC27B34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC27B34: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -103883,6 +127691,9 @@ label_BFC27B34: cpu->gpr[31] = 0x8003FB58u; psx_dispatch(cpu, 0x80052D68u); label_BFC27B58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC27B58: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -103904,6 +127715,9 @@ label_BFC27B58: cpu->gpr[31] = 0x8003FB7Cu; psx_dispatch(cpu, 0x80052D68u); label_BFC27B7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC27B7C: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -103925,6 +127739,9 @@ label_BFC27B7C: cpu->gpr[31] = 0x8003FBA0u; psx_dispatch(cpu, 0x80052D68u); label_BFC27BA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC27BA0: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -103946,6 +127763,9 @@ label_BFC27BA0: cpu->gpr[31] = 0x8003FBC4u; psx_dispatch(cpu, 0x80052D68u); label_BFC27BC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27BC4: 0C014F9B jal 0xB0053E6C */ /* 0xBFC27BC8: 00000000 nop */ @@ -103953,6 +127773,9 @@ label_BFC27BC4: cpu->gpr[31] = 0x8003FBCCu; psx_dispatch(cpu, 0x80053E6Cu); label_BFC27BCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC27BCC: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC27BCCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -103976,6 +127799,9 @@ void func_1FC27BDC(CPUState* cpu) { } } label_BFC27BDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC27BDC: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -104008,6 +127834,9 @@ label_BFC27BDC: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC27C0C) goto label_BFC27CB4; label_BFC27C14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC27C14: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -104026,6 +127855,9 @@ label_BFC27C14: /* nop */ if (psx_taken_BFC27C28) goto label_BFC27C8C; label_BFC27C30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC27C30: 82190006 lb $t9, 6($s0) */ cpu->gpr[25] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (6))); @@ -104049,6 +127881,9 @@ label_BFC27C30: cpu->gpr[31] = 0x8003FC58u; psx_dispatch(cpu, 0x80052D68u); label_BFC27C58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC27C58: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -104079,6 +127914,9 @@ label_BFC27C58: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (16004)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC27C88u); return; } g_debug_last_store_pc = 0xBFC27C88u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC27C84) goto label_BFC27C30; label_BFC27C8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27C8C: 0C014F9B jal 0xB0053E6C */ /* 0xBFC27C90: 00000000 nop */ @@ -104086,6 +127924,9 @@ label_BFC27C8C: cpu->gpr[31] = 0x8003FC94u; psx_dispatch(cpu, 0x80053E6Cu); label_BFC27C94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC27C94: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -104104,10 +127945,16 @@ label_BFC27C94: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC27CA8) goto label_BFC27CB4; label_BFC27CB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC27CB0: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC27CB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC27CB4: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC27CB4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -104133,6 +127980,9 @@ void func_1FC27CC8(CPUState* cpu) { } } label_BFC27CC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC27CC8: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -104144,6 +127994,9 @@ label_BFC27CC8: cpu->gpr[31] = 0x8003FCD8u; psx_dispatch(cpu, 0x80054060u); label_BFC27CD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27CD8: 0C0148B0 jal 0xB00522C0 */ /* 0xBFC27CDC: 24040018 addiu $a0, $zero, 24 */ @@ -104151,6 +128004,9 @@ label_BFC27CD8: cpu->gpr[31] = 0x8003FCE0u; psx_dispatch(cpu, 0x800522C0u); label_BFC27CE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC27CE0: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -104204,6 +128060,9 @@ void func_1FC27D2C(CPUState* cpu) { } } label_BFC27D2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC27D2C: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; @@ -104220,6 +128079,9 @@ label_BFC27D2C: /* 0xBFC27D44: 34631D80 ori $v1, $v1, 0x1D80 */ cpu->gpr[3] = cpu->gpr[3] | 0x1D80u; label_BFC27D48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC27D48: A4400000 sh $zero, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC27D48u); return; } g_debug_last_store_pc = 0xBFC27D48u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } @@ -104244,6 +128106,9 @@ label_BFC27D48: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (-14)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC27D6Cu); return; } g_debug_last_store_pc = 0xBFC27D6Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } if (psx_taken_BFC27D68) goto label_BFC27D48; label_BFC27D70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC27D70: 2404007F addiu $a0, $zero, 127 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (127)); @@ -104253,6 +128118,9 @@ label_BFC27D70: cpu->gpr[31] = 0x8003FD7Cu; psx_dispatch(cpu, 0x80053E90u); label_BFC27D7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC27D7C: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -104264,6 +128132,9 @@ label_BFC27D7C: cpu->gpr[31] = 0x8003FD8Cu; psx_dispatch(cpu, 0x80053FF0u); label_BFC27D8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC27D8C: 3C021F80 lui $v0, 0x1F80 */ cpu->gpr[2] = 0x1F800000u; @@ -104304,6 +128175,9 @@ void func_1FC27DB0(CPUState* cpu) { } } label_BFC27DB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC27DB0: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -104314,6 +128188,9 @@ label_BFC27DB0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC27DB8u); return; } g_debug_last_store_pc = 0xBFC27DB8u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC27DB4) goto label_BFC27DC4; label_BFC27DBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27DBC: 0C00FF32 jal 0xB003FCC8 */ /* 0xBFC27DC0: 00000000 nop */ @@ -104321,6 +128198,9 @@ label_BFC27DBC: cpu->gpr[31] = 0x8003FDC4u; psx_dispatch(cpu, 0x8003FCC8u); label_BFC27DC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27DC4: 0C00FFAD jal 0xB003FEB4 */ /* 0xBFC27DC8: 24040006 addiu $a0, $zero, 6 */ @@ -104328,6 +128208,9 @@ label_BFC27DC4: cpu->gpr[31] = 0x8003FDCCu; psx_dispatch(cpu, 0x8003FEB4u); label_BFC27DCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC27DCC: 2404007F addiu $a0, $zero, 127 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (127)); @@ -104337,6 +128220,9 @@ label_BFC27DCC: cpu->gpr[31] = 0x8003FDD8u; psx_dispatch(cpu, 0x80053E90u); label_BFC27DD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC27DD8: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -104348,6 +128234,9 @@ label_BFC27DD8: cpu->gpr[31] = 0x8003FDE8u; psx_dispatch(cpu, 0x80053FF0u); label_BFC27DE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC27DE8: 24040001 addiu $a0, $zero, 1 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -104359,6 +128248,9 @@ label_BFC27DE8: cpu->gpr[31] = 0x8003FDF8u; psx_dispatch(cpu, 0x80053FF0u); label_BFC27DF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC27DF8: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -104370,6 +128262,9 @@ label_BFC27DF8: cpu->gpr[31] = 0x8003FE08u; psx_dispatch(cpu, 0x80053F40u); label_BFC27E08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC27E08: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -104381,6 +128276,9 @@ label_BFC27E08: cpu->gpr[31] = 0x8003FE18u; psx_dispatch(cpu, 0x80053F40u); label_BFC27E18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC27E18: 24040001 addiu $a0, $zero, 1 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -104392,6 +128290,9 @@ label_BFC27E18: cpu->gpr[31] = 0x8003FE28u; psx_dispatch(cpu, 0x80053F40u); label_BFC27E28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC27E28: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -104419,6 +128320,9 @@ label_BFC27E28: cpu->gpr[31] = 0x8003FE58u; psx_dispatch(cpu, 0x80053F10u); label_BFC27E58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC27E58: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC27E58u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -104441,6 +128345,9 @@ void func_1FC27E68(CPUState* cpu) { } } label_BFC27E68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC27E68: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -104452,6 +128359,9 @@ label_BFC27E68: cpu->gpr[31] = 0x8003FE78u; psx_dispatch(cpu, 0x8003FD2Cu); label_BFC27E78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC27E78: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC27E78u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -104474,6 +128384,9 @@ void func_1FC27E88(CPUState* cpu) { } } label_BFC27E88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC27E88: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -104489,6 +128402,9 @@ label_BFC27E88: cpu->gpr[31] = 0x8003FEA0u; psx_dispatch(cpu, 0x8005330Cu); label_BFC27EA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC27EA0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC27EA0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -104524,6 +128440,9 @@ void func_1FC27EB4(CPUState* cpu) { } } label_BFC27EB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC27EB4: 27BDEFC8 addiu $sp, $sp, -4152 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-4152)); @@ -104544,6 +128463,9 @@ label_BFC27EB4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC27ED0u); return; } g_debug_last_store_pc = 0xBFC27ED0u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC27ECC) { cpu->pc = 0xBFC2804Cu; return; } label_BFC27ED4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC27ED4: 00027880 sll $t7, $v0, 2 */ cpu->gpr[15] = cpu->gpr[2] << 2u; @@ -104569,6 +128491,9 @@ label_BFC27ED4: default: cpu->pc = cpu->gpr[15]; return; } label_BFC27EF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27EF0: 0C010019 jal 0xB0040064 */ /* 0xBFC27EF4: 00002021 addu $a0, $zero, $zero */ @@ -104576,6 +128501,9 @@ label_BFC27EF0: cpu->gpr[31] = 0x8003FEF8u; psx_dispatch(cpu, 0x80040064u); label_BFC27EF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC27EF8: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -104587,6 +128515,9 @@ label_BFC27EF8: cpu->gpr[31] = 0x8003FF08u; psx_dispatch(cpu, 0x80053FF0u); label_BFC27F08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27F08: 10000050 beq $zero, $zero, 0xBFC2804C */ uint32_t psx_brA_BFC27F08 = cpu->gpr[0]; uint32_t psx_brB_BFC27F08 = cpu->gpr[0]; @@ -104595,6 +128526,9 @@ label_BFC27F08: /* nop */ if (psx_taken_BFC27F08) { cpu->pc = 0xBFC2804Cu; return; } label_BFC27F10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27F10: 0C014F6E jal 0xB0053DB8 */ /* 0xBFC27F14: 24040001 addiu $a0, $zero, 1 */ @@ -104602,6 +128536,9 @@ label_BFC27F10: cpu->gpr[31] = 0x8003FF18u; psx_dispatch(cpu, 0x80053DB8u); label_BFC27F18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC27F18: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -104613,6 +128550,9 @@ label_BFC27F18: cpu->gpr[31] = 0x8003FF28u; psx_dispatch(cpu, 0x80053FF0u); label_BFC27F28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27F28: 10000048 beq $zero, $zero, 0xBFC2804C */ uint32_t psx_brA_BFC27F28 = cpu->gpr[0]; uint32_t psx_brB_BFC27F28 = cpu->gpr[0]; @@ -104621,6 +128561,9 @@ label_BFC27F28: /* nop */ if (psx_taken_BFC27F28) { cpu->pc = 0xBFC2804Cu; return; } label_BFC27F30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27F30: 0C014F6E jal 0xB0053DB8 */ /* 0xBFC27F34: 24040002 addiu $a0, $zero, 2 */ @@ -104628,6 +128571,9 @@ label_BFC27F30: cpu->gpr[31] = 0x8003FF38u; psx_dispatch(cpu, 0x80053DB8u); label_BFC27F38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC27F38: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -104639,6 +128585,9 @@ label_BFC27F38: cpu->gpr[31] = 0x8003FF48u; psx_dispatch(cpu, 0x80053FF0u); label_BFC27F48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27F48: 10000040 beq $zero, $zero, 0xBFC2804C */ uint32_t psx_brA_BFC27F48 = cpu->gpr[0]; uint32_t psx_brB_BFC27F48 = cpu->gpr[0]; @@ -104647,6 +128596,9 @@ label_BFC27F48: /* nop */ if (psx_taken_BFC27F48) { cpu->pc = 0xBFC2804Cu; return; } label_BFC27F50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27F50: 0C014F6E jal 0xB0053DB8 */ /* 0xBFC27F54: 24040003 addiu $a0, $zero, 3 */ @@ -104654,6 +128606,9 @@ label_BFC27F50: cpu->gpr[31] = 0x8003FF58u; psx_dispatch(cpu, 0x80053DB8u); label_BFC27F58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC27F58: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -104665,6 +128620,9 @@ label_BFC27F58: cpu->gpr[31] = 0x8003FF68u; psx_dispatch(cpu, 0x80053FF0u); label_BFC27F68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27F68: 10000038 beq $zero, $zero, 0xBFC2804C */ uint32_t psx_brA_BFC27F68 = cpu->gpr[0]; uint32_t psx_brB_BFC27F68 = cpu->gpr[0]; @@ -104673,6 +128631,9 @@ label_BFC27F68: /* nop */ if (psx_taken_BFC27F68) { cpu->pc = 0xBFC2804Cu; return; } label_BFC27F70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27F70: 0C014F6E jal 0xB0053DB8 */ /* 0xBFC27F74: 24040004 addiu $a0, $zero, 4 */ @@ -104680,6 +128641,9 @@ label_BFC27F70: cpu->gpr[31] = 0x8003FF78u; psx_dispatch(cpu, 0x80053DB8u); label_BFC27F78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC27F78: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -104691,6 +128655,9 @@ label_BFC27F78: cpu->gpr[31] = 0x8003FF88u; psx_dispatch(cpu, 0x80053FF0u); label_BFC27F88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27F88: 10000030 beq $zero, $zero, 0xBFC2804C */ uint32_t psx_brA_BFC27F88 = cpu->gpr[0]; uint32_t psx_brB_BFC27F88 = cpu->gpr[0]; @@ -104699,6 +128666,9 @@ label_BFC27F88: /* nop */ if (psx_taken_BFC27F88) { cpu->pc = 0xBFC2804Cu; return; } label_BFC27F90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27F90: 0C014F6E jal 0xB0053DB8 */ /* 0xBFC27F94: 24040005 addiu $a0, $zero, 5 */ @@ -104706,6 +128676,9 @@ label_BFC27F90: cpu->gpr[31] = 0x8003FF98u; psx_dispatch(cpu, 0x80053DB8u); label_BFC27F98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC27F98: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -104717,6 +128690,9 @@ label_BFC27F98: cpu->gpr[31] = 0x8003FFA8u; psx_dispatch(cpu, 0x80053FF0u); label_BFC27FA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC27FA8: 10000028 beq $zero, $zero, 0xBFC2804C */ uint32_t psx_brA_BFC27FA8 = cpu->gpr[0]; uint32_t psx_brB_BFC27FA8 = cpu->gpr[0]; @@ -104744,6 +128720,9 @@ void func_1FC27FB0(CPUState* cpu) { } } label_BFC27FB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC27FB0: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; @@ -104756,6 +128735,9 @@ label_BFC27FB0: /* 0xBFC27FC0: 27A21038 addiu $v0, $sp, 4152 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[29] + (4152)); label_BFC27FC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC27FC4: AC40EFF8 sw $zero, -4104($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (-4104)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC27FC4u); return; } g_debug_last_store_pc = 0xBFC27FC4u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -104772,6 +128754,9 @@ label_BFC27FC4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (-4108)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC27FD8u); return; } g_debug_last_store_pc = 0xBFC27FD8u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC27FD4) goto label_BFC27FC4; label_BFC27FDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC27FDC: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -104783,6 +128768,9 @@ label_BFC27FDC: cpu->gpr[31] = 0x8003FFECu; psx_dispatch(cpu, 0x80054710u); label_BFC27FEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC27FEC: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; @@ -104791,6 +128779,9 @@ label_BFC27FEC: /* 0xBFC27FF4: 3C110001 lui $s1, 0x1 */ cpu->gpr[17] = 0x00010000u; label_BFC27FF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC27FF8: AFB01030 sw $s0, 4144($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (4144)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC27FF8u); return; } g_debug_last_store_pc = 0xBFC27FF8u; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -104804,6 +128795,9 @@ label_BFC27FF8: cpu->gpr[31] = 0x8004000Cu; psx_dispatch(cpu, 0x80054710u); label_BFC2800C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2800C: 27A40030 addiu $a0, $sp, 48 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (48)); @@ -104813,6 +128807,9 @@ label_BFC2800C: cpu->gpr[31] = 0x80040018u; psx_dispatch(cpu, 0x80054428u); label_BFC28018: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC28018: 26100200 addiu $s0, $s0, 512 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (512)); @@ -104823,6 +128820,9 @@ label_BFC28018: /* nop */ if (psx_taken_BFC2801C) goto label_BFC27FF8; label_BFC28024: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28024: 0C014F6E jal 0xB0053DB8 */ /* 0xBFC28028: 24040006 addiu $a0, $zero, 6 */ @@ -104830,6 +128830,9 @@ label_BFC28024: cpu->gpr[31] = 0x8004002Cu; psx_dispatch(cpu, 0x80053DB8u); label_BFC2802C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2802C: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -104841,6 +128844,9 @@ label_BFC2802C: cpu->gpr[31] = 0x8004003Cu; psx_dispatch(cpu, 0x80053FF0u); label_BFC2803C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2803C: 8FB00020 lw $s0, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2803Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -104853,6 +128859,9 @@ label_BFC2803C: /* nop */ if (psx_taken_BFC28044) goto label_BFC2804C; label_BFC2804C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2804C: 0C014F5E jal 0xB0053D78 */ /* 0xBFC28050: 00000000 nop */ @@ -104860,6 +128869,9 @@ label_BFC2804C: cpu->gpr[31] = 0x80040054u; psx_dispatch(cpu, 0x80053D78u); label_BFC28054: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC28054: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC28054u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -104882,6 +128894,9 @@ void func_1FC28064(CPUState* cpu) { } } label_BFC28064: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC28064: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -104897,6 +128912,9 @@ label_BFC28064: cpu->gpr[31] = 0x8004007Cu; psx_dispatch(cpu, 0x80053E18u); label_BFC2807C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2807C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2807Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -104921,6 +128939,9 @@ void func_1FC282E8(CPUState* cpu) { } } label_BFC282E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC282E8: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -104935,6 +128956,9 @@ label_BFC282E8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC282F8u); return; } g_debug_last_store_pc = 0xBFC282F8u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC282F4) goto label_BFC28360; label_BFC282FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC282FC: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -104958,6 +128982,9 @@ label_BFC282FC: cpu->gpr[31] = 0x80040324u; psx_dispatch(cpu, 0x80052D68u); label_BFC28324: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC28324: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -104981,6 +129008,9 @@ label_BFC28324: cpu->gpr[31] = 0x8004034Cu; psx_dispatch(cpu, 0x80052D68u); label_BFC2834C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2834C: 0C014F9B jal 0xB0053E6C */ /* 0xBFC28350: 00000000 nop */ @@ -104988,6 +129018,9 @@ label_BFC2834C: cpu->gpr[31] = 0x80040354u; psx_dispatch(cpu, 0x80053E6Cu); label_BFC28354: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC28354: 24090001 addiu $t1, $zero, 1 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -104996,6 +129029,9 @@ label_BFC28354: /* 0xBFC2835C: A4299EE8 sh $t1, -24856($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24856)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2835Cu); return; } g_debug_last_store_pc = 0xBFC2835Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[9] & 0xFFFFu)); } label_BFC28360: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC28360: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC28360u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -105020,6 +129056,9 @@ void func_1FC28370(CPUState* cpu) { } } label_BFC28370: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC28370: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -105036,6 +129075,9 @@ label_BFC28370: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC28384u); return; } g_debug_last_store_pc = 0xBFC28384u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC28380) goto label_BFC283E0; label_BFC28388: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC28388: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -105057,6 +129099,9 @@ label_BFC28388: cpu->gpr[31] = 0x800403ACu; psx_dispatch(cpu, 0x80052D68u); label_BFC283AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC283AC: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -105078,6 +129123,9 @@ label_BFC283AC: cpu->gpr[31] = 0x800403D0u; psx_dispatch(cpu, 0x80052D68u); label_BFC283D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC283D0: 0C014F9B jal 0xB0053E6C */ /* 0xBFC283D4: 00000000 nop */ @@ -105085,12 +129133,18 @@ label_BFC283D0: cpu->gpr[31] = 0x800403D8u; psx_dispatch(cpu, 0x80053E6Cu); label_BFC283D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC283D8: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; /* 0xBFC283DC: A4209EE8 sh $zero, -24856($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24856)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC283DCu); return; } g_debug_last_store_pc = 0xBFC283DCu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } label_BFC283E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC283E0: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC283E0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -105105,6 +129159,9 @@ label_BFC283E0: void func_1FC283F0(CPUState* cpu) { debug_server_log_call_entry(0x1FC283F0u); label_BFC283F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC283F0: 10800023 beq $a0, $zero, 0xBFC28480 */ uint32_t psx_brA_BFC283F0 = cpu->gpr[4]; uint32_t psx_brB_BFC283F0 = cpu->gpr[0]; @@ -105113,6 +129170,9 @@ label_BFC283F0: /* nop */ if (psx_taken_BFC283F0) goto label_BFC28480; label_BFC283F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC283F8: 3C038007 lui $v1, 0x8007 */ cpu->gpr[3] = 0x80070000u; @@ -105125,6 +129185,9 @@ label_BFC283F8: /* 0xBFC28408: 8C620000 lw $v0, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC28408u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } label_BFC2840C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2840C: 00000000 nop */ /* nop */ @@ -105135,6 +129198,9 @@ label_BFC2840C: cpu->gpr[14] = cpu->gpr[2] << 2u; if (psx_taken_BFC28410) goto label_BFC28424; label_BFC28418: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28418: 1000000A beq $zero, $zero, 0xBFC28444 */ uint32_t psx_brA_BFC28418 = cpu->gpr[0]; uint32_t psx_brB_BFC28418 = cpu->gpr[0]; @@ -105143,10 +129209,16 @@ label_BFC28418: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC28418) goto label_BFC28444; label_BFC28420: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC28420: 00027080 sll $t6, $v0, 2 */ cpu->gpr[14] = cpu->gpr[2] << 2u; label_BFC28424: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC28424: 01C27021 addu $t6, $t6, $v0 */ cpu->gpr[14] = cpu->gpr[14] + cpu->gpr[2]; @@ -105167,6 +129239,9 @@ label_BFC28424: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC28440u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } if (psx_taken_BFC2843C) goto label_BFC2840C; label_BFC28444: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC28444: 3C038007 lui $v1, 0x8007 */ cpu->gpr[3] = 0x80070000u; @@ -105175,6 +129250,9 @@ label_BFC28444: /* 0xBFC2844C: 8C620000 lw $v0, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2844Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } label_BFC28450: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC28450: 00000000 nop */ /* nop */ @@ -105185,6 +129263,9 @@ label_BFC28450: /* nop */ if (psx_taken_BFC28454) goto label_BFC28480; label_BFC2845C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC2845C: 0002C080 sll $t8, $v0, 2 */ cpu->gpr[24] = cpu->gpr[2] << 2u; @@ -105207,6 +129288,9 @@ label_BFC2845C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2847Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } if (psx_taken_BFC28478) goto label_BFC28450; label_BFC28480: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28480: 03E00008 jr $ra */ /* 0xBFC28484: 00000000 nop */ @@ -105226,6 +129310,9 @@ void func_1FC28490(CPUState* cpu) { } } label_BFC28490: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC28490: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -105243,6 +129330,9 @@ label_BFC28490: cpu->gpr[31] = 0x800404ACu; psx_dispatch(cpu, 0x800404F0u); label_BFC284AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC284AC: 1440000B bne $v0, $zero, 0xBFC284DC */ uint32_t psx_brA_BFC284AC = cpu->gpr[2]; uint32_t psx_brB_BFC284AC = cpu->gpr[0]; @@ -105251,6 +129341,9 @@ label_BFC284AC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC284B0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC284AC) goto label_BFC284DC; label_BFC284B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC284B4: 24100001 addiu $s0, $zero, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -105261,6 +129354,9 @@ label_BFC284B4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC284BCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC284B8) goto label_BFC284DC; label_BFC284C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC284C0: 0C01013C jal 0xB00404F0 */ /* 0xBFC284C4: 00000000 nop */ @@ -105268,6 +129364,9 @@ label_BFC284C0: cpu->gpr[31] = 0x800404C8u; psx_dispatch(cpu, 0x800404F0u); label_BFC284C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC284C8: 14400004 bne $v0, $zero, 0xBFC284DC */ uint32_t psx_brA_BFC284C8 = cpu->gpr[2]; uint32_t psx_brB_BFC284C8 = cpu->gpr[0]; @@ -105276,6 +129375,9 @@ label_BFC284C8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC284CCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC284C8) goto label_BFC284DC; label_BFC284D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC284D0: 1230FFFB beq $s1, $s0, 0xBFC284C0 */ uint32_t psx_brA_BFC284D0 = cpu->gpr[17]; uint32_t psx_brB_BFC284D0 = cpu->gpr[16]; @@ -105284,10 +129386,16 @@ label_BFC284D0: /* nop */ if (psx_taken_BFC284D0) goto label_BFC284C0; label_BFC284D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC284D8: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC284D8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC284DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC284DC: 8FB00014 lw $s0, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC284DCu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -105337,6 +129445,9 @@ void func_1FC284F0(CPUState* cpu) { } } label_BFC284F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC284F0: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -105350,6 +129461,9 @@ label_BFC284F0: cpu->gpr[31] = 0x80040504u; psx_dispatch(cpu, 0x80047210u); label_BFC28504: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC28504: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -105361,6 +129475,9 @@ label_BFC28504: cpu->gpr[31] = 0x80040514u; psx_dispatch(cpu, 0x80047C10u); label_BFC28514: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28514: 0C011E17 jal 0xB004785C */ /* 0xBFC28518: 00000000 nop */ @@ -105368,6 +129485,9 @@ label_BFC28514: cpu->gpr[31] = 0x8004051Cu; psx_dispatch(cpu, 0x8004785Cu); label_BFC2851C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2851C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -105379,6 +129499,9 @@ label_BFC2851C: cpu->gpr[31] = 0x8004052Cu; psx_dispatch(cpu, 0x80047210u); label_BFC2852C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2852C: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -105390,6 +129513,9 @@ label_BFC2852C: cpu->gpr[31] = 0x8004053Cu; psx_dispatch(cpu, 0x80047C10u); label_BFC2853C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2853C: 0C011E17 jal 0xB004785C */ /* 0xBFC28540: 00000000 nop */ @@ -105397,6 +129523,9 @@ label_BFC2853C: cpu->gpr[31] = 0x80040544u; psx_dispatch(cpu, 0x8004785Cu); label_BFC28544: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC28544: 240E0046 addiu $t6, $zero, 70 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (70)); @@ -105418,6 +129547,9 @@ label_BFC28544: cpu->gpr[31] = 0x80040568u; psx_dispatch(cpu, 0x8004086Cu); label_BFC28568: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC28568: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -105429,6 +129561,9 @@ label_BFC28568: cpu->gpr[31] = 0x80040578u; psx_dispatch(cpu, 0x80040B84u); label_BFC28578: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28578: 0C013C0A jal 0xB004F028 */ /* 0xBFC2857C: 24040001 addiu $a0, $zero, 1 */ @@ -105436,6 +129571,9 @@ label_BFC28578: cpu->gpr[31] = 0x80040580u; psx_dispatch(cpu, 0x8004F028u); label_BFC28580: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC28580: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -105450,6 +129588,9 @@ label_BFC28580: /* nop */ if (psx_taken_BFC2858C) goto label_BFC285DC; label_BFC28594: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC28594: 240400B4 addiu $a0, $zero, 180 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (180)); @@ -105461,6 +129602,9 @@ label_BFC28594: cpu->gpr[31] = 0x800405A4u; psx_dispatch(cpu, 0x80047C10u); label_BFC285A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC285A4: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -105475,6 +129619,9 @@ label_BFC285A4: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (240)); if (psx_taken_BFC285B0) goto label_BFC285C4; label_BFC285B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC285B8: 10000002 beq $zero, $zero, 0xBFC285C4 */ uint32_t psx_brA_BFC285B8 = cpu->gpr[0]; uint32_t psx_brB_BFC285B8 = cpu->gpr[0]; @@ -105483,10 +129630,16 @@ label_BFC285B8: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (200)); if (psx_taken_BFC285B8) goto label_BFC285C4; label_BFC285C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC285C0: 240200F0 addiu $v0, $zero, 240 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (240)); label_BFC285C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC285C4: 04410002 bgez $v0, 0xBFC285D0 */ uint32_t psx_brA_BFC285C4 = cpu->gpr[2]; @@ -105495,10 +129648,16 @@ label_BFC285C4: cpu->gpr[1] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC285C4) goto label_BFC285D0; label_BFC285CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC285CC: 24210003 addiu $at, $at, 3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (3)); label_BFC285D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC285D0: 00012083 sra $a0, $at, 2 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[1] >> 2u); @@ -105508,6 +129667,9 @@ label_BFC285D0: cpu->gpr[31] = 0x800405DCu; psx_dispatch(cpu, 0x800478ACu); label_BFC285DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC285DC: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -105522,6 +129684,9 @@ label_BFC285DC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (240)); if (psx_taken_BFC285E8) goto label_BFC285FC; label_BFC285F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC285F0: 10000002 beq $zero, $zero, 0xBFC285FC */ uint32_t psx_brA_BFC285F0 = cpu->gpr[0]; uint32_t psx_brB_BFC285F0 = cpu->gpr[0]; @@ -105530,10 +129695,16 @@ label_BFC285F0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (200)); if (psx_taken_BFC285F0) goto label_BFC285FC; label_BFC285F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC285F8: 240200F0 addiu $v0, $zero, 240 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (240)); label_BFC285FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC285FC: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -105548,10 +129719,16 @@ label_BFC285FC: cpu->gpr[1] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC28608) goto label_BFC28614; label_BFC28610: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC28610: 24210003 addiu $at, $at, 3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (3)); label_BFC28614: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC28614: 00013083 sra $a2, $at, 2 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[1] >> 2u); @@ -105561,6 +129738,9 @@ label_BFC28614: cpu->gpr[31] = 0x80040620u; psx_dispatch(cpu, 0x800411C4u); label_BFC28620: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28620: 0C0105DC jal 0xB0041770 */ /* 0xBFC28624: 24040011 addiu $a0, $zero, 17 */ @@ -105568,6 +129748,9 @@ label_BFC28620: cpu->gpr[31] = 0x80040628u; psx_dispatch(cpu, 0x80041770u); label_BFC28628: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC28628: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -105582,6 +129765,9 @@ label_BFC28628: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (240)); if (psx_taken_BFC28634) goto label_BFC28648; label_BFC2863C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2863C: 10000002 beq $zero, $zero, 0xBFC28648 */ uint32_t psx_brA_BFC2863C = cpu->gpr[0]; uint32_t psx_brB_BFC2863C = cpu->gpr[0]; @@ -105590,10 +129776,16 @@ label_BFC2863C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (200)); if (psx_taken_BFC2863C) goto label_BFC28648; label_BFC28644: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC28644: 240200F0 addiu $v0, $zero, 240 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (240)); label_BFC28648: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28648: 04410002 bgez $v0, 0xBFC28654 */ uint32_t psx_brA_BFC28648 = cpu->gpr[2]; @@ -105602,10 +129794,16 @@ label_BFC28648: cpu->gpr[1] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC28648) goto label_BFC28654; label_BFC28650: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC28650: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC28654: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC28654: 00015043 sra $t2, $at, 1 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -105616,6 +129814,9 @@ label_BFC28654: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2865Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC28658) goto label_BFC28860; label_BFC28660: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC28660: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -105629,6 +129830,9 @@ label_BFC28660: cpu->gpr[31] = 0x80040674u; psx_dispatch(cpu, 0x800411C4u); label_BFC28674: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28674: 0C011DA8 jal 0xB00476A0 */ /* 0xBFC28678: 02028021 addu $s0, $s0, $v0 */ @@ -105636,6 +129840,9 @@ label_BFC28674: cpu->gpr[31] = 0x8004067Cu; psx_dispatch(cpu, 0x800476A0u); label_BFC2867C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2867C: 2A012329 slti $at, $s0, 9001 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (9001) ? 1 : 0); @@ -105646,10 +129853,16 @@ label_BFC2867C: /* nop */ if (psx_taken_BFC28680) goto label_BFC2868C; label_BFC28688: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC28688: 24100001 addiu $s0, $zero, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC2868C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC2868C: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -105681,6 +129894,9 @@ label_BFC2868C: cpu->gpr[31] = 0x800406C4u; psx_dispatch(cpu, 0x80051804u); label_BFC286C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC286C4: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -105712,6 +129928,9 @@ label_BFC286C4: cpu->gpr[31] = 0x800406FCu; psx_dispatch(cpu, 0x80051804u); label_BFC286FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC286FC: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -105743,6 +129962,9 @@ label_BFC286FC: cpu->gpr[31] = 0x80040734u; psx_dispatch(cpu, 0x80051804u); label_BFC28734: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28734: 12000031 beq $s0, $zero, 0xBFC287FC */ uint32_t psx_brA_BFC28734 = cpu->gpr[16]; uint32_t psx_brB_BFC28734 = cpu->gpr[0]; @@ -105751,6 +129973,9 @@ label_BFC28734: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (180)); if (psx_taken_BFC28734) goto label_BFC287FC; label_BFC2873C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2873C: 240A0001 addiu $t2, $zero, 1 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -105764,6 +129989,9 @@ label_BFC2873C: cpu->gpr[31] = 0x80040750u; psx_dispatch(cpu, 0x80041770u); label_BFC28750: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC28750: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -105795,6 +130023,9 @@ label_BFC28750: cpu->gpr[31] = 0x80040788u; psx_dispatch(cpu, 0x80044B24u); label_BFC28788: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC28788: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -105826,6 +130057,9 @@ label_BFC28788: cpu->gpr[31] = 0x800407C0u; psx_dispatch(cpu, 0x80044B24u); label_BFC287C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC287C0: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -105857,10 +130091,16 @@ label_BFC287C0: cpu->gpr[31] = 0x800407F8u; psx_dispatch(cpu, 0x80044B24u); label_BFC287F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC287F8: 240400B4 addiu $a0, $zero, 180 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (180)); label_BFC287FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC287FC: 240500B4 addiu $a1, $zero, 180 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[0] + (180)); @@ -105870,6 +130110,9 @@ label_BFC287FC: cpu->gpr[31] = 0x80040808u; psx_dispatch(cpu, 0x80047C10u); label_BFC28808: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28808: 0C011DE7 jal 0xB004779C */ /* 0xBFC2880C: 00000000 nop */ @@ -105877,6 +130120,9 @@ label_BFC28808: cpu->gpr[31] = 0x80040810u; psx_dispatch(cpu, 0x8004779Cu); label_BFC28810: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28810: 0C011DC6 jal 0xB0047718 */ /* 0xBFC28814: 00000000 nop */ @@ -105884,6 +130130,9 @@ label_BFC28810: cpu->gpr[31] = 0x80040818u; psx_dispatch(cpu, 0x80047718u); label_BFC28818: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28818: 0C00FE8B jal 0xB003FA2C */ /* 0xBFC2881C: 00000000 nop */ @@ -105891,6 +130140,9 @@ label_BFC28818: cpu->gpr[31] = 0x80040820u; psx_dispatch(cpu, 0x8003FA2Cu); label_BFC28820: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC28820: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -105905,6 +130157,9 @@ label_BFC28820: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (240)); if (psx_taken_BFC2882C) goto label_BFC28840; label_BFC28834: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28834: 10000002 beq $zero, $zero, 0xBFC28840 */ uint32_t psx_brA_BFC28834 = cpu->gpr[0]; uint32_t psx_brB_BFC28834 = cpu->gpr[0]; @@ -105913,10 +130168,16 @@ label_BFC28834: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (200)); if (psx_taken_BFC28834) goto label_BFC28840; label_BFC2883C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2883C: 240200F0 addiu $v0, $zero, 240 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (240)); label_BFC28840: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28840: 04410002 bgez $v0, 0xBFC2884C */ uint32_t psx_brA_BFC28840 = cpu->gpr[2]; @@ -105925,10 +130186,16 @@ label_BFC28840: cpu->gpr[1] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC28840) goto label_BFC2884C; label_BFC28848: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC28848: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC2884C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2884C: 00015843 sra $t3, $at, 1 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -105941,10 +130208,16 @@ label_BFC2884C: /* nop */ if (psx_taken_BFC28854) goto label_BFC28660; label_BFC2885C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2885C: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2885Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC28860: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC28860: 8FB00018 lw $s0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC28860u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -105974,6 +130247,9 @@ void func_1FC2886C(CPUState* cpu) { } } label_BFC2886C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC2886C: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -106003,6 +130279,9 @@ label_BFC2886C: cpu->gpr[31] = 0x800408A0u; psx_dispatch(cpu, 0x80043F1Cu); label_BFC288A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC288A0: 3C108014 lui $s0, 0x8014 */ cpu->gpr[16] = 0x80140000u; @@ -106031,6 +130310,9 @@ label_BFC288A0: /* 0xBFC288D0: 0000A021 addu $s4, $zero, $zero */ cpu->gpr[20] = cpu->gpr[0] + cpu->gpr[0]; label_BFC288D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC288D4: 00147080 sll $t6, $s4, 2 */ cpu->gpr[14] = cpu->gpr[20] << 2u; @@ -106056,6 +130338,9 @@ label_BFC288D4: cpu->gpr[31] = 0x80040900u; psx_dispatch(cpu, 0x800442F0u); label_BFC28900: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC28900: 3C148008 lui $s4, 0x8008 */ cpu->gpr[20] = 0x80080000u; @@ -106081,6 +130366,9 @@ label_BFC28900: cpu->gpr[31] = 0x8004092Cu; psx_dispatch(cpu, 0x800442F0u); label_BFC2892C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC2892C: 3C148008 lui $s4, 0x8008 */ cpu->gpr[20] = 0x80080000u; @@ -106106,6 +130394,9 @@ label_BFC2892C: cpu->gpr[31] = 0x80040958u; psx_dispatch(cpu, 0x800442F0u); label_BFC28958: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC28958: 3C148008 lui $s4, 0x8008 */ cpu->gpr[20] = 0x80080000u; @@ -106133,6 +130424,9 @@ label_BFC28958: cpu->gpr[31] = 0x80040988u; psx_dispatch(cpu, 0x80044A58u); label_BFC28988: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC28988: 3C148008 lui $s4, 0x8008 */ cpu->gpr[20] = 0x80080000u; @@ -106160,6 +130454,9 @@ label_BFC28988: cpu->gpr[31] = 0x800409B8u; psx_dispatch(cpu, 0x80044A58u); label_BFC289B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC289B8: 3C148008 lui $s4, 0x8008 */ cpu->gpr[20] = 0x80080000u; @@ -106187,6 +130484,9 @@ label_BFC289B8: cpu->gpr[31] = 0x800409E8u; psx_dispatch(cpu, 0x80044A58u); label_BFC289E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC289E8: 12600004 beq $s3, $zero, 0xBFC289FC */ uint32_t psx_brA_BFC289E8 = cpu->gpr[19]; uint32_t psx_brB_BFC289E8 = cpu->gpr[0]; @@ -106195,6 +130495,9 @@ label_BFC289E8: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC289E8) goto label_BFC289FC; label_BFC289F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC289F0: 10000002 beq $zero, $zero, 0xBFC289FC */ uint32_t psx_brA_BFC289F0 = cpu->gpr[0]; uint32_t psx_brB_BFC289F0 = cpu->gpr[0]; @@ -106203,10 +130506,16 @@ label_BFC289F0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC289F0) goto label_BFC289FC; label_BFC289F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC289F8: 24020002 addiu $v0, $zero, 2 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); label_BFC289FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC289FC: 240B0050 addiu $t3, $zero, 80 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (80)); @@ -106239,10 +130548,16 @@ label_BFC289FC: /* nop */ if (psx_taken_BFC28A2C) goto label_BFC28A38; label_BFC28A34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC28A34: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC28A34u); return; label_BFC28A38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC28A38: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -106253,6 +130568,9 @@ label_BFC28A38: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC28A3C) goto label_BFC28A50; label_BFC28A44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28A44: 15610002 bne $t3, $at, 0xBFC28A50 */ uint32_t psx_brA_BFC28A44 = cpu->gpr[11]; uint32_t psx_brB_BFC28A44 = cpu->gpr[1]; @@ -106261,10 +130579,16 @@ label_BFC28A44: /* nop */ if (psx_taken_BFC28A44) goto label_BFC28A50; label_BFC28A4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC28A4C: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC28A4Cu); return; label_BFC28A50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28A50: 0C0111FD jal 0xB00447F4 */ /* 0xBFC28A54: 00000000 nop */ @@ -106272,6 +130596,9 @@ label_BFC28A50: cpu->gpr[31] = 0x80040A58u; psx_dispatch(cpu, 0x800447F4u); label_BFC28A58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28A58: 12600004 beq $s3, $zero, 0xBFC28A6C */ uint32_t psx_brA_BFC28A58 = cpu->gpr[19]; uint32_t psx_brB_BFC28A58 = cpu->gpr[0]; @@ -106280,6 +130607,9 @@ label_BFC28A58: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC28A58) goto label_BFC28A6C; label_BFC28A60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28A60: 10000002 beq $zero, $zero, 0xBFC28A6C */ uint32_t psx_brA_BFC28A60 = cpu->gpr[0]; uint32_t psx_brB_BFC28A60 = cpu->gpr[0]; @@ -106288,10 +130618,16 @@ label_BFC28A60: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC28A60) goto label_BFC28A6C; label_BFC28A68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC28A68: 24020002 addiu $v0, $zero, 2 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); label_BFC28A6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC28A6C: 240D019C addiu $t5, $zero, 412 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (412)); @@ -106324,10 +130660,16 @@ label_BFC28A6C: /* nop */ if (psx_taken_BFC28A9C) goto label_BFC28AA8; label_BFC28AA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC28AA4: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC28AA4u); return; label_BFC28AA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC28AA8: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -106338,6 +130680,9 @@ label_BFC28AA8: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC28AAC) goto label_BFC28AC0; label_BFC28AB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28AB4: 15A10002 bne $t5, $at, 0xBFC28AC0 */ uint32_t psx_brA_BFC28AB4 = cpu->gpr[13]; uint32_t psx_brB_BFC28AB4 = cpu->gpr[1]; @@ -106346,10 +130691,16 @@ label_BFC28AB4: /* nop */ if (psx_taken_BFC28AB4) goto label_BFC28AC0; label_BFC28ABC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC28ABC: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC28ABCu); return; label_BFC28AC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28AC0: 0C0111FD jal 0xB00447F4 */ /* 0xBFC28AC4: 00000000 nop */ @@ -106357,6 +130708,9 @@ label_BFC28AC0: cpu->gpr[31] = 0x80040AC8u; psx_dispatch(cpu, 0x800447F4u); label_BFC28AC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28AC8: 12600004 beq $s3, $zero, 0xBFC28ADC */ uint32_t psx_brA_BFC28AC8 = cpu->gpr[19]; uint32_t psx_brB_BFC28AC8 = cpu->gpr[0]; @@ -106365,6 +130719,9 @@ label_BFC28AC8: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC28AC8) goto label_BFC28ADC; label_BFC28AD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28AD0: 10000002 beq $zero, $zero, 0xBFC28ADC */ uint32_t psx_brA_BFC28AD0 = cpu->gpr[0]; uint32_t psx_brB_BFC28AD0 = cpu->gpr[0]; @@ -106373,10 +130730,16 @@ label_BFC28AD0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC28AD0) goto label_BFC28ADC; label_BFC28AD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC28AD8: 24020002 addiu $v0, $zero, 2 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); label_BFC28ADC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC28ADC: 240F016D addiu $t7, $zero, 365 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (365)); @@ -106409,10 +130772,16 @@ label_BFC28ADC: /* nop */ if (psx_taken_BFC28B0C) goto label_BFC28B18; label_BFC28B14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC28B14: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC28B14u); return; label_BFC28B18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC28B18: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -106423,6 +130792,9 @@ label_BFC28B18: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC28B1C) goto label_BFC28B30; label_BFC28B24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28B24: 15E10002 bne $t7, $at, 0xBFC28B30 */ uint32_t psx_brA_BFC28B24 = cpu->gpr[15]; uint32_t psx_brB_BFC28B24 = cpu->gpr[1]; @@ -106431,10 +130803,16 @@ label_BFC28B24: /* nop */ if (psx_taken_BFC28B24) goto label_BFC28B30; label_BFC28B2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC28B2C: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC28B2Cu); return; label_BFC28B30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28B30: 0C0111FD jal 0xB00447F4 */ /* 0xBFC28B34: 00000000 nop */ @@ -106442,6 +130820,9 @@ label_BFC28B30: cpu->gpr[31] = 0x80040B38u; psx_dispatch(cpu, 0x800447F4u); label_BFC28B38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC28B38: 3C148008 lui $s4, 0x8008 */ cpu->gpr[20] = 0x80080000u; @@ -106460,6 +130841,9 @@ label_BFC28B38: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC28B4C) goto label_BFC288D4; label_BFC28B54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC28B54: 8FBF0034 lw $ra, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC28B54u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -106523,6 +130907,9 @@ void func_1FC28B84(CPUState* cpu) { } } label_BFC28B84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC28B84: 27BDFFB8 addiu $sp, $sp, -72 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-72)); @@ -106563,10 +130950,16 @@ label_BFC28B84: cpu->gpr[1] = cpu->gpr[6] + cpu->gpr[0]; if (psx_taken_BFC28BC4) goto label_BFC28BD0; label_BFC28BCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC28BCC: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC28BD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC28BD0: 0001B043 sra $s6, $at, 1 */ cpu->gpr[22] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -106577,6 +130970,9 @@ label_BFC28BD0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); if (psx_taken_BFC28BD4) goto label_BFC28BE8; label_BFC28BDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28BDC: 10000002 beq $zero, $zero, 0xBFC28BE8 */ uint32_t psx_brA_BFC28BDC = cpu->gpr[0]; uint32_t psx_brB_BFC28BDC = cpu->gpr[0]; @@ -106585,10 +130981,16 @@ label_BFC28BDC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC28BDC) goto label_BFC28BE8; label_BFC28BE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC28BE4: 24020004 addiu $v0, $zero, 4 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); label_BFC28BE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC28BE8: 00C2001A div $a2, $v0 */ { int32_t psx_n = (int32_t)cpu->gpr[6]; int32_t psx_d = (int32_t)cpu->gpr[2]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -106637,10 +131039,16 @@ label_BFC28BE8: /* nop */ if (psx_taken_BFC28C38) goto label_BFC28C44; label_BFC28C40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC28C40: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC28C40u); return; label_BFC28C44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC28C44: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -106651,6 +131059,9 @@ label_BFC28C44: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC28C48) goto label_BFC28C5C; label_BFC28C50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC28C50: 14C10002 bne $a2, $at, 0xBFC28C5C */ uint32_t psx_brA_BFC28C50 = cpu->gpr[6]; uint32_t psx_brB_BFC28C50 = cpu->gpr[1]; @@ -106659,10 +131070,16 @@ label_BFC28C50: /* nop */ if (psx_taken_BFC28C50) goto label_BFC28C5C; label_BFC28C58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC28C58: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC28C58u); return; label_BFC28C5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC28C5C: 24010064 addiu $at, $zero, 100 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (100)); @@ -106691,6 +131108,9 @@ label_BFC28C5C: /* 0xBFC28C8C: AC259E24 sw $a1, -25052($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25052)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC28C8Cu); return; } g_debug_last_store_pc = 0xBFC28C8Cu; cpu->write_word(psx_addr, cpu->gpr[5]); } label_BFC28C90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC28C90: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -106714,6 +131134,9 @@ label_BFC28C90: cpu->gpr[31] = 0x80040CB8u; psx_dispatch(cpu, 0x8004810Cu); label_BFC28CB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC28CB8: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -106743,6 +131166,9 @@ label_BFC28CB8: cpu->gpr[31] = 0x80040CECu; psx_dispatch(cpu, 0x800481ACu); label_BFC28CEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC28CEC: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -106772,6 +131198,9 @@ label_BFC28CEC: cpu->gpr[31] = 0x80040D20u; psx_dispatch(cpu, 0x800481ACu); label_BFC28D20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC28D20: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -106801,6 +131230,9 @@ label_BFC28D20: cpu->gpr[31] = 0x80040D54u; psx_dispatch(cpu, 0x800481ACu); label_BFC28D54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC28D54: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -106830,6 +131262,9 @@ label_BFC28D54: cpu->gpr[31] = 0x80040D88u; psx_dispatch(cpu, 0x800481ACu); label_BFC28D88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC28D88: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -106857,6 +131292,9 @@ label_BFC28D88: cpu->gpr[31] = 0x80040DB8u; psx_dispatch(cpu, 0x8004822Cu); label_BFC28DB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC28DB8: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -106884,6 +131322,9 @@ label_BFC28DB8: cpu->gpr[31] = 0x80040DE8u; psx_dispatch(cpu, 0x8004822Cu); label_BFC28DE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC28DE8: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -106911,6 +131352,9 @@ label_BFC28DE8: cpu->gpr[31] = 0x80040E18u; psx_dispatch(cpu, 0x8004822Cu); label_BFC28E18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC28E18: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -106938,6 +131382,9 @@ label_BFC28E18: cpu->gpr[31] = 0x80040E48u; psx_dispatch(cpu, 0x8004822Cu); label_BFC28E48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC28E48: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -106963,6 +131410,9 @@ label_BFC28E48: cpu->gpr[31] = 0x80040E74u; psx_dispatch(cpu, 0x8004831Cu); label_BFC28E74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC28E74: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -106986,6 +131436,9 @@ label_BFC28E74: cpu->gpr[31] = 0x80040E9Cu; psx_dispatch(cpu, 0x8004815Cu); label_BFC28E9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC28E9C: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -107015,6 +131468,9 @@ label_BFC28E9C: cpu->gpr[31] = 0x80040ED0u; psx_dispatch(cpu, 0x800481ACu); label_BFC28ED0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC28ED0: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -107044,6 +131500,9 @@ label_BFC28ED0: cpu->gpr[31] = 0x80040F04u; psx_dispatch(cpu, 0x800481ACu); label_BFC28F04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC28F04: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -107073,6 +131532,9 @@ label_BFC28F04: cpu->gpr[31] = 0x80040F38u; psx_dispatch(cpu, 0x800481ACu); label_BFC28F38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC28F38: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -107100,6 +131562,9 @@ label_BFC28F38: cpu->gpr[31] = 0x80040F68u; psx_dispatch(cpu, 0x8004822Cu); label_BFC28F68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC28F68: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -107127,6 +131592,9 @@ label_BFC28F68: cpu->gpr[31] = 0x80040F98u; psx_dispatch(cpu, 0x8004822Cu); label_BFC28F98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC28F98: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -107154,6 +131622,9 @@ label_BFC28F98: cpu->gpr[31] = 0x80040FC8u; psx_dispatch(cpu, 0x8004822Cu); label_BFC28FC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC28FC8: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -107179,6 +131650,9 @@ label_BFC28FC8: cpu->gpr[31] = 0x80040FF4u; psx_dispatch(cpu, 0x8004831Cu); label_BFC28FF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC28FF4: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -107202,6 +131676,9 @@ label_BFC28FF4: cpu->gpr[31] = 0x8004101Cu; psx_dispatch(cpu, 0x8004815Cu); label_BFC2901C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC2901C: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -107231,6 +131708,9 @@ label_BFC2901C: cpu->gpr[31] = 0x80041050u; psx_dispatch(cpu, 0x800481ACu); label_BFC29050: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC29050: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -107260,6 +131740,9 @@ label_BFC29050: cpu->gpr[31] = 0x80041084u; psx_dispatch(cpu, 0x800481ACu); label_BFC29084: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC29084: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -107289,6 +131772,9 @@ label_BFC29084: cpu->gpr[31] = 0x800410B8u; psx_dispatch(cpu, 0x800481ACu); label_BFC290B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC290B8: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -107316,6 +131802,9 @@ label_BFC290B8: cpu->gpr[31] = 0x800410E8u; psx_dispatch(cpu, 0x8004822Cu); label_BFC290E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC290E8: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -107343,6 +131832,9 @@ label_BFC290E8: cpu->gpr[31] = 0x80041118u; psx_dispatch(cpu, 0x8004822Cu); label_BFC29118: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC29118: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -107370,6 +131862,9 @@ label_BFC29118: cpu->gpr[31] = 0x80041148u; psx_dispatch(cpu, 0x8004822Cu); label_BFC29148: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC29148: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -107395,6 +131890,9 @@ label_BFC29148: cpu->gpr[31] = 0x80041174u; psx_dispatch(cpu, 0x8004831Cu); label_BFC29174: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC29174: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -107415,6 +131913,9 @@ label_BFC29174: /* nop */ if (psx_taken_BFC2918C) goto label_BFC28C90; label_BFC29194: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC29194: 8FBF0044 lw $ra, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC29194u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -107458,6 +131959,9 @@ void func_1FC291C4(CPUState* cpu) { } } label_BFC291C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC291C4: 00042400 sll $a0, $a0, 16 */ cpu->gpr[4] = cpu->gpr[4] << 16u; @@ -107480,6 +131984,9 @@ label_BFC291C4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC291E4u); return; } g_debug_last_store_pc = 0xBFC291E4u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC291E0) goto label_BFC2932C; label_BFC291E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC291E8: 240E1000 addiu $t6, $zero, 4096 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (4096)); @@ -107504,10 +132011,16 @@ label_BFC291E8: cpu->gpr[1] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC29208) goto label_BFC29214; label_BFC29210: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC29210: 24210003 addiu $at, $at, 3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (3)); label_BFC29214: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC29214: 00012883 sra $a1, $at, 2 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[1] >> 2u); @@ -107518,10 +132031,16 @@ label_BFC29214: cpu->gpr[1] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC29218) goto label_BFC29224; label_BFC29220: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC29220: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC29224: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC29224: 00013103 sra $a2, $at, 4 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -107546,6 +132065,9 @@ label_BFC29224: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (16234)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC29248u); return; } g_debug_last_store_pc = 0xBFC29248u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[25] & 0xFFFFu)); } if (psx_taken_BFC29244) goto label_BFC29254; label_BFC2924C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2924C: 10000002 beq $zero, $zero, 0xBFC29258 */ uint32_t psx_brA_BFC2924C = cpu->gpr[0]; uint32_t psx_brB_BFC2924C = cpu->gpr[0]; @@ -107554,10 +132076,16 @@ label_BFC2924C: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC2924C) goto label_BFC29258; label_BFC29254: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC29254: 24030002 addiu $v1, $zero, 2 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); label_BFC29258: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC29258: 00A64823 subu $t1, $a1, $a2 */ cpu->gpr[9] = cpu->gpr[5] - cpu->gpr[6]; @@ -107588,10 +132116,16 @@ label_BFC29258: /* nop */ if (psx_taken_BFC29284) goto label_BFC29290; label_BFC2928C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2928C: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC2928Cu); return; label_BFC29290: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC29290: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -107602,6 +132136,9 @@ label_BFC29290: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC29294) goto label_BFC292A8; label_BFC2929C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2929C: 15410002 bne $t2, $at, 0xBFC292A8 */ uint32_t psx_brA_BFC2929C = cpu->gpr[10]; uint32_t psx_brB_BFC2929C = cpu->gpr[1]; @@ -107610,10 +132147,16 @@ label_BFC2929C: /* nop */ if (psx_taken_BFC2929C) goto label_BFC292A8; label_BFC292A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC292A4: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC292A4u); return; label_BFC292A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC292A8: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -107626,10 +132169,16 @@ label_BFC292A8: cpu->gpr[1] = cpu->gpr[12] + cpu->gpr[0]; if (psx_taken_BFC292B0) goto label_BFC292BC; label_BFC292B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC292B8: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC292BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC292BC: 00016843 sra $t5, $at, 1 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -107654,10 +132203,16 @@ label_BFC292BC: cpu->gpr[1] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC292DC) goto label_BFC292E8; label_BFC292E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC292E4: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC292E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC292E8: 00017843 sra $t7, $at, 1 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -107696,6 +132251,9 @@ label_BFC292E8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (16232)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC29328u); return; } g_debug_last_store_pc = 0xBFC29328u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[7] & 0xFFFFu)); } if (psx_taken_BFC29324) goto label_BFC29760; label_BFC2932C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2932C: 3C078008 lui $a3, 0x8008 */ cpu->gpr[7] = 0x80080000u; @@ -107712,6 +132270,9 @@ label_BFC2932C: /* nop */ if (psx_taken_BFC2933C) goto label_BFC29350; label_BFC29344: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC29344: 24E70001 addiu $a3, $a3, 1 */ cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[7] + (1)); @@ -107720,6 +132281,9 @@ label_BFC29344: /* 0xBFC2934C: 00073C03 sra $a3, $a3, 16 */ cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[7] >> 16u); label_BFC29350: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC29350: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -107736,6 +132300,9 @@ label_BFC29350: /* nop */ if (psx_taken_BFC29360) goto label_BFC29460; label_BFC29368: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(31u); +#endif psx_check_interrupts(cpu); /* 0xBFC29368: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -107801,6 +132368,9 @@ label_BFC29368: cpu->gpr[31] = 0x800413E4u; psx_dispatch(cpu, 0x8004831Cu); label_BFC293E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(29u); +#endif psx_check_interrupts(cpu); /* 0xBFC293E4: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -107862,6 +132432,9 @@ label_BFC293E4: cpu->gpr[31] = 0x80041458u; psx_dispatch(cpu, 0x8004831Cu); label_BFC29458: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC29458: 100000C1 beq $zero, $zero, 0xBFC29760 */ uint32_t psx_brA_BFC29458 = cpu->gpr[0]; uint32_t psx_brB_BFC29458 = cpu->gpr[0]; @@ -107870,6 +132443,9 @@ label_BFC29458: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC29458) goto label_BFC29760; label_BFC29460: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(23u); +#endif psx_check_interrupts(cpu); /* 0xBFC29460: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -107920,10 +132496,16 @@ label_BFC29460: /* nop */ if (psx_taken_BFC294B4) goto label_BFC294C0; label_BFC294BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC294BC: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC294BCu); return; label_BFC294C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC294C0: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -107934,6 +132516,9 @@ label_BFC294C0: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC294C4) goto label_BFC294D8; label_BFC294CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC294CC: 15210002 bne $t1, $at, 0xBFC294D8 */ uint32_t psx_brA_BFC294CC = cpu->gpr[9]; uint32_t psx_brB_BFC294CC = cpu->gpr[1]; @@ -107942,10 +132527,16 @@ label_BFC294CC: /* nop */ if (psx_taken_BFC294CC) goto label_BFC294D8; label_BFC294D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC294D4: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC294D4u); return; label_BFC294D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC294D8: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -107955,6 +132546,9 @@ label_BFC294D8: cpu->gpr[31] = 0x800414E4u; psx_dispatch(cpu, 0x8004829Cu); label_BFC294E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(29u); +#endif psx_check_interrupts(cpu); /* 0xBFC294E4: 3C078008 lui $a3, 0x8008 */ cpu->gpr[7] = 0x80080000u; @@ -108017,10 +132611,16 @@ label_BFC294E4: /* nop */ if (psx_taken_BFC29550) goto label_BFC2955C; label_BFC29558: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC29558: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC29558u); return; label_BFC2955C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2955C: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -108031,6 +132631,9 @@ label_BFC2955C: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC29560) goto label_BFC29574; label_BFC29568: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC29568: 17210002 bne $t9, $at, 0xBFC29574 */ uint32_t psx_brA_BFC29568 = cpu->gpr[25]; uint32_t psx_brB_BFC29568 = cpu->gpr[1]; @@ -108039,10 +132642,16 @@ label_BFC29568: /* nop */ if (psx_taken_BFC29568) goto label_BFC29574; label_BFC29570: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC29570: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC29570u); return; label_BFC29574: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC29574: 24010064 addiu $at, $zero, 100 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (100)); @@ -108075,10 +132684,16 @@ label_BFC29574: /* nop */ if (psx_taken_BFC295A4) goto label_BFC295B0; label_BFC295AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC295AC: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC295ACu); return; label_BFC295B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC295B0: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -108089,6 +132704,9 @@ label_BFC295B0: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC295B4) goto label_BFC295C8; label_BFC295BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC295BC: 15610002 bne $t3, $at, 0xBFC295C8 */ uint32_t psx_brA_BFC295BC = cpu->gpr[11]; uint32_t psx_brB_BFC295BC = cpu->gpr[1]; @@ -108097,10 +132715,16 @@ label_BFC295BC: /* nop */ if (psx_taken_BFC295BC) goto label_BFC295C8; label_BFC295C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC295C4: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC295C4u); return; label_BFC295C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC295C8: 24010064 addiu $at, $zero, 100 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (100)); @@ -108114,6 +132738,9 @@ label_BFC295C8: cpu->gpr[31] = 0x800415DCu; psx_dispatch(cpu, 0x8004831Cu); label_BFC295DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(25u); +#endif psx_check_interrupts(cpu); /* 0xBFC295DC: 3C078008 lui $a3, 0x8008 */ cpu->gpr[7] = 0x80080000u; @@ -108168,10 +132795,16 @@ label_BFC295DC: /* nop */ if (psx_taken_BFC29638) goto label_BFC29644; label_BFC29640: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC29640: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC29640u); return; label_BFC29644: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC29644: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -108182,6 +132815,9 @@ label_BFC29644: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC29648) goto label_BFC2965C; label_BFC29650: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC29650: 15210002 bne $t1, $at, 0xBFC2965C */ uint32_t psx_brA_BFC29650 = cpu->gpr[9]; uint32_t psx_brB_BFC29650 = cpu->gpr[1]; @@ -108190,10 +132826,16 @@ label_BFC29650: /* nop */ if (psx_taken_BFC29650) goto label_BFC2965C; label_BFC29658: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC29658: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC29658u); return; label_BFC2965C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2965C: 0C0120A7 jal 0xB004829C */ /* 0xBFC29660: 00000000 nop */ @@ -108201,6 +132843,9 @@ label_BFC2965C: cpu->gpr[31] = 0x80041664u; psx_dispatch(cpu, 0x8004829Cu); label_BFC29664: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(29u); +#endif psx_check_interrupts(cpu); /* 0xBFC29664: 3C078008 lui $a3, 0x8008 */ cpu->gpr[7] = 0x80080000u; @@ -108263,10 +132908,16 @@ label_BFC29664: /* nop */ if (psx_taken_BFC296D0) goto label_BFC296DC; label_BFC296D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC296D8: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC296D8u); return; label_BFC296DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC296DC: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -108277,6 +132928,9 @@ label_BFC296DC: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC296E0) goto label_BFC296F4; label_BFC296E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC296E8: 15210002 bne $t1, $at, 0xBFC296F4 */ uint32_t psx_brA_BFC296E8 = cpu->gpr[9]; uint32_t psx_brB_BFC296E8 = cpu->gpr[1]; @@ -108285,10 +132939,16 @@ label_BFC296E8: /* nop */ if (psx_taken_BFC296E8) goto label_BFC296F4; label_BFC296F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC296F0: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC296F0u); return; label_BFC296F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC296F4: 24010064 addiu $at, $zero, 100 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (100)); @@ -108321,10 +132981,16 @@ label_BFC296F4: /* nop */ if (psx_taken_BFC29724) goto label_BFC29730; label_BFC2972C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2972C: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC2972Cu); return; label_BFC29730: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC29730: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -108335,6 +133001,9 @@ label_BFC29730: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC29734) goto label_BFC29748; label_BFC2973C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2973C: 15810002 bne $t4, $at, 0xBFC29748 */ uint32_t psx_brA_BFC2973C = cpu->gpr[12]; uint32_t psx_brB_BFC2973C = cpu->gpr[1]; @@ -108343,10 +133012,16 @@ label_BFC2973C: /* nop */ if (psx_taken_BFC2973C) goto label_BFC29748; label_BFC29744: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC29744: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC29744u); return; label_BFC29748: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC29748: 24010064 addiu $at, $zero, 100 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (100)); @@ -108360,10 +133035,16 @@ label_BFC29748: cpu->gpr[31] = 0x8004175Cu; psx_dispatch(cpu, 0x8004831Cu); label_BFC2975C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2975C: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC29760: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC29760: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC29760u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -108388,6 +133069,9 @@ void func_1FC29770(CPUState* cpu) { } } label_BFC29770: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC29770: 27BDFFA8 addiu $sp, $sp, -88 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-88)); @@ -108404,6 +133088,9 @@ label_BFC29770: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC29784u); return; } g_debug_last_store_pc = 0xBFC29784u; cpu->write_word(psx_addr, cpu->gpr[18]); } if (psx_taken_BFC29780) goto label_BFC297A0; label_BFC29788: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC29788: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -108420,6 +133107,9 @@ label_BFC29788: cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); if (psx_taken_BFC29798) goto label_BFC2986C; label_BFC297A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC297A0: AFB00034 sw $s0, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC297A0u); return; } g_debug_last_store_pc = 0xBFC297A0u; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -108454,6 +133144,9 @@ label_BFC297A0: /* 0xBFC297DC: 24120010 addiu $s2, $zero, 16 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); label_BFC297E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(21u); +#endif psx_check_interrupts(cpu); /* 0xBFC297E0: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -108499,6 +133192,9 @@ label_BFC297E0: cpu->gpr[31] = 0x80041834u; psx_dispatch(cpu, 0x8004F130u); label_BFC29834: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC29834: 0C013C1C jal 0xB004F070 */ /* 0xBFC29838: 00002021 addu $a0, $zero, $zero */ @@ -108506,6 +133202,9 @@ label_BFC29834: cpu->gpr[31] = 0x8004183Cu; psx_dispatch(cpu, 0x8004F070u); label_BFC2983C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2983C: 26310001 addiu $s1, $s1, 1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); @@ -108518,6 +133217,9 @@ label_BFC2983C: cpu->gpr[20] = (uint32_t)((int32_t)cpu->gpr[20] + (32)); if (psx_taken_BFC29844) goto label_BFC297E0; label_BFC2984C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2984C: 87A70058 lh $a3, 88($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (88)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2984Cu); return; } cpu->gpr[7] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -108536,6 +133238,9 @@ label_BFC2984C: /* 0xBFC29868: 00004021 addu $t0, $zero, $zero */ cpu->gpr[8] = cpu->gpr[0] + cpu->gpr[0]; label_BFC2986C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2986C: 29011000 slti $at, $t0, 4096 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[8] < (4096) ? 1 : 0); @@ -108546,12 +133251,18 @@ label_BFC2986C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[7] < (int32_t)cpu->gpr[8] ? 1 : 0); if (psx_taken_BFC29870) goto label_BFC29880; label_BFC29878: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC29878: 25080001 addiu $t0, $t0, 1 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[8] + (1)); /* 0xBFC2987C: 00E8082A slt $at, $a3, $t0 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[7] < (int32_t)cpu->gpr[8] ? 1 : 0); label_BFC29880: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC29880: 10200006 beq $at, $zero, 0xBFC2989C */ uint32_t psx_brA_BFC29880 = cpu->gpr[1]; uint32_t psx_brB_BFC29880 = cpu->gpr[0]; @@ -108560,6 +133271,9 @@ label_BFC29880: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC29880) goto label_BFC2989C; label_BFC29888: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC29888: AC283F84 sw $t0, 16260($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (16260)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC29888u); return; } g_debug_last_store_pc = 0xBFC29888u; cpu->write_word(psx_addr, cpu->gpr[8]); } @@ -108574,6 +133288,9 @@ label_BFC29888: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC29894) goto label_BFC29AC8; label_BFC2989C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC2989C: AFB10030 sw $s1, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2989Cu); return; } g_debug_last_store_pc = 0xBFC2989Cu; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -108604,12 +133321,18 @@ label_BFC2989C: /* 0xBFC298D0: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; label_BFC298D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC298D4: 02802821 addu $a1, $s4, $zero */ cpu->gpr[5] = cpu->gpr[20] + cpu->gpr[0]; /* 0xBFC298D8: 02603021 addu $a2, $s3, $zero */ cpu->gpr[6] = cpu->gpr[19] + cpu->gpr[0]; label_BFC298DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC298DC: 84A20000 lh $v0, 0($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC298DCu); return; } cpu->gpr[2] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -108622,6 +133345,9 @@ label_BFC298DC: /* nop */ if (psx_taken_BFC298E4) goto label_BFC29A58; label_BFC298EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(27u); +#endif psx_check_interrupts(cpu); /* 0xBFC298EC: 00E86023 subu $t4, $a3, $t0 */ cpu->gpr[12] = cpu->gpr[7] - cpu->gpr[8]; @@ -108680,10 +133406,16 @@ label_BFC298EC: /* nop */ if (psx_taken_BFC29950) goto label_BFC2995C; label_BFC29958: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC29958: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC29958u); return; label_BFC2995C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2995C: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -108694,6 +133426,9 @@ label_BFC2995C: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC29960) goto label_BFC29974; label_BFC29968: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC29968: 15A10002 bne $t5, $at, 0xBFC29974 */ uint32_t psx_brA_BFC29968 = cpu->gpr[13]; uint32_t psx_brB_BFC29968 = cpu->gpr[1]; @@ -108702,10 +133437,16 @@ label_BFC29968: /* nop */ if (psx_taken_BFC29968) goto label_BFC29974; label_BFC29970: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC29970: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC29970u); return; label_BFC29974: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC29974: 000C6EC2 srl $t5, $t4, 27 */ cpu->gpr[13] = cpu->gpr[12] >> 27u; @@ -108726,10 +133467,16 @@ label_BFC29974: /* nop */ if (psx_taken_BFC2998C) goto label_BFC29998; label_BFC29994: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC29994: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC29994u); return; label_BFC29998: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC29998: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -108740,6 +133487,9 @@ label_BFC29998: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC2999C) goto label_BFC299B0; label_BFC299A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC299A4: 15E10002 bne $t7, $at, 0xBFC299B0 */ uint32_t psx_brA_BFC299A4 = cpu->gpr[15]; uint32_t psx_brB_BFC299A4 = cpu->gpr[1]; @@ -108748,10 +133498,16 @@ label_BFC299A4: /* nop */ if (psx_taken_BFC299A4) goto label_BFC299B0; label_BFC299AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC299AC: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC299ACu); return; label_BFC299B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC299B0: 00007812 mflo $t7 */ cpu->gpr[15] = cpu->lo; @@ -108776,10 +133532,16 @@ label_BFC299B0: /* nop */ if (psx_taken_BFC299D0) goto label_BFC299DC; label_BFC299D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC299D8: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC299D8u); return; label_BFC299DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC299DC: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -108790,6 +133552,9 @@ label_BFC299DC: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC299E0) goto label_BFC299F4; label_BFC299E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC299E8: 15C10002 bne $t6, $at, 0xBFC299F4 */ uint32_t psx_brA_BFC299E8 = cpu->gpr[14]; uint32_t psx_brB_BFC299E8 = cpu->gpr[1]; @@ -108798,10 +133563,16 @@ label_BFC299E8: /* nop */ if (psx_taken_BFC299E8) goto label_BFC299F4; label_BFC299F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC299F0: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC299F0u); return; label_BFC299F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC299F4: 00026C40 sll $t5, $v0, 17 */ cpu->gpr[13] = cpu->gpr[2] << 17u; @@ -108842,10 +133613,16 @@ label_BFC299F4: /* nop */ if (psx_taken_BFC29A34) goto label_BFC29A40; label_BFC29A3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC29A3C: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC29A3Cu); return; label_BFC29A40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC29A40: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -108856,6 +133633,9 @@ label_BFC29A40: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC29A44) goto label_BFC29A58; label_BFC29A4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC29A4C: 15E10002 bne $t7, $at, 0xBFC29A58 */ uint32_t psx_brA_BFC29A4C = cpu->gpr[15]; uint32_t psx_brB_BFC29A4C = cpu->gpr[1]; @@ -108864,10 +133644,16 @@ label_BFC29A4C: /* nop */ if (psx_taken_BFC29A4C) goto label_BFC29A58; label_BFC29A54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC29A54: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC29A54u); return; label_BFC29A58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC29A58: 24840001 addiu $a0, $a0, 1 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (1)); @@ -108882,6 +133668,9 @@ label_BFC29A58: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (2)); if (psx_taken_BFC29A64) goto label_BFC298DC; label_BFC29A6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC29A6C: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -108899,6 +133688,9 @@ label_BFC29A6C: cpu->gpr[31] = 0x80041A88u; psx_dispatch(cpu, 0x8004F0F4u); label_BFC29A88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC29A88: 26730020 addiu $s3, $s3, 32 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (32)); @@ -108913,6 +133705,9 @@ label_BFC29A88: cpu->gpr[20] = (uint32_t)((int32_t)cpu->gpr[20] + (32)); if (psx_taken_BFC29A94) goto label_BFC29AB4; label_BFC29A9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC29A9C: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -108929,6 +133724,9 @@ label_BFC29A9C: cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC29AAC) goto label_BFC298D4; label_BFC29AB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC29AB4: 8FB00034 lw $s0, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC29AB4u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -108941,6 +133739,9 @@ label_BFC29AB4: /* 0xBFC29AC4: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC29AC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC29AC8: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC29AC8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -108996,6 +133797,9 @@ void func_1FC29AE0(CPUState* cpu) { } } label_BFC29AE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC29AE0: 27BDFF50 addiu $sp, $sp, -176 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-176)); @@ -109031,6 +133835,9 @@ label_BFC29AE0: cpu->gpr[31] = 0x80041B20u; psx_dispatch(cpu, 0x8004B6F0u); label_BFC29B20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC29B20: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -109042,6 +133849,9 @@ label_BFC29B20: cpu->gpr[31] = 0x80041B30u; psx_dispatch(cpu, 0x80041FE8u); label_BFC29B30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC29B30: 12000003 beq $s0, $zero, 0xBFC29B40 */ uint32_t psx_brA_BFC29B30 = cpu->gpr[16]; uint32_t psx_brB_BFC29B30 = cpu->gpr[0]; @@ -109050,6 +133860,9 @@ label_BFC29B30: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (168)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC29B34u); return; } g_debug_last_store_pc = 0xBFC29B34u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC29B30) goto label_BFC29B40; label_BFC29B38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC29B38: 0C011E9E jal 0xB0047A78 */ /* 0xBFC29B3C: 2404000C addiu $a0, $zero, 12 */ @@ -109057,6 +133870,9 @@ label_BFC29B38: cpu->gpr[31] = 0x80041B40u; psx_dispatch(cpu, 0x80047A78u); label_BFC29B40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC29B40: 3C04800F lui $a0, 0x800F */ cpu->gpr[4] = 0x800F0000u; @@ -109076,6 +133892,9 @@ label_BFC29B40: cpu->gpr[31] = 0x80041B60u; psx_dispatch(cpu, 0x8005154Cu); label_BFC29B60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC29B60: 3C04800F lui $a0, 0x800F */ cpu->gpr[4] = 0x800F0000u; @@ -109095,6 +133914,9 @@ label_BFC29B60: cpu->gpr[31] = 0x80041B80u; psx_dispatch(cpu, 0x8005154Cu); label_BFC29B80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC29B80: 3C04800F lui $a0, 0x800F */ cpu->gpr[4] = 0x800F0000u; @@ -109114,6 +133936,9 @@ label_BFC29B80: cpu->gpr[31] = 0x80041BA0u; psx_dispatch(cpu, 0x800515ECu); label_BFC29BA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC29BA0: 3C04800F lui $a0, 0x800F */ cpu->gpr[4] = 0x800F0000u; @@ -109133,6 +133958,9 @@ label_BFC29BA0: cpu->gpr[31] = 0x80041BC0u; psx_dispatch(cpu, 0x800515ECu); label_BFC29BC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC29BC0: 3C01800F lui $at, 0x800F */ cpu->gpr[1] = 0x800F0000u; @@ -109151,6 +133979,9 @@ label_BFC29BC0: g_debug_last_store_pc = 0xBFC29BD8u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[1] + (-22401)), (uint8_t)(cpu->gpr[0] & 0xFFu)); if (psx_taken_BFC29BD4) goto label_BFC29C34; label_BFC29BDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC29BDC: 24090003 addiu $t1, $zero, 3 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); @@ -109197,6 +134028,9 @@ label_BFC29BDC: /* 0xBFC29C30: A02EA8D6 sb $t6, -22314($at) */ g_debug_last_store_pc = 0xBFC29C30u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[1] + (-22314)), (uint8_t)(cpu->gpr[14] & 0xFFu)); label_BFC29C34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC29C34: 240F00EC addiu $t7, $zero, 236 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (236)); @@ -109218,6 +134052,9 @@ label_BFC29C34: cpu->gpr[31] = 0x80041C58u; psx_dispatch(cpu, 0x8004BFB4u); label_BFC29C58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC29C58: 0C012FF3 jal 0xB004BFCC */ /* 0xBFC29C5C: 24040400 addiu $a0, $zero, 1024 */ @@ -109225,6 +134062,9 @@ label_BFC29C58: cpu->gpr[31] = 0x80041C60u; psx_dispatch(cpu, 0x8004BFCCu); label_BFC29C60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC29C60: 24040064 addiu $a0, $zero, 100 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (100)); @@ -109236,6 +134076,9 @@ label_BFC29C60: cpu->gpr[31] = 0x80041C70u; psx_dispatch(cpu, 0x8004BF00u); label_BFC29C70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC29C70: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; @@ -109247,6 +134090,9 @@ label_BFC29C70: cpu->gpr[31] = 0x80041C80u; psx_dispatch(cpu, 0x8004BF20u); label_BFC29C80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC29C80: 24042710 addiu $a0, $zero, 10000 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (10000)); @@ -109256,6 +134102,9 @@ label_BFC29C80: cpu->gpr[31] = 0x80041C8Cu; psx_dispatch(cpu, 0x8004CAF0u); label_BFC29C8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC29C8C: 3C04800F lui $a0, 0x800F */ cpu->gpr[4] = 0x800F0000u; @@ -109265,6 +134114,9 @@ label_BFC29C8C: cpu->gpr[31] = 0x80041C98u; psx_dispatch(cpu, 0x8004231Cu); label_BFC29C98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC29C98: 3C04800F lui $a0, 0x800F */ cpu->gpr[4] = 0x800F0000u; @@ -109274,6 +134126,9 @@ label_BFC29C98: cpu->gpr[31] = 0x80041CA4u; psx_dispatch(cpu, 0x8004231Cu); label_BFC29CA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC29CA4: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -109283,6 +134138,9 @@ label_BFC29CA4: cpu->gpr[31] = 0x80041CB0u; psx_dispatch(cpu, 0x8004DB38u); label_BFC29CB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC29CB0: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -109292,6 +134150,9 @@ label_BFC29CB0: cpu->gpr[31] = 0x80041CBCu; psx_dispatch(cpu, 0x8004DB08u); label_BFC29CBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC29CBC: 3C048014 lui $a0, 0x8014 */ cpu->gpr[4] = 0x80140000u; @@ -109305,6 +134166,9 @@ label_BFC29CBC: cpu->gpr[31] = 0x80041CD0u; psx_dispatch(cpu, 0x8004D9B4u); label_BFC29CD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC29CD0: 2402003C addiu $v0, $zero, 60 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (60)); @@ -109316,6 +134180,9 @@ label_BFC29CD0: cpu->gpr[31] = 0x80041CE0u; psx_dispatch(cpu, 0x800402E8u); label_BFC29CE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC29CE0: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -109329,6 +134196,9 @@ label_BFC29CE0: cpu->gpr[31] = 0x80041CF4u; psx_dispatch(cpu, 0x8004C160u); label_BFC29CF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC29CF4: 3C048014 lui $a0, 0x8014 */ cpu->gpr[4] = 0x80140000u; @@ -109342,6 +134212,9 @@ label_BFC29CF4: cpu->gpr[31] = 0x80041D08u; psx_dispatch(cpu, 0x8004D86Cu); label_BFC29D08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC29D08: 3C108006 lui $s0, 0x8006 */ cpu->gpr[16] = 0x80060000u; @@ -109358,6 +134231,9 @@ label_BFC29D08: cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC29D18) goto label_BFC29D30; label_BFC29D20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC29D20: 3C10800F lui $s0, 0x800F */ cpu->gpr[16] = 0x800F0000u; @@ -109368,10 +134244,16 @@ label_BFC29D20: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-17272)); if (psx_taken_BFC29D24) goto label_BFC29D30; label_BFC29D2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC29D2C: 00408021 addu $s0, $v0, $zero */ cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; label_BFC29D30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC29D30: 16020004 bne $s0, $v0, 0xBFC29D44 */ uint32_t psx_brA_BFC29D30 = cpu->gpr[16]; uint32_t psx_brB_BFC29D30 = cpu->gpr[2]; @@ -109380,6 +134262,9 @@ label_BFC29D30: cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC29D30) goto label_BFC29D44; label_BFC29D38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC29D38: 10000003 beq $zero, $zero, 0xBFC29D48 */ uint32_t psx_brA_BFC29D38 = cpu->gpr[0]; uint32_t psx_brB_BFC29D38 = cpu->gpr[0]; @@ -109388,14 +134273,23 @@ label_BFC29D38: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (164)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC29D3Cu); return; } g_debug_last_store_pc = 0xBFC29D3Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC29D38) goto label_BFC29D48; label_BFC29D40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC29D40: 24190001 addiu $t9, $zero, 1 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC29D44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC29D44: AFB900A4 sw $t9, 164($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (164)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC29D44u); return; } g_debug_last_store_pc = 0xBFC29D44u; cpu->write_word(psx_addr, cpu->gpr[25]); } label_BFC29D48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC29D48: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; @@ -109409,6 +134303,9 @@ label_BFC29D48: cpu->gpr[31] = 0x80041D5Cu; psx_dispatch(cpu, 0x8004F334u); label_BFC29D5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC29D5C: 3C108006 lui $s0, 0x8006 */ cpu->gpr[16] = 0x80060000u; @@ -109424,6 +134321,9 @@ label_BFC29D5C: cpu->gpr[31] = 0x80041D74u; psx_dispatch(cpu, 0x80051804u); label_BFC29D74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC29D74: 0C013C1C jal 0xB004F070 */ /* 0xBFC29D78: 00002021 addu $a0, $zero, $zero */ @@ -109431,6 +134331,9 @@ label_BFC29D74: cpu->gpr[31] = 0x80041D7Cu; psx_dispatch(cpu, 0x8004F070u); label_BFC29D7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC29D7C: 0C016720 jal 0xB0059C80 */ /* 0xBFC29D80: 00002021 addu $a0, $zero, $zero */ @@ -109438,6 +134341,9 @@ label_BFC29D7C: cpu->gpr[31] = 0x80041D84u; psx_dispatch(cpu, 0x80059C80u); label_BFC29D84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC29D84: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -109454,6 +134360,9 @@ label_BFC29D84: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (1)); if (psx_taken_BFC29D94) goto label_BFC29F9C; label_BFC29D9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC29D9C: 3C048014 lui $a0, 0x8014 */ cpu->gpr[4] = 0x80140000u; @@ -109465,6 +134374,9 @@ label_BFC29D9C: cpu->gpr[31] = 0x80041DACu; psx_dispatch(cpu, 0x8004DAD8u); label_BFC29DAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC29DAC: 3C048014 lui $a0, 0x8014 */ cpu->gpr[4] = 0x80140000u; @@ -109474,6 +134386,9 @@ label_BFC29DAC: cpu->gpr[31] = 0x80041DB8u; psx_dispatch(cpu, 0x8004DB68u); label_BFC29DB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC29DB8: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -109495,6 +134410,9 @@ label_BFC29DB8: cpu->gpr[31] = 0x80041DDCu; psx_dispatch(cpu, 0x8004CAF0u); label_BFC29DDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC29DDC: 8FA800A8 lw $t0, 168($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (168)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC29DDCu); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -109507,6 +134425,9 @@ label_BFC29DDC: /* nop */ if (psx_taken_BFC29DE4) goto label_BFC29F5C; label_BFC29DEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(36u); +#endif psx_check_interrupts(cpu); /* 0xBFC29DEC: 8FA200A4 lw $v0, 164($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (164)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC29DECu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -109581,6 +134502,9 @@ label_BFC29DEC: /* 0xBFC29E78: 26370010 addiu $s7, $s1, 16 */ cpu->gpr[23] = (uint32_t)((int32_t)cpu->gpr[17] + (16)); label_BFC29E7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC29E7C: AFB60010 sw $s6, 16($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC29E7Cu); return; } g_debug_last_store_pc = 0xBFC29E7Cu; cpu->write_word(psx_addr, cpu->gpr[22]); } @@ -109612,6 +134536,9 @@ label_BFC29E7C: cpu->gpr[31] = 0x80041EB4u; psx_dispatch(cpu, 0x8004E740u); label_BFC29EB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC29EB4: 8FA50070 lw $a1, 112($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (112)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC29EB4u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -109627,6 +134554,9 @@ label_BFC29EB4: cpu->gpr[31] = 0x80041ECCu; psx_dispatch(cpu, 0x8004E068u); label_BFC29ECC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC29ECC: 8FA800A0 lw $t0, 160($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (160)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC29ECCu); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -109641,6 +134571,9 @@ label_BFC29ECC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (160)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC29EDCu); return; } g_debug_last_store_pc = 0xBFC29EDCu; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC29ED8) goto label_BFC29F10; label_BFC29EE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC29EE0: 29210400 slti $at, $t1, 1024 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[9] < (1024) ? 1 : 0); @@ -109651,6 +134584,9 @@ label_BFC29EE0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC29EE8u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } if (psx_taken_BFC29EE4) goto label_BFC29F14; label_BFC29EEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC29EEC: 1A000009 blez $s0, 0xBFC29F14 */ uint32_t psx_brA_BFC29EEC = cpu->gpr[16]; @@ -109659,6 +134595,9 @@ label_BFC29EEC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC29EF0u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } if (psx_taken_BFC29EEC) goto label_BFC29F14; label_BFC29EF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC29EF4: 3C108006 lui $s0, 0x8006 */ cpu->gpr[16] = 0x80060000u; @@ -109676,10 +134615,16 @@ label_BFC29EF4: cpu->gpr[31] = 0x80041F10u; psx_dispatch(cpu, 0x80051804u); label_BFC29F10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC29F10: 8FA200AC lw $v0, 172($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC29F10u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } label_BFC29F14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC29F14: 8FAB0070 lw $t3, 112($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (112)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC29F14u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -109720,6 +134665,9 @@ label_BFC29F14: cpu->gpr[30] = (uint32_t)((int32_t)cpu->gpr[30] + (36)); if (psx_taken_BFC29F54) goto label_BFC29E7C; label_BFC29F5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC29F5C: 3C108006 lui $s0, 0x8006 */ cpu->gpr[16] = 0x80060000u; @@ -109731,6 +134679,9 @@ label_BFC29F5C: cpu->gpr[31] = 0x80041F6Cu; psx_dispatch(cpu, 0x8004F434u); label_BFC29F6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC29F6C: 3C108006 lui $s0, 0x8006 */ cpu->gpr[16] = 0x80060000u; @@ -109742,6 +134693,9 @@ label_BFC29F6C: cpu->gpr[31] = 0x80041F7Cu; psx_dispatch(cpu, 0x8004F4ECu); label_BFC29F7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC29F7C: 3C108006 lui $s0, 0x8006 */ cpu->gpr[16] = 0x80060000u; @@ -109753,6 +134707,9 @@ label_BFC29F7C: cpu->gpr[31] = 0x80041F8Cu; psx_dispatch(cpu, 0x8004F3E0u); label_BFC29F8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC29F8C: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -109763,6 +134720,9 @@ label_BFC29F8C: /* 0xBFC29F98: 24420001 addiu $v0, $v0, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (1)); label_BFC29F9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC29F9C: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -109777,6 +134737,9 @@ label_BFC29F9C: /* nop */ if (psx_taken_BFC29FA8) goto label_BFC29D08; label_BFC29FB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC29FB0: 0C0100DC jal 0xB0040370 */ /* 0xBFC29FB4: 00000000 nop */ @@ -109784,6 +134747,9 @@ label_BFC29FB0: cpu->gpr[31] = 0x80041FB8u; psx_dispatch(cpu, 0x80040370u); label_BFC29FB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC29FB8: 8FBF0064 lw $ra, 100($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC29FB8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -109814,6 +134780,9 @@ label_BFC29FB8: void func_1FC29FE8(CPUState* cpu) { debug_server_log_call_entry(0x1FC29FE8u); label_BFC29FE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC29FE8: 27BDFF98 addiu $sp, $sp, -104 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-104)); @@ -109848,6 +134817,9 @@ label_BFC29FE8: cpu->gpr[9] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC2A01C) goto label_BFC2A30C; label_BFC2A024: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A024: AFB0002C sw $s0, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2A024u); return; } g_debug_last_store_pc = 0xBFC2A024u; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -109878,6 +134850,9 @@ label_BFC2A024: /* 0xBFC2A058: 240D0030 addiu $t5, $zero, 48 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (48)); label_BFC2A05C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A05C: 8C820000 lw $v0, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2A05Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -109888,6 +134863,9 @@ label_BFC2A05C: cpu->gpr[2] = cpu->gpr[2] >> 24u; if (psx_taken_BFC2A060) goto label_BFC2A2C8; label_BFC2A068: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(60u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A068: 8C920008 lw $s2, 8($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2A068u); return; } cpu->gpr[18] = cpu->read_word(psx_addr); } @@ -110012,6 +134990,9 @@ label_BFC2A068: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2A154u); return; } g_debug_last_store_pc = 0xBFC2A154u; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC2A150) goto label_BFC2A2D8; label_BFC2A158: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(92u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A158: 8C920008 lw $s2, 8($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2A158u); return; } cpu->gpr[18] = cpu->read_word(psx_addr); } @@ -110200,6 +135181,9 @@ label_BFC2A158: g_debug_last_store_pc = 0xBFC2A2C4u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[2] + (35)), (uint8_t)(cpu->gpr[16] & 0xFFu)); if (psx_taken_BFC2A2C0) goto label_BFC2A2D8; label_BFC2A2C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A2C8: 104CFF67 beq $v0, $t4, 0xBFC2A068 */ uint32_t psx_brA_BFC2A2C8 = cpu->gpr[2]; uint32_t psx_brB_BFC2A2C8 = cpu->gpr[12]; @@ -110208,6 +135192,9 @@ label_BFC2A2C8: /* nop */ if (psx_taken_BFC2A2C8) goto label_BFC2A068; label_BFC2A2D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A2D0: 104DFFA1 beq $v0, $t5, 0xBFC2A158 */ uint32_t psx_brA_BFC2A2D0 = cpu->gpr[2]; uint32_t psx_brB_BFC2A2D0 = cpu->gpr[13]; @@ -110216,6 +135203,9 @@ label_BFC2A2D0: /* nop */ if (psx_taken_BFC2A2D0) goto label_BFC2A158; label_BFC2A2D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A2D8: 25290001 addiu $t1, $t1, 1 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[9] + (1)); @@ -110226,6 +135216,9 @@ label_BFC2A2D8: /* nop */ if (psx_taken_BFC2A2DC) goto label_BFC2A05C; label_BFC2A2E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A2E4: 8FB0002C lw $s0, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2A2E4u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -110248,6 +135241,9 @@ label_BFC2A2E4: /* 0xBFC2A308: 00000000 nop */ /* nop */ label_BFC2A30C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A30C: 02201021 addu $v0, $s1, $zero */ cpu->gpr[2] = cpu->gpr[17] + cpu->gpr[0]; @@ -110271,6 +135267,9 @@ void func_1FC2A31C(CPUState* cpu) { } } label_BFC2A31C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A31C: 27BDFFD0 addiu $sp, $sp, -48 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-48)); @@ -110294,6 +135293,9 @@ label_BFC2A31C: cpu->gpr[31] = 0x80042344u; psx_dispatch(cpu, 0x800519ECu); label_BFC2A344: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(29u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A344: A2201074 sb $zero, 4212($s1) */ g_debug_last_store_pc = 0xBFC2A344u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[17] + (4212)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -110354,6 +135356,9 @@ label_BFC2A344: /* 0xBFC2A3B4: 24140258 addiu $s4, $zero, 600 */ cpu->gpr[20] = (uint32_t)((int32_t)cpu->gpr[0] + (600)); label_BFC2A3B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A3B8: 16320004 bne $s1, $s2, 0xBFC2A3CC */ uint32_t psx_brA_BFC2A3B8 = cpu->gpr[17]; uint32_t psx_brB_BFC2A3B8 = cpu->gpr[18]; @@ -110362,6 +135367,9 @@ label_BFC2A3B8: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC2A3B8) goto label_BFC2A3CC; label_BFC2A3C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A3C0: 10000002 beq $zero, $zero, 0xBFC2A3CC */ uint32_t psx_brA_BFC2A3C0 = cpu->gpr[0]; uint32_t psx_brB_BFC2A3C0 = cpu->gpr[0]; @@ -110370,10 +135378,16 @@ label_BFC2A3C0: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC2A3C0) goto label_BFC2A3CC; label_BFC2A3C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A3C8: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC2A3CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A3CC: 00027080 sll $t6, $v0, 2 */ cpu->gpr[14] = cpu->gpr[2] << 2u; @@ -110403,6 +135417,9 @@ label_BFC2A3CC: cpu->gpr[31] = 0x80042400u; psx_dispatch(cpu, 0x8005194Cu); label_BFC2A400: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A400: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -110413,6 +135430,9 @@ label_BFC2A400: /* nop */ if (psx_taken_BFC2A404) goto label_BFC2A3B8; label_BFC2A40C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A40C: 8FBF002C lw $ra, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2A40Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -110449,6 +135469,9 @@ void func_1FC2A4E0(CPUState* cpu) { } } label_BFC2A4E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(28u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A4E0: 3C010001 lui $at, 0x1 */ cpu->gpr[1] = 0x00010000u; @@ -110508,6 +135531,9 @@ label_BFC2A4E0: cpu->gpr[31] = 0x80042550u; psx_dispatch(cpu, 0x8004322Cu); label_BFC2A550: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A550: 27A400AC addiu $a0, $sp, 172 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (172)); @@ -110517,6 +135543,9 @@ label_BFC2A550: cpu->gpr[31] = 0x8004255Cu; psx_dispatch(cpu, 0x8004322Cu); label_BFC2A55C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A55C: 92640000 lbu $a0, 0($s3) */ cpu->gpr[4] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[19] + (0))); @@ -110529,6 +135558,9 @@ label_BFC2A55C: cpu->gpr[20] = 0x00010000u; if (psx_taken_BFC2A564) goto label_BFC2A6AC; label_BFC2A56C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A56C: 2414000A addiu $s4, $zero, 10 */ cpu->gpr[20] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); @@ -110537,6 +135569,9 @@ label_BFC2A56C: /* 0xBFC2A574: 341784BF ori $s7, $zero, 0x84BF */ cpu->gpr[23] = cpu->gpr[0] | 0x84BFu; label_BFC2A578: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A578: 1684000A bne $s4, $a0, 0xBFC2A5A4 */ uint32_t psx_brA_BFC2A578 = cpu->gpr[20]; uint32_t psx_brB_BFC2A578 = cpu->gpr[4]; @@ -110545,6 +135580,9 @@ label_BFC2A578: cpu->gpr[1] = (uint32_t)(cpu->gpr[4] < 0x00000081u ? 1 : 0); if (psx_taken_BFC2A578) goto label_BFC2A5A4; label_BFC2A580: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A580: 06C10002 bgez $s6, 0xBFC2A58C */ uint32_t psx_brA_BFC2A580 = cpu->gpr[22]; @@ -110553,10 +135591,16 @@ label_BFC2A580: cpu->gpr[1] = cpu->gpr[22] + cpu->gpr[0]; if (psx_taken_BFC2A580) goto label_BFC2A58C; label_BFC2A588: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A588: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC2A58C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A58C: 0001B103 sra $s6, $at, 4 */ cpu->gpr[22] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -110571,10 +135615,16 @@ label_BFC2A58C: cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (1)); if (psx_taken_BFC2A598) goto label_BFC2A690; label_BFC2A5A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A5A0: 2C810081 sltiu $at, $a0, 129 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[4] < 0x00000081u ? 1 : 0); label_BFC2A5A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A5A4: 14200009 bne $at, $zero, 0xBFC2A5CC */ uint32_t psx_brA_BFC2A5A4 = cpu->gpr[1]; uint32_t psx_brB_BFC2A5A4 = cpu->gpr[0]; @@ -110583,6 +135633,9 @@ label_BFC2A5A4: cpu->gpr[1] = (uint32_t)(cpu->gpr[4] < 0x00000099u ? 1 : 0); if (psx_taken_BFC2A5A4) goto label_BFC2A5CC; label_BFC2A5AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A5AC: 10200007 beq $at, $zero, 0xBFC2A5CC */ uint32_t psx_brA_BFC2A5AC = cpu->gpr[1]; uint32_t psx_brB_BFC2A5AC = cpu->gpr[0]; @@ -110591,6 +135644,9 @@ label_BFC2A5AC: /* nop */ if (psx_taken_BFC2A5AC) goto label_BFC2A5CC; label_BFC2A5B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A5B4: 926F0001 lbu $t7, 1($s3) */ cpu->gpr[15] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[19] + (1))); @@ -110607,6 +135663,9 @@ label_BFC2A5B4: cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (2)); if (psx_taken_BFC2A5C4) goto label_BFC2A5EC; label_BFC2A5CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A5CC: 0C010C2A jal 0xB00430A8 */ /* 0xBFC2A5D0: 00000000 nop */ @@ -110614,6 +135673,9 @@ label_BFC2A5CC: cpu->gpr[31] = 0x800425D4u; psx_dispatch(cpu, 0x800430A8u); label_BFC2A5D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A5D4: 3058FFFF andi $t8, $v0, 0xFFFF */ cpu->gpr[24] = cpu->gpr[2] & 0xFFFFu; @@ -110624,6 +135686,9 @@ label_BFC2A5D4: cpu->gpr[5] = cpu->gpr[2] & 0xFFFFu; if (psx_taken_BFC2A5D8) goto label_BFC2A5E8; label_BFC2A5E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A5E0: 10000185 beq $zero, $zero, 0xBFC2ABF8 */ uint32_t psx_brA_BFC2A5E0 = cpu->gpr[0]; uint32_t psx_brB_BFC2A5E0 = cpu->gpr[0]; @@ -110632,10 +135697,16 @@ label_BFC2A5E0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC2A5E0) goto label_BFC2ABF8; label_BFC2A5E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A5E8: 26730001 addiu $s3, $s3, 1 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (1)); label_BFC2A5EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A5EC: 00B5082B sltu $at, $a1, $s5 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < cpu->gpr[21] ? 1 : 0); @@ -110646,6 +135717,9 @@ label_BFC2A5EC: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < cpu->gpr[23] ? 1 : 0); if (psx_taken_BFC2A5F0) goto label_BFC2A61C; label_BFC2A5F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A5F8: 10200008 beq $at, $zero, 0xBFC2A61C */ uint32_t psx_brA_BFC2A5F8 = cpu->gpr[1]; uint32_t psx_brB_BFC2A5F8 = cpu->gpr[0]; @@ -110654,6 +135728,9 @@ label_BFC2A5F8: cpu->gpr[1] = 0x00010000u; if (psx_taken_BFC2A5F8) goto label_BFC2A61C; label_BFC2A600: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A600: 342100AC ori $at, $at, 0xAC */ cpu->gpr[1] = cpu->gpr[1] | 0xACu; @@ -110672,6 +135749,9 @@ label_BFC2A600: cpu->gpr[16] = cpu->gpr[16] | 0x6000u; if (psx_taken_BFC2A614) goto label_BFC2A668; label_BFC2A61C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A61C: 3401889F ori $at, $zero, 0x889F */ cpu->gpr[1] = cpu->gpr[0] | 0x889Fu; @@ -110684,6 +135764,9 @@ label_BFC2A61C: cpu->gpr[1] = cpu->gpr[0] | 0x9873u; if (psx_taken_BFC2A624) goto label_BFC2A654; label_BFC2A62C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A62C: 00A1082B sltu $at, $a1, $at */ cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < cpu->gpr[1] ? 1 : 0); @@ -110694,6 +135777,9 @@ label_BFC2A62C: cpu->gpr[1] = 0x00010000u; if (psx_taken_BFC2A630) goto label_BFC2A654; label_BFC2A638: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A638: 342100AC ori $at, $at, 0xAC */ cpu->gpr[1] = cpu->gpr[1] | 0xACu; @@ -110712,6 +135798,9 @@ label_BFC2A638: cpu->gpr[16] = cpu->gpr[16] | 0x9D68u; if (psx_taken_BFC2A64C) goto label_BFC2A668; label_BFC2A654: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A654: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -110721,6 +135810,9 @@ label_BFC2A654: cpu->gpr[31] = 0x80042660u; psx_dispatch(cpu, 0x8005A910u); label_BFC2A660: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A660: 10000165 beq $zero, $zero, 0xBFC2ABF8 */ uint32_t psx_brA_BFC2A660 = cpu->gpr[0]; uint32_t psx_brB_BFC2A660 = cpu->gpr[0]; @@ -110729,6 +135821,9 @@ label_BFC2A660: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC2A660) goto label_BFC2ABF8; label_BFC2A668: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A668: 0C010B34 jal 0xB0042CD0 */ /* 0xBFC2A66C: 00A02021 addu $a0, $a1, $zero */ @@ -110736,6 +135831,9 @@ label_BFC2A668: cpu->gpr[31] = 0x80042670u; psx_dispatch(cpu, 0x80042CD0u); label_BFC2A670: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A670: 0002C900 sll $t9, $v0, 4 */ cpu->gpr[25] = cpu->gpr[2] << 4u; @@ -110753,10 +135851,16 @@ label_BFC2A670: cpu->gpr[31] = 0x8004268Cu; psx_dispatch(cpu, 0x800431FCu); label_BFC2A68C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A68C: 26D60001 addiu $s6, $s6, 1 */ cpu->gpr[22] = (uint32_t)((int32_t)cpu->gpr[22] + (1)); label_BFC2A690: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A690: 92640000 lbu $a0, 0($s3) */ cpu->gpr[4] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[19] + (0))); @@ -110769,6 +135873,9 @@ label_BFC2A690: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[22] < (256) ? 1 : 0); if (psx_taken_BFC2A698) goto label_BFC2A6A8; label_BFC2A6A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A6A0: 1420FFB5 bne $at, $zero, 0xBFC2A578 */ uint32_t psx_brA_BFC2A6A0 = cpu->gpr[1]; uint32_t psx_brB_BFC2A6A0 = cpu->gpr[0]; @@ -110777,10 +135884,16 @@ label_BFC2A6A0: /* nop */ if (psx_taken_BFC2A6A0) goto label_BFC2A578; label_BFC2A6A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A6A8: 3C140001 lui $s4, 0x1 */ cpu->gpr[20] = 0x00010000u; label_BFC2A6AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A6AC: 029DA021 addu $s4, $s4, $sp */ cpu->gpr[20] = cpu->gpr[20] + cpu->gpr[29]; @@ -110793,16 +135906,25 @@ label_BFC2A6AC: /* 0xBFC2A6BC: 24150010 addiu $s5, $zero, 16 */ cpu->gpr[21] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); label_BFC2A6C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A6C0: 00008821 addu $s1, $zero, $zero */ cpu->gpr[17] = cpu->gpr[0] + cpu->gpr[0]; label_BFC2A6C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A6C4: 00008021 addu $s0, $zero, $zero */ cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; /* 0xBFC2A6C8: 02E0F821 addu $ra, $s7, $zero */ cpu->gpr[31] = cpu->gpr[23] + cpu->gpr[0]; label_BFC2A6CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A6CC: 03F6082A slt $at, $ra, $s6 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[31] < (int32_t)cpu->gpr[22] ? 1 : 0); @@ -110813,6 +135935,9 @@ label_BFC2A6CC: cpu->gpr[19] = cpu->gpr[31] + cpu->gpr[0]; if (psx_taken_BFC2A6D0) goto label_BFC2A994; label_BFC2A6D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A6D8: 3C010001 lui $at, 0x1 */ cpu->gpr[1] = 0x00010000u; @@ -110837,6 +135962,9 @@ label_BFC2A6D8: cpu->gpr[13] = cpu->gpr[14] + cpu->gpr[15]; if (psx_taken_BFC2A6F8) goto label_BFC2A884; label_BFC2A700: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(97u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A700: 95A2DFF4 lhu $v0, -8204($t5) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[13] + (-8204)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2A700u); return; } cpu->gpr[2] = (uint32_t)cpu->read_half(psx_addr); } @@ -111035,6 +136163,9 @@ label_BFC2A700: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-8198)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2A880u); return; } g_debug_last_store_pc = 0xBFC2A880u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[15] & 0xFFFFu)); } if (psx_taken_BFC2A87C) goto label_BFC2A994; label_BFC2A884: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(68u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A884: 95A2DFF4 lhu $v0, -8204($t5) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[13] + (-8204)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2A884u); return; } cpu->gpr[2] = (uint32_t)cpu->read_half(psx_addr); } @@ -111173,6 +136304,9 @@ label_BFC2A884: /* 0xBFC2A990: A42EDFFA sh $t6, -8198($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-8198)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2A990u); return; } g_debug_last_store_pc = 0xBFC2A990u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[14] & 0xFFFFu)); } label_BFC2A994: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A994: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -111185,6 +136319,9 @@ label_BFC2A994: cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (4)); if (psx_taken_BFC2A99C) goto label_BFC2A6CC; label_BFC2A9A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A9A4: 26310001 addiu $s1, $s1, 1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); @@ -111197,6 +136334,9 @@ label_BFC2A9A4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[19] < (int32_t)cpu->gpr[22] ? 1 : 0); if (psx_taken_BFC2A9AC) goto label_BFC2A6C4; label_BFC2A9B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A9B4: 10200005 beq $at, $zero, 0xBFC2A9CC */ uint32_t psx_brA_BFC2A9B4 = cpu->gpr[1]; uint32_t psx_brB_BFC2A9B4 = cpu->gpr[0]; @@ -111205,6 +136345,9 @@ label_BFC2A9B4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[22] < (16) ? 1 : 0); if (psx_taken_BFC2A9B4) goto label_BFC2A9CC; label_BFC2A9BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A9BC: 26F70010 addiu $s7, $s7, 16 */ cpu->gpr[23] = (uint32_t)((int32_t)cpu->gpr[23] + (16)); @@ -111217,6 +136360,9 @@ label_BFC2A9BC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[22] < (16) ? 1 : 0); if (psx_taken_BFC2A9C4) goto label_BFC2A6C0; label_BFC2A9CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A9CC: 1020000A beq $at, $zero, 0xBFC2A9F8 */ uint32_t psx_brA_BFC2A9CC = cpu->gpr[1]; uint32_t psx_brB_BFC2A9CC = cpu->gpr[0]; @@ -111225,6 +136371,9 @@ label_BFC2A9CC: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[22] + (-1)); if (psx_taken_BFC2A9CC) goto label_BFC2A9F8; label_BFC2A9D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A9D4: 26D1FFFF addiu $s1, $s6, -1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[22] + (-1)); @@ -111237,10 +136386,16 @@ label_BFC2A9D4: cpu->gpr[1] = cpu->gpr[17] + cpu->gpr[0]; if (psx_taken_BFC2A9DC) goto label_BFC2A9E8; label_BFC2A9E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A9E4: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC2A9E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A9E8: 00019103 sra $s2, $at, 4 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -111251,10 +136406,16 @@ label_BFC2A9E8: cpu->gpr[16] = cpu->gpr[20] << 2u; if (psx_taken_BFC2A9EC) goto label_BFC2AA14; label_BFC2A9F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A9F4: 26D1FFFF addiu $s1, $s6, -1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[22] + (-1)); label_BFC2A9F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2A9F8: 06210002 bgez $s1, 0xBFC2AA04 */ uint32_t psx_brA_BFC2A9F8 = cpu->gpr[17]; @@ -111263,10 +136424,16 @@ label_BFC2A9F8: cpu->gpr[1] = cpu->gpr[17] + cpu->gpr[0]; if (psx_taken_BFC2A9F8) goto label_BFC2AA04; label_BFC2AA00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AA00: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC2AA04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AA04: 00019103 sra $s2, $at, 4 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -111277,6 +136444,9 @@ label_BFC2AA04: /* 0xBFC2AA10: 00148080 sll $s0, $s4, 2 */ cpu->gpr[16] = cpu->gpr[20] << 2u; label_BFC2AA14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AA14: 26050040 addiu $a1, $s0, 64 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[16] + (64)); @@ -111286,6 +136456,9 @@ label_BFC2AA14: cpu->gpr[31] = 0x80042A20u; psx_dispatch(cpu, 0x8004322Cu); label_BFC2AA20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(40u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AA20: 24190008 addiu $t9, $zero, 8 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (8)); @@ -111370,6 +136543,9 @@ label_BFC2AA20: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2AABCu); return; } g_debug_last_store_pc = 0xBFC2AABCu; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC2AAB8) goto label_BFC2AAC8; label_BFC2AAC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AAC0: 10000008 beq $zero, $zero, 0xBFC2AAE4 */ uint32_t psx_brA_BFC2AAC0 = cpu->gpr[0]; uint32_t psx_brB_BFC2AAC0 = cpu->gpr[0]; @@ -111378,6 +136554,9 @@ label_BFC2AAC0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (64)); if (psx_taken_BFC2AAC0) goto label_BFC2AAE4; label_BFC2AAC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AAC8: 06210004 bgez $s1, 0xBFC2AADC */ uint32_t psx_brA_BFC2AAC8 = cpu->gpr[17]; @@ -111386,6 +136565,9 @@ label_BFC2AAC8: cpu->gpr[2] = cpu->gpr[17] & 0xFu; if (psx_taken_BFC2AAC8) goto label_BFC2AADC; label_BFC2AAD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AAD0: 10400002 beq $v0, $zero, 0xBFC2AADC */ uint32_t psx_brA_BFC2AAD0 = cpu->gpr[2]; uint32_t psx_brB_BFC2AAD0 = cpu->gpr[0]; @@ -111394,16 +136576,25 @@ label_BFC2AAD0: /* nop */ if (psx_taken_BFC2AAD0) goto label_BFC2AADC; label_BFC2AAD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AAD8: 2442FFF0 addiu $v0, $v0, -16 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (-16)); label_BFC2AADC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AADC: 00021080 sll $v0, $v0, 2 */ cpu->gpr[2] = cpu->gpr[2] << 2u; /* 0xBFC2AAE0: 24420004 addiu $v0, $v0, 4 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (4)); label_BFC2AAE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AAE4: 0012C900 sll $t9, $s2, 4 */ cpu->gpr[25] = cpu->gpr[18] << 4u; @@ -111422,6 +136613,9 @@ label_BFC2AAE4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2AAFCu); return; } g_debug_last_store_pc = 0xBFC2AAFCu; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC2AAF8) goto label_BFC2AB90; label_BFC2AB00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AB00: 00008821 addu $s1, $zero, $zero */ cpu->gpr[17] = cpu->gpr[0] + cpu->gpr[0]; @@ -111434,12 +136628,18 @@ label_BFC2AB00: cpu->gpr[5] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC2AB08) goto label_BFC2ABF4; label_BFC2AB10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AB10: 00162080 sll $a0, $s6, 2 */ cpu->gpr[4] = cpu->gpr[22] << 2u; /* 0xBFC2AB14: 03C01021 addu $v0, $fp, $zero */ cpu->gpr[2] = cpu->gpr[30] + cpu->gpr[0]; label_BFC2AB18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AB18: 06610004 bgez $s3, 0xBFC2AB2C */ uint32_t psx_brA_BFC2AB18 = cpu->gpr[19]; @@ -111448,6 +136648,9 @@ label_BFC2AB18: cpu->gpr[25] = cpu->gpr[19] & 0x3Fu; if (psx_taken_BFC2AB18) goto label_BFC2AB2C; label_BFC2AB20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AB20: 13200002 beq $t9, $zero, 0xBFC2AB2C */ uint32_t psx_brA_BFC2AB20 = cpu->gpr[25]; uint32_t psx_brB_BFC2AB20 = cpu->gpr[0]; @@ -111456,10 +136659,16 @@ label_BFC2AB20: /* nop */ if (psx_taken_BFC2AB20) goto label_BFC2AB2C; label_BFC2AB28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AB28: 2739FFC0 addiu $t9, $t9, -64 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[25] + (-64)); label_BFC2AB2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AB2C: 0324082A slt $at, $t9, $a0 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[25] < (int32_t)cpu->gpr[4] ? 1 : 0); @@ -111470,6 +136679,9 @@ label_BFC2AB2C: cpu->gpr[1] = 0x00010000u; if (psx_taken_BFC2AB30) goto label_BFC2AB44; label_BFC2AB38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AB38: 24A50001 addiu $a1, $a1, 1 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (1)); @@ -111478,6 +136690,9 @@ label_BFC2AB38: /* 0xBFC2AB40: 3C010001 lui $at, 0x1 */ cpu->gpr[1] = 0x00010000u; label_BFC2AB44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AB44: 342120B8 ori $at, $at, 0x20B8 */ cpu->gpr[1] = cpu->gpr[1] | 0x20B8u; @@ -111516,6 +136731,9 @@ label_BFC2AB44: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (4)); if (psx_taken_BFC2AB80) goto label_BFC2AB18; label_BFC2AB88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AB88: 1000001B beq $zero, $zero, 0xBFC2ABF8 */ uint32_t psx_brA_BFC2AB88 = cpu->gpr[0]; uint32_t psx_brB_BFC2AB88 = cpu->gpr[0]; @@ -111524,6 +136742,9 @@ label_BFC2AB88: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC2AB88) goto label_BFC2ABF8; label_BFC2AB90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AB90: 00141040 sll $v0, $s4, 1 */ cpu->gpr[2] = cpu->gpr[20] << 1u; @@ -111534,6 +136755,9 @@ label_BFC2AB90: cpu->gpr[17] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC2AB94) goto label_BFC2ABF4; label_BFC2AB9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AB9C: 3C010001 lui $at, 0x1 */ cpu->gpr[1] = 0x00010000u; @@ -111542,6 +136766,9 @@ label_BFC2AB9C: /* 0xBFC2ABA4: 03A11821 addu $v1, $sp, $at */ cpu->gpr[3] = cpu->gpr[29] + cpu->gpr[1]; label_BFC2ABA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ABA8: 3C0FFFFF lui $t7, 0xFFFF */ cpu->gpr[15] = 0xFFFF0000u; @@ -111568,10 +136795,16 @@ label_BFC2ABA8: cpu->gpr[1] = cpu->gpr[17] + cpu->gpr[0]; if (psx_taken_BFC2ABCC) goto label_BFC2ABD8; label_BFC2ABD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ABD4: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC2ABD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ABD8: 00017843 sra $t7, $at, 1 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -111590,10 +136823,16 @@ label_BFC2ABD8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[24] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2ABF0u); return; } g_debug_last_store_pc = 0xBFC2ABF0u; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC2ABEC) goto label_BFC2ABA8; label_BFC2ABF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ABF4: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC2ABF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ABF8: 8FBF0054 lw $ra, 84($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (84)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2ABF8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -111636,6 +136875,9 @@ void func_1FC2ACD0(CPUState* cpu) { } } label_BFC2ACD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ACD0: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -111653,6 +136895,9 @@ label_BFC2ACD0: cpu->gpr[31] = 0x80042CECu; psx_dispatch(cpu, 0x800431FCu); label_BFC2ACEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ACEC: 93A50021 lbu $a1, 33($sp) */ cpu->gpr[5] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (33))); @@ -111671,6 +136916,9 @@ label_BFC2ACEC: /* nop */ if (psx_taken_BFC2AD00) goto label_BFC2B040; label_BFC2AD08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AD08: 000E7080 sll $t6, $t6, 2 */ cpu->gpr[14] = cpu->gpr[14] << 2u; @@ -111694,6 +136942,9 @@ label_BFC2AD08: default: cpu->pc = cpu->gpr[14]; return; } label_BFC2AD24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AD24: 93A20020 lbu $v0, 32($sp) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (32))); @@ -111708,6 +136959,9 @@ label_BFC2AD24: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000007Fu ? 1 : 0); if (psx_taken_BFC2AD30) goto label_BFC2AD48; label_BFC2AD38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AD38: 10200004 beq $at, $zero, 0xBFC2AD4C */ uint32_t psx_brA_BFC2AD38 = cpu->gpr[1]; uint32_t psx_brB_BFC2AD38 = cpu->gpr[0]; @@ -111716,6 +136970,9 @@ label_BFC2AD38: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000080u ? 1 : 0); if (psx_taken_BFC2AD38) goto label_BFC2AD4C; label_BFC2AD40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AD40: 1000002B beq $zero, $zero, 0xBFC2ADF0 */ uint32_t psx_brA_BFC2AD40 = cpu->gpr[0]; uint32_t psx_brB_BFC2AD40 = cpu->gpr[0]; @@ -111724,10 +136981,16 @@ label_BFC2AD40: cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC2AD40) goto label_BFC2ADF0; label_BFC2AD48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AD48: 2C410080 sltiu $at, $v0, 128 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000080u ? 1 : 0); label_BFC2AD4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AD4C: 14200005 bne $at, $zero, 0xBFC2AD64 */ uint32_t psx_brA_BFC2AD4C = cpu->gpr[1]; uint32_t psx_brB_BFC2AD4C = cpu->gpr[0]; @@ -111736,6 +136999,9 @@ label_BFC2AD4C: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000ADu ? 1 : 0); if (psx_taken_BFC2AD4C) goto label_BFC2AD64; label_BFC2AD54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AD54: 10200004 beq $at, $zero, 0xBFC2AD68 */ uint32_t psx_brA_BFC2AD54 = cpu->gpr[1]; uint32_t psx_brB_BFC2AD54 = cpu->gpr[0]; @@ -111744,6 +137010,9 @@ label_BFC2AD54: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000B8u ? 1 : 0); if (psx_taken_BFC2AD54) goto label_BFC2AD68; label_BFC2AD5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AD5C: 10000024 beq $zero, $zero, 0xBFC2ADF0 */ uint32_t psx_brA_BFC2AD5C = cpu->gpr[0]; uint32_t psx_brB_BFC2AD5C = cpu->gpr[0]; @@ -111752,10 +137021,16 @@ label_BFC2AD5C: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC2AD5C) goto label_BFC2ADF0; label_BFC2AD64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AD64: 2C4100B8 sltiu $at, $v0, 184 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000B8u ? 1 : 0); label_BFC2AD68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AD68: 14200005 bne $at, $zero, 0xBFC2AD80 */ uint32_t psx_brA_BFC2AD68 = cpu->gpr[1]; uint32_t psx_brB_BFC2AD68 = cpu->gpr[0]; @@ -111764,6 +137039,9 @@ label_BFC2AD68: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000C0u ? 1 : 0); if (psx_taken_BFC2AD68) goto label_BFC2AD80; label_BFC2AD70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AD70: 10200004 beq $at, $zero, 0xBFC2AD84 */ uint32_t psx_brA_BFC2AD70 = cpu->gpr[1]; uint32_t psx_brB_BFC2AD70 = cpu->gpr[0]; @@ -111772,6 +137050,9 @@ label_BFC2AD70: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000C8u ? 1 : 0); if (psx_taken_BFC2AD70) goto label_BFC2AD84; label_BFC2AD78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AD78: 1000001D beq $zero, $zero, 0xBFC2ADF0 */ uint32_t psx_brA_BFC2AD78 = cpu->gpr[0]; uint32_t psx_brB_BFC2AD78 = cpu->gpr[0]; @@ -111780,10 +137061,16 @@ label_BFC2AD78: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC2AD78) goto label_BFC2ADF0; label_BFC2AD80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AD80: 2C4100C8 sltiu $at, $v0, 200 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000C8u ? 1 : 0); label_BFC2AD84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AD84: 14200005 bne $at, $zero, 0xBFC2AD9C */ uint32_t psx_brA_BFC2AD84 = cpu->gpr[1]; uint32_t psx_brB_BFC2AD84 = cpu->gpr[0]; @@ -111792,6 +137079,9 @@ label_BFC2AD84: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000CFu ? 1 : 0); if (psx_taken_BFC2AD84) goto label_BFC2AD9C; label_BFC2AD8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AD8C: 10200004 beq $at, $zero, 0xBFC2ADA0 */ uint32_t psx_brA_BFC2AD8C = cpu->gpr[1]; uint32_t psx_brB_BFC2AD8C = cpu->gpr[0]; @@ -111800,6 +137090,9 @@ label_BFC2AD8C: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000DAu ? 1 : 0); if (psx_taken_BFC2AD8C) goto label_BFC2ADA0; label_BFC2AD94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AD94: 10000016 beq $zero, $zero, 0xBFC2ADF0 */ uint32_t psx_brA_BFC2AD94 = cpu->gpr[0]; uint32_t psx_brB_BFC2AD94 = cpu->gpr[0]; @@ -111808,10 +137101,16 @@ label_BFC2AD94: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); if (psx_taken_BFC2AD94) goto label_BFC2ADF0; label_BFC2AD9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AD9C: 2C4100DA sltiu $at, $v0, 218 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000DAu ? 1 : 0); label_BFC2ADA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ADA0: 14200005 bne $at, $zero, 0xBFC2ADB8 */ uint32_t psx_brA_BFC2ADA0 = cpu->gpr[1]; uint32_t psx_brB_BFC2ADA0 = cpu->gpr[0]; @@ -111820,6 +137119,9 @@ label_BFC2ADA0: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000E9u ? 1 : 0); if (psx_taken_BFC2ADA0) goto label_BFC2ADB8; label_BFC2ADA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ADA8: 10200004 beq $at, $zero, 0xBFC2ADBC */ uint32_t psx_brA_BFC2ADA8 = cpu->gpr[1]; uint32_t psx_brB_BFC2ADA8 = cpu->gpr[0]; @@ -111828,6 +137130,9 @@ label_BFC2ADA8: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000F0u ? 1 : 0); if (psx_taken_BFC2ADA8) goto label_BFC2ADBC; label_BFC2ADB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ADB0: 1000000F beq $zero, $zero, 0xBFC2ADF0 */ uint32_t psx_brA_BFC2ADB0 = cpu->gpr[0]; uint32_t psx_brB_BFC2ADB0 = cpu->gpr[0]; @@ -111836,10 +137141,16 @@ label_BFC2ADB0: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); if (psx_taken_BFC2ADB0) goto label_BFC2ADF0; label_BFC2ADB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ADB8: 2C4100F0 sltiu $at, $v0, 240 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000F0u ? 1 : 0); label_BFC2ADBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ADBC: 14200005 bne $at, $zero, 0xBFC2ADD4 */ uint32_t psx_brA_BFC2ADBC = cpu->gpr[1]; uint32_t psx_brB_BFC2ADBC = cpu->gpr[0]; @@ -111848,6 +137159,9 @@ label_BFC2ADBC: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000F8u ? 1 : 0); if (psx_taken_BFC2ADBC) goto label_BFC2ADD4; label_BFC2ADC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ADC4: 10200004 beq $at, $zero, 0xBFC2ADD8 */ uint32_t psx_brA_BFC2ADC4 = cpu->gpr[1]; uint32_t psx_brB_BFC2ADC4 = cpu->gpr[0]; @@ -111856,6 +137170,9 @@ label_BFC2ADC4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (252)); if (psx_taken_BFC2ADC4) goto label_BFC2ADD8; label_BFC2ADCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ADCC: 10000008 beq $zero, $zero, 0xBFC2ADF0 */ uint32_t psx_brA_BFC2ADCC = cpu->gpr[0]; uint32_t psx_brB_BFC2ADCC = cpu->gpr[0]; @@ -111864,10 +137181,16 @@ label_BFC2ADCC: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); if (psx_taken_BFC2ADCC) goto label_BFC2ADF0; label_BFC2ADD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ADD4: 240100FC addiu $at, $zero, 252 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (252)); label_BFC2ADD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ADD8: 10410005 beq $v0, $at, 0xBFC2ADF0 */ uint32_t psx_brA_BFC2ADD8 = cpu->gpr[2]; uint32_t psx_brB_BFC2ADD8 = cpu->gpr[1]; @@ -111876,6 +137199,9 @@ label_BFC2ADD8: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (6)); if (psx_taken_BFC2ADD8) goto label_BFC2ADF0; label_BFC2ADE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ADE0: 93A3001C lbu $v1, 28($sp) */ cpu->gpr[3] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (28))); @@ -111886,10 +137212,16 @@ label_BFC2ADE0: /* nop */ if (psx_taken_BFC2ADE4) goto label_BFC2ADF0; label_BFC2ADEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ADEC: 24030006 addiu $v1, $zero, 6 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (6)); label_BFC2ADF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ADF0: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -111914,6 +137246,9 @@ label_BFC2ADF0: cpu->gpr[4] = cpu->gpr[9] + cpu->gpr[10]; if (psx_taken_BFC2AE10) goto label_BFC2B098; label_BFC2AE18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AE18: 93A20020 lbu $v0, 32($sp) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (32))); @@ -111928,6 +137263,9 @@ label_BFC2AE18: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000059u ? 1 : 0); if (psx_taken_BFC2AE24) goto label_BFC2AE3C; label_BFC2AE2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AE2C: 10200004 beq $at, $zero, 0xBFC2AE40 */ uint32_t psx_brA_BFC2AE2C = cpu->gpr[1]; uint32_t psx_brB_BFC2AE2C = cpu->gpr[0]; @@ -111936,6 +137274,9 @@ label_BFC2AE2C: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000060u ? 1 : 0); if (psx_taken_BFC2AE2C) goto label_BFC2AE40; label_BFC2AE34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AE34: 1000001C beq $zero, $zero, 0xBFC2AEA8 */ uint32_t psx_brA_BFC2AE34 = cpu->gpr[0]; uint32_t psx_brB_BFC2AE34 = cpu->gpr[0]; @@ -111944,10 +137285,16 @@ label_BFC2AE34: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (7)); if (psx_taken_BFC2AE34) goto label_BFC2AEA8; label_BFC2AE3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AE3C: 2C410060 sltiu $at, $v0, 96 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000060u ? 1 : 0); label_BFC2AE40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AE40: 14200005 bne $at, $zero, 0xBFC2AE58 */ uint32_t psx_brA_BFC2AE40 = cpu->gpr[1]; uint32_t psx_brB_BFC2AE40 = cpu->gpr[0]; @@ -111956,6 +137303,9 @@ label_BFC2AE40: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000007Au ? 1 : 0); if (psx_taken_BFC2AE40) goto label_BFC2AE58; label_BFC2AE48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AE48: 10200004 beq $at, $zero, 0xBFC2AE5C */ uint32_t psx_brA_BFC2AE48 = cpu->gpr[1]; uint32_t psx_brB_BFC2AE48 = cpu->gpr[0]; @@ -111964,6 +137314,9 @@ label_BFC2AE48: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000081u ? 1 : 0); if (psx_taken_BFC2AE48) goto label_BFC2AE5C; label_BFC2AE50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AE50: 10000015 beq $zero, $zero, 0xBFC2AEA8 */ uint32_t psx_brA_BFC2AE50 = cpu->gpr[0]; uint32_t psx_brB_BFC2AE50 = cpu->gpr[0]; @@ -111972,10 +137325,16 @@ label_BFC2AE50: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (8)); if (psx_taken_BFC2AE50) goto label_BFC2AEA8; label_BFC2AE58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AE58: 2C410081 sltiu $at, $v0, 129 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000081u ? 1 : 0); label_BFC2AE5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AE5C: 14200005 bne $at, $zero, 0xBFC2AE74 */ uint32_t psx_brA_BFC2AE5C = cpu->gpr[1]; uint32_t psx_brB_BFC2AE5C = cpu->gpr[0]; @@ -111984,6 +137343,9 @@ label_BFC2AE5C: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000009Bu ? 1 : 0); if (psx_taken_BFC2AE5C) goto label_BFC2AE74; label_BFC2AE64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AE64: 10200004 beq $at, $zero, 0xBFC2AE78 */ uint32_t psx_brA_BFC2AE64 = cpu->gpr[1]; uint32_t psx_brB_BFC2AE64 = cpu->gpr[0]; @@ -111992,6 +137354,9 @@ label_BFC2AE64: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000009Fu ? 1 : 0); if (psx_taken_BFC2AE64) goto label_BFC2AE78; label_BFC2AE6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AE6C: 1000000E beq $zero, $zero, 0xBFC2AEA8 */ uint32_t psx_brA_BFC2AE6C = cpu->gpr[0]; uint32_t psx_brB_BFC2AE6C = cpu->gpr[0]; @@ -112000,10 +137365,16 @@ label_BFC2AE6C: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); if (psx_taken_BFC2AE6C) goto label_BFC2AEA8; label_BFC2AE74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AE74: 2C41009F sltiu $at, $v0, 159 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000009Fu ? 1 : 0); label_BFC2AE78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AE78: 10200005 beq $at, $zero, 0xBFC2AE90 */ uint32_t psx_brA_BFC2AE78 = cpu->gpr[1]; uint32_t psx_brB_BFC2AE78 = cpu->gpr[0]; @@ -112012,6 +137383,9 @@ label_BFC2AE78: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000F2u ? 1 : 0); if (psx_taken_BFC2AE78) goto label_BFC2AE90; label_BFC2AE80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AE80: 93A3001C lbu $v1, 28($sp) */ cpu->gpr[3] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (28))); @@ -112022,10 +137396,16 @@ label_BFC2AE80: /* nop */ if (psx_taken_BFC2AE84) goto label_BFC2AEA8; label_BFC2AE8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AE8C: 2C4100F2 sltiu $at, $v0, 242 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000F2u ? 1 : 0); label_BFC2AE90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AE90: 14200005 bne $at, $zero, 0xBFC2AEA8 */ uint32_t psx_brA_BFC2AE90 = cpu->gpr[1]; uint32_t psx_brB_BFC2AE90 = cpu->gpr[0]; @@ -112034,6 +137414,9 @@ label_BFC2AE90: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); if (psx_taken_BFC2AE90) goto label_BFC2AEA8; label_BFC2AE98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AE98: 93A3001C lbu $v1, 28($sp) */ cpu->gpr[3] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (28))); @@ -112044,10 +137427,16 @@ label_BFC2AE98: /* nop */ if (psx_taken_BFC2AE9C) goto label_BFC2AEA8; label_BFC2AEA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AEA4: 2403000A addiu $v1, $zero, 10 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); label_BFC2AEA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AEA8: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -112072,6 +137461,9 @@ label_BFC2AEA8: cpu->gpr[4] = cpu->gpr[15] + cpu->gpr[24]; if (psx_taken_BFC2AEC8) goto label_BFC2B098; label_BFC2AED0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AED0: 93A20020 lbu $v0, 32($sp) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (32))); @@ -112086,6 +137478,9 @@ label_BFC2AED0: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000007Fu ? 1 : 0); if (psx_taken_BFC2AEDC) goto label_BFC2AEF4; label_BFC2AEE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AEE4: 10200004 beq $at, $zero, 0xBFC2AEF8 */ uint32_t psx_brA_BFC2AEE4 = cpu->gpr[1]; uint32_t psx_brB_BFC2AEE4 = cpu->gpr[0]; @@ -112094,6 +137489,9 @@ label_BFC2AEE4: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000080u ? 1 : 0); if (psx_taken_BFC2AEE4) goto label_BFC2AEF8; label_BFC2AEEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AEEC: 1000001C beq $zero, $zero, 0xBFC2AF60 */ uint32_t psx_brA_BFC2AEEC = cpu->gpr[0]; uint32_t psx_brB_BFC2AEEC = cpu->gpr[0]; @@ -112102,10 +137500,16 @@ label_BFC2AEEC: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (11)); if (psx_taken_BFC2AEEC) goto label_BFC2AF60; label_BFC2AEF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AEF4: 2C410080 sltiu $at, $v0, 128 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000080u ? 1 : 0); label_BFC2AEF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AEF8: 14200005 bne $at, $zero, 0xBFC2AF10 */ uint32_t psx_brA_BFC2AEF8 = cpu->gpr[1]; uint32_t psx_brB_BFC2AEF8 = cpu->gpr[0]; @@ -112114,6 +137518,9 @@ label_BFC2AEF8: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000097u ? 1 : 0); if (psx_taken_BFC2AEF8) goto label_BFC2AF10; label_BFC2AF00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AF00: 10200004 beq $at, $zero, 0xBFC2AF14 */ uint32_t psx_brA_BFC2AF00 = cpu->gpr[1]; uint32_t psx_brB_BFC2AF00 = cpu->gpr[0]; @@ -112122,6 +137529,9 @@ label_BFC2AF00: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000009Fu ? 1 : 0); if (psx_taken_BFC2AF00) goto label_BFC2AF14; label_BFC2AF08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AF08: 10000015 beq $zero, $zero, 0xBFC2AF60 */ uint32_t psx_brA_BFC2AF08 = cpu->gpr[0]; uint32_t psx_brB_BFC2AF08 = cpu->gpr[0]; @@ -112130,10 +137540,16 @@ label_BFC2AF08: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (12)); if (psx_taken_BFC2AF08) goto label_BFC2AF60; label_BFC2AF10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AF10: 2C41009F sltiu $at, $v0, 159 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000009Fu ? 1 : 0); label_BFC2AF14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AF14: 14200005 bne $at, $zero, 0xBFC2AF2C */ uint32_t psx_brA_BFC2AF14 = cpu->gpr[1]; uint32_t psx_brB_BFC2AF14 = cpu->gpr[0]; @@ -112142,6 +137558,9 @@ label_BFC2AF14: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000B7u ? 1 : 0); if (psx_taken_BFC2AF14) goto label_BFC2AF2C; label_BFC2AF1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AF1C: 10200004 beq $at, $zero, 0xBFC2AF30 */ uint32_t psx_brA_BFC2AF1C = cpu->gpr[1]; uint32_t psx_brB_BFC2AF1C = cpu->gpr[0]; @@ -112150,6 +137569,9 @@ label_BFC2AF1C: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000BFu ? 1 : 0); if (psx_taken_BFC2AF1C) goto label_BFC2AF30; label_BFC2AF24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AF24: 1000000E beq $zero, $zero, 0xBFC2AF60 */ uint32_t psx_brA_BFC2AF24 = cpu->gpr[0]; uint32_t psx_brB_BFC2AF24 = cpu->gpr[0]; @@ -112158,10 +137580,16 @@ label_BFC2AF24: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (13)); if (psx_taken_BFC2AF24) goto label_BFC2AF60; label_BFC2AF2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AF2C: 2C4100BF sltiu $at, $v0, 191 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000BFu ? 1 : 0); label_BFC2AF30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AF30: 10200005 beq $at, $zero, 0xBFC2AF48 */ uint32_t psx_brA_BFC2AF30 = cpu->gpr[1]; uint32_t psx_brB_BFC2AF30 = cpu->gpr[0]; @@ -112170,6 +137598,9 @@ label_BFC2AF30: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000D7u ? 1 : 0); if (psx_taken_BFC2AF30) goto label_BFC2AF48; label_BFC2AF38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AF38: 93A3001C lbu $v1, 28($sp) */ cpu->gpr[3] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (28))); @@ -112180,10 +137611,16 @@ label_BFC2AF38: /* nop */ if (psx_taken_BFC2AF3C) goto label_BFC2AF60; label_BFC2AF44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AF44: 2C4100D7 sltiu $at, $v0, 215 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000D7u ? 1 : 0); label_BFC2AF48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AF48: 14200005 bne $at, $zero, 0xBFC2AF60 */ uint32_t psx_brA_BFC2AF48 = cpu->gpr[1]; uint32_t psx_brB_BFC2AF48 = cpu->gpr[0]; @@ -112192,6 +137629,9 @@ label_BFC2AF48: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (14)); if (psx_taken_BFC2AF48) goto label_BFC2AF60; label_BFC2AF50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AF50: 93A3001C lbu $v1, 28($sp) */ cpu->gpr[3] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (28))); @@ -112202,10 +137642,16 @@ label_BFC2AF50: /* nop */ if (psx_taken_BFC2AF54) goto label_BFC2AF60; label_BFC2AF5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AF5C: 2403000E addiu $v1, $zero, 14 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (14)); label_BFC2AF60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AF60: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -112230,6 +137676,9 @@ label_BFC2AF60: cpu->gpr[4] = cpu->gpr[11] + cpu->gpr[12]; if (psx_taken_BFC2AF80) goto label_BFC2B098; label_BFC2AF88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AF88: 93A20020 lbu $v0, 32($sp) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (32))); @@ -112244,6 +137693,9 @@ label_BFC2AF88: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000061u ? 1 : 0); if (psx_taken_BFC2AF94) goto label_BFC2AFAC; label_BFC2AF9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AF9C: 10200004 beq $at, $zero, 0xBFC2AFB0 */ uint32_t psx_brA_BFC2AF9C = cpu->gpr[1]; uint32_t psx_brB_BFC2AF9C = cpu->gpr[0]; @@ -112252,6 +137704,9 @@ label_BFC2AF9C: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000070u ? 1 : 0); if (psx_taken_BFC2AF9C) goto label_BFC2AFB0; label_BFC2AFA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AFA4: 1000001C beq $zero, $zero, 0xBFC2B018 */ uint32_t psx_brA_BFC2AFA4 = cpu->gpr[0]; uint32_t psx_brB_BFC2AFA4 = cpu->gpr[0]; @@ -112260,10 +137715,16 @@ label_BFC2AFA4: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (15)); if (psx_taken_BFC2AFA4) goto label_BFC2B018; label_BFC2AFAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AFAC: 2C410070 sltiu $at, $v0, 112 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000070u ? 1 : 0); label_BFC2AFB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AFB0: 14200005 bne $at, $zero, 0xBFC2AFC8 */ uint32_t psx_brA_BFC2AFB0 = cpu->gpr[1]; uint32_t psx_brB_BFC2AFB0 = cpu->gpr[0]; @@ -112272,6 +137733,9 @@ label_BFC2AFB0: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000007Fu ? 1 : 0); if (psx_taken_BFC2AFB0) goto label_BFC2AFC8; label_BFC2AFB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AFB8: 10200004 beq $at, $zero, 0xBFC2AFCC */ uint32_t psx_brA_BFC2AFB8 = cpu->gpr[1]; uint32_t psx_brB_BFC2AFB8 = cpu->gpr[0]; @@ -112280,6 +137744,9 @@ label_BFC2AFB8: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000080u ? 1 : 0); if (psx_taken_BFC2AFB8) goto label_BFC2AFCC; label_BFC2AFC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AFC0: 10000015 beq $zero, $zero, 0xBFC2B018 */ uint32_t psx_brA_BFC2AFC0 = cpu->gpr[0]; uint32_t psx_brB_BFC2AFC0 = cpu->gpr[0]; @@ -112288,10 +137755,16 @@ label_BFC2AFC0: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); if (psx_taken_BFC2AFC0) goto label_BFC2B018; label_BFC2AFC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AFC8: 2C410080 sltiu $at, $v0, 128 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000080u ? 1 : 0); label_BFC2AFCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AFCC: 14200005 bne $at, $zero, 0xBFC2AFE4 */ uint32_t psx_brA_BFC2AFCC = cpu->gpr[1]; uint32_t psx_brB_BFC2AFCC = cpu->gpr[0]; @@ -112300,6 +137773,9 @@ label_BFC2AFCC: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x00000092u ? 1 : 0); if (psx_taken_BFC2AFCC) goto label_BFC2AFE4; label_BFC2AFD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AFD4: 10200004 beq $at, $zero, 0xBFC2AFE8 */ uint32_t psx_brA_BFC2AFD4 = cpu->gpr[1]; uint32_t psx_brB_BFC2AFD4 = cpu->gpr[0]; @@ -112308,6 +137784,9 @@ label_BFC2AFD4: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000009Fu ? 1 : 0); if (psx_taken_BFC2AFD4) goto label_BFC2AFE8; label_BFC2AFDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AFDC: 1000000E beq $zero, $zero, 0xBFC2B018 */ uint32_t psx_brA_BFC2AFDC = cpu->gpr[0]; uint32_t psx_brB_BFC2AFDC = cpu->gpr[0]; @@ -112316,10 +137795,16 @@ label_BFC2AFDC: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (17)); if (psx_taken_BFC2AFDC) goto label_BFC2B018; label_BFC2AFE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AFE4: 2C41009F sltiu $at, $v0, 159 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x0000009Fu ? 1 : 0); label_BFC2AFE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AFE8: 10200005 beq $at, $zero, 0xBFC2B000 */ uint32_t psx_brA_BFC2AFE8 = cpu->gpr[1]; uint32_t psx_brB_BFC2AFE8 = cpu->gpr[0]; @@ -112328,6 +137813,9 @@ label_BFC2AFE8: cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000BFu ? 1 : 0); if (psx_taken_BFC2AFE8) goto label_BFC2B000; label_BFC2AFF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AFF0: 93A3001C lbu $v1, 28($sp) */ cpu->gpr[3] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (28))); @@ -112338,10 +137826,16 @@ label_BFC2AFF0: /* nop */ if (psx_taken_BFC2AFF4) goto label_BFC2B018; label_BFC2AFFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2AFFC: 2C4100BF sltiu $at, $v0, 191 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[2] < 0x000000BFu ? 1 : 0); label_BFC2B000: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B000: 14200005 bne $at, $zero, 0xBFC2B018 */ uint32_t psx_brA_BFC2B000 = cpu->gpr[1]; uint32_t psx_brB_BFC2B000 = cpu->gpr[0]; @@ -112350,6 +137844,9 @@ label_BFC2B000: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (18)); if (psx_taken_BFC2B000) goto label_BFC2B018; label_BFC2B008: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B008: 93A3001C lbu $v1, 28($sp) */ cpu->gpr[3] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (28))); @@ -112360,10 +137857,16 @@ label_BFC2B008: /* nop */ if (psx_taken_BFC2B00C) goto label_BFC2B018; label_BFC2B014: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B014: 24030012 addiu $v1, $zero, 18 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (18)); label_BFC2B018: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B018: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -112388,6 +137891,9 @@ label_BFC2B018: cpu->gpr[4] = cpu->gpr[25] + cpu->gpr[8]; if (psx_taken_BFC2B038) goto label_BFC2B098; label_BFC2B040: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B040: 93A20020 lbu $v0, 32($sp) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (32))); @@ -112402,6 +137908,9 @@ label_BFC2B040: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC2B04C) goto label_BFC2B060; label_BFC2B054: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B054: 10000002 beq $zero, $zero, 0xBFC2B060 */ uint32_t psx_brA_BFC2B054 = cpu->gpr[0]; uint32_t psx_brB_BFC2B054 = cpu->gpr[0]; @@ -112410,10 +137919,16 @@ label_BFC2B054: cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC2B054) goto label_BFC2B060; label_BFC2B05C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B05C: 24030001 addiu $v1, $zero, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC2B060: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B060: 00054840 sll $t1, $a1, 1 */ cpu->gpr[9] = cpu->gpr[5] << 1u; @@ -112446,6 +137961,9 @@ label_BFC2B060: cpu->gpr[4] = cpu->gpr[25] + cpu->gpr[8]; if (psx_taken_BFC2B090) goto label_BFC2B098; label_BFC2B098: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B098: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2B098u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -112468,6 +137986,9 @@ void func_1FC2B0A8(CPUState* cpu) { } } label_BFC2B0A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B0A8: 308500FF andi $a1, $a0, 0xFF */ cpu->gpr[5] = cpu->gpr[4] & 0xFFu; @@ -112484,6 +138005,9 @@ label_BFC2B0A8: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC2B0B8) goto label_BFC2B0D4; label_BFC2B0C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B0C0: 2CA10030 sltiu $at, $a1, 48 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x00000030u ? 1 : 0); @@ -112494,6 +138018,9 @@ label_BFC2B0C0: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x00000030u ? 1 : 0); if (psx_taken_BFC2B0C4) goto label_BFC2B0D8; label_BFC2B0CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B0CC: 10000032 beq $zero, $zero, 0xBFC2B198 */ uint32_t psx_brA_BFC2B0CC = cpu->gpr[0]; uint32_t psx_brB_BFC2B0CC = cpu->gpr[0]; @@ -112502,10 +138029,16 @@ label_BFC2B0CC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC2B0CC) goto label_BFC2B198; label_BFC2B0D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B0D4: 2CA10030 sltiu $at, $a1, 48 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x00000030u ? 1 : 0); label_BFC2B0D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B0D8: 14200005 bne $at, $zero, 0xBFC2B0F0 */ uint32_t psx_brA_BFC2B0D8 = cpu->gpr[1]; uint32_t psx_brB_BFC2B0D8 = cpu->gpr[0]; @@ -112514,6 +138047,9 @@ label_BFC2B0D8: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x0000003Au ? 1 : 0); if (psx_taken_BFC2B0D8) goto label_BFC2B0F0; label_BFC2B0E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B0E0: 10200004 beq $at, $zero, 0xBFC2B0F4 */ uint32_t psx_brA_BFC2B0E0 = cpu->gpr[1]; uint32_t psx_brB_BFC2B0E0 = cpu->gpr[0]; @@ -112522,6 +138058,9 @@ label_BFC2B0E0: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x0000003Au ? 1 : 0); if (psx_taken_BFC2B0E0) goto label_BFC2B0F4; label_BFC2B0E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B0E8: 1000002B beq $zero, $zero, 0xBFC2B198 */ uint32_t psx_brA_BFC2B0E8 = cpu->gpr[0]; uint32_t psx_brB_BFC2B0E8 = cpu->gpr[0]; @@ -112530,10 +138069,16 @@ label_BFC2B0E8: g_debug_last_store_pc = 0xBFC2B0ECu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[29] + (32)), (uint8_t)(cpu->gpr[0] & 0xFFu)); if (psx_taken_BFC2B0E8) goto label_BFC2B198; label_BFC2B0F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B0F0: 2CA1003A sltiu $at, $a1, 58 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x0000003Au ? 1 : 0); label_BFC2B0F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B0F4: 14200005 bne $at, $zero, 0xBFC2B10C */ uint32_t psx_brA_BFC2B0F4 = cpu->gpr[1]; uint32_t psx_brB_BFC2B0F4 = cpu->gpr[0]; @@ -112542,6 +138087,9 @@ label_BFC2B0F4: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x00000041u ? 1 : 0); if (psx_taken_BFC2B0F4) goto label_BFC2B10C; label_BFC2B0FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B0FC: 10200004 beq $at, $zero, 0xBFC2B110 */ uint32_t psx_brA_BFC2B0FC = cpu->gpr[1]; uint32_t psx_brB_BFC2B0FC = cpu->gpr[0]; @@ -112550,6 +138098,9 @@ label_BFC2B0FC: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x00000041u ? 1 : 0); if (psx_taken_BFC2B0FC) goto label_BFC2B110; label_BFC2B104: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B104: 10000024 beq $zero, $zero, 0xBFC2B198 */ uint32_t psx_brA_BFC2B104 = cpu->gpr[0]; uint32_t psx_brB_BFC2B104 = cpu->gpr[0]; @@ -112558,10 +138109,16 @@ label_BFC2B104: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (11)); if (psx_taken_BFC2B104) goto label_BFC2B198; label_BFC2B10C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B10C: 2CA10041 sltiu $at, $a1, 65 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x00000041u ? 1 : 0); label_BFC2B110: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B110: 14200006 bne $at, $zero, 0xBFC2B12C */ uint32_t psx_brA_BFC2B110 = cpu->gpr[1]; uint32_t psx_brB_BFC2B110 = cpu->gpr[0]; @@ -112570,6 +138127,9 @@ label_BFC2B110: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x0000005Bu ? 1 : 0); if (psx_taken_BFC2B110) goto label_BFC2B12C; label_BFC2B118: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B118: 10200005 beq $at, $zero, 0xBFC2B130 */ uint32_t psx_brA_BFC2B118 = cpu->gpr[1]; uint32_t psx_brB_BFC2B118 = cpu->gpr[0]; @@ -112578,6 +138138,9 @@ label_BFC2B118: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x0000005Bu ? 1 : 0); if (psx_taken_BFC2B118) goto label_BFC2B130; label_BFC2B120: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B120: 240E0001 addiu $t6, $zero, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -112588,10 +138151,16 @@ label_BFC2B120: g_debug_last_store_pc = 0xBFC2B128u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[29] + (32)), (uint8_t)(cpu->gpr[14] & 0xFFu)); if (psx_taken_BFC2B124) goto label_BFC2B198; label_BFC2B12C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B12C: 2CA1005B sltiu $at, $a1, 91 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x0000005Bu ? 1 : 0); label_BFC2B130: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B130: 14200005 bne $at, $zero, 0xBFC2B148 */ uint32_t psx_brA_BFC2B130 = cpu->gpr[1]; uint32_t psx_brB_BFC2B130 = cpu->gpr[0]; @@ -112600,6 +138169,9 @@ label_BFC2B130: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x00000061u ? 1 : 0); if (psx_taken_BFC2B130) goto label_BFC2B148; label_BFC2B138: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B138: 10200004 beq $at, $zero, 0xBFC2B14C */ uint32_t psx_brA_BFC2B138 = cpu->gpr[1]; uint32_t psx_brB_BFC2B138 = cpu->gpr[0]; @@ -112608,6 +138180,9 @@ label_BFC2B138: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x00000061u ? 1 : 0); if (psx_taken_BFC2B138) goto label_BFC2B14C; label_BFC2B140: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B140: 10000015 beq $zero, $zero, 0xBFC2B198 */ uint32_t psx_brA_BFC2B140 = cpu->gpr[0]; uint32_t psx_brB_BFC2B140 = cpu->gpr[0]; @@ -112616,10 +138191,16 @@ label_BFC2B140: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (37)); if (psx_taken_BFC2B140) goto label_BFC2B198; label_BFC2B148: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B148: 2CA10061 sltiu $at, $a1, 97 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x00000061u ? 1 : 0); label_BFC2B14C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B14C: 14200006 bne $at, $zero, 0xBFC2B168 */ uint32_t psx_brA_BFC2B14C = cpu->gpr[1]; uint32_t psx_brB_BFC2B14C = cpu->gpr[0]; @@ -112628,6 +138209,9 @@ label_BFC2B14C: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x0000007Bu ? 1 : 0); if (psx_taken_BFC2B14C) goto label_BFC2B168; label_BFC2B154: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B154: 10200005 beq $at, $zero, 0xBFC2B16C */ uint32_t psx_brA_BFC2B154 = cpu->gpr[1]; uint32_t psx_brB_BFC2B154 = cpu->gpr[0]; @@ -112636,6 +138220,9 @@ label_BFC2B154: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x0000007Bu ? 1 : 0); if (psx_taken_BFC2B154) goto label_BFC2B16C; label_BFC2B15C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B15C: 240F0002 addiu $t7, $zero, 2 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); @@ -112646,10 +138233,16 @@ label_BFC2B15C: g_debug_last_store_pc = 0xBFC2B164u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[29] + (32)), (uint8_t)(cpu->gpr[15] & 0xFFu)); if (psx_taken_BFC2B160) goto label_BFC2B198; label_BFC2B168: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B168: 2CA1007B sltiu $at, $a1, 123 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x0000007Bu ? 1 : 0); label_BFC2B16C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B16C: 14200005 bne $at, $zero, 0xBFC2B184 */ uint32_t psx_brA_BFC2B16C = cpu->gpr[1]; uint32_t psx_brB_BFC2B16C = cpu->gpr[0]; @@ -112658,6 +138251,9 @@ label_BFC2B16C: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x0000007Fu ? 1 : 0); if (psx_taken_BFC2B16C) goto label_BFC2B184; label_BFC2B174: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B174: 10200003 beq $at, $zero, 0xBFC2B184 */ uint32_t psx_brA_BFC2B174 = cpu->gpr[1]; uint32_t psx_brB_BFC2B174 = cpu->gpr[0]; @@ -112666,6 +138262,9 @@ label_BFC2B174: /* nop */ if (psx_taken_BFC2B174) goto label_BFC2B184; label_BFC2B17C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B17C: 10000006 beq $zero, $zero, 0xBFC2B198 */ uint32_t psx_brA_BFC2B17C = cpu->gpr[0]; uint32_t psx_brB_BFC2B17C = cpu->gpr[0]; @@ -112674,6 +138273,9 @@ label_BFC2B17C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (63)); if (psx_taken_BFC2B17C) goto label_BFC2B198; label_BFC2B184: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B184: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -112683,6 +138285,9 @@ label_BFC2B184: cpu->gpr[31] = 0x80043190u; psx_dispatch(cpu, 0x8005A910u); label_BFC2B190: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B190: 10000016 beq $zero, $zero, 0xBFC2B1EC */ uint32_t psx_brA_BFC2B190 = cpu->gpr[0]; uint32_t psx_brB_BFC2B190 = cpu->gpr[0]; @@ -112691,6 +138296,9 @@ label_BFC2B190: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC2B190) goto label_BFC2B1EC; label_BFC2B198: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B198: 1040000B beq $v0, $zero, 0xBFC2B1C8 */ uint32_t psx_brA_BFC2B198 = cpu->gpr[2]; uint32_t psx_brB_BFC2B198 = cpu->gpr[0]; @@ -112699,6 +138307,9 @@ label_BFC2B198: cpu->gpr[9] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (32))); if (psx_taken_BFC2B198) goto label_BFC2B1C8; label_BFC2B1A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B1A0: 0002C840 sll $t9, $v0, 1 */ cpu->gpr[25] = cpu->gpr[2] << 1u; @@ -112721,10 +138332,16 @@ label_BFC2B1A0: cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC2B1BC) goto label_BFC2B1EC; label_BFC2B1C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B1C4: 93A90020 lbu $t1, 32($sp) */ cpu->gpr[9] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (32))); label_BFC2B1C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B1C8: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -112745,6 +138362,9 @@ label_BFC2B1C8: /* 0xBFC2B1E8: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; label_BFC2B1EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B1EC: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2B1ECu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -112759,6 +138379,9 @@ label_BFC2B1EC: void func_1FC2B1FC(CPUState* cpu) { debug_server_log_call_entry(0x1FC2B1FCu); label_BFC2B1FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B1FC: 00C01021 addu $v0, $a2, $zero */ cpu->gpr[2] = cpu->gpr[6] + cpu->gpr[0]; @@ -112769,6 +138392,9 @@ label_BFC2B1FC: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (-1)); if (psx_taken_BFC2B200) goto label_BFC2B224; label_BFC2B208: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B208: 808E0000 lb $t6, 0($a0) */ cpu->gpr[14] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (0))); @@ -112787,6 +138413,9 @@ label_BFC2B208: g_debug_last_store_pc = 0xBFC2B220u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[5] + (-1)), (uint8_t)(cpu->gpr[14] & 0xFFu)); if (psx_taken_BFC2B21C) goto label_BFC2B208; label_BFC2B224: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B224: 03E00008 jr $ra */ /* 0xBFC2B228: 00000000 nop */ @@ -112797,6 +138426,9 @@ label_BFC2B224: void func_1FC2B22C(CPUState* cpu) { debug_server_log_call_entry(0x1FC2B22Cu); label_BFC2B22C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B22C: 00A01021 addu $v0, $a1, $zero */ cpu->gpr[2] = cpu->gpr[5] + cpu->gpr[0]; @@ -112807,6 +138439,9 @@ label_BFC2B22C: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (-1)); if (psx_taken_BFC2B230) goto label_BFC2B24C; label_BFC2B238: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B238: 00A01021 addu $v0, $a1, $zero */ cpu->gpr[2] = cpu->gpr[5] + cpu->gpr[0]; @@ -112821,6 +138456,9 @@ label_BFC2B238: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (-1)); if (psx_taken_BFC2B244) goto label_BFC2B238; label_BFC2B24C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B24C: 03E00008 jr $ra */ /* 0xBFC2B250: 00000000 nop */ @@ -112847,6 +138485,9 @@ void func_1FC2B260(CPUState* cpu) { } } label_BFC2B260: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(30u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B260: 3C010001 lui $at, 0x1 */ cpu->gpr[1] = 0x00010000u; @@ -112910,6 +138551,9 @@ label_BFC2B260: cpu->gpr[31] = 0x800432D8u; psx_dispatch(cpu, 0x8004322Cu); label_BFC2B2D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B2D8: 27A401C4 addiu $a0, $sp, 452 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (452)); @@ -112919,6 +138563,9 @@ label_BFC2B2D8: cpu->gpr[31] = 0x800432E4u; psx_dispatch(cpu, 0x8004322Cu); label_BFC2B2E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B2E4: 92C40000 lbu $a0, 0($s6) */ cpu->gpr[4] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[22] + (0))); @@ -112931,6 +138578,9 @@ label_BFC2B2E4: /* nop */ if (psx_taken_BFC2B2EC) goto label_BFC2B908; label_BFC2B2F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B2F4: 3C17BFC6 lui $s7, 0xBFC6 */ cpu->gpr[23] = 0xBFC60000u; @@ -112941,6 +138591,9 @@ label_BFC2B2F4: /* 0xBFC2B300: 241E000A addiu $fp, $zero, 10 */ cpu->gpr[30] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); label_BFC2B304: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B304: 17C4000D bne $fp, $a0, 0xBFC2B33C */ uint32_t psx_brA_BFC2B304 = cpu->gpr[30]; uint32_t psx_brB_BFC2B304 = cpu->gpr[4]; @@ -112949,6 +138602,9 @@ label_BFC2B304: cpu->gpr[1] = (uint32_t)(cpu->gpr[4] < 0x00000081u ? 1 : 0); if (psx_taken_BFC2B304) goto label_BFC2B33C; label_BFC2B30C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B30C: 8FAE01C0 lw $t6, 448($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (448)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2B30Cu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -112963,10 +138619,16 @@ label_BFC2B30C: cpu->gpr[1] = cpu->gpr[14] + cpu->gpr[0]; if (psx_taken_BFC2B318) goto label_BFC2B324; label_BFC2B320: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B320: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC2B324: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B324: 00017903 sra $t7, $at, 4 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -112981,10 +138643,16 @@ label_BFC2B324: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (448)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2B334u); return; } g_debug_last_store_pc = 0xBFC2B334u; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC2B330) goto label_BFC2B8E4; label_BFC2B338: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B338: 2C810081 sltiu $at, $a0, 129 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[4] < 0x00000081u ? 1 : 0); label_BFC2B33C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B33C: 14200009 bne $at, $zero, 0xBFC2B364 */ uint32_t psx_brA_BFC2B33C = cpu->gpr[1]; uint32_t psx_brB_BFC2B33C = cpu->gpr[0]; @@ -112993,6 +138661,9 @@ label_BFC2B33C: cpu->gpr[1] = (uint32_t)(cpu->gpr[4] < 0x00000099u ? 1 : 0); if (psx_taken_BFC2B33C) goto label_BFC2B364; label_BFC2B344: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B344: 10200007 beq $at, $zero, 0xBFC2B364 */ uint32_t psx_brA_BFC2B344 = cpu->gpr[1]; uint32_t psx_brB_BFC2B344 = cpu->gpr[0]; @@ -113001,6 +138672,9 @@ label_BFC2B344: /* nop */ if (psx_taken_BFC2B344) goto label_BFC2B364; label_BFC2B34C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B34C: 92CF0001 lbu $t7, 1($s6) */ cpu->gpr[15] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[22] + (1))); @@ -113017,6 +138691,9 @@ label_BFC2B34C: cpu->gpr[22] = (uint32_t)((int32_t)cpu->gpr[22] + (2)); if (psx_taken_BFC2B35C) goto label_BFC2B384; label_BFC2B364: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B364: 0C010C2A jal 0xB00430A8 */ /* 0xBFC2B368: 00000000 nop */ @@ -113024,6 +138701,9 @@ label_BFC2B364: cpu->gpr[31] = 0x8004336Cu; psx_dispatch(cpu, 0x800430A8u); label_BFC2B36C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B36C: 3058FFFF andi $t8, $v0, 0xFFFF */ cpu->gpr[24] = cpu->gpr[2] & 0xFFFFu; @@ -113034,6 +138714,9 @@ label_BFC2B36C: cpu->gpr[5] = cpu->gpr[2] & 0xFFFFu; if (psx_taken_BFC2B370) goto label_BFC2B380; label_BFC2B378: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B378: 100002D3 beq $zero, $zero, 0xBFC2BEC8 */ uint32_t psx_brA_BFC2B378 = cpu->gpr[0]; uint32_t psx_brB_BFC2B378 = cpu->gpr[0]; @@ -113042,10 +138725,16 @@ label_BFC2B378: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC2B378) goto label_BFC2BEC8; label_BFC2B380: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B380: 26D60001 addiu $s6, $s6, 1 */ cpu->gpr[22] = (uint32_t)((int32_t)cpu->gpr[22] + (1)); label_BFC2B384: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B384: 34018140 ori $at, $zero, 0x8140 */ cpu->gpr[1] = cpu->gpr[0] | 0x8140u; @@ -113058,6 +138747,9 @@ label_BFC2B384: cpu->gpr[1] = cpu->gpr[0] | 0x84BFu; if (psx_taken_BFC2B38C) goto label_BFC2B3CC; label_BFC2B394: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B394: 00A1082B sltu $at, $a1, $at */ cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < cpu->gpr[1] ? 1 : 0); @@ -113068,6 +138760,9 @@ label_BFC2B394: cpu->gpr[1] = 0x00010000u; if (psx_taken_BFC2B398) goto label_BFC2B3CC; label_BFC2B3A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B3A0: 342121D0 ori $at, $at, 0x21D0 */ cpu->gpr[1] = cpu->gpr[1] | 0x21D0u; @@ -113094,6 +138789,9 @@ label_BFC2B3A0: cpu->gpr[20] = cpu->gpr[25] + cpu->gpr[14]; if (psx_taken_BFC2B3C4) goto label_BFC2B42C; label_BFC2B3CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B3CC: 3401889F ori $at, $zero, 0x889F */ cpu->gpr[1] = cpu->gpr[0] | 0x889Fu; @@ -113106,6 +138804,9 @@ label_BFC2B3CC: cpu->gpr[1] = cpu->gpr[0] | 0x9873u; if (psx_taken_BFC2B3D4) goto label_BFC2B418; label_BFC2B3DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B3DC: 00A1082B sltu $at, $a1, $at */ cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < cpu->gpr[1] ? 1 : 0); @@ -113116,6 +138817,9 @@ label_BFC2B3DC: cpu->gpr[1] = 0x00010000u; if (psx_taken_BFC2B3E0) goto label_BFC2B418; label_BFC2B3E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B3E8: 342121D0 ori $at, $at, 0x21D0 */ cpu->gpr[1] = cpu->gpr[1] | 0x21D0u; @@ -113144,6 +138848,9 @@ label_BFC2B3E8: cpu->gpr[20] = cpu->gpr[2] + cpu->gpr[14]; if (psx_taken_BFC2B410) goto label_BFC2B42C; label_BFC2B418: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B418: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -113153,6 +138860,9 @@ label_BFC2B418: cpu->gpr[31] = 0x80043424u; psx_dispatch(cpu, 0x8005A910u); label_BFC2B424: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B424: 100002A8 beq $zero, $zero, 0xBFC2BEC8 */ uint32_t psx_brA_BFC2B424 = cpu->gpr[0]; uint32_t psx_brB_BFC2B424 = cpu->gpr[0]; @@ -113161,6 +138871,9 @@ label_BFC2B424: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC2B424) goto label_BFC2BEC8; label_BFC2B42C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B42C: 0C010B34 jal 0xB0042CD0 */ /* 0xBFC2B430: 00A02021 addu $a0, $a1, $zero */ @@ -113168,6 +138881,9 @@ label_BFC2B42C: cpu->gpr[31] = 0x80043434u; psx_dispatch(cpu, 0x80042CD0u); label_BFC2B434: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B434: 0002C100 sll $t8, $v0, 4 */ cpu->gpr[24] = cpu->gpr[2] << 4u; @@ -113184,6 +138900,9 @@ label_BFC2B434: cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[24]; if (psx_taken_BFC2B444) goto label_BFC2B688; label_BFC2B44C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B44C: 28410093 slti $at, $v0, 147 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (147) ? 1 : 0); @@ -113194,6 +138913,9 @@ label_BFC2B44C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (209) ? 1 : 0); if (psx_taken_BFC2B450) goto label_BFC2B688; label_BFC2B458: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B458: 1020008B beq $at, $zero, 0xBFC2B688 */ uint32_t psx_brA_BFC2B458 = cpu->gpr[1]; uint32_t psx_brB_BFC2B458 = cpu->gpr[0]; @@ -113202,6 +138924,9 @@ label_BFC2B458: /* nop */ if (psx_taken_BFC2B458) goto label_BFC2B688; label_BFC2B460: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B460: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -113239,6 +138964,9 @@ label_BFC2B460: cpu->gpr[31] = 0x800434A4u; psx_dispatch(cpu, 0x800431FCu); label_BFC2B4A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(52u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B4A4: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -113345,6 +139073,9 @@ label_BFC2B4A4: /* 0xBFC2B570: 26230006 addiu $v1, $s1, 6 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[17] + (6)); label_BFC2B574: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(67u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B574: 9464DFF4 lhu $a0, -8204($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (-8204)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2B574u); return; } cpu->gpr[4] = (uint32_t)cpu->read_half(psx_addr); } @@ -113483,6 +139214,9 @@ label_BFC2B574: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (8)); if (psx_taken_BFC2B678) goto label_BFC2B574; label_BFC2B680: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B680: 10000095 beq $zero, $zero, 0xBFC2B8D8 */ uint32_t psx_brA_BFC2B680 = cpu->gpr[0]; uint32_t psx_brB_BFC2B680 = cpu->gpr[0]; @@ -113491,6 +139225,9 @@ label_BFC2B680: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (448)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2B684u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } if (psx_taken_BFC2B680) goto label_BFC2B8D8; label_BFC2B688: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B688: 1617008C bne $s0, $s7, 0xBFC2B8BC */ uint32_t psx_brA_BFC2B688 = cpu->gpr[16]; uint32_t psx_brB_BFC2B688 = cpu->gpr[23]; @@ -113499,6 +139236,9 @@ label_BFC2B688: cpu->gpr[1] = 0xFFFF0000u; if (psx_taken_BFC2B688) goto label_BFC2B8BC; label_BFC2B690: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B690: 1440008A bne $v0, $zero, 0xBFC2B8BC */ uint32_t psx_brA_BFC2B690 = cpu->gpr[2]; uint32_t psx_brB_BFC2B690 = cpu->gpr[0]; @@ -113507,6 +139247,9 @@ label_BFC2B690: cpu->gpr[1] = 0xFFFF0000u; if (psx_taken_BFC2B690) goto label_BFC2B8BC; label_BFC2B698: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B698: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -113538,6 +139281,9 @@ label_BFC2B698: cpu->gpr[31] = 0x800436D0u; psx_dispatch(cpu, 0x800431FCu); label_BFC2B6D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(53u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B6D0: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -113646,6 +139392,9 @@ label_BFC2B6D0: /* 0xBFC2B7A0: 26230006 addiu $v1, $s1, 6 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[17] + (6)); label_BFC2B7A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(67u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B7A4: 9464DFF4 lhu $a0, -8204($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (-8204)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2B7A4u); return; } cpu->gpr[4] = (uint32_t)cpu->read_half(psx_addr); } @@ -113784,6 +139533,9 @@ label_BFC2B7A4: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (8)); if (psx_taken_BFC2B8A8) goto label_BFC2B7A4; label_BFC2B8B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B8B0: 10000009 beq $zero, $zero, 0xBFC2B8D8 */ uint32_t psx_brA_BFC2B8B0 = cpu->gpr[0]; uint32_t psx_brB_BFC2B8B0 = cpu->gpr[0]; @@ -113792,10 +139544,16 @@ label_BFC2B8B0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (448)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2B8B4u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } if (psx_taken_BFC2B8B0) goto label_BFC2B8D8; label_BFC2B8B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B8B8: 3C01FFFF lui $at, 0xFFFF */ cpu->gpr[1] = 0xFFFF0000u; label_BFC2B8BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B8BC: 00340821 addu $at, $at, $s4 */ cpu->gpr[1] = cpu->gpr[1] + cpu->gpr[20]; @@ -113811,10 +139569,16 @@ label_BFC2B8BC: cpu->gpr[31] = 0x800438D4u; psx_dispatch(cpu, 0x800431FCu); label_BFC2B8D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B8D4: 8FB901C0 lw $t9, 448($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (448)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2B8D4u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } label_BFC2B8D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B8D8: 00000000 nop */ /* nop */ @@ -113823,6 +139587,9 @@ label_BFC2B8D8: /* 0xBFC2B8E0: AFAF01C0 sw $t7, 448($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (448)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2B8E0u); return; } g_debug_last_store_pc = 0xBFC2B8E0u; cpu->write_word(psx_addr, cpu->gpr[15]); } label_BFC2B8E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B8E4: 92C40000 lbu $a0, 0($s6) */ cpu->gpr[4] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[22] + (0))); @@ -113835,6 +139602,9 @@ label_BFC2B8E4: /* nop */ if (psx_taken_BFC2B8EC) goto label_BFC2B908; label_BFC2B8F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B8F4: 8FB801C0 lw $t8, 448($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (448)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2B8F4u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -113849,6 +139619,9 @@ label_BFC2B8F4: /* nop */ if (psx_taken_BFC2B900) goto label_BFC2B304; label_BFC2B908: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B908: 3C160001 lui $s6, 0x1 */ cpu->gpr[22] = 0x00010000u; @@ -113865,12 +139638,18 @@ label_BFC2B908: /* 0xBFC2B920: 241E0004 addiu $fp, $zero, 4 */ cpu->gpr[30] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); label_BFC2B924: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B924: 8FA401C0 lw $a0, 448($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (448)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2B924u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } /* 0xBFC2B928: 0000A021 addu $s4, $zero, $zero */ cpu->gpr[20] = cpu->gpr[0] + cpu->gpr[0]; label_BFC2B92C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B92C: 8FBF008C lw $ra, 140($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (140)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2B92Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -113879,6 +139658,9 @@ label_BFC2B92C: /* 0xBFC2B934: 00008821 addu $s1, $zero, $zero */ cpu->gpr[17] = cpu->gpr[0] + cpu->gpr[0]; label_BFC2B938: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B938: 03E4082A slt $at, $ra, $a0 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[31] < (int32_t)cpu->gpr[4] ? 1 : 0); @@ -113889,6 +139671,9 @@ label_BFC2B938: cpu->gpr[21] = cpu->gpr[31] + cpu->gpr[0]; if (psx_taken_BFC2B93C) goto label_BFC2B94C; label_BFC2B944: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B944: 100000C0 beq $zero, $zero, 0xBFC2BC48 */ uint32_t psx_brA_BFC2B944 = cpu->gpr[0]; uint32_t psx_brB_BFC2B944 = cpu->gpr[0]; @@ -113897,6 +139682,9 @@ label_BFC2B944: cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (4)); if (psx_taken_BFC2B944) goto label_BFC2BC48; label_BFC2B94C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B94C: 3C010001 lui $at, 0x1 */ cpu->gpr[1] = 0x00010000u; @@ -113919,6 +139707,9 @@ label_BFC2B94C: cpu->gpr[16] = cpu->gpr[31] + cpu->gpr[24]; if (psx_taken_BFC2B968) goto label_BFC2BB04; label_BFC2B970: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(101u); +#endif psx_check_interrupts(cpu); /* 0xBFC2B970: 95A2DFF4 lhu $v0, -8204($t5) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[13] + (-8204)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2B970u); return; } cpu->gpr[2] = (uint32_t)cpu->read_half(psx_addr); } @@ -114125,6 +139916,9 @@ label_BFC2B970: cpu->gpr[2] = 0xFFFF0000u; if (psx_taken_BFC2BAFC) goto label_BFC2BC2C; label_BFC2BB04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(74u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BB04: 3C010001 lui $at, 0x1 */ cpu->gpr[1] = 0x00010000u; @@ -114275,6 +140069,9 @@ label_BFC2BB04: /* 0xBFC2BC28: 3C02FFFF lui $v0, 0xFFFF */ cpu->gpr[2] = 0xFFFF0000u; label_BFC2BC2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BC2C: 00501021 addu $v0, $v0, $s0 */ cpu->gpr[2] = cpu->gpr[2] + cpu->gpr[16]; @@ -114291,6 +140088,9 @@ label_BFC2BC2C: /* 0xBFC2BC44: 02629821 addu $s3, $s3, $v0 */ cpu->gpr[19] = cpu->gpr[19] + cpu->gpr[2]; label_BFC2BC48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BC48: 26310001 addiu $s1, $s1, 1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); @@ -114301,6 +140101,9 @@ label_BFC2BC48: cpu->gpr[31] = (uint32_t)((int32_t)cpu->gpr[31] + (1)); if (psx_taken_BFC2BC4C) goto label_BFC2B938; label_BFC2BC54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BC54: 26940001 addiu $s4, $s4, 1 */ cpu->gpr[20] = (uint32_t)((int32_t)cpu->gpr[20] + (1)); @@ -114313,6 +140116,9 @@ label_BFC2BC54: cpu->gpr[19] = cpu->gpr[19] + cpu->gpr[18]; if (psx_taken_BFC2BC5C) goto label_BFC2B92C; label_BFC2BC64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BC64: 02A4082A slt $at, $s5, $a0 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[21] < (int32_t)cpu->gpr[4] ? 1 : 0); @@ -114323,6 +140129,9 @@ label_BFC2BC64: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (16) ? 1 : 0); if (psx_taken_BFC2BC68) goto label_BFC2BC8C; label_BFC2BC70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BC70: 8FB8008C lw $t8, 140($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (140)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2BC70u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -114339,10 +140148,16 @@ label_BFC2BC70: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (140)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2BC84u); return; } g_debug_last_store_pc = 0xBFC2BC84u; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC2BC80) goto label_BFC2B924; label_BFC2BC88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BC88: 28810010 slti $at, $a0, 16 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (16) ? 1 : 0); label_BFC2BC8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BC8C: 1020000A beq $at, $zero, 0xBFC2BCB8 */ uint32_t psx_brA_BFC2BC8C = cpu->gpr[1]; uint32_t psx_brB_BFC2BC8C = cpu->gpr[0]; @@ -114351,6 +140166,9 @@ label_BFC2BC8C: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[4] + (-1)); if (psx_taken_BFC2BC8C) goto label_BFC2BCB8; label_BFC2BC94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BC94: 2491FFFF addiu $s1, $a0, -1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[4] + (-1)); @@ -114363,10 +140181,16 @@ label_BFC2BC94: cpu->gpr[1] = cpu->gpr[17] + cpu->gpr[0]; if (psx_taken_BFC2BC9C) goto label_BFC2BCA8; label_BFC2BCA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BCA4: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC2BCA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BCA8: 00019903 sra $s3, $at, 4 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -114377,10 +140201,16 @@ label_BFC2BCA8: cpu->gpr[18] = 0x00010000u; if (psx_taken_BFC2BCAC) goto label_BFC2BCD4; label_BFC2BCB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BCB4: 2491FFFF addiu $s1, $a0, -1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[4] + (-1)); label_BFC2BCB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BCB8: 06210002 bgez $s1, 0xBFC2BCC4 */ uint32_t psx_brA_BFC2BCB8 = cpu->gpr[17]; @@ -114389,10 +140219,16 @@ label_BFC2BCB8: cpu->gpr[1] = cpu->gpr[17] + cpu->gpr[0]; if (psx_taken_BFC2BCB8) goto label_BFC2BCC4; label_BFC2BCC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BCC0: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC2BCC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BCC4: 00019903 sra $s3, $at, 4 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -114403,6 +140239,9 @@ label_BFC2BCC4: /* 0xBFC2BCD0: 3C120001 lui $s2, 0x1 */ cpu->gpr[18] = 0x00010000u; label_BFC2BCD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BCD4: 025D9021 addu $s2, $s2, $sp */ cpu->gpr[18] = cpu->gpr[18] + cpu->gpr[29]; @@ -114418,6 +140257,9 @@ label_BFC2BCD4: cpu->gpr[31] = 0x80043CECu; psx_dispatch(cpu, 0x8004322Cu); label_BFC2BCEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(41u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BCEC: 8FA301C0 lw $v1, 448($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (448)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2BCECu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -114504,6 +140346,9 @@ label_BFC2BCEC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[18] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2BD8Cu); return; } g_debug_last_store_pc = 0xBFC2BD8Cu; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC2BD88) goto label_BFC2BD98; label_BFC2BD90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BD90: 10000008 beq $zero, $zero, 0xBFC2BDB4 */ uint32_t psx_brA_BFC2BD90 = cpu->gpr[0]; uint32_t psx_brB_BFC2BD90 = cpu->gpr[0]; @@ -114512,6 +140357,9 @@ label_BFC2BD90: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (64)); if (psx_taken_BFC2BD90) goto label_BFC2BDB4; label_BFC2BD98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BD98: 06210004 bgez $s1, 0xBFC2BDAC */ uint32_t psx_brA_BFC2BD98 = cpu->gpr[17]; @@ -114520,6 +140368,9 @@ label_BFC2BD98: cpu->gpr[2] = cpu->gpr[17] & 0xFu; if (psx_taken_BFC2BD98) goto label_BFC2BDAC; label_BFC2BDA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BDA0: 10400002 beq $v0, $zero, 0xBFC2BDAC */ uint32_t psx_brA_BFC2BDA0 = cpu->gpr[2]; uint32_t psx_brB_BFC2BDA0 = cpu->gpr[0]; @@ -114528,16 +140379,25 @@ label_BFC2BDA0: /* nop */ if (psx_taken_BFC2BDA0) goto label_BFC2BDAC; label_BFC2BDA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BDA8: 2442FFF0 addiu $v0, $v0, -16 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (-16)); label_BFC2BDAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BDAC: 00021080 sll $v0, $v0, 2 */ cpu->gpr[2] = cpu->gpr[2] << 2u; /* 0xBFC2BDB0: 24420004 addiu $v0, $v0, 4 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (4)); label_BFC2BDB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BDB4: 00137900 sll $t7, $s3, 4 */ cpu->gpr[15] = cpu->gpr[19] << 4u; @@ -114556,6 +140416,9 @@ label_BFC2BDB4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[18] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2BDCCu); return; } g_debug_last_store_pc = 0xBFC2BDCCu; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC2BDC8) goto label_BFC2BE60; label_BFC2BDD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BDD0: 0000A021 addu $s4, $zero, $zero */ cpu->gpr[20] = cpu->gpr[0] + cpu->gpr[0]; @@ -114568,12 +140431,18 @@ label_BFC2BDD0: cpu->gpr[5] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC2BDD8) goto label_BFC2BEC4; label_BFC2BDE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BDE0: 00032080 sll $a0, $v1, 2 */ cpu->gpr[4] = cpu->gpr[3] << 2u; /* 0xBFC2BDE4: 02401021 addu $v0, $s2, $zero */ cpu->gpr[2] = cpu->gpr[18] + cpu->gpr[0]; label_BFC2BDE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BDE8: 06A10004 bgez $s5, 0xBFC2BDFC */ uint32_t psx_brA_BFC2BDE8 = cpu->gpr[21]; @@ -114582,6 +140451,9 @@ label_BFC2BDE8: cpu->gpr[15] = cpu->gpr[21] & 0x3Fu; if (psx_taken_BFC2BDE8) goto label_BFC2BDFC; label_BFC2BDF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BDF0: 11E00002 beq $t7, $zero, 0xBFC2BDFC */ uint32_t psx_brA_BFC2BDF0 = cpu->gpr[15]; uint32_t psx_brB_BFC2BDF0 = cpu->gpr[0]; @@ -114590,10 +140462,16 @@ label_BFC2BDF0: /* nop */ if (psx_taken_BFC2BDF0) goto label_BFC2BDFC; label_BFC2BDF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BDF8: 25EFFFC0 addiu $t7, $t7, -64 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[15] + (-64)); label_BFC2BDFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BDFC: 01E4082A slt $at, $t7, $a0 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[15] < (int32_t)cpu->gpr[4] ? 1 : 0); @@ -114604,6 +140482,9 @@ label_BFC2BDFC: cpu->gpr[1] = 0x00010000u; if (psx_taken_BFC2BE00) goto label_BFC2BE14; label_BFC2BE08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BE08: 24A50001 addiu $a1, $a1, 1 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (1)); @@ -114612,6 +140493,9 @@ label_BFC2BE08: /* 0xBFC2BE10: 3C010001 lui $at, 0x1 */ cpu->gpr[1] = 0x00010000u; label_BFC2BE14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BE14: 342121D0 ori $at, $at, 0x21D0 */ cpu->gpr[1] = cpu->gpr[1] | 0x21D0u; @@ -114650,6 +140534,9 @@ label_BFC2BE14: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (4)); if (psx_taken_BFC2BE50) goto label_BFC2BDE8; label_BFC2BE58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BE58: 1000001B beq $zero, $zero, 0xBFC2BEC8 */ uint32_t psx_brA_BFC2BE58 = cpu->gpr[0]; uint32_t psx_brB_BFC2BE58 = cpu->gpr[0]; @@ -114658,6 +140545,9 @@ label_BFC2BE58: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC2BE58) goto label_BFC2BEC8; label_BFC2BE60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BE60: 00161040 sll $v0, $s6, 1 */ cpu->gpr[2] = cpu->gpr[22] << 1u; @@ -114668,6 +140558,9 @@ label_BFC2BE60: cpu->gpr[20] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC2BE64) goto label_BFC2BEC4; label_BFC2BE6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BE6C: 3C010001 lui $at, 0x1 */ cpu->gpr[1] = 0x00010000u; @@ -114676,6 +140569,9 @@ label_BFC2BE6C: /* 0xBFC2BE74: 03A11821 addu $v1, $sp, $at */ cpu->gpr[3] = cpu->gpr[29] + cpu->gpr[1]; label_BFC2BE78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BE78: 3C19FFFF lui $t9, 0xFFFF */ cpu->gpr[25] = 0xFFFF0000u; @@ -114702,10 +140598,16 @@ label_BFC2BE78: cpu->gpr[1] = cpu->gpr[20] + cpu->gpr[0]; if (psx_taken_BFC2BE9C) goto label_BFC2BEA8; label_BFC2BEA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BEA4: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC2BEA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BEA8: 0001C843 sra $t9, $at, 1 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -114724,10 +140626,16 @@ label_BFC2BEA8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[24] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2BEC0u); return; } g_debug_last_store_pc = 0xBFC2BEC0u; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC2BEBC) goto label_BFC2BE78; label_BFC2BEC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BEC4: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC2BEC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BEC8: 8FBF005C lw $ra, 92($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (92)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2BEC8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -114762,6 +140670,9 @@ label_BFC2BEC8: void func_1FC2BF00(CPUState* cpu) { debug_server_log_call_entry(0x1FC2BF00u); label_BFC2BF00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BF00: 3C028009 lui $v0, 0x8009 */ cpu->gpr[2] = 0x80090000u; @@ -114776,6 +140687,9 @@ label_BFC2BF00: void func_1FC2BF10(CPUState* cpu) { debug_server_log_call_entry(0x1FC2BF10u); label_BFC2BF10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BF10: 3C018009 lui $at, 0x8009 */ cpu->gpr[1] = 0x80090000u; @@ -114796,6 +140710,9 @@ void func_1FC2BF1C(CPUState* cpu) { } } label_BFC2BF1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BF1C: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -114835,6 +140752,9 @@ label_BFC2BF1C: cpu->gpr[31] = 0x80043F64u; psx_dispatch(cpu, 0x800497D0u); label_BFC2BF64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BF64: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2BF64u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -114863,6 +140783,9 @@ void func_1FC2BF74(CPUState* cpu) { } } label_BFC2BF74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BF74: 27BDFFB0 addiu $sp, $sp, -80 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-80)); @@ -114885,6 +140808,9 @@ label_BFC2BF74: cpu->gpr[16] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC2BF90) goto label_BFC2BFA0; label_BFC2BF98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BF98: 10000086 beq $zero, $zero, 0xBFC2C1B4 */ uint32_t psx_brA_BFC2BF98 = cpu->gpr[0]; uint32_t psx_brB_BFC2BF98 = cpu->gpr[0]; @@ -114893,6 +140819,9 @@ label_BFC2BF98: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC2BF98) goto label_BFC2C1B4; label_BFC2BFA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BFA0: 24640004 addiu $a0, $v1, 4 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[3] + (4)); @@ -114902,6 +140831,9 @@ label_BFC2BFA0: cpu->gpr[31] = 0x80043FACu; psx_dispatch(cpu, 0x800441C4u); label_BFC2BFAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BFAC: 8E020000 lw $v0, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2BFACu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -114916,6 +140848,9 @@ label_BFC2BFAC: cpu->gpr[24] = cpu->gpr[2] & 0x3u; if (psx_taken_BFC2BFB8) goto label_BFC2BFD0; label_BFC2BFC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BFC0: 8E020000 lw $v0, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2BFC0u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -114926,6 +140861,9 @@ label_BFC2BFC0: /* 0xBFC2BFCC: 30580003 andi $t8, $v0, 0x3 */ cpu->gpr[24] = cpu->gpr[2] & 0x3u; label_BFC2BFD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BFD0: 86040008 lh $a0, 8($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (8)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2BFD0u); return; } cpu->gpr[4] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -114949,6 +140887,9 @@ label_BFC2BFD0: cpu->gpr[31] = 0x80043FF8u; psx_dispatch(cpu, 0x800499ECu); label_BFC2BFF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2BFF8: 1040001B beq $v0, $zero, 0xBFC2C068 */ uint32_t psx_brA_BFC2BFF8 = cpu->gpr[2]; uint32_t psx_brB_BFC2BFF8 = cpu->gpr[0]; @@ -114957,6 +140898,9 @@ label_BFC2BFF8: /* nop */ if (psx_taken_BFC2BFF8) goto label_BFC2C068; label_BFC2C000: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C000: 87A9003C lh $t1, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C000u); return; } cpu->gpr[9] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -114976,6 +140920,9 @@ label_BFC2C000: cpu->gpr[31] = 0x80044020u; psx_dispatch(cpu, 0x80049C64u); label_BFC2C020: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C020: 960B0014 lhu $t3, 20($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (20)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C020u); return; } cpu->gpr[11] = (uint32_t)cpu->read_half(psx_addr); } @@ -114988,6 +140935,9 @@ label_BFC2C020: /* nop */ if (psx_taken_BFC2C028) goto label_BFC2C070; label_BFC2C030: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C030: 960C0016 lhu $t4, 22($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (22)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C030u); return; } cpu->gpr[12] = (uint32_t)cpu->read_half(psx_addr); } @@ -115000,6 +140950,9 @@ label_BFC2C030: /* nop */ if (psx_taken_BFC2C038) goto label_BFC2C070; label_BFC2C040: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C040: 87A20034 lh $v0, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C040u); return; } cpu->gpr[2] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -115019,6 +140972,9 @@ label_BFC2C040: cpu->gpr[31] = 0x80044060u; psx_dispatch(cpu, 0x80049D14u); label_BFC2C060: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C060: 10000004 beq $zero, $zero, 0xBFC2C074 */ uint32_t psx_brA_BFC2C060 = cpu->gpr[0]; uint32_t psx_brB_BFC2C060 = cpu->gpr[0]; @@ -115027,6 +140983,9 @@ label_BFC2C060: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C064u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } if (psx_taken_BFC2C060) goto label_BFC2C074; label_BFC2C068: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C068: 10000052 beq $zero, $zero, 0xBFC2C1B4 */ uint32_t psx_brA_BFC2C068 = cpu->gpr[0]; uint32_t psx_brB_BFC2C068 = cpu->gpr[0]; @@ -115035,10 +140994,16 @@ label_BFC2C068: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC2C068) goto label_BFC2C1B4; label_BFC2C070: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C070: 8E040000 lw $a0, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C070u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } label_BFC2C074: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C074: 3C068008 lui $a2, 0x8008 */ cpu->gpr[6] = 0x80080000u; @@ -115056,6 +141021,9 @@ label_BFC2C074: cpu->gpr[31] = 0x80044090u; psx_dispatch(cpu, 0x80051630u); label_BFC2C090: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C090: 8FA30058 lw $v1, 88($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (88)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C090u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -115076,6 +141044,9 @@ label_BFC2C090: cpu->gpr[14] = cpu->gpr[13] & 0x3Fu; if (psx_taken_BFC2C0A8) goto label_BFC2C0BC; label_BFC2C0B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C0B0: 11C00002 beq $t6, $zero, 0xBFC2C0BC */ uint32_t psx_brA_BFC2C0B0 = cpu->gpr[14]; uint32_t psx_brB_BFC2C0B0 = cpu->gpr[0]; @@ -115084,10 +141055,16 @@ label_BFC2C0B0: /* nop */ if (psx_taken_BFC2C0B0) goto label_BFC2C0BC; label_BFC2C0B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C0B8: 25CEFFC0 addiu $t6, $t6, -64 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[14] + (-64)); label_BFC2C0BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C0BC: A46E0002 sh $t6, 2($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C0BCu); return; } g_debug_last_store_pc = 0xBFC2C0BCu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[14] & 0xFFFFu)); } @@ -115104,6 +141081,9 @@ label_BFC2C0BC: cpu->gpr[24] = cpu->gpr[15] & 0xFFu; if (psx_taken_BFC2C0CC) goto label_BFC2C0E0; label_BFC2C0D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C0D4: 13000002 beq $t8, $zero, 0xBFC2C0E0 */ uint32_t psx_brA_BFC2C0D4 = cpu->gpr[24]; uint32_t psx_brB_BFC2C0D4 = cpu->gpr[0]; @@ -115112,10 +141092,16 @@ label_BFC2C0D4: /* nop */ if (psx_taken_BFC2C0D4) goto label_BFC2C0E0; label_BFC2C0DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C0DC: 2718FF00 addiu $t8, $t8, -256 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[24] + (-256)); label_BFC2C0E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C0E0: A4780004 sh $t8, 4($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C0E0u); return; } g_debug_last_store_pc = 0xBFC2C0E0u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[24] & 0xFFFFu)); } @@ -115132,6 +141118,9 @@ label_BFC2C0E0: /* nop */ if (psx_taken_BFC2C0F0) goto label_BFC2C108; label_BFC2C0F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C0F8: A6000010 sh $zero, 16($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (16)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C0F8u); return; } g_debug_last_store_pc = 0xBFC2C0F8u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } @@ -115142,6 +141131,9 @@ label_BFC2C0F8: /* 0xBFC2C104: A6000014 sh $zero, 20($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (20)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C104u); return; } g_debug_last_store_pc = 0xBFC2C104u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } label_BFC2C108: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C108: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -115185,6 +141177,9 @@ label_BFC2C108: cpu->gpr[31] = 0x80044158u; psx_dispatch(cpu, 0x8004F0F4u); label_BFC2C158: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C158: 8E0E0000 lw $t6, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C158u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -115199,6 +141194,9 @@ label_BFC2C158: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC2C164) goto label_BFC2C1B4; label_BFC2C16C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C16C: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -115236,10 +141234,16 @@ label_BFC2C16C: cpu->gpr[31] = 0x800441B0u; psx_dispatch(cpu, 0x8004F0F4u); label_BFC2C1B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C1B0: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC2C1B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C1B4: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C1B4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -115254,6 +141258,9 @@ label_BFC2C1B4: void func_1FC2C1C4(CPUState* cpu) { debug_server_log_call_entry(0x1FC2C1C4u); label_BFC2C1C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C1C4: 8C8E0000 lw $t6, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C1C4u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -115276,6 +141283,9 @@ label_BFC2C1C4: /* nop */ if (psx_taken_BFC2C1E0) goto label_BFC2C290; label_BFC2C1E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(42u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C1E8: 8C8B0008 lw $t3, 8($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C1E8u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -115362,6 +141372,9 @@ label_BFC2C1E8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (10)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C28Cu); return; } g_debug_last_store_pc = 0xBFC2C28Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[10] & 0xFFFFu)); } return; label_BFC2C290: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(21u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C290: 8C8B0008 lw $t3, 8($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C290u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -115419,6 +141432,9 @@ void func_1FC2C2F0(CPUState* cpu) { } } label_BFC2C2F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C2F0: 27BDFF98 addiu $sp, $sp, -104 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-104)); @@ -115440,6 +141456,9 @@ label_BFC2C2F0: cpu->gpr[31] = 0x80044314u; psx_dispatch(cpu, 0x80043F74u); label_BFC2C314: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C314: 8FAA0070 lw $t2, 112($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (112)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C314u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -115450,6 +141469,9 @@ label_BFC2C314: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC2C318) goto label_BFC2C3D0; label_BFC2C320: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C320: 15410027 bne $t2, $at, 0xBFC2C3C0 */ uint32_t psx_brA_BFC2C320 = cpu->gpr[10]; uint32_t psx_brB_BFC2C320 = cpu->gpr[1]; @@ -115458,6 +141480,9 @@ label_BFC2C320: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (104)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C324u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } if (psx_taken_BFC2C320) goto label_BFC2C3C0; label_BFC2C328: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C328: 87A90042 lh $t1, 66($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (66)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C328u); return; } cpu->gpr[9] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -115478,6 +141503,9 @@ label_BFC2C328: cpu->gpr[7] = cpu->gpr[9] + cpu->gpr[0]; if (psx_taken_BFC2C340) goto label_BFC2C3BC; label_BFC2C348: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C348: 97AF0044 lhu $t7, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C348u); return; } cpu->gpr[15] = (uint32_t)cpu->read_half(psx_addr); } @@ -115494,6 +141522,9 @@ label_BFC2C348: /* 0xBFC2C360: 87A20040 lh $v0, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C360u); return; } cpu->gpr[2] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } label_BFC2C364: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C364: 0085082B sltu $at, $a0, $a1 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[4] < cpu->gpr[5] ? 1 : 0); @@ -115504,6 +141535,9 @@ label_BFC2C364: /* nop */ if (psx_taken_BFC2C368) goto label_BFC2C3AC; label_BFC2C370: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C370: 8C790000 lw $t9, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C370u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -115530,6 +141564,9 @@ label_BFC2C370: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_taken_BFC2C394) goto label_BFC2C370; label_BFC2C39C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C39C: 87A90042 lh $t1, 66($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (66)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C39Cu); return; } cpu->gpr[9] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -115540,6 +141577,9 @@ label_BFC2C39C: /* 0xBFC2C3A8: 012E4021 addu $t0, $t1, $t6 */ cpu->gpr[8] = cpu->gpr[9] + cpu->gpr[14]; label_BFC2C3AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C3AC: 24E70001 addiu $a3, $a3, 1 */ cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[7] + (1)); @@ -115552,10 +141592,16 @@ label_BFC2C3AC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C3B8u); return; } cpu->gpr[2] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } if (psx_taken_BFC2C3B4) goto label_BFC2C364; label_BFC2C3BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C3BC: 8FA40068 lw $a0, 104($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (104)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C3BCu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } label_BFC2C3C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C3C0: 27A5003C addiu $a1, $sp, 60 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[29] + (60)); @@ -115567,6 +141613,9 @@ label_BFC2C3C0: cpu->gpr[31] = 0x800443D0u; psx_dispatch(cpu, 0x800443E0u); label_BFC2C3D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C3D0: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C3D0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -115596,6 +141645,9 @@ void func_1FC2C3E0(CPUState* cpu) { } } label_BFC2C3E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C3E0: 27BDFF90 addiu $sp, $sp, -112 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-112)); @@ -115612,6 +141664,9 @@ label_BFC2C3E0: /* 0xBFC2C3F8: 27AE0044 addiu $t6, $sp, 68 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[29] + (68)); label_BFC2C3FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C3FC: 8F010000 lw $at, 0($t8) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[24] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C3FCu); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -115634,6 +141689,9 @@ label_BFC2C3FC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[14] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C41Cu); return; } g_debug_last_store_pc = 0xBFC2C41Cu; cpu->write_word(psx_addr, cpu->gpr[1]); } if (psx_taken_BFC2C418) goto label_BFC2C3FC; label_BFC2C420: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C420: 8F010000 lw $at, 0($t8) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[24] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C420u); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -115668,6 +141726,9 @@ label_BFC2C420: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); if (psx_taken_BFC2C454) goto label_BFC2C46C; label_BFC2C45C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C45C: 8FA3006C lw $v1, 108($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (108)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C45Cu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -115678,14 +141739,23 @@ label_BFC2C45C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C464u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } if (psx_taken_BFC2C460) goto label_BFC2C470; label_BFC2C468: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C468: 24030004 addiu $v1, $zero, 4 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); label_BFC2C46C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C46C: 8FA20044 lw $v0, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C46Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } label_BFC2C470: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C470: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -115696,12 +141766,18 @@ label_BFC2C470: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC2C474) goto label_BFC2C484; label_BFC2C47C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C47C: 24030002 addiu $v1, $zero, 2 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); /* 0xBFC2C480: 24010002 addiu $at, $zero, 2 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); label_BFC2C484: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C484: 14410003 bne $v0, $at, 0xBFC2C494 */ uint32_t psx_brA_BFC2C484 = cpu->gpr[2]; uint32_t psx_brB_BFC2C484 = cpu->gpr[1]; @@ -115710,12 +141786,18 @@ label_BFC2C484: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C488u); return; } cpu->gpr[10] = (uint32_t)cpu->read_half(psx_addr); } if (psx_taken_BFC2C484) goto label_BFC2C494; label_BFC2C48C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C48C: 24030001 addiu $v1, $zero, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); /* 0xBFC2C490: 97AA004C lhu $t2, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C490u); return; } cpu->gpr[10] = (uint32_t)cpu->read_half(psx_addr); } label_BFC2C494: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C494: 306BFFFF andi $t3, $v1, 0xFFFF */ cpu->gpr[11] = cpu->gpr[3] & 0xFFFFu; @@ -115733,6 +141815,9 @@ label_BFC2C494: cpu->gpr[31] = 0x800444B0u; psx_dispatch(cpu, 0x80043F00u); label_BFC2C4B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C4B0: 8FA7007C lw $a3, 124($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (124)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C4B0u); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } @@ -115743,6 +141828,9 @@ label_BFC2C4B0: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC2C4B4) goto label_BFC2C4C8; label_BFC2C4BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C4BC: 10000002 beq $zero, $zero, 0xBFC2C4C8 */ uint32_t psx_brA_BFC2C4BC = cpu->gpr[0]; uint32_t psx_brB_BFC2C4BC = cpu->gpr[0]; @@ -115751,10 +141839,16 @@ label_BFC2C4BC: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC2C4BC) goto label_BFC2C4C8; label_BFC2C4C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C4C4: 24030002 addiu $v1, $zero, 2 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); label_BFC2C4C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C4C8: 240D0004 addiu $t5, $zero, 4 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); @@ -115767,6 +141861,9 @@ label_BFC2C4C8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (108)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C4D4u); return; } g_debug_last_store_pc = 0xBFC2C4D4u; cpu->write_word(psx_addr, cpu->gpr[13]); } if (psx_taken_BFC2C4D0) goto label_BFC2C6D8; label_BFC2C4D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C4D8: 26040018 addiu $a0, $s0, 24 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[16] + (24)); @@ -115776,6 +141873,9 @@ label_BFC2C4D8: cpu->gpr[31] = 0x800444E4u; psx_dispatch(cpu, 0x80051A14u); label_BFC2C4E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(76u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C4E4: 8FA30068 lw $v1, 104($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (104)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C4E4u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -115932,10 +142032,16 @@ label_BFC2C4E4: /* nop */ if (psx_taken_BFC2C60C) goto label_BFC2C618; label_BFC2C614: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C614: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC2C614u); return; label_BFC2C618: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C618: 14600002 bne $v1, $zero, 0xBFC2C624 */ uint32_t psx_brA_BFC2C618 = cpu->gpr[3]; uint32_t psx_brB_BFC2C618 = cpu->gpr[0]; @@ -115944,10 +142050,16 @@ label_BFC2C618: /* nop */ if (psx_taken_BFC2C618) goto label_BFC2C624; label_BFC2C620: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C620: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC2C620u); return; label_BFC2C624: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C624: 14600002 bne $v1, $zero, 0xBFC2C630 */ uint32_t psx_brA_BFC2C624 = cpu->gpr[3]; uint32_t psx_brB_BFC2C624 = cpu->gpr[0]; @@ -115956,10 +142068,16 @@ label_BFC2C624: /* nop */ if (psx_taken_BFC2C624) goto label_BFC2C630; label_BFC2C62C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C62C: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC2C62Cu); return; label_BFC2C630: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C630: 0C0145B4 jal 0xB00516D0 */ /* 0xBFC2C634: 00000000 nop */ @@ -115967,6 +142085,9 @@ label_BFC2C630: cpu->gpr[31] = 0x80044638u; psx_dispatch(cpu, 0x800516D0u); label_BFC2C638: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(25u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C638: A6020026 sh $v0, 38($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (38)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C638u); return; } g_debug_last_store_pc = 0xBFC2C638u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[2] & 0xFFFFu)); } @@ -116020,6 +142141,9 @@ label_BFC2C638: cpu->gpr[31] = 0x8004469Cu; psx_dispatch(cpu, 0x80044A58u); label_BFC2C69C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C69C: 860B0046 lh $t3, 70($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (70)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C69Cu); return; } cpu->gpr[11] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -116034,10 +142158,16 @@ label_BFC2C69C: cpu->gpr[1] = cpu->gpr[11] + cpu->gpr[0]; if (psx_taken_BFC2C6A8) goto label_BFC2C6B4; label_BFC2C6B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C6B0: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC2C6B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C6B4: 00016043 sra $t4, $at, 1 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -116052,10 +142182,16 @@ label_BFC2C6B4: cpu->gpr[1] = cpu->gpr[13] + cpu->gpr[0]; if (psx_taken_BFC2C6C0) goto label_BFC2C6CC; label_BFC2C6C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C6C8: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC2C6CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C6CC: 00017843 sra $t7, $at, 1 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -116066,6 +142202,9 @@ label_BFC2C6CC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (92)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C6D4u); return; } g_debug_last_store_pc = 0xBFC2C6D4u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[15] & 0xFFFFu)); } if (psx_taken_BFC2C6D0) goto label_BFC2C7E4; label_BFC2C6D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C6D8: 26040004 addiu $a0, $s0, 4 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[16] + (4)); @@ -116075,6 +142214,9 @@ label_BFC2C6D8: cpu->gpr[31] = 0x800446E4u; psx_dispatch(cpu, 0x80051ADCu); label_BFC2C6E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(31u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C6E4: 8FA30068 lw $v1, 104($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (104)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C6E4u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -116141,10 +142283,16 @@ label_BFC2C6E4: /* nop */ if (psx_taken_BFC2C758) goto label_BFC2C764; label_BFC2C760: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C760: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC2C760u); return; label_BFC2C764: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C764: 0C0145B4 jal 0xB00516D0 */ /* 0xBFC2C768: 00000000 nop */ @@ -116152,6 +142300,9 @@ label_BFC2C764: cpu->gpr[31] = 0x8004476Cu; psx_dispatch(cpu, 0x800516D0u); label_BFC2C76C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C76C: A6020012 sh $v0, 18($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (18)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C76Cu); return; } g_debug_last_store_pc = 0xBFC2C76Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[2] & 0xFFFFu)); } @@ -116175,6 +142326,9 @@ label_BFC2C76C: cpu->gpr[31] = 0x80044794u; psx_dispatch(cpu, 0x80044A58u); label_BFC2C794: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C794: 86180046 lh $t8, 70($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (70)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C794u); return; } cpu->gpr[24] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -116189,10 +142343,16 @@ label_BFC2C794: cpu->gpr[1] = cpu->gpr[24] + cpu->gpr[0]; if (psx_taken_BFC2C7A0) goto label_BFC2C7AC; label_BFC2C7A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C7A8: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC2C7AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C7AC: 00017043 sra $t6, $at, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -116207,10 +142367,16 @@ label_BFC2C7AC: cpu->gpr[1] = cpu->gpr[25] + cpu->gpr[0]; if (psx_taken_BFC2C7B8) goto label_BFC2C7C4; label_BFC2C7C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C7C0: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC2C7C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C7C4: 00014043 sra $t0, $at, 1 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -116230,6 +142396,9 @@ label_BFC2C7C4: cpu->gpr[31] = 0x800447E4u; psx_dispatch(cpu, 0x8004FA4Cu); label_BFC2C7E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C7E4: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C7E4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -116244,6 +142413,9 @@ label_BFC2C7E4: void func_1FC2C7F4(CPUState* cpu) { debug_server_log_call_entry(0x1FC2C7F4u); label_BFC2C7F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C7F4: 848E0000 lh $t6, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C7F4u); return; } cpu->gpr[14] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -116264,6 +142436,9 @@ label_BFC2C7F4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (68)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C810u); return; } g_debug_last_store_pc = 0xBFC2C810u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[6] & 0xFFFFu)); } if (psx_taken_BFC2C80C) goto label_BFC2C880; label_BFC2C814: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(27u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C814: 8498005C lh $t8, 92($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (92)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C814u); return; } cpu->gpr[24] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -116320,6 +142495,9 @@ label_BFC2C814: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (40)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C87Cu); return; } g_debug_last_store_pc = 0xBFC2C87Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[8] & 0xFFFFu)); } return; label_BFC2C880: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C880: 8499005C lh $t9, 92($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (92)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C880u); return; } cpu->gpr[25] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -116346,6 +142524,9 @@ label_BFC2C880: void func_1FC2C8A8(CPUState* cpu) { debug_server_log_call_entry(0x1FC2C8A8u); label_BFC2C8A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C8A8: 848E0000 lh $t6, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C8A8u); return; } cpu->gpr[14] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -116358,6 +142539,9 @@ label_BFC2C8A8: /* nop */ if (psx_taken_BFC2C8B0) goto label_BFC2C980; label_BFC2C8B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C8B8: 848F0046 lh $t7, 70($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (70)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C8B8u); return; } cpu->gpr[15] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -116386,10 +142570,16 @@ label_BFC2C8B8: cpu->gpr[1] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC2C8E0) goto label_BFC2C8EC; label_BFC2C8E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C8E8: 24210FFF addiu $at, $at, 4095 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (4095)); label_BFC2C8EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C8EC: 00012B03 sra $a1, $at, 12 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[1] >> 12u); @@ -116400,10 +142590,16 @@ label_BFC2C8EC: cpu->gpr[1] = cpu->gpr[6] + cpu->gpr[0]; if (psx_taken_BFC2C8F0) goto label_BFC2C8FC; label_BFC2C8F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C8F8: 24210FFF addiu $at, $at, 4095 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (4095)); label_BFC2C8FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C8FC: 00013303 sra $a2, $at, 12 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[1] >> 12u); @@ -116414,10 +142610,16 @@ label_BFC2C8FC: cpu->gpr[1] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC2C900) goto label_BFC2C90C; label_BFC2C908: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C908: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC2C90C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C90C: 00017043 sra $t6, $at, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -116432,10 +142634,16 @@ label_BFC2C90C: cpu->gpr[1] = cpu->gpr[6] + cpu->gpr[0]; if (psx_taken_BFC2C918) goto label_BFC2C924; label_BFC2C920: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C920: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC2C924: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(23u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C924: 0001C043 sra $t8, $at, 1 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -116484,6 +142692,9 @@ label_BFC2C924: /* 0xBFC2C97C: A48D0038 sh $t5, 56($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (56)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C97Cu); return; } g_debug_last_store_pc = 0xBFC2C97Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[13] & 0xFFFFu)); } label_BFC2C980: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C980: 03E00008 jr $ra */ /* 0xBFC2C984: 00000000 nop */ @@ -116494,6 +142705,9 @@ label_BFC2C980: void func_1FC2C988(CPUState* cpu) { debug_server_log_call_entry(0x1FC2C988u); label_BFC2C988: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C988: 848E0000 lh $t6, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C988u); return; } cpu->gpr[14] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -116506,6 +142720,9 @@ label_BFC2C988: /* nop */ if (psx_taken_BFC2C990) goto label_BFC2CA48; label_BFC2C998: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C998: A4850046 sh $a1, 70($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (70)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2C998u); return; } g_debug_last_store_pc = 0xBFC2C998u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[5] & 0xFFFFu)); } @@ -116526,10 +142743,16 @@ label_BFC2C998: cpu->gpr[1] = cpu->gpr[15] + cpu->gpr[0]; if (psx_taken_BFC2C9B0) goto label_BFC2C9BC; label_BFC2C9B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C9B8: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC2C9BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C9BC: 0001C043 sra $t8, $at, 1 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -116544,10 +142767,16 @@ label_BFC2C9BC: cpu->gpr[1] = cpu->gpr[25] + cpu->gpr[0]; if (psx_taken_BFC2C9C8) goto label_BFC2C9D4; label_BFC2C9D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C9D0: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC2C9D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(29u); +#endif psx_check_interrupts(cpu); /* 0xBFC2C9D4: 00016843 sra $t5, $at, 1 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -116608,6 +142837,9 @@ label_BFC2C9D4: /* 0xBFC2CA44: A48B0032 sh $t3, 50($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (50)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CA44u); return; } g_debug_last_store_pc = 0xBFC2CA44u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[11] & 0xFFFFu)); } label_BFC2CA48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CA48: 03E00008 jr $ra */ /* 0xBFC2CA4C: 00000000 nop */ @@ -116618,6 +142850,9 @@ label_BFC2CA48: void func_1FC2CA50(CPUState* cpu) { debug_server_log_call_entry(0x1FC2CA50u); label_BFC2CA50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CA50: 03E00008 jr $ra */ /* 0xBFC2CA54: AC85006C sw $a1, 108($a0) */ @@ -116628,6 +142863,9 @@ label_BFC2CA50: void func_1FC2CA58(CPUState* cpu) { debug_server_log_call_entry(0x1FC2CA58u); label_BFC2CA58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CA58: 848E0000 lh $t6, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CA58u); return; } cpu->gpr[14] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -116648,6 +142886,9 @@ label_BFC2CA58: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] >> 16u); if (psx_taken_BFC2CA70) goto label_BFC2CA88; label_BFC2CA78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CA78: A085001C sb $a1, 28($a0) */ g_debug_last_store_pc = 0xBFC2CA78u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (28)), (uint8_t)(cpu->gpr[5] & 0xFFu)); @@ -116658,6 +142899,9 @@ label_BFC2CA78: g_debug_last_store_pc = 0xBFC2CA84u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (30)), (uint8_t)(cpu->gpr[7] & 0xFFu)); return; label_BFC2CA88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CA88: A0850008 sb $a1, 8($a0) */ g_debug_last_store_pc = 0xBFC2CA88u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (8)), (uint8_t)(cpu->gpr[5] & 0xFFu)); @@ -116683,6 +142927,9 @@ void func_1FC2CA9C(CPUState* cpu) { } } label_BFC2CA9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CA9C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -116701,6 +142948,9 @@ label_BFC2CA9C: /* nop */ if (psx_taken_BFC2CAB0) goto label_BFC2CAC8; label_BFC2CAB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CAB8: 0C014635 jal 0xB00518D4 */ /* 0xBFC2CABC: 24640018 addiu $a0, $v1, 24 */ @@ -116708,6 +142958,9 @@ label_BFC2CAB8: cpu->gpr[31] = 0x80044AC0u; psx_dispatch(cpu, 0x800518D4u); label_BFC2CAC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CAC0: 10000004 beq $zero, $zero, 0xBFC2CAD4 */ uint32_t psx_brA_BFC2CAC0 = cpu->gpr[0]; uint32_t psx_brB_BFC2CAC0 = cpu->gpr[0]; @@ -116716,6 +142969,9 @@ label_BFC2CAC0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CAC4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC2CAC0) goto label_BFC2CAD4; label_BFC2CAC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CAC8: 0C014635 jal 0xB00518D4 */ /* 0xBFC2CACC: 24640004 addiu $a0, $v1, 4 */ @@ -116723,10 +142979,16 @@ label_BFC2CAC8: cpu->gpr[31] = 0x80044AD0u; psx_dispatch(cpu, 0x800518D4u); label_BFC2CAD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CAD0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CAD0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC2CAD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CAD4: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -116748,6 +143010,9 @@ void func_1FC2CAE0(CPUState* cpu) { } } label_BFC2CAE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CAE0: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -116766,6 +143031,9 @@ label_BFC2CAE0: /* nop */ if (psx_taken_BFC2CAF4) goto label_BFC2CB0C; label_BFC2CAFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CAFC: 0C014644 jal 0xB0051910 */ /* 0xBFC2CB00: 24640018 addiu $a0, $v1, 24 */ @@ -116773,6 +143041,9 @@ label_BFC2CAFC: cpu->gpr[31] = 0x80044B04u; psx_dispatch(cpu, 0x80051910u); label_BFC2CB04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CB04: 10000004 beq $zero, $zero, 0xBFC2CB18 */ uint32_t psx_brA_BFC2CB04 = cpu->gpr[0]; uint32_t psx_brB_BFC2CB04 = cpu->gpr[0]; @@ -116781,6 +143052,9 @@ label_BFC2CB04: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CB08u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC2CB04) goto label_BFC2CB18; label_BFC2CB0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CB0C: 0C014644 jal 0xB0051910 */ /* 0xBFC2CB10: 24640004 addiu $a0, $v1, 4 */ @@ -116788,10 +143062,16 @@ label_BFC2CB0C: cpu->gpr[31] = 0x80044B14u; psx_dispatch(cpu, 0x80051910u); label_BFC2CB14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CB14: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CB14u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC2CB18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CB18: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -116814,6 +143094,9 @@ void func_1FC2CB24(CPUState* cpu) { } } label_BFC2CB24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CB24: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -116832,6 +143115,9 @@ label_BFC2CB24: /* nop */ if (psx_taken_BFC2CB38) goto label_BFC2CB50; label_BFC2CB40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CB40: 0C014601 jal 0xB0051804 */ /* 0xBFC2CB44: 24650018 addiu $a1, $v1, 24 */ @@ -116839,6 +143125,9 @@ label_BFC2CB40: cpu->gpr[31] = 0x80044B48u; psx_dispatch(cpu, 0x80051804u); label_BFC2CB48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CB48: 1000000A beq $zero, $zero, 0xBFC2CB74 */ uint32_t psx_brA_BFC2CB48 = cpu->gpr[0]; uint32_t psx_brB_BFC2CB48 = cpu->gpr[0]; @@ -116847,6 +143136,9 @@ label_BFC2CB48: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CB4Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC2CB48) goto label_BFC2CB74; label_BFC2CB50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CB50: AFA3001C sw $v1, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CB50u); return; } g_debug_last_store_pc = 0xBFC2CB50u; cpu->write_word(psx_addr, cpu->gpr[3]); } @@ -116858,6 +143150,9 @@ label_BFC2CB50: cpu->gpr[31] = 0x80044B60u; psx_dispatch(cpu, 0x80051804u); label_BFC2CB60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CB60: 8FA3001C lw $v1, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CB60u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -116869,10 +143164,16 @@ label_BFC2CB60: cpu->gpr[31] = 0x80044B70u; psx_dispatch(cpu, 0x80051804u); label_BFC2CB70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CB70: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CB70u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC2CB74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CB74: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -116895,6 +143196,9 @@ void func_1FC2CB80(CPUState* cpu) { } } label_BFC2CB80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CB80: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -116913,6 +143217,9 @@ label_BFC2CB80: /* nop */ if (psx_taken_BFC2CB94) goto label_BFC2CBBC; label_BFC2CB9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CB9C: 8C6F006C lw $t7, 108($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (108)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CB9Cu); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -116928,6 +143235,9 @@ label_BFC2CB9C: cpu->gpr[31] = 0x80044BB4u; psx_dispatch(cpu, 0x80051804u); label_BFC2CBB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CBB4: 10000012 beq $zero, $zero, 0xBFC2CC00 */ uint32_t psx_brA_BFC2CBB4 = cpu->gpr[0]; uint32_t psx_brB_BFC2CBB4 = cpu->gpr[0]; @@ -116936,6 +143246,9 @@ label_BFC2CBB4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CBB8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC2CBB4) goto label_BFC2CC00; label_BFC2CBBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CBBC: 8C79006C lw $t9, 108($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (108)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CBBCu); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -116955,6 +143268,9 @@ label_BFC2CBBC: cpu->gpr[31] = 0x80044BDCu; psx_dispatch(cpu, 0x80051804u); label_BFC2CBDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CBDC: 8FA3001C lw $v1, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CBDCu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -116974,10 +143290,16 @@ label_BFC2CBDC: cpu->gpr[31] = 0x80044BFCu; psx_dispatch(cpu, 0x80051804u); label_BFC2CBFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CBFC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CBFCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC2CC00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CC00: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -116998,6 +143320,9 @@ void func_1FC2CC10(CPUState* cpu) { } } label_BFC2CC10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CC10: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -117024,6 +143349,9 @@ label_BFC2CC10: /* 0xBFC2CC3C: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; label_BFC2CC40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CC40: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -117033,6 +143361,9 @@ label_BFC2CC40: cpu->gpr[31] = 0x80044C4Cu; psx_dispatch(cpu, 0x8004322Cu); label_BFC2CC4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CC4C: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -117045,6 +143376,9 @@ label_BFC2CC4C: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (24)); if (psx_taken_BFC2CC54) goto label_BFC2CC40; label_BFC2CC5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CC5C: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; @@ -117057,6 +143391,9 @@ label_BFC2CC5C: /* 0xBFC2CC6C: 246381C8 addiu $v1, $v1, -32312 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (-32312)); label_BFC2CC70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CC70: AC400004 sw $zero, 4($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CC70u); return; } g_debug_last_store_pc = 0xBFC2CC70u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -117073,6 +143410,9 @@ label_BFC2CC70: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (-1668)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CC84u); return; } g_debug_last_store_pc = 0xBFC2CC84u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC2CC80) goto label_BFC2CC70; label_BFC2CC88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CC88: 240EFFFF addiu $t6, $zero, -1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -117117,6 +143457,9 @@ void func_1FC2CCC4(CPUState* cpu) { } } label_BFC2CCC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CCC4: 27BDFFD0 addiu $sp, $sp, -48 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-48)); @@ -117132,6 +143475,9 @@ label_BFC2CCC4: cpu->gpr[31] = 0x80044CDCu; psx_dispatch(cpu, 0x800465C0u); label_BFC2CCDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CCDC: 8FA30030 lw $v1, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CCDCu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -117142,6 +143488,9 @@ label_BFC2CCDC: cpu->gpr[17] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC2CCE0) goto label_BFC2CCF0; label_BFC2CCE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CCE8: 10000043 beq $zero, $zero, 0xBFC2CDF8 */ uint32_t psx_brA_BFC2CCE8 = cpu->gpr[0]; uint32_t psx_brB_BFC2CCE8 = cpu->gpr[0]; @@ -117150,6 +143499,9 @@ label_BFC2CCE8: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC2CCE8) goto label_BFC2CDF8; label_BFC2CCF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CCF0: 00117080 sll $t6, $s1, 2 */ cpu->gpr[14] = cpu->gpr[17] << 2u; @@ -117180,6 +143532,9 @@ label_BFC2CCF0: /* 0xBFC2CD24: 00404021 addu $t0, $v0, $zero */ cpu->gpr[8] = cpu->gpr[2] + cpu->gpr[0]; label_BFC2CD28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CD28: 8F210000 lw $at, 0($t9) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[25] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CD28u); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -117202,6 +143557,9 @@ label_BFC2CD28: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[8] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CD48u); return; } g_debug_last_store_pc = 0xBFC2CD48u; cpu->write_word(psx_addr, cpu->gpr[1]); } if (psx_taken_BFC2CD44) goto label_BFC2CD28; label_BFC2CD4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CD4C: 00114880 sll $t1, $s1, 2 */ cpu->gpr[9] = cpu->gpr[17] << 2u; @@ -117235,6 +143593,9 @@ label_BFC2CD4C: cpu->gpr[31] = 0x80044D88u; psx_dispatch(cpu, 0x800442F0u); label_BFC2CD88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CD88: 8FA30030 lw $v1, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CD88u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -117250,6 +143611,9 @@ label_BFC2CD88: cpu->gpr[31] = 0x80044DA0u; psx_dispatch(cpu, 0x800447F4u); label_BFC2CDA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CDA0: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -117259,6 +143623,9 @@ label_BFC2CDA0: cpu->gpr[31] = 0x80044DACu; psx_dispatch(cpu, 0x80044A50u); label_BFC2CDAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CDAC: 00115880 sll $t3, $s1, 2 */ cpu->gpr[11] = cpu->gpr[17] << 2u; @@ -117288,6 +143655,9 @@ label_BFC2CDAC: cpu->gpr[31] = 0x80044DE0u; psx_dispatch(cpu, 0x800471D4u); label_BFC2CDE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CDE0: 8FA30028 lw $v1, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CDE0u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -117302,6 +143672,9 @@ label_BFC2CDE0: /* 0xBFC2CDF4: 02201021 addu $v0, $s1, $zero */ cpu->gpr[2] = cpu->gpr[17] + cpu->gpr[0]; label_BFC2CDF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CDF8: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CDF8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -117328,6 +143701,9 @@ void func_1FC2CE08(CPUState* cpu) { } } label_BFC2CE08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CE08: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -117347,6 +143723,9 @@ label_BFC2CE08: cpu->gpr[31] = 0x80044E28u; psx_dispatch(cpu, 0x800465C0u); label_BFC2CE28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CE28: 04410003 bgez $v0, 0xBFC2CE38 */ uint32_t psx_brA_BFC2CE28 = cpu->gpr[2]; @@ -117355,6 +143734,9 @@ label_BFC2CE28: cpu->gpr[17] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC2CE28) goto label_BFC2CE38; label_BFC2CE30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CE30: 10000044 beq $zero, $zero, 0xBFC2CF44 */ uint32_t psx_brA_BFC2CE30 = cpu->gpr[0]; uint32_t psx_brB_BFC2CE30 = cpu->gpr[0]; @@ -117363,6 +143745,9 @@ label_BFC2CE30: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC2CE30) goto label_BFC2CF44; label_BFC2CE38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CE38: 00117080 sll $t6, $s1, 2 */ cpu->gpr[14] = cpu->gpr[17] << 2u; @@ -117393,6 +143778,9 @@ label_BFC2CE38: /* 0xBFC2CE6C: 2719003C addiu $t9, $t8, 60 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[24] + (60)); label_BFC2CE70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CE70: 8F010000 lw $at, 0($t8) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[24] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CE70u); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -117415,6 +143803,9 @@ label_BFC2CE70: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[8] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CE90u); return; } g_debug_last_store_pc = 0xBFC2CE90u; cpu->write_word(psx_addr, cpu->gpr[1]); } if (psx_taken_BFC2CE8C) goto label_BFC2CE70; label_BFC2CE94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CE94: 00114880 sll $t1, $s1, 2 */ cpu->gpr[9] = cpu->gpr[17] << 2u; @@ -117450,6 +143841,9 @@ label_BFC2CE94: cpu->gpr[31] = 0x80044ED4u; psx_dispatch(cpu, 0x800443E0u); label_BFC2CED4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CED4: 8FAB0038 lw $t3, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CED4u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -117465,6 +143859,9 @@ label_BFC2CED4: cpu->gpr[31] = 0x80044EECu; psx_dispatch(cpu, 0x800447F4u); label_BFC2CEEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CEEC: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -117474,6 +143871,9 @@ label_BFC2CEEC: cpu->gpr[31] = 0x80044EF8u; psx_dispatch(cpu, 0x80044A50u); label_BFC2CEF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CEF8: 00116080 sll $t4, $s1, 2 */ cpu->gpr[12] = cpu->gpr[17] << 2u; @@ -117503,6 +143903,9 @@ label_BFC2CEF8: cpu->gpr[31] = 0x80044F2Cu; psx_dispatch(cpu, 0x800471D4u); label_BFC2CF2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CF2C: 8FA30030 lw $v1, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CF2Cu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -117517,6 +143920,9 @@ label_BFC2CF2C: /* 0xBFC2CF40: 02201021 addu $v0, $s1, $zero */ cpu->gpr[2] = cpu->gpr[17] + cpu->gpr[0]; label_BFC2CF44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CF44: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CF44u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -117540,6 +143946,9 @@ void func_1FC2CF54(CPUState* cpu) { } } label_BFC2CF54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CF54: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -117555,6 +143964,9 @@ label_BFC2CF54: cpu->gpr[31] = 0x80044F6Cu; psx_dispatch(cpu, 0x800465C0u); label_BFC2CF6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CF6C: 04410003 bgez $v0, 0xBFC2CF7C */ uint32_t psx_brA_BFC2CF6C = cpu->gpr[2]; @@ -117563,6 +143975,9 @@ label_BFC2CF6C: cpu->gpr[7] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC2CF6C) goto label_BFC2CF7C; label_BFC2CF74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CF74: 10000047 beq $zero, $zero, 0xBFC2D094 */ uint32_t psx_brA_BFC2CF74 = cpu->gpr[0]; uint32_t psx_brB_BFC2CF74 = cpu->gpr[0]; @@ -117571,6 +143986,9 @@ label_BFC2CF74: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC2CF74) goto label_BFC2D094; label_BFC2CF7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CF7C: 00077080 sll $t6, $a3, 2 */ cpu->gpr[14] = cpu->gpr[7] << 2u; @@ -117599,6 +144017,9 @@ label_BFC2CF7C: /* 0xBFC2CFAC: 2719003C addiu $t9, $t8, 60 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[24] + (60)); label_BFC2CFB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CFB0: 8F010000 lw $at, 0($t8) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[24] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CFB0u); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -117621,6 +144042,9 @@ label_BFC2CFB0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[8] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CFD0u); return; } g_debug_last_store_pc = 0xBFC2CFD0u; cpu->write_word(psx_addr, cpu->gpr[1]); } if (psx_taken_BFC2CFCC) goto label_BFC2CFB0; label_BFC2CFD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CFD4: 8FA9002C lw $t1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CFD4u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -117629,6 +144053,9 @@ label_BFC2CFD4: /* 0xBFC2CFDC: 252A006C addiu $t2, $t1, 108 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[9] + (108)); label_BFC2CFE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC2CFE0: 8D210000 lw $at, 0($t1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2CFE0u); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -117651,6 +144078,9 @@ label_BFC2CFE0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[11] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D000u); return; } g_debug_last_store_pc = 0xBFC2D000u; cpu->write_word(psx_addr, cpu->gpr[1]); } if (psx_taken_BFC2CFFC) goto label_BFC2CFE0; label_BFC2D004: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(26u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D004: 00076080 sll $t4, $a3, 2 */ cpu->gpr[12] = cpu->gpr[7] << 2u; @@ -117706,6 +144136,9 @@ label_BFC2D004: cpu->gpr[31] = 0x8004506Cu; psx_dispatch(cpu, 0x800471D4u); label_BFC2D06C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D06C: 8FA30020 lw $v1, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D06Cu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -117728,6 +144161,9 @@ label_BFC2D06C: /* 0xBFC2D090: AC780010 sw $t8, 16($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D090u); return; } g_debug_last_store_pc = 0xBFC2D090u; cpu->write_word(psx_addr, cpu->gpr[24]); } label_BFC2D094: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D094: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D094u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -117742,6 +144178,9 @@ label_BFC2D094: void func_1FC2D0A4(CPUState* cpu) { debug_server_log_call_entry(0x1FC2D0A4u); label_BFC2D0A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D0A4: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; @@ -117754,6 +144193,9 @@ label_BFC2D0A4: /* 0xBFC2D0B4: 244281C8 addiu $v0, $v0, -32312 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (-32312)); label_BFC2D0B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D0B8: 8C6E0004 lw $t6, 4($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D0B8u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -117766,10 +144208,16 @@ label_BFC2D0B8: /* nop */ if (psx_taken_BFC2D0C0) goto label_BFC2D0CC; label_BFC2D0C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D0C8: AC600004 sw $zero, 4($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D0C8u); return; } g_debug_last_store_pc = 0xBFC2D0C8u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC2D0CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D0CC: 24630688 addiu $v1, $v1, 1672 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1672)); @@ -117780,6 +144228,9 @@ label_BFC2D0CC: /* nop */ if (psx_taken_BFC2D0D0) goto label_BFC2D0B8; label_BFC2D0D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D0D8: 03E00008 jr $ra */ /* 0xBFC2D0DC: 00000000 nop */ @@ -117831,6 +144282,9 @@ void func_1FC2D0E0(CPUState* cpu) { } } label_BFC2D0E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(21u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D0E0: 27BDFF50 addiu $sp, $sp, -176 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-176)); @@ -117875,6 +144329,9 @@ label_BFC2D0E0: /* 0xBFC2D130: AFA000AC sw $zero, 172($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D130u); return; } g_debug_last_store_pc = 0xBFC2D130u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC2D134: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D134: 8FC30004 lw $v1, 4($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D134u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -117887,6 +144344,9 @@ label_BFC2D134: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D140u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } if (psx_taken_BFC2D13C) goto label_BFC2E2D4; label_BFC2D144: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D144: 8FC20030 lw $v0, 48($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D144u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -117899,6 +144359,9 @@ label_BFC2D144: /* nop */ if (psx_taken_BFC2D14C) goto label_BFC2D1B8; label_BFC2D154: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D154: 8FAF00AC lw $t7, 172($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D154u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -117942,6 +144405,9 @@ label_BFC2D154: cpu->gpr[31] = 0x800451A4u; psx_dispatch(cpu, cpu->gpr[2]); label_BFC2D1A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D1A4: 3C158008 lui $s5, 0x8008 */ cpu->gpr[21] = 0x80080000u; @@ -117956,6 +144422,9 @@ label_BFC2D1A4: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (-32312)); if (psx_taken_BFC2D1B0) goto label_BFC2E2D0; label_BFC2D1B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D1B8: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -117970,6 +144439,9 @@ label_BFC2D1B8: /* nop */ if (psx_taken_BFC2D1C4) goto label_BFC2D4CC; label_BFC2D1CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D1CC: 8FC2002C lw $v0, 44($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D1CCu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -117984,6 +144456,9 @@ label_BFC2D1CC: /* nop */ if (psx_taken_BFC2D1D8) goto label_BFC2D4CC; label_BFC2D1E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D1E0: 304C0004 andi $t4, $v0, 0x4 */ cpu->gpr[12] = cpu->gpr[2] & 0x4u; @@ -117994,6 +144469,9 @@ label_BFC2D1E0: cpu->gpr[18] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC2D1E4) goto label_BFC2D310; label_BFC2D1EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D1EC: 8FC20684 lw $v0, 1668($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (1668)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D1ECu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -118018,10 +144496,16 @@ label_BFC2D1EC: /* nop */ if (psx_taken_BFC2D20C) goto label_BFC2D218; label_BFC2D214: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D214: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC2D214u); return; label_BFC2D218: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D218: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -118032,6 +144516,9 @@ label_BFC2D218: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC2D21C) goto label_BFC2D230; label_BFC2D224: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D224: 17010002 bne $t8, $at, 0xBFC2D230 */ uint32_t psx_brA_BFC2D224 = cpu->gpr[24]; uint32_t psx_brB_BFC2D224 = cpu->gpr[1]; @@ -118040,10 +144527,16 @@ label_BFC2D224: /* nop */ if (psx_taken_BFC2D224) goto label_BFC2D230; label_BFC2D22C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D22C: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC2D22Cu); return; label_BFC2D230: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D230: 0000C812 mflo $t9 */ cpu->gpr[25] = cpu->lo; @@ -118056,6 +144549,9 @@ label_BFC2D230: /* nop */ if (psx_taken_BFC2D238) goto label_BFC2D308; label_BFC2D240: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(28u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D240: 8FC80680 lw $t0, 1664($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (1664)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D240u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -118116,6 +144612,9 @@ label_BFC2D240: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (60)); if (psx_taken_BFC2D2A8) goto label_BFC2D2BC; label_BFC2D2B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D2B0: AFC00680 sw $zero, 1664($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (1664)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D2B0u); return; } g_debug_last_store_pc = 0xBFC2D2B0u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -118124,6 +144623,9 @@ label_BFC2D2B0: /* 0xBFC2D2B8: 00000000 nop */ /* nop */ label_BFC2D2BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D2BC: 000378C0 sll $t7, $v1, 3 */ cpu->gpr[15] = cpu->gpr[3] << 3u; @@ -118138,6 +144640,9 @@ label_BFC2D2BC: /* 0xBFC2D2D0: 00804821 addu $t1, $a0, $zero */ cpu->gpr[9] = cpu->gpr[4] + cpu->gpr[0]; label_BFC2D2D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D2D4: 8F210000 lw $at, 0($t9) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[25] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D2D4u); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -118160,6 +144665,9 @@ label_BFC2D2D4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D2F4u); return; } g_debug_last_store_pc = 0xBFC2D2F4u; cpu->write_word(psx_addr, cpu->gpr[1]); } if (psx_taken_BFC2D2F0) goto label_BFC2D2D4; label_BFC2D2F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D2F8: 8F210000 lw $at, 0($t9) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[25] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D2F8u); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -118170,12 +144678,18 @@ label_BFC2D2F8: /* 0xBFC2D304: AFC0067C sw $zero, 1660($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (1660)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D304u); return; } g_debug_last_store_pc = 0xBFC2D304u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC2D308: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D308: 8FC2002C lw $v0, 44($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D308u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } /* 0xBFC2D30C: 00000000 nop */ /* nop */ label_BFC2D310: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D310: 304A0002 andi $t2, $v0, 0x2 */ cpu->gpr[10] = cpu->gpr[2] & 0x2u; @@ -118186,6 +144700,9 @@ label_BFC2D310: cpu->gpr[15] = cpu->gpr[2] & 0x1u; if (psx_taken_BFC2D314) goto label_BFC2D384; label_BFC2D31C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(21u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D31C: 8FAB00AC lw $t3, 172($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D31Cu); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -118231,6 +144748,9 @@ label_BFC2D31C: cpu->gpr[31] = 0x80045370u; psx_dispatch(cpu, 0x80044A58u); label_BFC2D370: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D370: 3C158008 lui $s5, 0x8008 */ cpu->gpr[21] = 0x80080000u; @@ -118243,6 +144763,9 @@ label_BFC2D370: /* 0xBFC2D380: 304F0001 andi $t7, $v0, 0x1 */ cpu->gpr[15] = cpu->gpr[2] & 0x1u; label_BFC2D384: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D384: 11E00023 beq $t7, $zero, 0xBFC2D414 */ uint32_t psx_brA_BFC2D384 = cpu->gpr[15]; uint32_t psx_brB_BFC2D384 = cpu->gpr[0]; @@ -118251,6 +144774,9 @@ label_BFC2D384: cpu->gpr[12] = cpu->gpr[2] & 0x8u; if (psx_taken_BFC2D384) goto label_BFC2D414; label_BFC2D38C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D38C: 8FA800AC lw $t0, 172($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D38Cu); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -118292,6 +144818,9 @@ label_BFC2D38C: cpu->gpr[31] = 0x800453D8u; psx_dispatch(cpu, 0x80044A58u); label_BFC2D3D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D3D8: 3C158008 lui $s5, 0x8008 */ cpu->gpr[21] = 0x80080000u; @@ -118315,6 +144844,9 @@ label_BFC2D3D8: cpu->gpr[31] = 0x80045400u; psx_dispatch(cpu, 0x800448A8u); label_BFC2D400: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D400: 3C158008 lui $s5, 0x8008 */ cpu->gpr[21] = 0x80080000u; @@ -118327,6 +144859,9 @@ label_BFC2D400: /* 0xBFC2D410: 304C0008 andi $t4, $v0, 0x8 */ cpu->gpr[12] = cpu->gpr[2] & 0x8u; label_BFC2D414: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D414: 1180001F beq $t4, $zero, 0xBFC2D494 */ uint32_t psx_brA_BFC2D414 = cpu->gpr[12]; uint32_t psx_brB_BFC2D414 = cpu->gpr[0]; @@ -118335,6 +144870,9 @@ label_BFC2D414: /* nop */ if (psx_taken_BFC2D414) goto label_BFC2D494; label_BFC2D41C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D41C: 8FAD00AC lw $t5, 172($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D41Cu); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -118365,6 +144903,9 @@ label_BFC2D41C: cpu->gpr[20] = cpu->gpr[14] + cpu->gpr[24]; if (psx_taken_BFC2D448) goto label_BFC2D458; label_BFC2D450: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D450: 10000002 beq $zero, $zero, 0xBFC2D45C */ uint32_t psx_brA_BFC2D450 = cpu->gpr[0]; uint32_t psx_brB_BFC2D450 = cpu->gpr[0]; @@ -118373,10 +144914,16 @@ label_BFC2D450: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[0] + (255)); if (psx_taken_BFC2D450) goto label_BFC2D45C; label_BFC2D458: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D458: 00003021 addu $a2, $zero, $zero */ cpu->gpr[6] = cpu->gpr[0] + cpu->gpr[0]; label_BFC2D45C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D45C: 10600004 beq $v1, $zero, 0xBFC2D470 */ uint32_t psx_brA_BFC2D45C = cpu->gpr[3]; uint32_t psx_brB_BFC2D45C = cpu->gpr[0]; @@ -118385,6 +144932,9 @@ label_BFC2D45C: cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[0] + (255)); if (psx_taken_BFC2D45C) goto label_BFC2D470; label_BFC2D464: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D464: 10000002 beq $zero, $zero, 0xBFC2D470 */ uint32_t psx_brA_BFC2D464 = cpu->gpr[0]; uint32_t psx_brB_BFC2D464 = cpu->gpr[0]; @@ -118393,10 +144943,16 @@ label_BFC2D464: cpu->gpr[7] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC2D464) goto label_BFC2D470; label_BFC2D46C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D46C: 240700FF addiu $a3, $zero, 255 */ cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[0] + (255)); label_BFC2D470: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D470: 001578C0 sll $t7, $s5, 3 */ cpu->gpr[15] = cpu->gpr[21] << 3u; @@ -118412,6 +144968,9 @@ label_BFC2D470: cpu->gpr[31] = 0x80045488u; psx_dispatch(cpu, 0x80044A58u); label_BFC2D488: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D488: 3C158008 lui $s5, 0x8008 */ cpu->gpr[21] = 0x80080000u; @@ -118420,6 +144979,9 @@ label_BFC2D488: /* 0xBFC2D490: 00000000 nop */ /* nop */ label_BFC2D494: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D494: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -118452,6 +145014,9 @@ label_BFC2D494: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D4C8u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } if (psx_taken_BFC2D4C4) goto label_BFC2E19C; label_BFC2D4CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D4CC: 8FC2002C lw $v0, 44($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D4CCu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -118466,6 +145031,9 @@ label_BFC2D4CC: cpu->gpr[11] = cpu->gpr[2] & 0x10u; if (psx_taken_BFC2D4D8) goto label_BFC2D66C; label_BFC2D4E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D4E0: 8FC20684 lw $v0, 1668($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (1668)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D4E0u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -118510,10 +145078,16 @@ label_BFC2D4E0: /* nop */ if (psx_taken_BFC2D528) goto label_BFC2D534; label_BFC2D530: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D530: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC2D530u); return; label_BFC2D534: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D534: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -118524,6 +145098,9 @@ label_BFC2D534: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC2D538) goto label_BFC2D54C; label_BFC2D540: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D540: 15E10002 bne $t7, $at, 0xBFC2D54C */ uint32_t psx_brA_BFC2D540 = cpu->gpr[15]; uint32_t psx_brB_BFC2D540 = cpu->gpr[1]; @@ -118532,10 +145109,16 @@ label_BFC2D540: /* nop */ if (psx_taken_BFC2D540) goto label_BFC2D54C; label_BFC2D548: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D548: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC2D548u); return; label_BFC2D54C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D54C: 00004012 mflo $t0 */ cpu->gpr[8] = cpu->lo; @@ -118548,6 +145131,9 @@ label_BFC2D54C: /* nop */ if (psx_taken_BFC2D554) goto label_BFC2D624; label_BFC2D55C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(28u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D55C: 8FD90680 lw $t9, 1664($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (1664)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D55Cu); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -118608,6 +145194,9 @@ label_BFC2D55C: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (60)); if (psx_taken_BFC2D5C4) goto label_BFC2D5D8; label_BFC2D5CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D5CC: AFC00680 sw $zero, 1664($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (1664)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D5CCu); return; } g_debug_last_store_pc = 0xBFC2D5CCu; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -118616,6 +145205,9 @@ label_BFC2D5CC: /* 0xBFC2D5D4: 00000000 nop */ /* nop */ label_BFC2D5D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D5D8: 0003C0C0 sll $t8, $v1, 3 */ cpu->gpr[24] = cpu->gpr[3] << 3u; @@ -118630,6 +145222,9 @@ label_BFC2D5D8: /* 0xBFC2D5EC: 00804821 addu $t1, $a0, $zero */ cpu->gpr[9] = cpu->gpr[4] + cpu->gpr[0]; label_BFC2D5F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D5F0: 8D010000 lw $at, 0($t0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[8] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D5F0u); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -118652,6 +145247,9 @@ label_BFC2D5F0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D610u); return; } g_debug_last_store_pc = 0xBFC2D610u; cpu->write_word(psx_addr, cpu->gpr[1]); } if (psx_taken_BFC2D60C) goto label_BFC2D5F0; label_BFC2D614: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D614: 8D010000 lw $at, 0($t0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[8] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D614u); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -118662,6 +145260,9 @@ label_BFC2D614: /* 0xBFC2D620: AFC0067C sw $zero, 1660($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (1660)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D620u); return; } g_debug_last_store_pc = 0xBFC2D620u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC2D624: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D624: 8FC50678 lw $a1, 1656($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (1656)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D624u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -118682,10 +145283,16 @@ label_BFC2D624: cpu->gpr[1] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC2D63C) goto label_BFC2D648; label_BFC2D644: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D644: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC2D648: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D648: 00012843 sra $a1, $at, 1 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -118697,6 +145304,9 @@ label_BFC2D648: cpu->gpr[31] = 0x80045658u; psx_dispatch(cpu, 0x80044A58u); label_BFC2D658: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D658: 3C158008 lui $s5, 0x8008 */ cpu->gpr[21] = 0x80080000u; @@ -118709,6 +145319,9 @@ label_BFC2D658: /* 0xBFC2D668: 304B0010 andi $t3, $v0, 0x10 */ cpu->gpr[11] = cpu->gpr[2] & 0x10u; label_BFC2D66C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D66C: 116000CB beq $t3, $zero, 0xBFC2D99C */ uint32_t psx_brA_BFC2D66C = cpu->gpr[11]; uint32_t psx_brB_BFC2D66C = cpu->gpr[0]; @@ -118717,6 +145330,9 @@ label_BFC2D66C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D670u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } if (psx_taken_BFC2D66C) goto label_BFC2D99C; label_BFC2D674: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D674: 8FC40004 lw $a0, 4($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D674u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -118728,6 +145344,9 @@ label_BFC2D674: cpu->gpr[31] = 0x80045684u; psx_dispatch(cpu, 0x80046F00u); label_BFC2D684: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D684: 18400012 blez $v0, 0xBFC2D6D0 */ uint32_t psx_brA_BFC2D684 = cpu->gpr[2]; @@ -118736,6 +145355,9 @@ label_BFC2D684: /* nop */ if (psx_taken_BFC2D684) goto label_BFC2D6D0; label_BFC2D68C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D68C: 240D0020 addiu $t5, $zero, 32 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (32)); @@ -118756,10 +145378,16 @@ label_BFC2D68C: /* nop */ if (psx_taken_BFC2D6A4) goto label_BFC2D6B0; label_BFC2D6AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D6AC: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC2D6ACu); return; label_BFC2D6B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D6B0: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -118770,6 +145398,9 @@ label_BFC2D6B0: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC2D6B4) goto label_BFC2D6C8; label_BFC2D6BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D6BC: 15A10002 bne $t5, $at, 0xBFC2D6C8 */ uint32_t psx_brA_BFC2D6BC = cpu->gpr[13]; uint32_t psx_brB_BFC2D6BC = cpu->gpr[1]; @@ -118778,16 +145409,25 @@ label_BFC2D6BC: /* nop */ if (psx_taken_BFC2D6BC) goto label_BFC2D6C8; label_BFC2D6C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D6C4: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC2D6C4u); return; label_BFC2D6C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D6C8: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; /* 0xBFC2D6CC: AC2F834C sw $t7, -31924($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-31924)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D6CCu); return; } g_debug_last_store_pc = 0xBFC2D6CCu; cpu->write_word(psx_addr, cpu->gpr[15]); } label_BFC2D6D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D6D0: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -118802,6 +145442,9 @@ label_BFC2D6D0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D6E0u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } if (psx_taken_BFC2D6DC) goto label_BFC2D910; label_BFC2D6E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D6E4: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -118846,6 +145489,9 @@ label_BFC2D6E4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (84)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D730u); return; } g_debug_last_store_pc = 0xBFC2D730u; cpu->write_word(psx_addr, cpu->gpr[10]); } if (psx_taken_BFC2D72C) goto label_BFC2D748; label_BFC2D734: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D734: 240D002D addiu $t5, $zero, 45 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (45)); @@ -118860,6 +145506,9 @@ label_BFC2D734: cpu->gpr[20] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC2D740) goto label_BFC2D758; label_BFC2D748: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D748: 240C004B addiu $t4, $zero, 75 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[0] + (75)); @@ -118870,6 +145519,9 @@ label_BFC2D748: /* 0xBFC2D754: 24140001 addiu $s4, $zero, 1 */ cpu->gpr[20] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC2D758: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D758: 0050082A slt $at, $v0, $s0 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (int32_t)cpu->gpr[16] ? 1 : 0); @@ -118880,6 +145532,9 @@ label_BFC2D758: cpu->gpr[17] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC2D75C) goto label_BFC2D784; label_BFC2D764: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D764: 0C011BC0 jal 0xB0046F00 */ /* 0xBFC2D768: 02202021 addu $a0, $s1, $zero */ @@ -118887,6 +145542,9 @@ label_BFC2D764: cpu->gpr[31] = 0x8004576Cu; psx_dispatch(cpu, 0x80046F00u); label_BFC2D76C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D76C: 26310001 addiu $s1, $s1, 1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); @@ -118899,12 +145557,18 @@ label_BFC2D76C: cpu->gpr[18] = cpu->gpr[18] + cpu->gpr[2]; if (psx_taken_BFC2D774) goto label_BFC2D764; label_BFC2D77C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D77C: 8FC30004 lw $v1, 4($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D77Cu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } /* 0xBFC2D780: 00000000 nop */ /* nop */ label_BFC2D784: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D784: 0C011429 jal 0xB00450A4 */ /* 0xBFC2D788: 00602021 addu $a0, $v1, $zero */ @@ -118912,6 +145576,9 @@ label_BFC2D784: cpu->gpr[31] = 0x8004578Cu; psx_dispatch(cpu, 0x800450A4u); label_BFC2D78C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D78C: 8FAE0094 lw $t6, 148($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (148)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D78Cu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -118928,10 +145595,16 @@ label_BFC2D78C: /* nop */ if (psx_taken_BFC2D79C) goto label_BFC2D8CC; label_BFC2D7A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D7A4: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; label_BFC2D7A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D7A8: 0C011BC0 jal 0xB0046F00 */ /* 0xBFC2D7AC: 00008021 addu $s0, $zero, $zero */ @@ -118939,6 +145612,9 @@ label_BFC2D7A8: cpu->gpr[31] = 0x800457B0u; psx_dispatch(cpu, 0x80046F00u); label_BFC2D7B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D7B0: 18400041 blez $v0, 0xBFC2D8B8 */ uint32_t psx_brA_BFC2D7B0 = cpu->gpr[2]; @@ -118947,6 +145623,9 @@ label_BFC2D7B0: cpu->gpr[19] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC2D7B0) goto label_BFC2D8B8; label_BFC2D7B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D7B8: 0C011970 jal 0xB00465C0 */ /* 0xBFC2D7BC: 02202021 addu $a0, $s1, $zero */ @@ -118954,6 +145633,9 @@ label_BFC2D7B8: cpu->gpr[31] = 0x800457C0u; psx_dispatch(cpu, 0x800465C0u); label_BFC2D7C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D7C0: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -118964,6 +145646,9 @@ label_BFC2D7C0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (148)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D7C8u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } if (psx_taken_BFC2D7C4) goto label_BFC2D8BC; label_BFC2D7CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(41u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D7CC: 0002C080 sll $t8, $v0, 2 */ cpu->gpr[24] = cpu->gpr[2] << 2u; @@ -119050,6 +145735,9 @@ label_BFC2D7CC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D86Cu); return; } g_debug_last_store_pc = 0xBFC2D86Cu; cpu->write_word(psx_addr, cpu->gpr[11]); } if (psx_taken_BFC2D868) goto label_BFC2D878; label_BFC2D870: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D870: 10000002 beq $zero, $zero, 0xBFC2D87C */ uint32_t psx_brA_BFC2D870 = cpu->gpr[0]; uint32_t psx_brB_BFC2D870 = cpu->gpr[0]; @@ -119058,10 +145746,16 @@ label_BFC2D870: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D874u); return; } g_debug_last_store_pc = 0xBFC2D874u; cpu->write_word(psx_addr, cpu->gpr[22]); } if (psx_taken_BFC2D870) goto label_BFC2D87C; label_BFC2D878: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D878: ACB70010 sw $s7, 16($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D878u); return; } g_debug_last_store_pc = 0xBFC2D878u; cpu->write_word(psx_addr, cpu->gpr[23]); } label_BFC2D87C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D87C: 8CAB000C lw $t3, 12($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (12)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D87Cu); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -119078,6 +145772,9 @@ label_BFC2D87C: /* nop */ if (psx_taken_BFC2D88C) goto label_BFC2D89C; label_BFC2D894: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D894: 10000002 beq $zero, $zero, 0xBFC2D8A0 */ uint32_t psx_brA_BFC2D894 = cpu->gpr[0]; uint32_t psx_brB_BFC2D894 = cpu->gpr[0]; @@ -119086,10 +145783,16 @@ label_BFC2D894: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D898u); return; } g_debug_last_store_pc = 0xBFC2D898u; cpu->write_word(psx_addr, cpu->gpr[22]); } if (psx_taken_BFC2D894) goto label_BFC2D8A0; label_BFC2D89C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D89C: ACB70014 sw $s7, 20($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D89Cu); return; } g_debug_last_store_pc = 0xBFC2D89Cu; cpu->write_word(psx_addr, cpu->gpr[23]); } label_BFC2D8A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D8A0: 8CCC002C lw $t4, 44($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D8A0u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -119106,10 +145809,16 @@ label_BFC2D8A0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D8B4u); return; } g_debug_last_store_pc = 0xBFC2D8B4u; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC2D8B0) goto label_BFC2D7B8; label_BFC2D8B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D8B8: 8FAF0094 lw $t7, 148($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (148)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D8B8u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } label_BFC2D8BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D8BC: 26310001 addiu $s1, $s1, 1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); @@ -119122,6 +145831,9 @@ label_BFC2D8BC: cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; if (psx_taken_BFC2D8C4) goto label_BFC2D7A8; label_BFC2D8CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D8CC: 16A00002 bne $s5, $zero, 0xBFC2D8D8 */ uint32_t psx_brA_BFC2D8CC = cpu->gpr[21]; uint32_t psx_brB_BFC2D8CC = cpu->gpr[0]; @@ -119130,10 +145842,16 @@ label_BFC2D8CC: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC2D8CC) goto label_BFC2D8D8; label_BFC2D8D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D8D4: AC209EC8 sw $zero, -24888($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24888)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D8D4u); return; } g_debug_last_store_pc = 0xBFC2D8D4u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC2D8D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D8D8: 8FB80054 lw $t8, 84($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (84)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D8D8u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -119150,6 +145868,9 @@ label_BFC2D8D8: /* nop */ if (psx_taken_BFC2D8E8) goto label_BFC2D8F8; label_BFC2D8F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D8F0: 0C011913 jal 0xB004644C */ /* 0xBFC2D8F4: 24040006 addiu $a0, $zero, 6 */ @@ -119157,6 +145878,9 @@ label_BFC2D8F0: cpu->gpr[31] = 0x800458F8u; psx_dispatch(cpu, 0x8004644Cu); label_BFC2D8F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D8F8: 3C158008 lui $s5, 0x8008 */ cpu->gpr[21] = 0x80080000u; @@ -119171,10 +145895,16 @@ label_BFC2D8F8: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (-32312)); if (psx_taken_BFC2D904) goto label_BFC2E2D0; label_BFC2D90C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D90C: 8FA800AC lw $t0, 172($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D90Cu); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } label_BFC2D910: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(21u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D910: 3C158008 lui $s5, 0x8008 */ cpu->gpr[21] = 0x80080000u; @@ -119220,6 +145950,9 @@ label_BFC2D910: cpu->gpr[31] = 0x80045964u; psx_dispatch(cpu, 0x80044A58u); label_BFC2D964: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D964: 3C158008 lui $s5, 0x8008 */ cpu->gpr[21] = 0x80080000u; @@ -119245,6 +145978,9 @@ label_BFC2D964: cpu->gpr[31] = 0x80045990u; psx_dispatch(cpu, 0x800448A8u); label_BFC2D990: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D990: 100001F2 beq $zero, $zero, 0xBFC2E15C */ uint32_t psx_brA_BFC2D990 = cpu->gpr[0]; uint32_t psx_brB_BFC2D990 = cpu->gpr[0]; @@ -119253,10 +145989,16 @@ label_BFC2D990: /* nop */ if (psx_taken_BFC2D990) goto label_BFC2E15C; label_BFC2D998: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D998: 8FAE00AC lw $t6, 172($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D998u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } label_BFC2D99C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D99C: 3C188011 lui $t8, 0x8011 */ cpu->gpr[24] = 0x80110000u; @@ -119285,6 +146027,9 @@ label_BFC2D99C: cpu->gpr[20] = cpu->gpr[15] + cpu->gpr[24]; if (psx_taken_BFC2D9C4) goto label_BFC2DEE8; label_BFC2D9CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D9CC: 8FC50678 lw $a1, 1656($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (1656)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2D9CCu); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -119305,10 +146050,16 @@ label_BFC2D9CC: cpu->gpr[1] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC2D9E4) goto label_BFC2D9F0; label_BFC2D9EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D9EC: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC2D9F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2D9F0: 00012843 sra $a1, $at, 1 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -119320,6 +146071,9 @@ label_BFC2D9F0: cpu->gpr[31] = 0x80045A00u; psx_dispatch(cpu, 0x80044A58u); label_BFC2DA00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DA00: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -119336,6 +146090,9 @@ label_BFC2DA00: /* nop */ if (psx_taken_BFC2DA10) goto label_BFC2DC08; label_BFC2DA18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DA18: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -119350,6 +146107,9 @@ label_BFC2DA18: cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC2DA24) goto label_BFC2DA38; label_BFC2DA2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DA2C: 15500076 bne $t2, $s0, 0xBFC2DC08 */ uint32_t psx_brA_BFC2DA2C = cpu->gpr[10]; uint32_t psx_brB_BFC2DA2C = cpu->gpr[16]; @@ -119358,10 +146118,16 @@ label_BFC2DA2C: /* nop */ if (psx_taken_BFC2DA2C) goto label_BFC2DC08; label_BFC2DA34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DA34: 240B0001 addiu $t3, $zero, 1 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC2DA38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DA38: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -119380,6 +146146,9 @@ label_BFC2DA38: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[16] < (60) ? 1 : 0); if (psx_taken_BFC2DA4C) goto label_BFC2DBA0; label_BFC2DA54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DA54: 10200006 beq $at, $zero, 0xBFC2DA70 */ uint32_t psx_brA_BFC2DA54 = cpu->gpr[1]; uint32_t psx_brB_BFC2DA54 = cpu->gpr[0]; @@ -119388,6 +146157,9 @@ label_BFC2DA54: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC2DA54) goto label_BFC2DA70; label_BFC2DA5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DA5C: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; @@ -119400,16 +146172,25 @@ label_BFC2DA5C: cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[16] + (-30)); if (psx_taken_BFC2DA64) goto label_BFC2DA78; label_BFC2DA6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DA6C: 24030001 addiu $v1, $zero, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC2DA70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DA70: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; /* 0xBFC2DA74: 2612FFC4 addiu $s2, $s0, -60 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[16] + (-60)); label_BFC2DA78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DA78: 00036080 sll $t4, $v1, 2 */ cpu->gpr[12] = cpu->gpr[3] << 2u; @@ -119447,6 +146228,9 @@ label_BFC2DA78: cpu->gpr[31] = 0x80045ABCu; psx_dispatch(cpu, 0x8003BD3Cu); label_BFC2DABC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DABC: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -119457,6 +146241,9 @@ label_BFC2DABC: /* nop */ if (psx_taken_BFC2DAC0) goto label_BFC2DAEC; label_BFC2DAC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DAC8: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -119470,6 +146257,9 @@ label_BFC2DAC8: cpu->gpr[31] = 0x80045ADCu; psx_dispatch(cpu, 0x8004644Cu); label_BFC2DADC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DADC: 0C00ED49 jal 0xB003B524 */ /* 0xBFC2DAE0: 24040001 addiu $a0, $zero, 1 */ @@ -119477,6 +146267,9 @@ label_BFC2DADC: cpu->gpr[31] = 0x80045AE4u; psx_dispatch(cpu, 0x8003B524u); label_BFC2DAE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DAE4: 1000002C beq $zero, $zero, 0xBFC2DB98 */ uint32_t psx_brA_BFC2DAE4 = cpu->gpr[0]; uint32_t psx_brB_BFC2DAE4 = cpu->gpr[0]; @@ -119485,6 +146278,9 @@ label_BFC2DAE4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DAE8u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } if (psx_taken_BFC2DAE4) goto label_BFC2DB98; label_BFC2DAEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DAEC: 3C028011 lui $v0, 0x8011 */ cpu->gpr[2] = 0x80110000u; @@ -119497,6 +146293,9 @@ label_BFC2DAEC: /* 0xBFC2DAFC: 00008821 addu $s1, $zero, $zero */ cpu->gpr[17] = cpu->gpr[0] + cpu->gpr[0]; label_BFC2DB00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DB00: 8C58002C lw $t8, 44($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DB00u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -119511,10 +146310,16 @@ label_BFC2DB00: /* nop */ if (psx_taken_BFC2DB0C) goto label_BFC2DB18; label_BFC2DB14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DB14: AC400004 sw $zero, 4($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DB14u); return; } g_debug_last_store_pc = 0xBFC2DB14u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC2DB18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DB18: 24420688 addiu $v0, $v0, 1672 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (1672)); @@ -119525,6 +146330,9 @@ label_BFC2DB18: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[18] < (15) ? 1 : 0); if (psx_taken_BFC2DB1C) goto label_BFC2DB00; label_BFC2DB24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DB24: 10200013 beq $at, $zero, 0xBFC2DB74 */ uint32_t psx_brA_BFC2DB24 = cpu->gpr[1]; uint32_t psx_brB_BFC2DB24 = cpu->gpr[0]; @@ -119533,6 +146341,9 @@ label_BFC2DB24: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[18] + (1)); if (psx_taken_BFC2DB24) goto label_BFC2DB74; label_BFC2DB2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DB2C: 00114080 sll $t0, $s1, 2 */ cpu->gpr[8] = cpu->gpr[17] << 2u; @@ -119547,6 +146358,9 @@ label_BFC2DB2C: /* 0xBFC2DB40: 02688021 addu $s0, $s3, $t0 */ cpu->gpr[16] = cpu->gpr[19] + cpu->gpr[8]; label_BFC2DB44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DB44: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -119556,6 +146370,9 @@ label_BFC2DB44: cpu->gpr[31] = 0x80045B50u; psx_dispatch(cpu, 0x8004322Cu); label_BFC2DB50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DB50: 26310001 addiu $s1, $s1, 1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); @@ -119568,6 +146385,9 @@ label_BFC2DB50: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (92)); if (psx_taken_BFC2DB58) goto label_BFC2DB6C; label_BFC2DB60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DB60: 3C068014 lui $a2, 0x8014 */ cpu->gpr[6] = 0x80140000u; @@ -119578,12 +146398,18 @@ label_BFC2DB60: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (-32312)); if (psx_taken_BFC2DB64) goto label_BFC2DB44; label_BFC2DB6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DB6C: 3C068014 lui $a2, 0x8014 */ cpu->gpr[6] = 0x80140000u; /* 0xBFC2DB70: 24C681C8 addiu $a2, $a2, -32312 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (-32312)); label_BFC2DB74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DB74: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -119604,16 +146430,25 @@ label_BFC2DB74: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24884)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DB90u); return; } g_debug_last_store_pc = 0xBFC2DB90u; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC2DB8C) goto label_BFC2E2D0; label_BFC2DB94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DB94: 8FAA00AC lw $t2, 172($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DB94u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } label_BFC2DB98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DB98: 3C018009 lui $at, 0x8009 */ cpu->gpr[1] = 0x80090000u; /* 0xBFC2DB9C: AC2A9DB0 sw $t2, -25168($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25168)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DB9Cu); return; } g_debug_last_store_pc = 0xBFC2DB9Cu; cpu->write_word(psx_addr, cpu->gpr[10]); } label_BFC2DBA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DBA0: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -119628,6 +146463,9 @@ label_BFC2DBA0: /* nop */ if (psx_taken_BFC2DBAC) goto label_BFC2DBF4; label_BFC2DBB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DBB4: 8FAD00AC lw $t5, 172($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DBB4u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -119664,6 +146502,9 @@ label_BFC2DBB4: cpu->gpr[19] = cpu->gpr[13] + cpu->gpr[12]; if (psx_taken_BFC2DBEC) goto label_BFC2DC60; label_BFC2DBF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DBF4: 3C158008 lui $s5, 0x8008 */ cpu->gpr[21] = 0x80080000u; @@ -119678,6 +146519,9 @@ label_BFC2DBF4: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (-32312)); if (psx_taken_BFC2DC00) goto label_BFC2E2D0; label_BFC2DC08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DC08: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -119694,6 +146538,9 @@ label_BFC2DC08: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DC1Cu); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } if (psx_taken_BFC2DC18) goto label_BFC2DC38; label_BFC2DC20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DC20: 3C158008 lui $s5, 0x8008 */ cpu->gpr[21] = 0x80080000u; @@ -119708,10 +146555,16 @@ label_BFC2DC20: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (-32312)); if (psx_taken_BFC2DC2C) goto label_BFC2E2D0; label_BFC2DC34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DC34: 8FA800AC lw $t0, 172($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DC34u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } label_BFC2DC38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DC38: 3C098014 lui $t1, 0x8014 */ cpu->gpr[9] = 0x80140000u; @@ -119734,6 +146587,9 @@ label_BFC2DC38: /* 0xBFC2DC5C: 01099821 addu $s3, $t0, $t1 */ cpu->gpr[19] = cpu->gpr[8] + cpu->gpr[9]; label_BFC2DC60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DC60: 3C158008 lui $s5, 0x8008 */ cpu->gpr[21] = 0x80080000u; @@ -119762,6 +146618,9 @@ label_BFC2DC60: /* nop */ if (psx_taken_BFC2DC88) goto label_BFC2DCF0; label_BFC2DC90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DC90: 8E030010 lw $v1, 16($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DC90u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -119778,6 +146637,9 @@ label_BFC2DC90: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (12)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DCA4u); return; } g_debug_last_store_pc = 0xBFC2DCA4u; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC2DCA0) goto label_BFC2DCC0; label_BFC2DCA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DCA8: 8E020008 lw $v0, 8($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DCA8u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -119794,6 +146656,9 @@ label_BFC2DCA8: /* nop */ if (psx_taken_BFC2DCB8) goto label_BFC2DCE0; label_BFC2DCC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DCC0: 0461004A bgez $v1, 0xBFC2DDEC */ uint32_t psx_brA_BFC2DCC0 = cpu->gpr[3]; @@ -119802,6 +146667,9 @@ label_BFC2DCC0: /* nop */ if (psx_taken_BFC2DCC0) goto label_BFC2DDEC; label_BFC2DCC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DCC8: 8E020008 lw $v0, 8($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DCC8u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -119818,6 +146686,9 @@ label_BFC2DCC8: /* nop */ if (psx_taken_BFC2DCD8) goto label_BFC2DDEC; label_BFC2DCE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DCE0: AFC2000C sw $v0, 12($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (12)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DCE0u); return; } g_debug_last_store_pc = 0xBFC2DCE0u; cpu->write_word(psx_addr, cpu->gpr[2]); } @@ -119830,6 +146701,9 @@ label_BFC2DCE0: g_debug_last_store_pc = 0xBFC2DCECu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[19] + (0)), (uint8_t)(cpu->gpr[10] & 0xFFu)); if (psx_taken_BFC2DCE8) goto label_BFC2DDEC; label_BFC2DCF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DCF0: 8E030014 lw $v1, 20($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DCF0u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -119846,6 +146720,9 @@ label_BFC2DCF0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DD04u); return; } g_debug_last_store_pc = 0xBFC2DD04u; cpu->write_word(psx_addr, cpu->gpr[13]); } if (psx_taken_BFC2DD00) goto label_BFC2DD20; label_BFC2DD08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DD08: 8E02000C lw $v0, 12($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (12)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DD08u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -119862,6 +146739,9 @@ label_BFC2DD08: /* nop */ if (psx_taken_BFC2DD18) goto label_BFC2DD40; label_BFC2DD20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DD20: 04610032 bgez $v1, 0xBFC2DDEC */ uint32_t psx_brA_BFC2DD20 = cpu->gpr[3]; @@ -119870,6 +146750,9 @@ label_BFC2DD20: /* nop */ if (psx_taken_BFC2DD20) goto label_BFC2DDEC; label_BFC2DD28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DD28: 8E02000C lw $v0, 12($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (12)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DD28u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -119886,6 +146769,9 @@ label_BFC2DD28: /* nop */ if (psx_taken_BFC2DD38) goto label_BFC2DDEC; label_BFC2DD40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DD40: 8FCF002C lw $t7, 44($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DD40u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -119911,6 +146797,9 @@ label_BFC2DD40: cpu->gpr[31] = 0x80045D6Cu; psx_dispatch(cpu, 0x80044A50u); label_BFC2DD6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(26u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DD6C: A2600000 sb $zero, 0($s3) */ g_debug_last_store_pc = 0xBFC2DD6Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[19] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -119967,6 +146856,9 @@ label_BFC2DD6C: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC2DDCC) goto label_BFC2DDE0; label_BFC2DDD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DDD4: AC209EC8 sw $zero, -24888($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24888)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DDD4u); return; } g_debug_last_store_pc = 0xBFC2DDD4u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -119976,6 +146868,9 @@ label_BFC2DDD4: cpu->gpr[31] = 0x80045DE0u; psx_dispatch(cpu, 0x8003B524u); label_BFC2DDE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DDE0: 3C158008 lui $s5, 0x8008 */ cpu->gpr[21] = 0x80080000u; @@ -119984,6 +146879,9 @@ label_BFC2DDE0: /* 0xBFC2DDE8: 00000000 nop */ /* nop */ label_BFC2DDEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DDEC: 8FC50678 lw $a1, 1656($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (1656)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DDECu); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -120003,6 +146901,9 @@ label_BFC2DDEC: cpu->gpr[31] = 0x80045E0Cu; psx_dispatch(cpu, 0x80044A58u); label_BFC2DE0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DE0C: 3C158008 lui $s5, 0x8008 */ cpu->gpr[21] = 0x80080000u; @@ -120024,6 +146925,9 @@ label_BFC2DE0C: cpu->gpr[31] = 0x80045E30u; psx_dispatch(cpu, 0x800447F4u); label_BFC2DE30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DE30: 8FD90684 lw $t9, 1668($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (1668)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DE30u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -120036,6 +146940,9 @@ label_BFC2DE30: /* nop */ if (psx_taken_BFC2DE38) goto label_BFC2DEBC; label_BFC2DE40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DE40: 8FA900AC lw $t1, 172($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DE40u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -120060,6 +146967,9 @@ label_BFC2DE40: /* 0xBFC2DE68: 010A8021 addu $s0, $t0, $t2 */ cpu->gpr[16] = cpu->gpr[8] + cpu->gpr[10]; label_BFC2DE6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DE6C: 3C158008 lui $s5, 0x8008 */ cpu->gpr[21] = 0x80080000u; @@ -120093,6 +147003,9 @@ label_BFC2DE6C: cpu->gpr[31] = 0x80045EA8u; psx_dispatch(cpu, 0x800447F4u); label_BFC2DEA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DEA8: 8FCE0684 lw $t6, 1668($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (1668)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DEA8u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -120107,6 +147020,9 @@ label_BFC2DEA8: /* nop */ if (psx_taken_BFC2DEB4) goto label_BFC2DE6C; label_BFC2DEBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DEBC: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -120121,6 +147037,9 @@ label_BFC2DEBC: /* nop */ if (psx_taken_BFC2DEC8) goto label_BFC2DEE0; label_BFC2DED0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DED0: 3C158008 lui $s5, 0x8008 */ cpu->gpr[21] = 0x80080000u; @@ -120133,6 +147052,9 @@ label_BFC2DED0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DEDCu); return; } g_debug_last_store_pc = 0xBFC2DEDCu; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC2DED8) goto label_BFC2E2EC; label_BFC2DEE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DEE0: 1000009E beq $zero, $zero, 0xBFC2E15C */ uint32_t psx_brA_BFC2DEE0 = cpu->gpr[0]; uint32_t psx_brB_BFC2DEE0 = cpu->gpr[0]; @@ -120141,6 +147063,9 @@ label_BFC2DEE0: cpu->gpr[18] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC2DEE0) goto label_BFC2E15C; label_BFC2DEE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DEE8: 30580040 andi $t8, $v0, 0x40 */ cpu->gpr[24] = cpu->gpr[2] & 0x40u; @@ -120151,6 +147076,9 @@ label_BFC2DEE8: cpu->gpr[18] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC2DEEC) goto label_BFC2E118; label_BFC2DEF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DEF4: 8FA900AC lw $t1, 172($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DEF4u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -120188,6 +147116,9 @@ label_BFC2DEF4: cpu->gpr[31] = 0x80045F38u; psx_dispatch(cpu, 0x80044A50u); label_BFC2DF38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DF38: 826D0000 lb $t5, 0($s3) */ cpu->gpr[13] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[19] + (0))); @@ -120200,6 +147131,9 @@ label_BFC2DF38: /* nop */ if (psx_taken_BFC2DF40) goto label_BFC2DFA8; label_BFC2DF48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DF48: 8E030010 lw $v1, 16($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DF48u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -120216,6 +147150,9 @@ label_BFC2DF48: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (12)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DF5Cu); return; } g_debug_last_store_pc = 0xBFC2DF5Cu; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC2DF58) goto label_BFC2DF78; label_BFC2DF60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DF60: 8E020008 lw $v0, 8($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DF60u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -120232,6 +147169,9 @@ label_BFC2DF60: /* nop */ if (psx_taken_BFC2DF70) goto label_BFC2DF98; label_BFC2DF78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DF78: 0461002F bgez $v1, 0xBFC2E038 */ uint32_t psx_brA_BFC2DF78 = cpu->gpr[3]; @@ -120240,6 +147180,9 @@ label_BFC2DF78: /* nop */ if (psx_taken_BFC2DF78) goto label_BFC2E038; label_BFC2DF80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DF80: 8E020008 lw $v0, 8($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DF80u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -120256,6 +147199,9 @@ label_BFC2DF80: /* nop */ if (psx_taken_BFC2DF90) goto label_BFC2E038; label_BFC2DF98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DF98: AFC2000C sw $v0, 12($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (12)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DF98u); return; } g_debug_last_store_pc = 0xBFC2DF98u; cpu->write_word(psx_addr, cpu->gpr[2]); } @@ -120268,6 +147214,9 @@ label_BFC2DF98: g_debug_last_store_pc = 0xBFC2DFA4u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[19] + (0)), (uint8_t)(cpu->gpr[25] & 0xFFu)); if (psx_taken_BFC2DFA0) goto label_BFC2E038; label_BFC2DFA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DFA8: 8E030014 lw $v1, 20($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DFA8u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -120284,6 +147233,9 @@ label_BFC2DFA8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DFBCu); return; } g_debug_last_store_pc = 0xBFC2DFBCu; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC2DFB8) goto label_BFC2DFD8; label_BFC2DFC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DFC0: 8E02000C lw $v0, 12($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (12)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DFC0u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -120300,6 +147252,9 @@ label_BFC2DFC0: /* nop */ if (psx_taken_BFC2DFD0) goto label_BFC2DFF8; label_BFC2DFD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DFD8: 04610017 bgez $v1, 0xBFC2E038 */ uint32_t psx_brA_BFC2DFD8 = cpu->gpr[3]; @@ -120308,6 +147263,9 @@ label_BFC2DFD8: /* nop */ if (psx_taken_BFC2DFD8) goto label_BFC2E038; label_BFC2DFE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DFE0: 8E02000C lw $v0, 12($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (12)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2DFE0u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -120324,6 +147282,9 @@ label_BFC2DFE0: /* nop */ if (psx_taken_BFC2DFF0) goto label_BFC2E038; label_BFC2DFF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC2DFF8: 3C158008 lui $s5, 0x8008 */ cpu->gpr[21] = 0x80080000u; @@ -120353,6 +147314,9 @@ label_BFC2DFF8: cpu->gpr[31] = 0x8004602Cu; psx_dispatch(cpu, 0x80044A50u); label_BFC2E02C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E02C: A2600000 sb $zero, 0($s3) */ g_debug_last_store_pc = 0xBFC2E02Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[19] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -120361,6 +147325,9 @@ label_BFC2E02C: /* 0xBFC2E034: AC209EC8 sw $zero, -24888($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24888)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E034u); return; } g_debug_last_store_pc = 0xBFC2E034u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC2E038: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E038: 3C158008 lui $s5, 0x8008 */ cpu->gpr[21] = 0x80080000u; @@ -120384,6 +147351,9 @@ label_BFC2E038: cpu->gpr[31] = 0x80046060u; psx_dispatch(cpu, 0x80044A58u); label_BFC2E060: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E060: 3C158008 lui $s5, 0x8008 */ cpu->gpr[21] = 0x80080000u; @@ -120405,6 +147375,9 @@ label_BFC2E060: cpu->gpr[31] = 0x80046084u; psx_dispatch(cpu, 0x800447F4u); label_BFC2E084: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E084: 8FD90684 lw $t9, 1668($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (1668)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E084u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -120417,6 +147390,9 @@ label_BFC2E084: /* nop */ if (psx_taken_BFC2E08C) goto label_BFC2E15C; label_BFC2E094: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E094: 8FA800AC lw $t0, 172($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E094u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -120441,6 +147417,9 @@ label_BFC2E094: /* 0xBFC2E0BC: 012A8021 addu $s0, $t1, $t2 */ cpu->gpr[16] = cpu->gpr[9] + cpu->gpr[10]; label_BFC2E0C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E0C0: 3C158008 lui $s5, 0x8008 */ cpu->gpr[21] = 0x80080000u; @@ -120474,6 +147453,9 @@ label_BFC2E0C0: cpu->gpr[31] = 0x800460FCu; psx_dispatch(cpu, 0x800447F4u); label_BFC2E0FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E0FC: 8FCE0684 lw $t6, 1668($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (1668)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E0FCu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -120488,6 +147470,9 @@ label_BFC2E0FC: /* nop */ if (psx_taken_BFC2E108) goto label_BFC2E0C0; label_BFC2E110: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E110: 10000012 beq $zero, $zero, 0xBFC2E15C */ uint32_t psx_brA_BFC2E110 = cpu->gpr[0]; uint32_t psx_brB_BFC2E110 = cpu->gpr[0]; @@ -120496,6 +147481,9 @@ label_BFC2E110: /* nop */ if (psx_taken_BFC2E110) goto label_BFC2E15C; label_BFC2E118: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E118: 001578C0 sll $t7, $s5, 3 */ cpu->gpr[15] = cpu->gpr[21] << 3u; @@ -120513,6 +147501,9 @@ label_BFC2E118: cpu->gpr[31] = 0x80046134u; psx_dispatch(cpu, 0x800448A8u); label_BFC2E134: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E134: 3C158008 lui $s5, 0x8008 */ cpu->gpr[21] = 0x80080000u; @@ -120536,6 +147527,9 @@ label_BFC2E134: cpu->gpr[31] = 0x8004615Cu; psx_dispatch(cpu, 0x80044A58u); label_BFC2E15C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E15C: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -120570,6 +147564,9 @@ label_BFC2E15C: /* 0xBFC2E198: 8FC20000 lw $v0, 0($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E198u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } label_BFC2E19C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E19C: 00000000 nop */ /* nop */ @@ -120580,6 +147577,9 @@ label_BFC2E19C: /* nop */ if (psx_taken_BFC2E1A0) goto label_BFC2E224; label_BFC2E1A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E1A8: 1040001E beq $v0, $zero, 0xBFC2E224 */ uint32_t psx_brA_BFC2E1A8 = cpu->gpr[2]; uint32_t psx_brB_BFC2E1A8 = cpu->gpr[0]; @@ -120588,6 +147588,9 @@ label_BFC2E1A8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (100)); if (psx_taken_BFC2E1A8) goto label_BFC2E224; label_BFC2E1B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E1B0: 1041001C beq $v0, $at, 0xBFC2E224 */ uint32_t psx_brA_BFC2E1B0 = cpu->gpr[2]; uint32_t psx_brB_BFC2E1B0 = cpu->gpr[1]; @@ -120596,6 +147599,9 @@ label_BFC2E1B0: /* nop */ if (psx_taken_BFC2E1B0) goto label_BFC2E224; label_BFC2E1B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E1B8: 8FA900AC lw $t1, 172($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E1B8u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -120638,10 +147644,16 @@ label_BFC2E1B8: cpu->gpr[1] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC2E1FC) goto label_BFC2E208; label_BFC2E204: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E204: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC2E208: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E208: 00012843 sra $a1, $at, 1 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -120653,6 +147665,9 @@ label_BFC2E208: cpu->gpr[31] = 0x80046218u; psx_dispatch(cpu, 0x80044A58u); label_BFC2E218: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E218: 3C158008 lui $s5, 0x8008 */ cpu->gpr[21] = 0x80080000u; @@ -120661,6 +147676,9 @@ label_BFC2E218: /* 0xBFC2E220: 00000000 nop */ /* nop */ label_BFC2E224: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E224: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -120675,12 +147693,18 @@ label_BFC2E224: /* nop */ if (psx_taken_BFC2E230) goto label_BFC2E2C8; label_BFC2E238: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E238: 3C108009 lui $s0, 0x8009 */ cpu->gpr[16] = 0x80090000u; /* 0xBFC2E23C: 26109D70 addiu $s0, $s0, -25232 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-25232)); label_BFC2E240: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E240: 8E0F0000 lw $t7, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E240u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -120695,6 +147719,9 @@ label_BFC2E240: /* nop */ if (psx_taken_BFC2E24C) goto label_BFC2E2B0; label_BFC2E254: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E254: 8FB900AC lw $t9, 172($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E254u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -120738,6 +147765,9 @@ label_BFC2E254: cpu->gpr[31] = 0x800462A4u; psx_dispatch(cpu, 0x80044A58u); label_BFC2E2A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E2A4: 3C158008 lui $s5, 0x8008 */ cpu->gpr[21] = 0x80080000u; @@ -120746,6 +147776,9 @@ label_BFC2E2A4: /* 0xBFC2E2AC: 00000000 nop */ /* nop */ label_BFC2E2B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E2B0: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -120762,16 +147795,25 @@ label_BFC2E2B0: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (4)); if (psx_taken_BFC2E2C0) goto label_BFC2E240; label_BFC2E2C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E2C8: 3C068014 lui $a2, 0x8014 */ cpu->gpr[6] = 0x80140000u; /* 0xBFC2E2CC: 24C681C8 addiu $a2, $a2, -32312 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (-32312)); label_BFC2E2D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E2D0: 8FAC00AC lw $t4, 172($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E2D0u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } label_BFC2E2D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E2D4: 27DE0688 addiu $fp, $fp, 1672 */ cpu->gpr[30] = (uint32_t)((int32_t)cpu->gpr[30] + (1672)); @@ -120786,10 +147828,16 @@ label_BFC2E2D4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E2E4u); return; } g_debug_last_store_pc = 0xBFC2E2E4u; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC2E2E0) goto label_BFC2D134; label_BFC2E2E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E2E8: AFA000AC sw $zero, 172($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E2E8u); return; } g_debug_last_store_pc = 0xBFC2E2E8u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC2E2EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E2EC: 3C1E8011 lui $fp, 0x8011 */ cpu->gpr[30] = 0x80110000u; @@ -120800,6 +147848,9 @@ label_BFC2E2EC: /* 0xBFC2E2F8: 241103FE addiu $s1, $zero, 1022 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[0] + (1022)); label_BFC2E2FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E2FC: 8FCF0004 lw $t7, 4($fp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[30] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E2FCu); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -120812,6 +147863,9 @@ label_BFC2E2FC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E308u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } if (psx_taken_BFC2E304) goto label_BFC2E380; label_BFC2E30C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E30C: 0015C0C0 sll $t8, $s5, 3 */ cpu->gpr[24] = cpu->gpr[21] << 3u; @@ -120832,6 +147886,9 @@ label_BFC2E30C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E328u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } if (psx_taken_BFC2E324) goto label_BFC2E380; label_BFC2E32C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E32C: 8FA900AC lw $t1, 172($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E32Cu); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -120869,6 +147926,9 @@ label_BFC2E32C: cpu->gpr[31] = 0x80046370u; psx_dispatch(cpu, 0x80044B80u); label_BFC2E370: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E370: 3C158008 lui $s5, 0x8008 */ cpu->gpr[21] = 0x80080000u; @@ -120879,6 +147939,9 @@ label_BFC2E370: /* 0xBFC2E37C: 8FAE00AC lw $t6, 172($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E37Cu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } label_BFC2E380: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E380: 27DE0688 addiu $fp, $fp, 1672 */ cpu->gpr[30] = (uint32_t)((int32_t)cpu->gpr[30] + (1672)); @@ -120891,6 +147954,9 @@ label_BFC2E380: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E38Cu); return; } g_debug_last_store_pc = 0xBFC2E38Cu; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC2E388) goto label_BFC2E2FC; label_BFC2E390: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E390: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -120905,6 +147971,9 @@ label_BFC2E390: /* nop */ if (psx_taken_BFC2E39C) goto label_BFC2E3B4; label_BFC2E3A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E3A4: 24051000 addiu $a1, $zero, 4096 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[0] + (4096)); @@ -120917,6 +147986,9 @@ label_BFC2E3A4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-31944)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E3B0u); return; } g_debug_last_store_pc = 0xBFC2E3B0u; cpu->write_word(psx_addr, cpu->gpr[5]); } if (psx_taken_BFC2E3AC) goto label_BFC2E3C4; label_BFC2E3B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E3B4: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -120927,6 +147999,9 @@ label_BFC2E3B4: /* 0xBFC2E3C0: AC258338 sw $a1, -31944($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-31944)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E3C0u); return; } g_debug_last_store_pc = 0xBFC2E3C0u; cpu->write_word(psx_addr, cpu->gpr[5]); } label_BFC2E3C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E3C4: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -120951,6 +148026,9 @@ label_BFC2E3C4: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC2E3E4) goto label_BFC2E3F4; label_BFC2E3EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E3EC: 10000008 beq $zero, $zero, 0xBFC2E410 */ uint32_t psx_brA_BFC2E3EC = cpu->gpr[0]; uint32_t psx_brB_BFC2E3EC = cpu->gpr[0]; @@ -120959,6 +148037,9 @@ label_BFC2E3EC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-31960)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E3F0u); return; } g_debug_last_store_pc = 0xBFC2E3F0u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC2E3EC) goto label_BFC2E410; label_BFC2E3F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E3F4: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -120977,6 +148058,9 @@ label_BFC2E3F4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E40Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC2E408) goto label_BFC2E420; label_BFC2E410: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E410: 00021023 subu $v0, $zero, $v0 */ cpu->gpr[2] = cpu->gpr[0] - cpu->gpr[2]; @@ -120987,6 +148071,9 @@ label_BFC2E410: /* 0xBFC2E41C: 8FBF004C lw $ra, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E41Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC2E420: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E420: 8FB00028 lw $s0, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E420u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -121023,6 +148110,9 @@ void func_1FC2E44C(CPUState* cpu) { } } label_BFC2E44C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E44C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -121033,6 +148123,9 @@ label_BFC2E44C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E454u); return; } g_debug_last_store_pc = 0xBFC2E454u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC2E450) goto label_BFC2E460; label_BFC2E458: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E458: 10000019 beq $zero, $zero, 0xBFC2E4C0 */ uint32_t psx_brA_BFC2E458 = cpu->gpr[0]; uint32_t psx_brB_BFC2E458 = cpu->gpr[0]; @@ -121041,6 +148134,9 @@ label_BFC2E458: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC2E458) goto label_BFC2E4C0; label_BFC2E460: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E460: 0C011970 jal 0xB00465C0 */ /* 0xBFC2E464: AFA40018 sw $a0, 24($sp) */ @@ -121048,6 +148144,9 @@ label_BFC2E460: cpu->gpr[31] = 0x80046468u; psx_dispatch(cpu, 0x800465C0u); label_BFC2E468: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E468: 8FA40018 lw $a0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E468u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -121058,6 +148157,9 @@ label_BFC2E468: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC2E46C) goto label_BFC2E47C; label_BFC2E474: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E474: 10000012 beq $zero, $zero, 0xBFC2E4C0 */ uint32_t psx_brA_BFC2E474 = cpu->gpr[0]; uint32_t psx_brB_BFC2E474 = cpu->gpr[0]; @@ -121066,6 +148168,9 @@ label_BFC2E474: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC2E474) goto label_BFC2E4C0; label_BFC2E47C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E47C: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -121102,6 +148207,9 @@ label_BFC2E47C: /* 0xBFC2E4BC: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; label_BFC2E4C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E4C0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E4C0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -121116,6 +148224,9 @@ label_BFC2E4C0: void func_1FC2E4D0(CPUState* cpu) { debug_server_log_call_entry(0x1FC2E4D0u); label_BFC2E4D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E4D0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -121150,6 +148261,9 @@ label_BFC2E4D0: void func_1FC2E544(CPUState* cpu) { debug_server_log_call_entry(0x1FC2E544u); label_BFC2E544: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E544: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -121180,6 +148294,9 @@ label_BFC2E544: void func_1FC2E574(CPUState* cpu) { debug_server_log_call_entry(0x1FC2E574u); label_BFC2E574: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E574: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -121194,12 +148311,18 @@ label_BFC2E574: /* nop */ if (psx_taken_BFC2E580) goto label_BFC2E590; label_BFC2E588: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E588: 03E00008 jr $ra */ /* 0xBFC2E58C: 2402FFFF addiu $v0, $zero, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); return; label_BFC2E590: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E590: 2463FFFF addiu $v1, $v1, -1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (-1)); @@ -121224,6 +148347,9 @@ label_BFC2E590: void func_1FC2E5B4(CPUState* cpu) { debug_server_log_call_entry(0x1FC2E5B4u); label_BFC2E5B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E5B4: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -121236,6 +148362,9 @@ label_BFC2E5B4: void func_1FC2E5C0(CPUState* cpu) { debug_server_log_call_entry(0x1FC2E5C0u); label_BFC2E5C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E5C0: 3C028011 lui $v0, 0x8011 */ cpu->gpr[2] = 0x80110000u; @@ -121246,6 +148375,9 @@ label_BFC2E5C0: /* 0xBFC2E5CC: 24050060 addiu $a1, $zero, 96 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[0] + (96)); label_BFC2E5D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E5D0: 8C4E0004 lw $t6, 4($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E5D0u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -121258,12 +148390,18 @@ label_BFC2E5D0: /* nop */ if (psx_taken_BFC2E5D8) goto label_BFC2E5E8; label_BFC2E5E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E5E0: 03E00008 jr $ra */ /* 0xBFC2E5E4: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; return; label_BFC2E5E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E5E8: 24630001 addiu $v1, $v1, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1)); @@ -121274,6 +148412,9 @@ label_BFC2E5E8: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (1672)); if (psx_taken_BFC2E5EC) goto label_BFC2E5D0; label_BFC2E5F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E5F4: 2402FFFF addiu $v0, $zero, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -121294,6 +148435,9 @@ void func_1FC2E600(CPUState* cpu) { } } label_BFC2E600: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E600: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -121305,6 +148449,9 @@ label_BFC2E600: cpu->gpr[31] = 0x80046610u; psx_dispatch(cpu, 0x800465C0u); label_BFC2E610: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E610: 00027080 sll $t6, $v0, 2 */ cpu->gpr[14] = cpu->gpr[2] << 2u; @@ -121357,6 +148504,9 @@ void func_1FC2E65C(CPUState* cpu) { } } label_BFC2E65C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E65C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -121368,6 +148518,9 @@ label_BFC2E65C: cpu->gpr[31] = 0x8004666Cu; psx_dispatch(cpu, 0x800465C0u); label_BFC2E66C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E66C: 00027080 sll $t6, $v0, 2 */ cpu->gpr[14] = cpu->gpr[2] << 2u; @@ -121424,6 +148577,9 @@ void func_1FC2E6B8(CPUState* cpu) { } } label_BFC2E6B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E6B8: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -121466,6 +148622,9 @@ label_BFC2E6B8: cpu->gpr[6] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC2E6FC) goto label_BFC2E74C; label_BFC2E704: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E704: 8C590034 lw $t9, 52($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E704u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -121478,6 +148637,9 @@ label_BFC2E704: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC2E70C) goto label_BFC2E750; label_BFC2E714: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E714: 00064080 sll $t0, $a2, 2 */ cpu->gpr[8] = cpu->gpr[6] << 2u; @@ -121505,6 +148667,9 @@ label_BFC2E714: cpu->gpr[31] = 0x80046744u; psx_dispatch(cpu, cpu->gpr[10]); label_BFC2E744: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E744: 1000005E beq $zero, $zero, 0xBFC2E8C0 */ uint32_t psx_brA_BFC2E744 = cpu->gpr[0]; uint32_t psx_brB_BFC2E744 = cpu->gpr[0]; @@ -121513,10 +148678,16 @@ label_BFC2E744: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E748u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC2E744) goto label_BFC2E8C0; label_BFC2E74C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E74C: 3C018000 lui $at, 0x8000 */ cpu->gpr[1] = 0x80000000u; label_BFC2E750: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E750: 34218000 ori $at, $at, 0x8000 */ cpu->gpr[1] = cpu->gpr[1] | 0x8000u; @@ -121529,6 +148700,9 @@ label_BFC2E750: cpu->gpr[1] = 0x20000000u; if (psx_taken_BFC2E758) goto label_BFC2E7B4; label_BFC2E760: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E760: 8C4C001C lw $t4, 28($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E760u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -121541,6 +148715,9 @@ label_BFC2E760: cpu->gpr[1] = 0x20000000u; if (psx_taken_BFC2E768) goto label_BFC2E7B4; label_BFC2E770: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E770: 00066880 sll $t5, $a2, 2 */ cpu->gpr[13] = cpu->gpr[6] << 2u; @@ -121568,6 +148745,9 @@ label_BFC2E770: cpu->gpr[31] = 0x800467A0u; psx_dispatch(cpu, 0x8004644Cu); label_BFC2E7A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E7A0: 3C078011 lui $a3, 0x8011 */ cpu->gpr[7] = 0x80110000u; @@ -121580,6 +148760,9 @@ label_BFC2E7A0: /* 0xBFC2E7B0: 3C012000 lui $at, 0x2000 */ cpu->gpr[1] = 0x20000000u; label_BFC2E7B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E7B4: 34212000 ori $at, $at, 0x2000 */ cpu->gpr[1] = cpu->gpr[1] | 0x2000u; @@ -121592,6 +148775,9 @@ label_BFC2E7B4: cpu->gpr[1] = 0x10000000u; if (psx_taken_BFC2E7BC) goto label_BFC2E814; label_BFC2E7C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E7C4: 0006C080 sll $t8, $a2, 2 */ cpu->gpr[24] = cpu->gpr[6] << 2u; @@ -121620,6 +148806,9 @@ label_BFC2E7C4: cpu->gpr[1] = 0x10000000u; if (psx_taken_BFC2E7EC) goto label_BFC2E814; label_BFC2E7F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E7F4: AFA50020 sw $a1, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E7F4u); return; } g_debug_last_store_pc = 0xBFC2E7F4u; cpu->write_word(psx_addr, cpu->gpr[5]); } @@ -121629,6 +148818,9 @@ label_BFC2E7F4: cpu->gpr[31] = 0x80046800u; psx_dispatch(cpu, 0x8004644Cu); label_BFC2E800: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E800: 3C078011 lui $a3, 0x8011 */ cpu->gpr[7] = 0x80110000u; @@ -121641,6 +148833,9 @@ label_BFC2E800: /* 0xBFC2E810: 3C011000 lui $at, 0x1000 */ cpu->gpr[1] = 0x10000000u; label_BFC2E814: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E814: 34211000 ori $at, $at, 0x1000 */ cpu->gpr[1] = cpu->gpr[1] | 0x1000u; @@ -121653,6 +148848,9 @@ label_BFC2E814: cpu->gpr[1] = 0x40000000u; if (psx_taken_BFC2E81C) goto label_BFC2E874; label_BFC2E824: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E824: 00064880 sll $t1, $a2, 2 */ cpu->gpr[9] = cpu->gpr[6] << 2u; @@ -121681,6 +148879,9 @@ label_BFC2E824: cpu->gpr[1] = 0x40000000u; if (psx_taken_BFC2E84C) goto label_BFC2E874; label_BFC2E854: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E854: AFA50020 sw $a1, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E854u); return; } g_debug_last_store_pc = 0xBFC2E854u; cpu->write_word(psx_addr, cpu->gpr[5]); } @@ -121690,6 +148891,9 @@ label_BFC2E854: cpu->gpr[31] = 0x80046860u; psx_dispatch(cpu, 0x8004644Cu); label_BFC2E860: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E860: 3C078011 lui $a3, 0x8011 */ cpu->gpr[7] = 0x80110000u; @@ -121702,6 +148906,9 @@ label_BFC2E860: /* 0xBFC2E870: 3C014000 lui $at, 0x4000 */ cpu->gpr[1] = 0x40000000u; label_BFC2E874: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E874: 34214000 ori $at, $at, 0x4000 */ cpu->gpr[1] = cpu->gpr[1] | 0x4000u; @@ -121714,6 +148921,9 @@ label_BFC2E874: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E880u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC2E87C) goto label_BFC2E8C0; label_BFC2E884: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E884: 00066080 sll $t4, $a2, 2 */ cpu->gpr[12] = cpu->gpr[6] << 2u; @@ -121742,6 +148952,9 @@ label_BFC2E884: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E8B0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC2E8AC) goto label_BFC2E8C0; label_BFC2E8B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E8B4: 0C011913 jal 0xB004644C */ /* 0xBFC2E8B8: 00000000 nop */ @@ -121749,10 +148962,16 @@ label_BFC2E8B4: cpu->gpr[31] = 0x800468BCu; psx_dispatch(cpu, 0x8004644Cu); label_BFC2E8BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E8BC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E8BCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC2E8C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E8C0: 27BD0020 addiu $sp, $sp, 32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (32)); @@ -121776,6 +148995,9 @@ void func_1FC2E8CC(CPUState* cpu) { } } label_BFC2E8CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E8CC: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -121800,6 +149022,9 @@ label_BFC2E8CC: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC2E8EC) goto label_BFC2E900; label_BFC2E8F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E8F4: 3C068011 lui $a2, 0x8011 */ cpu->gpr[6] = 0x80110000u; @@ -121810,6 +149035,9 @@ label_BFC2E8F4: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (3784)); if (psx_taken_BFC2E8F8) goto label_BFC2E978; label_BFC2E900: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E900: 00027880 sll $t7, $v0, 2 */ cpu->gpr[15] = cpu->gpr[2] << 2u; @@ -121842,6 +149070,9 @@ label_BFC2E900: cpu->gpr[1] = 0x20000000u; if (psx_taken_BFC2E930) goto label_BFC2E97C; label_BFC2E938: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E938: 00034080 sll $t0, $v1, 2 */ cpu->gpr[8] = cpu->gpr[3] << 2u; @@ -121869,6 +149100,9 @@ label_BFC2E938: cpu->gpr[31] = 0x80046968u; psx_dispatch(cpu, 0x8004644Cu); label_BFC2E968: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E968: 3C068011 lui $a2, 0x8011 */ cpu->gpr[6] = 0x80110000u; @@ -121879,10 +149113,16 @@ label_BFC2E968: /* 0xBFC2E974: 24C60EC8 addiu $a2, $a2, 3784 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (3784)); label_BFC2E978: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E978: 3C012000 lui $at, 0x2000 */ cpu->gpr[1] = 0x20000000u; label_BFC2E97C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E97C: 34212000 ori $at, $at, 0x2000 */ cpu->gpr[1] = cpu->gpr[1] | 0x2000u; @@ -121895,6 +149135,9 @@ label_BFC2E97C: cpu->gpr[1] = 0x10000000u; if (psx_taken_BFC2E984) goto label_BFC2E9DC; label_BFC2E98C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E98C: 00035880 sll $t3, $v1, 2 */ cpu->gpr[11] = cpu->gpr[3] << 2u; @@ -121923,6 +149166,9 @@ label_BFC2E98C: cpu->gpr[1] = 0x10000000u; if (psx_taken_BFC2E9B4) goto label_BFC2E9DC; label_BFC2E9BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E9BC: AFA3001C sw $v1, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2E9BCu); return; } g_debug_last_store_pc = 0xBFC2E9BCu; cpu->write_word(psx_addr, cpu->gpr[3]); } @@ -121932,6 +149178,9 @@ label_BFC2E9BC: cpu->gpr[31] = 0x800469C8u; psx_dispatch(cpu, 0x8004644Cu); label_BFC2E9C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E9C8: 3C068011 lui $a2, 0x8011 */ cpu->gpr[6] = 0x80110000u; @@ -121944,6 +149193,9 @@ label_BFC2E9C8: /* 0xBFC2E9D8: 3C011000 lui $at, 0x1000 */ cpu->gpr[1] = 0x10000000u; label_BFC2E9DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E9DC: 34211000 ori $at, $at, 0x1000 */ cpu->gpr[1] = cpu->gpr[1] | 0x1000u; @@ -121956,6 +149208,9 @@ label_BFC2E9DC: cpu->gpr[1] = 0x40000000u; if (psx_taken_BFC2E9E4) goto label_BFC2EA3C; label_BFC2E9EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC2E9EC: 00037080 sll $t6, $v1, 2 */ cpu->gpr[14] = cpu->gpr[3] << 2u; @@ -121984,6 +149239,9 @@ label_BFC2E9EC: cpu->gpr[1] = 0x40000000u; if (psx_taken_BFC2EA14) goto label_BFC2EA3C; label_BFC2EA1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EA1C: AFA3001C sw $v1, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2EA1Cu); return; } g_debug_last_store_pc = 0xBFC2EA1Cu; cpu->write_word(psx_addr, cpu->gpr[3]); } @@ -121993,6 +149251,9 @@ label_BFC2EA1C: cpu->gpr[31] = 0x80046A28u; psx_dispatch(cpu, 0x8004644Cu); label_BFC2EA28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EA28: 3C068011 lui $a2, 0x8011 */ cpu->gpr[6] = 0x80110000u; @@ -122005,6 +149266,9 @@ label_BFC2EA28: /* 0xBFC2EA38: 3C014000 lui $at, 0x4000 */ cpu->gpr[1] = 0x40000000u; label_BFC2EA3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EA3C: 34214000 ori $at, $at, 0x4000 */ cpu->gpr[1] = cpu->gpr[1] | 0x4000u; @@ -122017,6 +149281,9 @@ label_BFC2EA3C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2EA48u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC2EA44) goto label_BFC2EA88; label_BFC2EA4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EA4C: 0003C880 sll $t9, $v1, 2 */ cpu->gpr[25] = cpu->gpr[3] << 2u; @@ -122045,6 +149312,9 @@ label_BFC2EA4C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2EA78u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC2EA74) goto label_BFC2EA88; label_BFC2EA7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EA7C: 0C011913 jal 0xB004644C */ /* 0xBFC2EA80: 00000000 nop */ @@ -122052,10 +149322,16 @@ label_BFC2EA7C: cpu->gpr[31] = 0x80046A84u; psx_dispatch(cpu, 0x8004644Cu); label_BFC2EA84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EA84: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2EA84u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC2EA88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EA88: 27BD0020 addiu $sp, $sp, 32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (32)); @@ -122076,6 +149352,9 @@ void func_1FC2EA94(CPUState* cpu) { } } label_BFC2EA94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EA94: 00804021 addu $t0, $a0, $zero */ cpu->gpr[8] = cpu->gpr[4] + cpu->gpr[0]; @@ -122114,6 +149393,9 @@ label_BFC2EA94: /* nop */ if (psx_taken_BFC2EAD0) goto label_BFC2EB88; label_BFC2EAD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(23u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EAD8: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -122162,6 +149444,9 @@ label_BFC2EAD8: /* 0xBFC2EB30: 0078C821 addu $t9, $v1, $t8 */ cpu->gpr[25] = cpu->gpr[3] + cpu->gpr[24]; label_BFC2EB34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EB34: 8DC10000 lw $at, 0($t6) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[14] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2EB34u); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -122184,6 +149469,9 @@ label_BFC2EB34: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[25] + (280)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2EB54u); return; } g_debug_last_store_pc = 0xBFC2EB54u; cpu->write_word(psx_addr, cpu->gpr[1]); } if (psx_taken_BFC2EB50) goto label_BFC2EB34; label_BFC2EB58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EB58: 8DC10000 lw $at, 0($t6) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[14] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2EB58u); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -122210,6 +149498,9 @@ label_BFC2EB58: /* 0xBFC2EB84: AC6C002C sw $t4, 44($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2EB84u); return; } g_debug_last_store_pc = 0xBFC2EB84u; cpu->write_word(psx_addr, cpu->gpr[12]); } label_BFC2EB88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EB88: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -122240,6 +149531,9 @@ label_BFC2EB88: /* 0xBFC2EBBC: 01D9C021 addu $t8, $t6, $t9 */ cpu->gpr[24] = cpu->gpr[14] + cpu->gpr[25]; label_BFC2EBC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EBC0: 8D610000 lw $at, 0($t3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[11] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2EBC0u); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -122262,6 +149556,9 @@ label_BFC2EBC0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[24] + (280)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2EBE0u); return; } g_debug_last_store_pc = 0xBFC2EBE0u; cpu->write_word(psx_addr, cpu->gpr[1]); } if (psx_taken_BFC2EBDC) goto label_BFC2EBC0; label_BFC2EBE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(33u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EBE4: 8D610000 lw $at, 0($t3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[11] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2EBE4u); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -122331,6 +149628,9 @@ label_BFC2EBE4: cpu->gpr[31] = 0x80046C68u; psx_dispatch(cpu, 0x800447F4u); label_BFC2EC68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EC68: 8FA3001C lw $v1, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2EC68u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -122357,6 +149657,9 @@ label_BFC2EC68: void func_1FC2EC90(CPUState* cpu) { debug_server_log_call_entry(0x1FC2EC90u); label_BFC2EC90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EC90: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; @@ -122369,6 +149672,9 @@ label_BFC2EC90: /* 0xBFC2ECA0: 244281C8 addiu $v0, $v0, -32312 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (-32312)); label_BFC2ECA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ECA4: 8C6E0004 lw $t6, 4($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2ECA4u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -122381,6 +149687,9 @@ label_BFC2ECA4: /* nop */ if (psx_taken_BFC2ECAC) goto label_BFC2ECC4; label_BFC2ECB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ECB4: 8C6F002C lw $t7, 44($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2ECB4u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -122391,6 +149700,9 @@ label_BFC2ECB4: /* 0xBFC2ECC0: AC78002C sw $t8, 44($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2ECC0u); return; } g_debug_last_store_pc = 0xBFC2ECC0u; cpu->write_word(psx_addr, cpu->gpr[24]); } label_BFC2ECC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ECC4: 24630688 addiu $v1, $v1, 1672 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1672)); @@ -122401,6 +149713,9 @@ label_BFC2ECC4: /* nop */ if (psx_taken_BFC2ECC8) goto label_BFC2ECA4; label_BFC2ECD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ECD0: 03E00008 jr $ra */ /* 0xBFC2ECD4: 00000000 nop */ @@ -122411,6 +149726,9 @@ label_BFC2ECD0: void func_1FC2ECD8(CPUState* cpu) { debug_server_log_call_entry(0x1FC2ECD8u); label_BFC2ECD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ECD8: 00047080 sll $t6, $a0, 2 */ cpu->gpr[14] = cpu->gpr[4] << 2u; @@ -122459,6 +149777,9 @@ void func_1FC2ED1C(CPUState* cpu) { } } label_BFC2ED1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ED1C: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -122470,6 +149791,9 @@ label_BFC2ED1C: cpu->gpr[31] = 0x80046D2Cu; psx_dispatch(cpu, 0x800465C0u); label_BFC2ED2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ED2C: 00027080 sll $t6, $v0, 2 */ cpu->gpr[14] = cpu->gpr[2] << 2u; @@ -122508,6 +149832,9 @@ label_BFC2ED2C: /* 0xBFC2ED70: 254B006C addiu $t3, $t2, 108 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[10] + (108)); label_BFC2ED74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ED74: 8D410000 lw $at, 0($t2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[10] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2ED74u); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -122530,6 +149857,9 @@ label_BFC2ED74: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2ED94u); return; } g_debug_last_store_pc = 0xBFC2ED94u; cpu->write_word(psx_addr, cpu->gpr[1]); } if (psx_taken_BFC2ED90) goto label_BFC2ED74; label_BFC2ED98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2ED98: 8D410000 lw $at, 0($t2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[10] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2ED98u); return; } cpu->gpr[1] = cpu->read_word(psx_addr); } @@ -122550,6 +149880,9 @@ label_BFC2ED98: void func_1FC2EE6C(CPUState* cpu) { debug_server_log_call_entry(0x1FC2EE6Cu); label_BFC2EE6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EE6C: 3C068011 lui $a2, 0x8011 */ cpu->gpr[6] = 0x80110000u; @@ -122562,6 +149895,9 @@ label_BFC2EE6C: /* 0xBFC2EE7C: 24070060 addiu $a3, $zero, 96 */ cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[0] + (96)); label_BFC2EE80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EE80: 8CCE0004 lw $t6, 4($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2EE80u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -122574,6 +149910,9 @@ label_BFC2EE80: /* nop */ if (psx_taken_BFC2EE88) goto label_BFC2EEA8; label_BFC2EE90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EE90: 24420001 addiu $v0, $v0, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (1)); @@ -122586,12 +149925,18 @@ label_BFC2EE90: /* nop */ if (psx_taken_BFC2EE98) goto label_BFC2EEA8; label_BFC2EEA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EEA0: 03E00008 jr $ra */ /* 0xBFC2EEA4: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; return; label_BFC2EEA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EEA8: 24630001 addiu $v1, $v1, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1)); @@ -122602,6 +149947,9 @@ label_BFC2EEA8: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (1672)); if (psx_taken_BFC2EEAC) goto label_BFC2EE80; label_BFC2EEB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EEB4: 2402FFFF addiu $v0, $zero, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -122614,6 +149962,9 @@ label_BFC2EEB4: void func_1FC2EEC0(CPUState* cpu) { debug_server_log_call_entry(0x1FC2EEC0u); label_BFC2EEC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EEC0: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; @@ -122628,6 +149979,9 @@ label_BFC2EEC0: /* 0xBFC2EED4: 244281C8 addiu $v0, $v0, -32312 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (-32312)); label_BFC2EED8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EED8: 8CAE0004 lw $t6, 4($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2EED8u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -122640,10 +149994,16 @@ label_BFC2EED8: /* nop */ if (psx_taken_BFC2EEE0) goto label_BFC2EEEC; label_BFC2EEE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EEE8: 24630001 addiu $v1, $v1, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1)); label_BFC2EEEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EEEC: 24A50688 addiu $a1, $a1, 1672 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (1672)); @@ -122654,6 +150014,9 @@ label_BFC2EEEC: /* nop */ if (psx_taken_BFC2EEF0) goto label_BFC2EED8; label_BFC2EEF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EEF8: 03E00008 jr $ra */ /* 0xBFC2EEFC: 00601021 addu $v0, $v1, $zero */ @@ -122664,6 +150027,9 @@ label_BFC2EEF8: void func_1FC2EF00(CPUState* cpu) { debug_server_log_call_entry(0x1FC2EF00u); label_BFC2EF00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EF00: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; @@ -122678,6 +150044,9 @@ label_BFC2EF00: /* 0xBFC2EF14: 244281C8 addiu $v0, $v0, -32312 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (-32312)); label_BFC2EF18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EF18: 8CAE0004 lw $t6, 4($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2EF18u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -122690,10 +150059,16 @@ label_BFC2EF18: /* nop */ if (psx_taken_BFC2EF20) goto label_BFC2EF2C; label_BFC2EF28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EF28: 24630001 addiu $v1, $v1, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1)); label_BFC2EF2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EF2C: 24A50688 addiu $a1, $a1, 1672 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (1672)); @@ -122704,6 +150079,9 @@ label_BFC2EF2C: /* nop */ if (psx_taken_BFC2EF30) goto label_BFC2EF18; label_BFC2EF38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EF38: 03E00008 jr $ra */ /* 0xBFC2EF3C: 00601021 addu $v0, $v1, $zero */ @@ -122725,6 +150103,9 @@ void func_1FC2EF40(CPUState* cpu) { } } label_BFC2EF40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EF40: 27BDFFA8 addiu $sp, $sp, -88 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-88)); @@ -122750,6 +150131,9 @@ label_BFC2EF40: cpu->gpr[31] = 0x80046F6Cu; psx_dispatch(cpu, 0x80046F00u); label_BFC2EF6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EF6C: AFA20048 sw $v0, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2EF6Cu); return; } g_debug_last_store_pc = 0xBFC2EF6Cu; cpu->write_word(psx_addr, cpu->gpr[2]); } @@ -122760,6 +150144,9 @@ label_BFC2EF6C: cpu->gpr[17] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC2EF70) goto label_BFC2EF88; label_BFC2EF78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EF78: 3C138011 lui $s3, 0x8011 */ cpu->gpr[19] = 0x80110000u; @@ -122772,6 +150159,9 @@ label_BFC2EF78: cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (3784)); if (psx_taken_BFC2EF80) goto label_BFC2F084; label_BFC2EF88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EF88: AFB70038 sw $s7, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2EF88u); return; } g_debug_last_store_pc = 0xBFC2EF88u; cpu->write_word(psx_addr, cpu->gpr[23]); } @@ -122794,6 +150184,9 @@ label_BFC2EF88: /* 0xBFC2EFAC: AFB00040 sw $s0, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2EFACu); return; } g_debug_last_store_pc = 0xBFC2EFACu; cpu->write_word(psx_addr, cpu->gpr[16]); } label_BFC2EFB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EFB0: 0C011970 jal 0xB00465C0 */ /* 0xBFC2EFB4: 00002021 addu $a0, $zero, $zero */ @@ -122801,6 +150194,9 @@ label_BFC2EFB0: cpu->gpr[31] = 0x80046FB8u; psx_dispatch(cpu, 0x800465C0u); label_BFC2EFB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EFB8: 00409021 addu $s2, $v0, $zero */ cpu->gpr[18] = cpu->gpr[2] + cpu->gpr[0]; @@ -122812,6 +150208,9 @@ label_BFC2EFB8: cpu->gpr[31] = 0x80046FC8u; psx_dispatch(cpu, 0x80046E6Cu); label_BFC2EFC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC2EFC8: 00127880 sll $t7, $s2, 2 */ cpu->gpr[15] = cpu->gpr[18] << 2u; @@ -122853,6 +150252,9 @@ label_BFC2EFC8: cpu->gpr[31] = 0x80047014u; psx_dispatch(cpu, 0x800471D4u); label_BFC2F014: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F014: 2A81003C slti $at, $s4, 60 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[20] < (60) ? 1 : 0); @@ -122863,6 +150265,9 @@ label_BFC2F014: cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[21] + (30)); if (psx_taken_BFC2F018) goto label_BFC2F034; label_BFC2F020: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F020: 26B8003C addiu $t8, $s5, 60 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[21] + (60)); @@ -122875,16 +150280,25 @@ label_BFC2F020: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F02Cu); return; } g_debug_last_store_pc = 0xBFC2F02Cu; cpu->write_word(psx_addr, cpu->gpr[24]); } if (psx_taken_BFC2F028) goto label_BFC2F03C; label_BFC2F030: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F030: 26B9001E addiu $t9, $s5, 30 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[21] + (30)); label_BFC2F034: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F034: AE1E0000 sw $fp, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F034u); return; } g_debug_last_store_pc = 0xBFC2F034u; cpu->write_word(psx_addr, cpu->gpr[30]); } /* 0xBFC2F038: AE190004 sw $t9, 4($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F038u); return; } g_debug_last_store_pc = 0xBFC2F038u; cpu->write_word(psx_addr, cpu->gpr[25]); } label_BFC2F03C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F03C: 00124080 sll $t0, $s2, 2 */ cpu->gpr[8] = cpu->gpr[18] << 2u; @@ -122915,6 +150329,9 @@ label_BFC2F03C: /* nop */ if (psx_taken_BFC2F068) goto label_BFC2EFB0; label_BFC2F070: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F070: 8FB00040 lw $s0, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F070u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -122927,6 +150344,9 @@ label_BFC2F070: /* 0xBFC2F080: 00000000 nop */ /* nop */ label_BFC2F084: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F084: 00126080 sll $t4, $s2, 2 */ cpu->gpr[12] = cpu->gpr[18] << 2u; @@ -122967,6 +150387,9 @@ label_BFC2F084: void func_1FC2F1D4(CPUState* cpu) { debug_server_log_call_entry(0x1FC2F1D4u); label_BFC2F1D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F1D4: 00C01021 addu $v0, $a2, $zero */ cpu->gpr[2] = cpu->gpr[6] + cpu->gpr[0]; @@ -122977,6 +150400,9 @@ label_BFC2F1D4: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (-1)); if (psx_taken_BFC2F1D8) goto label_BFC2F1FC; label_BFC2F1E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F1E0: 808E0000 lb $t6, 0($a0) */ cpu->gpr[14] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (0))); @@ -122995,6 +150421,9 @@ label_BFC2F1E0: g_debug_last_store_pc = 0xBFC2F1F8u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[5] + (-1)), (uint8_t)(cpu->gpr[14] & 0xFFu)); if (psx_taken_BFC2F1F4) goto label_BFC2F1E0; label_BFC2F1FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F1FC: 03E00008 jr $ra */ /* 0xBFC2F200: 00000000 nop */ @@ -123025,6 +150454,9 @@ void func_1FC2F210(CPUState* cpu) { } } label_BFC2F210: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F210: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -123041,6 +150473,9 @@ label_BFC2F210: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F224u); return; } g_debug_last_store_pc = 0xBFC2F224u; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC2F220) goto label_BFC2F240; label_BFC2F228: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F228: 0C010FC0 jal 0xB0043F00 */ /* 0xBFC2F22C: 00000000 nop */ @@ -123048,6 +150483,9 @@ label_BFC2F228: cpu->gpr[31] = 0x80047230u; psx_dispatch(cpu, 0x80043F00u); label_BFC2F230: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F230: 87AF0028 lh $t7, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F230u); return; } cpu->gpr[15] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -123060,6 +150498,9 @@ label_BFC2F230: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F23Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC2F238) goto label_BFC2F60C; label_BFC2F240: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F240: 0C013B47 jal 0xB004ED1C */ /* 0xBFC2F244: 00002021 addu $a0, $zero, $zero */ @@ -123067,6 +150508,9 @@ label_BFC2F240: cpu->gpr[31] = 0x80047248u; psx_dispatch(cpu, 0x8004ED1Cu); label_BFC2F248: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F248: 87A40028 lh $a0, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F248u); return; } cpu->gpr[4] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -123076,6 +150520,9 @@ label_BFC2F248: cpu->gpr[31] = 0x80047254u; psx_dispatch(cpu, 0x80043F10u); label_BFC2F254: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F254: 87B80028 lh $t8, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F254u); return; } cpu->gpr[24] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -123088,6 +150535,9 @@ label_BFC2F254: cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[0] + (640)); if (psx_taken_BFC2F25C) goto label_BFC2F3C8; label_BFC2F264: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F264: 24190280 addiu $t9, $zero, 640 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (640)); @@ -123119,6 +150569,9 @@ label_BFC2F264: cpu->gpr[31] = 0x8004729Cu; psx_dispatch(cpu, 0x8005154Cu); label_BFC2F29C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F29C: 3C0A8009 lui $t2, 0x8009 */ cpu->gpr[10] = 0x80090000u; @@ -123142,6 +150595,9 @@ label_BFC2F29C: cpu->gpr[31] = 0x800472C4u; psx_dispatch(cpu, 0x8005154Cu); label_BFC2F2C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F2C4: 3C0B8009 lui $t3, 0x8009 */ cpu->gpr[11] = 0x80090000u; @@ -123167,6 +150623,9 @@ label_BFC2F2C4: cpu->gpr[31] = 0x800472F0u; psx_dispatch(cpu, 0x800515ECu); label_BFC2F2F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F2F0: 3C0D8009 lui $t5, 0x8009 */ cpu->gpr[13] = 0x80090000u; @@ -123192,6 +150651,9 @@ label_BFC2F2F0: cpu->gpr[31] = 0x8004731Cu; psx_dispatch(cpu, 0x800515ECu); label_BFC2F31C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F31C: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -123206,6 +150668,9 @@ label_BFC2F31C: /* nop */ if (psx_taken_BFC2F328) goto label_BFC2F388; label_BFC2F330: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F330: 24180003 addiu $t8, $zero, 3 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); @@ -123252,6 +150717,9 @@ label_BFC2F330: /* 0xBFC2F384: A02BA8D6 sb $t3, -22314($at) */ g_debug_last_store_pc = 0xBFC2F384u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[1] + (-22314)), (uint8_t)(cpu->gpr[11] & 0xFFu)); label_BFC2F388: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F388: 3C028009 lui $v0, 0x8009 */ cpu->gpr[2] = 0x80090000u; @@ -123268,10 +150736,16 @@ label_BFC2F388: cpu->gpr[1] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC2F398) goto label_BFC2F3A4; label_BFC2F3A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F3A0: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC2F3A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F3A4: 00011043 sra $v0, $at, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -123292,10 +150766,16 @@ label_BFC2F3A4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-17166)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F3C0u); return; } g_debug_last_store_pc = 0xBFC2F3C0u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[2] & 0xFFFFu)); } if (psx_taken_BFC2F3BC) goto label_BFC2F50C; label_BFC2F3C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F3C4: 240C0280 addiu $t4, $zero, 640 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[0] + (640)); label_BFC2F3C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F3C8: 3C018009 lui $at, 0x8009 */ cpu->gpr[1] = 0x80090000u; @@ -123325,6 +150805,9 @@ label_BFC2F3C8: cpu->gpr[31] = 0x800473FCu; psx_dispatch(cpu, 0x8005154Cu); label_BFC2F3FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F3FC: 3C0F8009 lui $t7, 0x8009 */ cpu->gpr[15] = 0x80090000u; @@ -123348,6 +150831,9 @@ label_BFC2F3FC: cpu->gpr[31] = 0x80047424u; psx_dispatch(cpu, 0x8005154Cu); label_BFC2F424: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F424: 3C188009 lui $t8, 0x8009 */ cpu->gpr[24] = 0x80090000u; @@ -123373,6 +150859,9 @@ label_BFC2F424: cpu->gpr[31] = 0x80047450u; psx_dispatch(cpu, 0x800515ECu); label_BFC2F450: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F450: 3C088009 lui $t0, 0x8009 */ cpu->gpr[8] = 0x80090000u; @@ -123398,6 +150887,9 @@ label_BFC2F450: cpu->gpr[31] = 0x8004747Cu; psx_dispatch(cpu, 0x800515ECu); label_BFC2F47C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F47C: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -123412,6 +150904,9 @@ label_BFC2F47C: /* nop */ if (psx_taken_BFC2F488) goto label_BFC2F4E8; label_BFC2F490: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F490: 240B0003 addiu $t3, $zero, 3 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); @@ -123458,6 +150953,9 @@ label_BFC2F490: /* 0xBFC2F4E4: A038A8D6 sb $t8, -22314($at) */ g_debug_last_store_pc = 0xBFC2F4E4u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[1] + (-22314)), (uint8_t)(cpu->gpr[24] & 0xFFu)); label_BFC2F4E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F4E8: 3C028009 lui $v0, 0x8009 */ cpu->gpr[2] = 0x80090000u; @@ -123478,6 +150976,9 @@ label_BFC2F4E8: /* 0xBFC2F508: A422BCF2 sh $v0, -17166($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-17166)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F508u); return; } g_debug_last_store_pc = 0xBFC2F508u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[2] & 0xFFFFu)); } label_BFC2F50C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F50C: 3C04800F lui $a0, 0x800F */ cpu->gpr[4] = 0x800F0000u; @@ -123487,6 +150988,9 @@ label_BFC2F50C: cpu->gpr[31] = 0x80047518u; psx_dispatch(cpu, 0x800519ECu); label_BFC2F518: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(29u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F518: 3C05800F lui $a1, 0x800F */ cpu->gpr[5] = 0x800F0000u; @@ -123548,6 +151052,9 @@ label_BFC2F518: cpu->gpr[31] = 0x8004758Cu; psx_dispatch(cpu, 0x800519ECu); label_BFC2F58C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(32u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F58C: 3C04800F lui $a0, 0x800F */ cpu->gpr[4] = 0x800F0000u; @@ -123614,6 +151121,9 @@ label_BFC2F58C: /* 0xBFC2F608: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F608u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC2F60C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F60C: 27BD0028 addiu $sp, $sp, 40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (40)); @@ -123635,6 +151145,9 @@ void func_1FC2F618(CPUState* cpu) { } } label_BFC2F618: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F618: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -123649,10 +151162,16 @@ label_BFC2F618: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F628u); return; } g_debug_last_store_pc = 0xBFC2F628u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC2F624) goto label_BFC2F630; label_BFC2F62C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F62C: 2442FFFF addiu $v0, $v0, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (-1)); label_BFC2F630: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F630: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -123663,6 +151182,9 @@ label_BFC2F630: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-31884)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F638u); return; } g_debug_last_store_pc = 0xBFC2F638u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC2F634) goto label_BFC2F64C; label_BFC2F63C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F63C: 0C013B47 jal 0xB004ED1C */ /* 0xBFC2F640: 24040001 addiu $a0, $zero, 1 */ @@ -123670,6 +151192,9 @@ label_BFC2F63C: cpu->gpr[31] = 0x80047644u; psx_dispatch(cpu, 0x8004ED1Cu); label_BFC2F644: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F644: 0C013B47 jal 0xB004ED1C */ /* 0xBFC2F648: 00002021 addu $a0, $zero, $zero */ @@ -123677,6 +151202,9 @@ label_BFC2F644: cpu->gpr[31] = 0x8004764Cu; psx_dispatch(cpu, 0x8004ED1Cu); label_BFC2F64C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F64C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F64Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -123700,6 +151228,9 @@ void func_1FC2F65C(CPUState* cpu) { } } label_BFC2F65C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F65C: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -123714,10 +151245,16 @@ label_BFC2F65C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F66Cu); return; } g_debug_last_store_pc = 0xBFC2F66Cu; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC2F668) goto label_BFC2F674; label_BFC2F670: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F670: 2442FFFF addiu $v0, $v0, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (-1)); label_BFC2F674: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F674: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -123728,6 +151265,9 @@ label_BFC2F674: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-31884)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F67Cu); return; } g_debug_last_store_pc = 0xBFC2F67Cu; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC2F678) goto label_BFC2F690; label_BFC2F680: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F680: 0C016720 jal 0xB0059C80 */ /* 0xBFC2F684: 00002021 addu $a0, $zero, $zero */ @@ -123735,6 +151275,9 @@ label_BFC2F680: cpu->gpr[31] = 0x80047688u; psx_dispatch(cpu, 0x80059C80u); label_BFC2F688: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F688: 0C013B47 jal 0xB004ED1C */ /* 0xBFC2F68C: 24040003 addiu $a0, $zero, 3 */ @@ -123742,6 +151285,9 @@ label_BFC2F688: cpu->gpr[31] = 0x80047690u; psx_dispatch(cpu, 0x8004ED1Cu); label_BFC2F690: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F690: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F690u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -123764,6 +151310,9 @@ void func_1FC2F6A0(CPUState* cpu) { } } label_BFC2F6A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F6A0: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -123782,6 +151331,9 @@ label_BFC2F6A0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F6B8u); return; } g_debug_last_store_pc = 0xBFC2F6B8u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC2F6B4) goto label_BFC2F6C8; label_BFC2F6BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F6BC: 3C02800F lui $v0, 0x800F */ cpu->gpr[2] = 0x800F0000u; @@ -123792,10 +151344,16 @@ label_BFC2F6BC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (-17272)); if (psx_taken_BFC2F6C0) goto label_BFC2F6CC; label_BFC2F6C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F6C8: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; label_BFC2F6CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F6CC: 3C018006 lui $at, 0x8006 */ cpu->gpr[1] = 0x80060000u; @@ -123809,6 +151367,9 @@ label_BFC2F6CC: cpu->gpr[31] = 0x800476E0u; psx_dispatch(cpu, 0x8004F334u); label_BFC2F6E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F6E0: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -123825,6 +151386,9 @@ label_BFC2F6E0: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC2F6F0) goto label_BFC2F704; label_BFC2F6F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F6F8: 10000002 beq $zero, $zero, 0xBFC2F704 */ uint32_t psx_brA_BFC2F6F8 = cpu->gpr[0]; uint32_t psx_brB_BFC2F6F8 = cpu->gpr[0]; @@ -123833,10 +151397,16 @@ label_BFC2F6F8: cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC2F6F8) goto label_BFC2F704; label_BFC2F700: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F700: 24030001 addiu $v1, $zero, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC2F704: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F704: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F704u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -123865,6 +151435,9 @@ void func_1FC2F718(CPUState* cpu) { } } label_BFC2F718: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F718: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -123876,6 +151449,9 @@ label_BFC2F718: cpu->gpr[31] = 0x80047728u; psx_dispatch(cpu, 0x8004F070u); label_BFC2F728: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F728: 0C016720 jal 0xB0059C80 */ /* 0xBFC2F72C: 00002021 addu $a0, $zero, $zero */ @@ -123883,6 +151459,9 @@ label_BFC2F728: cpu->gpr[31] = 0x80047730u; psx_dispatch(cpu, 0x80059C80u); label_BFC2F730: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F730: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -123894,6 +151473,9 @@ label_BFC2F730: cpu->gpr[31] = 0x80047740u; psx_dispatch(cpu, 0x8004F434u); label_BFC2F740: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F740: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -123905,6 +151487,9 @@ label_BFC2F740: cpu->gpr[31] = 0x80047750u; psx_dispatch(cpu, 0x8004F4ECu); label_BFC2F750: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F750: 3C048006 lui $a0, 0x8006 */ cpu->gpr[4] = 0x80060000u; @@ -123916,6 +151501,9 @@ label_BFC2F750: cpu->gpr[31] = 0x80047760u; psx_dispatch(cpu, 0x8004F3E0u); label_BFC2F760: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F760: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -123930,6 +151518,9 @@ label_BFC2F760: /* nop */ if (psx_taken_BFC2F76C) goto label_BFC2F784; label_BFC2F774: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F774: 240F0001 addiu $t7, $zero, 1 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -123942,12 +151533,18 @@ label_BFC2F774: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25052)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F780u); return; } g_debug_last_store_pc = 0xBFC2F780u; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC2F77C) goto label_BFC2F78C; label_BFC2F784: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F784: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; /* 0xBFC2F788: AC209E24 sw $zero, -25052($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25052)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F788u); return; } g_debug_last_store_pc = 0xBFC2F788u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC2F78C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F78C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F78Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -123970,6 +151567,9 @@ void func_1FC2F79C(CPUState* cpu) { } } label_BFC2F79C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(23u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F79C: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -124019,6 +151619,9 @@ label_BFC2F79C: cpu->gpr[31] = 0x800477F8u; psx_dispatch(cpu, 0x80051804u); label_BFC2F7F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F7F8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F7F8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -124041,6 +151644,9 @@ void func_1FC2F808(CPUState* cpu) { } } label_BFC2F808: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F808: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -124054,6 +151660,9 @@ label_BFC2F808: cpu->gpr[31] = 0x8004781Cu; psx_dispatch(cpu, 0x8005A014u); label_BFC2F81C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F81C: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -124068,6 +151677,9 @@ label_BFC2F81C: /* nop */ if (psx_taken_BFC2F828) goto label_BFC2F840; label_BFC2F830: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F830: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -124080,6 +151692,9 @@ label_BFC2F830: cpu->gpr[2] = cpu->gpr[3] & cpu->gpr[15]; if (psx_taken_BFC2F838) goto label_BFC2F84C; label_BFC2F840: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F840: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -124088,6 +151703,9 @@ label_BFC2F840: /* 0xBFC2F848: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; label_BFC2F84C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F84C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F84Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -124112,6 +151730,9 @@ void func_1FC2F85C(CPUState* cpu) { } } label_BFC2F85C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F85C: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -124126,6 +151747,9 @@ label_BFC2F85C: /* 0xBFC2F870: 24110004 addiu $s1, $zero, 4 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); label_BFC2F874: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F874: 0C011DA8 jal 0xB00476A0 */ /* 0xBFC2F878: 00000000 nop */ @@ -124133,6 +151757,9 @@ label_BFC2F874: cpu->gpr[31] = 0x8004787Cu; psx_dispatch(cpu, 0x800476A0u); label_BFC2F87C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F87C: 0C011DE7 jal 0xB004779C */ /* 0xBFC2F880: 00000000 nop */ @@ -124140,6 +151767,9 @@ label_BFC2F87C: cpu->gpr[31] = 0x80047884u; psx_dispatch(cpu, 0x8004779Cu); label_BFC2F884: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F884: 0C011DC6 jal 0xB0047718 */ /* 0xBFC2F888: 00000000 nop */ @@ -124147,6 +151777,9 @@ label_BFC2F884: cpu->gpr[31] = 0x8004788Cu; psx_dispatch(cpu, 0x80047718u); label_BFC2F88C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F88C: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -124157,6 +151790,9 @@ label_BFC2F88C: /* nop */ if (psx_taken_BFC2F890) goto label_BFC2F874; label_BFC2F898: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F898: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F898u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -124184,6 +151820,9 @@ void func_1FC2F8AC(CPUState* cpu) { } } label_BFC2F8AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(30u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F8AC: 27BDFFA8 addiu $sp, $sp, -88 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-88)); @@ -124248,10 +151887,16 @@ label_BFC2F8AC: /* nop */ if (psx_taken_BFC2F91C) goto label_BFC2F928; label_BFC2F924: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F924: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC2F924u); return; label_BFC2F928: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F928: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -124262,6 +151907,9 @@ label_BFC2F928: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC2F92C) goto label_BFC2F940; label_BFC2F934: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F934: 14410002 bne $v0, $at, 0xBFC2F940 */ uint32_t psx_brA_BFC2F934 = cpu->gpr[2]; uint32_t psx_brB_BFC2F934 = cpu->gpr[1]; @@ -124270,10 +151918,16 @@ label_BFC2F934: /* nop */ if (psx_taken_BFC2F934) goto label_BFC2F940; label_BFC2F93C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F93C: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC2F93Cu); return; label_BFC2F940: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F940: 16800002 bne $s4, $zero, 0xBFC2F94C */ uint32_t psx_brA_BFC2F940 = cpu->gpr[20]; uint32_t psx_brB_BFC2F940 = cpu->gpr[0]; @@ -124282,10 +151936,16 @@ label_BFC2F940: /* nop */ if (psx_taken_BFC2F940) goto label_BFC2F94C; label_BFC2F948: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F948: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC2F948u); return; label_BFC2F94C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F94C: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -124296,6 +151956,9 @@ label_BFC2F94C: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC2F950) goto label_BFC2F964; label_BFC2F958: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F958: 14610002 bne $v1, $at, 0xBFC2F964 */ uint32_t psx_brA_BFC2F958 = cpu->gpr[3]; uint32_t psx_brB_BFC2F958 = cpu->gpr[1]; @@ -124304,10 +151967,16 @@ label_BFC2F958: /* nop */ if (psx_taken_BFC2F958) goto label_BFC2F964; label_BFC2F960: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F960: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC2F960u); return; label_BFC2F964: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F964: 16800002 bne $s4, $zero, 0xBFC2F970 */ uint32_t psx_brA_BFC2F964 = cpu->gpr[20]; uint32_t psx_brB_BFC2F964 = cpu->gpr[0]; @@ -124316,10 +151985,16 @@ label_BFC2F964: /* nop */ if (psx_taken_BFC2F964) goto label_BFC2F970; label_BFC2F96C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F96C: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC2F96Cu); return; label_BFC2F970: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F970: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -124330,6 +152005,9 @@ label_BFC2F970: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC2F974) goto label_BFC2F988; label_BFC2F97C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F97C: 14A10002 bne $a1, $at, 0xBFC2F988 */ uint32_t psx_brA_BFC2F97C = cpu->gpr[5]; uint32_t psx_brB_BFC2F97C = cpu->gpr[1]; @@ -124338,10 +152016,16 @@ label_BFC2F97C: /* nop */ if (psx_taken_BFC2F97C) goto label_BFC2F988; label_BFC2F984: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F984: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC2F984u); return; label_BFC2F988: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F988: 06800034 bltz $s4, 0xBFC2FA5C */ uint32_t psx_brA_BFC2F988 = cpu->gpr[20]; @@ -124350,6 +152034,9 @@ label_BFC2F988: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F98Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC2F988) goto label_BFC2FA5C; label_BFC2F990: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F990: AFB00038 sw $s0, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F990u); return; } g_debug_last_store_pc = 0xBFC2F990u; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -124358,6 +152045,9 @@ label_BFC2F990: /* 0xBFC2F998: AFB20030 sw $s2, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2F998u); return; } g_debug_last_store_pc = 0xBFC2F998u; cpu->write_word(psx_addr, cpu->gpr[18]); } label_BFC2F99C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F99C: 16740008 bne $s3, $s4, 0xBFC2F9C0 */ uint32_t psx_brA_BFC2F99C = cpu->gpr[19]; uint32_t psx_brB_BFC2F99C = cpu->gpr[20]; @@ -124366,6 +152056,9 @@ label_BFC2F99C: /* nop */ if (psx_taken_BFC2F99C) goto label_BFC2F9C0; label_BFC2F9A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F9A4: 00028400 sll $s0, $v0, 16 */ cpu->gpr[16] = cpu->gpr[2] << 16u; @@ -124384,6 +152077,9 @@ label_BFC2F9A4: cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] >> 16u); if (psx_taken_BFC2F9B8) goto label_BFC2F9F0; label_BFC2F9C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F9C0: 02B30019 multu $s5, $s3 */ { uint64_t psx_p = (uint64_t)cpu->gpr[21] * (uint64_t)cpu->gpr[19]; cpu->lo = (uint32_t)(psx_p & 0xFFFFFFFFu); cpu->hi = (uint32_t)(psx_p >> 32); } @@ -124410,6 +152106,9 @@ label_BFC2F9C0: /* 0xBFC2F9EC: 00129403 sra $s2, $s2, 16 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] >> 16u); label_BFC2F9F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F9F0: 0C011DA8 jal 0xB00476A0 */ /* 0xBFC2F9F4: 00000000 nop */ @@ -124417,6 +152116,9 @@ label_BFC2F9F0: cpu->gpr[31] = 0x800479F8u; psx_dispatch(cpu, 0x800476A0u); label_BFC2F9F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2F9F8: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; @@ -124428,6 +152130,9 @@ label_BFC2F9F8: cpu->gpr[31] = 0x80047A08u; psx_dispatch(cpu, 0x80047C10u); label_BFC2FA08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FA08: 0C011DE7 jal 0xB004779C */ /* 0xBFC2FA0C: 00000000 nop */ @@ -124435,6 +152140,9 @@ label_BFC2FA08: cpu->gpr[31] = 0x80047A10u; psx_dispatch(cpu, 0x8004779Cu); label_BFC2FA10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FA10: 0C011DC6 jal 0xB0047718 */ /* 0xBFC2FA14: 00000000 nop */ @@ -124442,6 +152150,9 @@ label_BFC2FA10: cpu->gpr[31] = 0x80047A18u; psx_dispatch(cpu, 0x80047718u); label_BFC2FA18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FA18: 26730001 addiu $s3, $s3, 1 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (1)); @@ -124454,6 +152165,9 @@ label_BFC2FA18: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2FA24u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } if (psx_taken_BFC2FA20) goto label_BFC2FA4C; label_BFC2FA28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FA28: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -124474,10 +152188,16 @@ label_BFC2FA28: /* nop */ if (psx_taken_BFC2FA40) goto label_BFC2F99C; label_BFC2FA48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FA48: 8FB00038 lw $s0, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2FA48u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } label_BFC2FA4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FA4C: 8FB10034 lw $s1, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2FA4Cu); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -124488,6 +152208,9 @@ label_BFC2FA4C: /* 0xBFC2FA58: 8FBF002C lw $ra, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2FA58u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC2FA5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FA5C: 8FB30018 lw $s3, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2FA5Cu); return; } cpu->gpr[19] = cpu->read_word(psx_addr); } @@ -124520,6 +152243,9 @@ void func_1FC2FA78(CPUState* cpu) { } } label_BFC2FA78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(29u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FA78: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -124582,10 +152308,16 @@ label_BFC2FA78: /* nop */ if (psx_taken_BFC2FAE4) goto label_BFC2FAF0; label_BFC2FAEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FAEC: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC2FAECu); return; label_BFC2FAF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FAF0: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -124596,6 +152328,9 @@ label_BFC2FAF0: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC2FAF4) goto label_BFC2FB08; label_BFC2FAFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FAFC: 15C10002 bne $t6, $at, 0xBFC2FB08 */ uint32_t psx_brA_BFC2FAFC = cpu->gpr[14]; uint32_t psx_brB_BFC2FAFC = cpu->gpr[1]; @@ -124604,10 +152339,16 @@ label_BFC2FAFC: /* nop */ if (psx_taken_BFC2FAFC) goto label_BFC2FB08; label_BFC2FB04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FB04: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC2FB04u); return; label_BFC2FB08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FB08: 14800002 bne $a0, $zero, 0xBFC2FB14 */ uint32_t psx_brA_BFC2FB08 = cpu->gpr[4]; uint32_t psx_brB_BFC2FB08 = cpu->gpr[0]; @@ -124616,10 +152357,16 @@ label_BFC2FB08: /* nop */ if (psx_taken_BFC2FB08) goto label_BFC2FB14; label_BFC2FB10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FB10: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC2FB10u); return; label_BFC2FB14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FB14: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -124630,6 +152377,9 @@ label_BFC2FB14: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC2FB18) goto label_BFC2FB2C; label_BFC2FB20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FB20: 15E10002 bne $t7, $at, 0xBFC2FB2C */ uint32_t psx_brA_BFC2FB20 = cpu->gpr[15]; uint32_t psx_brB_BFC2FB20 = cpu->gpr[1]; @@ -124638,10 +152388,16 @@ label_BFC2FB20: /* nop */ if (psx_taken_BFC2FB20) goto label_BFC2FB2C; label_BFC2FB28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FB28: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC2FB28u); return; label_BFC2FB2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FB2C: 14800002 bne $a0, $zero, 0xBFC2FB38 */ uint32_t psx_brA_BFC2FB2C = cpu->gpr[4]; uint32_t psx_brB_BFC2FB2C = cpu->gpr[0]; @@ -124650,10 +152406,16 @@ label_BFC2FB2C: /* nop */ if (psx_taken_BFC2FB2C) goto label_BFC2FB38; label_BFC2FB34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FB34: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC2FB34u); return; label_BFC2FB38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FB38: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -124664,6 +152426,9 @@ label_BFC2FB38: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC2FB3C) goto label_BFC2FB50; label_BFC2FB44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FB44: 17010002 bne $t8, $at, 0xBFC2FB50 */ uint32_t psx_brA_BFC2FB44 = cpu->gpr[24]; uint32_t psx_brB_BFC2FB44 = cpu->gpr[1]; @@ -124672,10 +152437,16 @@ label_BFC2FB44: /* nop */ if (psx_taken_BFC2FB44) goto label_BFC2FB50; label_BFC2FB4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FB4C: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC2FB4Cu); return; label_BFC2FB50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FB50: 18800026 blez $a0, 0xBFC2FBEC */ uint32_t psx_brA_BFC2FB50 = cpu->gpr[4]; @@ -124684,6 +152455,9 @@ label_BFC2FB50: /* nop */ if (psx_taken_BFC2FB50) goto label_BFC2FBEC; label_BFC2FB58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FB58: 02930019 multu $s4, $s3 */ { uint64_t psx_p = (uint64_t)cpu->gpr[20] * (uint64_t)cpu->gpr[19]; cpu->lo = (uint32_t)(psx_p & 0xFFFFFFFFu); cpu->hi = (uint32_t)(psx_p >> 32); } @@ -124716,6 +152490,9 @@ label_BFC2FB58: /* 0xBFC2FB90: 00000000 nop */ /* nop */ label_BFC2FB94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FB94: 0C011DA8 jal 0xB00476A0 */ /* 0xBFC2FB98: 00000000 nop */ @@ -124723,6 +152500,9 @@ label_BFC2FB94: cpu->gpr[31] = 0x80047B9Cu; psx_dispatch(cpu, 0x800476A0u); label_BFC2FB9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FB9C: 00102400 sll $a0, $s0, 16 */ cpu->gpr[4] = cpu->gpr[16] << 16u; @@ -124740,6 +152520,9 @@ label_BFC2FB9C: cpu->gpr[31] = 0x80047BB8u; psx_dispatch(cpu, 0x80047C10u); label_BFC2FBB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FBB8: 0C011DE7 jal 0xB004779C */ /* 0xBFC2FBBC: 00000000 nop */ @@ -124747,6 +152530,9 @@ label_BFC2FBB8: cpu->gpr[31] = 0x80047BC0u; psx_dispatch(cpu, 0x8004779Cu); label_BFC2FBC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FBC0: 0C011DC6 jal 0xB0047718 */ /* 0xBFC2FBC4: 00000000 nop */ @@ -124754,6 +152540,9 @@ label_BFC2FBC0: cpu->gpr[31] = 0x80047BC8u; psx_dispatch(cpu, 0x80047718u); label_BFC2FBC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FBC8: 2673FFFF addiu $s3, $s3, -1 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (-1)); @@ -124768,6 +152557,9 @@ label_BFC2FBC8: cpu->gpr[18] = cpu->gpr[18] - cpu->gpr[22]; if (psx_taken_BFC2FBD4) goto label_BFC2FB94; label_BFC2FBDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FBDC: 8FB00034 lw $s0, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2FBDCu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -124778,6 +152570,9 @@ label_BFC2FBDC: /* 0xBFC2FBE8: 00000000 nop */ /* nop */ label_BFC2FBEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FBEC: 0C011E17 jal 0xB004785C */ /* 0xBFC2FBF0: 00000000 nop */ @@ -124785,6 +152580,9 @@ label_BFC2FBEC: cpu->gpr[31] = 0x80047BF4u; psx_dispatch(cpu, 0x8004785Cu); label_BFC2FBF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FBF4: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2FBF4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -124805,6 +152603,9 @@ label_BFC2FBF4: void func_1FC2FC10(CPUState* cpu) { debug_server_log_call_entry(0x1FC2FC10u); label_BFC2FC10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FC10: 00042400 sll $a0, $a0, 16 */ cpu->gpr[4] = cpu->gpr[4] << 16u; @@ -124849,6 +152650,9 @@ void func_1FC2FCC4(CPUState* cpu) { } } label_BFC2FCC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FCC4: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -124865,6 +152669,9 @@ label_BFC2FCC4: cpu->gpr[9] = cpu->gpr[6] + cpu->gpr[0]; if (psx_taken_BFC2FCD4) goto label_BFC2FE40; label_BFC2FCDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FCDC: A460000C sh $zero, 12($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (12)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2FCDCu); return; } g_debug_last_store_pc = 0xBFC2FCDCu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } @@ -124904,6 +152711,9 @@ label_BFC2FCDC: cpu->gpr[31] = 0x80047D24u; psx_dispatch(cpu, 0x800308B4u); label_BFC2FD24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FD24: 8FA80024 lw $t0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2FD24u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -124939,6 +152749,9 @@ label_BFC2FD24: cpu->gpr[31] = 0x80047D64u; psx_dispatch(cpu, 0x800308B4u); label_BFC2FD64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FD64: 1000003E beq $zero, $zero, 0xBFC2FE60 */ uint32_t psx_brA_BFC2FD64 = cpu->gpr[0]; uint32_t psx_brB_BFC2FD64 = cpu->gpr[0]; @@ -124947,6 +152760,9 @@ label_BFC2FD64: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2FD68u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC2FD64) goto label_BFC2FE60; label_BFC2FD6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FD6C: A460000C sh $zero, 12($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (12)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2FD6Cu); return; } g_debug_last_store_pc = 0xBFC2FD6Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } @@ -124986,6 +152802,9 @@ label_BFC2FD6C: cpu->gpr[31] = 0x80047DB4u; psx_dispatch(cpu, 0x80047F34u); label_BFC2FDB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FDB4: 8FA80024 lw $t0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2FDB4u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -125021,6 +152840,9 @@ label_BFC2FDB4: cpu->gpr[31] = 0x80047DF4u; psx_dispatch(cpu, 0x80047F34u); label_BFC2FDF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FDF4: 1000001A beq $zero, $zero, 0xBFC2FE60 */ uint32_t psx_brA_BFC2FDF4 = cpu->gpr[0]; uint32_t psx_brB_BFC2FDF4 = cpu->gpr[0]; @@ -125029,6 +152851,9 @@ label_BFC2FDF4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2FDF8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC2FDF4) goto label_BFC2FE60; label_BFC2FDFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FDFC: 01090019 multu $t0, $t1 */ { uint64_t psx_p = (uint64_t)cpu->gpr[8] * (uint64_t)cpu->gpr[9]; cpu->lo = (uint32_t)(psx_p & 0xFFFFFFFFu); cpu->hi = (uint32_t)(psx_p >> 32); } @@ -125062,6 +152887,9 @@ label_BFC2FDFC: cpu->gpr[31] = 0x80047E38u; psx_dispatch(cpu, 0x80047F34u); label_BFC2FE38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FE38: 10000009 beq $zero, $zero, 0xBFC2FE60 */ uint32_t psx_brA_BFC2FE38 = cpu->gpr[0]; uint32_t psx_brB_BFC2FE38 = cpu->gpr[0]; @@ -125070,6 +152898,9 @@ label_BFC2FE38: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2FE3Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC2FE38) goto label_BFC2FE60; label_BFC2FE40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FE40: 10E0FFA6 beq $a3, $zero, 0xBFC2FCDC */ uint32_t psx_brA_BFC2FE40 = cpu->gpr[7]; uint32_t psx_brB_BFC2FE40 = cpu->gpr[0]; @@ -125078,6 +152909,9 @@ label_BFC2FE40: /* nop */ if (psx_taken_BFC2FE40) goto label_BFC2FCDC; label_BFC2FE48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FE48: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -125088,6 +152922,9 @@ label_BFC2FE48: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC2FE4C) goto label_BFC2FD6C; label_BFC2FE54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FE54: 10E1FFE9 beq $a3, $at, 0xBFC2FDFC */ uint32_t psx_brA_BFC2FE54 = cpu->gpr[7]; uint32_t psx_brB_BFC2FE54 = cpu->gpr[1]; @@ -125096,10 +152933,16 @@ label_BFC2FE54: /* nop */ if (psx_taken_BFC2FE54) goto label_BFC2FDFC; label_BFC2FE5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FE5C: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2FE5Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC2FE60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FE60: 27BD0020 addiu $sp, $sp, 32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (32)); @@ -125121,6 +152964,9 @@ void func_1FC2FE6C(CPUState* cpu) { } } label_BFC2FE6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FE6C: 27BDFFD0 addiu $sp, $sp, -48 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-48)); @@ -125156,6 +153002,9 @@ label_BFC2FE6C: cpu->gpr[31] = 0x80047EACu; psx_dispatch(cpu, 0x80059C80u); label_BFC2FEAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FEAC: 10400005 beq $v0, $zero, 0xBFC2FEC4 */ uint32_t psx_brA_BFC2FEAC = cpu->gpr[2]; uint32_t psx_brB_BFC2FEAC = cpu->gpr[0]; @@ -125164,6 +153013,9 @@ label_BFC2FEAC: /* nop */ if (psx_taken_BFC2FEAC) goto label_BFC2FEC4; label_BFC2FEB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FEB4: 87A8002A lh $t0, 42($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (42)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2FEB4u); return; } cpu->gpr[8] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -125174,6 +153026,9 @@ label_BFC2FEB4: /* 0xBFC2FEC0: A7A9002A sh $t1, 42($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (42)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2FEC0u); return; } g_debug_last_store_pc = 0xBFC2FEC0u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[9] & 0xFFFFu)); } label_BFC2FEC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FEC4: 860B0002 lh $t3, 2($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2FEC4u); return; } cpu->gpr[11] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -125192,6 +153047,9 @@ label_BFC2FEC4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2FEDCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC2FED8) goto label_BFC2FF24; label_BFC2FEE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FEE0: 27A40028 addiu $a0, $sp, 40 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (40)); @@ -125201,6 +153059,9 @@ label_BFC2FEE0: cpu->gpr[31] = 0x80047EECu; psx_dispatch(cpu, 0x8004F0F4u); label_BFC2FEEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FEEC: 87B8002A lh $t8, 42($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (42)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2FEECu); return; } cpu->gpr[24] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -125231,10 +153092,16 @@ label_BFC2FEEC: cpu->gpr[17] = cpu->gpr[17] + cpu->gpr[15]; if (psx_taken_BFC2FF18) goto label_BFC2FEE0; label_BFC2FF20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FF20: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2FF20u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC2FF24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FF24: 8FB00014 lw $s0, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC2FF24u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -125249,6 +153116,9 @@ label_BFC2FF24: void func_1FC2FF34(CPUState* cpu) { debug_server_log_call_entry(0x1FC2FF34u); label_BFC2FF34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FF34: 00C01021 addu $v0, $a2, $zero */ cpu->gpr[2] = cpu->gpr[6] + cpu->gpr[0]; @@ -125259,6 +153129,9 @@ label_BFC2FF34: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (-1)); if (psx_taken_BFC2FF38) goto label_BFC2FF5C; label_BFC2FF40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FF40: 808E0000 lb $t6, 0($a0) */ cpu->gpr[14] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (0))); @@ -125277,6 +153150,9 @@ label_BFC2FF40: g_debug_last_store_pc = 0xBFC2FF58u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[5] + (-1)), (uint8_t)(cpu->gpr[14] & 0xFFu)); if (psx_taken_BFC2FF54) goto label_BFC2FF40; label_BFC2FF5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC2FF5C: 03E00008 jr $ra */ /* 0xBFC2FF60: 00000000 nop */ @@ -125296,6 +153172,9 @@ void func_1FC3010C(CPUState* cpu) { } } label_BFC3010C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3010C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -125315,6 +153194,9 @@ label_BFC3010C: cpu->gpr[31] = 0x8004812Cu; psx_dispatch(cpu, 0x80051A3Cu); label_BFC3012C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3012C: 8FA30018 lw $v1, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3012Cu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -125324,6 +153206,9 @@ label_BFC3012C: cpu->gpr[31] = 0x80048138u; psx_dispatch(cpu, 0x80051A3Cu); label_BFC30138: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC30138: 8FA30018 lw $v1, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC30138u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -125357,6 +153242,9 @@ void func_1FC3015C(CPUState* cpu) { } } label_BFC3015C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3015C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -125376,6 +153264,9 @@ label_BFC3015C: cpu->gpr[31] = 0x8004817Cu; psx_dispatch(cpu, 0x8005199Cu); label_BFC3017C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3017C: 8FA30018 lw $v1, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3017Cu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -125385,6 +153276,9 @@ label_BFC3017C: cpu->gpr[31] = 0x80048188u; psx_dispatch(cpu, 0x8005199Cu); label_BFC30188: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC30188: 8FA30018 lw $v1, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC30188u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -125418,6 +153312,9 @@ void func_1FC301AC(CPUState* cpu) { } } label_BFC301AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC301AC: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -125444,6 +153341,9 @@ label_BFC301AC: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] >> 16u); if (psx_taken_BFC301D0) goto label_BFC30208; label_BFC301D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC301D8: 87AE0038 lh $t6, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC301D8u); return; } cpu->gpr[14] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -125455,6 +153355,9 @@ label_BFC301D8: cpu->gpr[31] = 0x800481E8u; psx_dispatch(cpu, 0x800483A4u); label_BFC301E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC301E8: 1000000D beq $zero, $zero, 0xBFC30220 */ uint32_t psx_brA_BFC301E8 = cpu->gpr[0]; uint32_t psx_brB_BFC301E8 = cpu->gpr[0]; @@ -125463,10 +153366,16 @@ label_BFC301E8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC301ECu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC301E8) goto label_BFC30220; label_BFC301F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC301F0: 87AF0038 lh $t7, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC301F0u); return; } cpu->gpr[15] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } label_BFC301F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC301F4: 24640030 addiu $a0, $v1, 48 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[3] + (48)); @@ -125476,6 +153385,9 @@ label_BFC301F4: cpu->gpr[31] = 0x80048200u; psx_dispatch(cpu, 0x8004841Cu); label_BFC30200: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC30200: 10000007 beq $zero, $zero, 0xBFC30220 */ uint32_t psx_brA_BFC30200 = cpu->gpr[0]; uint32_t psx_brB_BFC30200 = cpu->gpr[0]; @@ -125484,6 +153396,9 @@ label_BFC30200: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC30204u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC30200) goto label_BFC30220; label_BFC30208: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC30208: 2401000D addiu $at, $zero, 13 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (13)); @@ -125494,6 +153409,9 @@ label_BFC30208: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (14)); if (psx_taken_BFC3020C) goto label_BFC301D8; label_BFC30214: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC30214: 1041FFF7 beq $v0, $at, 0xBFC301F4 */ uint32_t psx_brA_BFC30214 = cpu->gpr[2]; uint32_t psx_brB_BFC30214 = cpu->gpr[1]; @@ -125502,10 +153420,16 @@ label_BFC30214: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC30218u); return; } cpu->gpr[15] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } if (psx_taken_BFC30214) goto label_BFC301F4; label_BFC3021C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3021C: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3021Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC30220: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC30220: 27BD0028 addiu $sp, $sp, 40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (40)); @@ -125527,6 +153451,9 @@ void func_1FC3022C(CPUState* cpu) { } } label_BFC3022C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC3022C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -125553,6 +153480,9 @@ label_BFC3022C: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] >> 16u); if (psx_taken_BFC30250) goto label_BFC30278; label_BFC30258: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC30258: 0C01212D jal 0xB00484B4 */ /* 0xBFC3025C: 24640030 addiu $a0, $v1, 48 */ @@ -125560,6 +153490,9 @@ label_BFC30258: cpu->gpr[31] = 0x80048260u; psx_dispatch(cpu, 0x800484B4u); label_BFC30260: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC30260: 1000000B beq $zero, $zero, 0xBFC30290 */ uint32_t psx_brA_BFC30260 = cpu->gpr[0]; uint32_t psx_brB_BFC30260 = cpu->gpr[0]; @@ -125568,6 +153501,9 @@ label_BFC30260: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC30264u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC30260) goto label_BFC30290; label_BFC30268: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC30268: 0C012145 jal 0xB0048514 */ /* 0xBFC3026C: 24640030 addiu $a0, $v1, 48 */ @@ -125575,6 +153511,9 @@ label_BFC30268: cpu->gpr[31] = 0x80048270u; psx_dispatch(cpu, 0x80048514u); label_BFC30270: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC30270: 10000007 beq $zero, $zero, 0xBFC30290 */ uint32_t psx_brA_BFC30270 = cpu->gpr[0]; uint32_t psx_brB_BFC30270 = cpu->gpr[0]; @@ -125583,6 +153522,9 @@ label_BFC30270: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC30274u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC30270) goto label_BFC30290; label_BFC30278: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC30278: 2401000D addiu $at, $zero, 13 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (13)); @@ -125593,6 +153535,9 @@ label_BFC30278: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (14)); if (psx_taken_BFC3027C) goto label_BFC30258; label_BFC30284: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC30284: 1041FFF8 beq $v0, $at, 0xBFC30268 */ uint32_t psx_brA_BFC30284 = cpu->gpr[2]; uint32_t psx_brB_BFC30284 = cpu->gpr[1]; @@ -125601,10 +153546,16 @@ label_BFC30284: /* nop */ if (psx_taken_BFC30284) goto label_BFC30268; label_BFC3028C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3028C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3028Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC30290: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC30290: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -125625,6 +153576,9 @@ void func_1FC3029C(CPUState* cpu) { } } label_BFC3029C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3029C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -125636,6 +153590,9 @@ label_BFC3029C: cpu->gpr[31] = 0x800482ACu; psx_dispatch(cpu, 0x800482BCu); label_BFC302AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC302AC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC302ACu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -125659,6 +153616,9 @@ void func_1FC302BC(CPUState* cpu) { } } label_BFC302BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC302BC: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -125673,6 +153633,9 @@ label_BFC302BC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (13)); if (psx_taken_BFC302C8) goto label_BFC302FC; label_BFC302D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC302D0: 24850030 addiu $a1, $a0, 48 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[4] + (48)); @@ -125682,6 +153645,9 @@ label_BFC302D0: cpu->gpr[31] = 0x800482DCu; psx_dispatch(cpu, 0x8004879Cu); label_BFC302DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC302DC: 1000000C beq $zero, $zero, 0xBFC30310 */ uint32_t psx_brA_BFC302DC = cpu->gpr[0]; uint32_t psx_brB_BFC302DC = cpu->gpr[0]; @@ -125690,10 +153656,16 @@ label_BFC302DC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC302E0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC302DC) goto label_BFC30310; label_BFC302E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC302E4: 24850030 addiu $a1, $a0, 48 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[4] + (48)); label_BFC302E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC302E8: 0C01221A jal 0xB0048868 */ /* 0xBFC302EC: 2486000C addiu $a2, $a0, 12 */ @@ -125701,6 +153673,9 @@ label_BFC302E8: cpu->gpr[31] = 0x800482F0u; psx_dispatch(cpu, 0x80048868u); label_BFC302F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC302F0: 10000007 beq $zero, $zero, 0xBFC30310 */ uint32_t psx_brA_BFC302F0 = cpu->gpr[0]; uint32_t psx_brB_BFC302F0 = cpu->gpr[0]; @@ -125709,10 +153684,16 @@ label_BFC302F0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC302F4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC302F0) goto label_BFC30310; label_BFC302F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC302F8: 2401000D addiu $at, $zero, 13 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (13)); label_BFC302FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC302FC: 1041FFF4 beq $v0, $at, 0xBFC302D0 */ uint32_t psx_brA_BFC302FC = cpu->gpr[2]; uint32_t psx_brB_BFC302FC = cpu->gpr[1]; @@ -125721,6 +153702,9 @@ label_BFC302FC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (14)); if (psx_taken_BFC302FC) goto label_BFC302D0; label_BFC30304: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC30304: 1041FFF8 beq $v0, $at, 0xBFC302E8 */ uint32_t psx_brA_BFC30304 = cpu->gpr[2]; uint32_t psx_brB_BFC30304 = cpu->gpr[1]; @@ -125729,10 +153713,16 @@ label_BFC30304: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[4] + (48)); if (psx_taken_BFC30304) goto label_BFC302E8; label_BFC3030C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3030C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3030Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC30310: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC30310: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -125753,6 +153743,9 @@ void func_1FC3031C(CPUState* cpu) { } } label_BFC3031C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3031C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -125774,6 +153767,9 @@ label_BFC3031C: cpu->gpr[31] = 0x80048340u; psx_dispatch(cpu, 0x800482BCu); label_BFC30340: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC30340: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC30340u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -125796,6 +153792,9 @@ void func_1FC30350(CPUState* cpu) { } } label_BFC30350: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC30350: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -125825,6 +153824,9 @@ label_BFC30350: cpu->gpr[31] = 0x80048384u; psx_dispatch(cpu, 0x800482BCu); label_BFC30384: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC30384: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC30384u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -125839,6 +153841,9 @@ label_BFC30384: void func_1FC303A4(CPUState* cpu) { debug_server_log_call_entry(0x1FC303A4u); label_BFC303A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC303A4: 00052C00 sll $a1, $a1, 16 */ cpu->gpr[5] = cpu->gpr[5] << 16u; @@ -125857,6 +153862,9 @@ label_BFC303A4: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] >> 16u); if (psx_taken_BFC303B8) goto label_BFC303FC; label_BFC303C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC303C0: A0860004 sb $a2, 4($a0) */ g_debug_last_store_pc = 0xBFC303C0u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (4)), (uint8_t)(cpu->gpr[6] & 0xFFu)); @@ -125869,6 +153877,9 @@ label_BFC303C0: g_debug_last_store_pc = 0xBFC303D0u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (6)), (uint8_t)(cpu->gpr[14] & 0xFFu)); return; label_BFC303D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC303D4: A086000C sb $a2, 12($a0) */ g_debug_last_store_pc = 0xBFC303D4u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (12)), (uint8_t)(cpu->gpr[6] & 0xFFu)); @@ -125881,6 +153892,9 @@ label_BFC303D4: g_debug_last_store_pc = 0xBFC303E4u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (14)), (uint8_t)(cpu->gpr[15] & 0xFFu)); return; label_BFC303E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC303E8: A0860014 sb $a2, 20($a0) */ g_debug_last_store_pc = 0xBFC303E8u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (20)), (uint8_t)(cpu->gpr[6] & 0xFFu)); @@ -125893,6 +153907,9 @@ label_BFC303E8: g_debug_last_store_pc = 0xBFC303F8u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (22)), (uint8_t)(cpu->gpr[24] & 0xFFu)); return; label_BFC303FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC303FC: 10A0FFF0 beq $a1, $zero, 0xBFC303C0 */ uint32_t psx_brA_BFC303FC = cpu->gpr[5]; uint32_t psx_brB_BFC303FC = cpu->gpr[0]; @@ -125901,6 +153918,9 @@ label_BFC303FC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC303FC) goto label_BFC303C0; label_BFC30404: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC30404: 10A1FFF3 beq $a1, $at, 0xBFC303D4 */ uint32_t psx_brA_BFC30404 = cpu->gpr[5]; uint32_t psx_brB_BFC30404 = cpu->gpr[1]; @@ -125909,6 +153929,9 @@ label_BFC30404: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC30404) goto label_BFC303D4; label_BFC3040C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3040C: 10A1FFF6 beq $a1, $at, 0xBFC303E8 */ uint32_t psx_brA_BFC3040C = cpu->gpr[5]; uint32_t psx_brB_BFC3040C = cpu->gpr[1]; @@ -125917,6 +153940,9 @@ label_BFC3040C: /* nop */ if (psx_taken_BFC3040C) goto label_BFC303E8; label_BFC30414: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC30414: 03E00008 jr $ra */ /* 0xBFC30418: 00000000 nop */ @@ -125927,6 +153953,9 @@ label_BFC30414: void func_1FC3041C(CPUState* cpu) { debug_server_log_call_entry(0x1FC3041Cu); label_BFC3041C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3041C: 00052C00 sll $a1, $a1, 16 */ cpu->gpr[5] = cpu->gpr[5] << 16u; @@ -125949,6 +153978,9 @@ label_BFC3041C: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] >> 16u); if (psx_taken_BFC30438) { cpu->pc = 0xBFC304ACu; return; } label_BFC30440: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC30440: 00027080 sll $t6, $v0, 2 */ cpu->gpr[14] = cpu->gpr[2] << 2u; @@ -125969,6 +154001,9 @@ label_BFC30440: void func_1FC3045C(CPUState* cpu) { debug_server_log_call_entry(0x1FC3045Cu); label_BFC3045C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3045C: A0860004 sb $a2, 4($a0) */ g_debug_last_store_pc = 0xBFC3045Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (4)), (uint8_t)(cpu->gpr[6] & 0xFFu)); @@ -125985,6 +154020,9 @@ label_BFC3045C: void func_1FC30470(CPUState* cpu) { debug_server_log_call_entry(0x1FC30470u); label_BFC30470: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC30470: A086000C sb $a2, 12($a0) */ g_debug_last_store_pc = 0xBFC30470u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (12)), (uint8_t)(cpu->gpr[6] & 0xFFu)); @@ -126001,6 +154039,9 @@ label_BFC30470: void func_1FC30484(CPUState* cpu) { debug_server_log_call_entry(0x1FC30484u); label_BFC30484: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC30484: A0860014 sb $a2, 20($a0) */ g_debug_last_store_pc = 0xBFC30484u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (20)), (uint8_t)(cpu->gpr[6] & 0xFFu)); @@ -126017,6 +154058,9 @@ label_BFC30484: void func_1FC30498(CPUState* cpu) { debug_server_log_call_entry(0x1FC30498u); label_BFC30498: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC30498: A086001C sb $a2, 28($a0) */ g_debug_last_store_pc = 0xBFC30498u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (28)), (uint8_t)(cpu->gpr[6] & 0xFFu)); @@ -126033,6 +154077,9 @@ label_BFC30498: void func_1FC304B4(CPUState* cpu) { debug_server_log_call_entry(0x1FC304B4u); label_BFC304B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC304B4: 00052C00 sll $a1, $a1, 16 */ cpu->gpr[5] = cpu->gpr[5] << 16u; @@ -126051,6 +154098,9 @@ label_BFC304B4: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] >> 16u); if (psx_taken_BFC304C8) goto label_BFC304F4; label_BFC304D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC304D0: A4860008 sh $a2, 8($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (8)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC304D0u); return; } g_debug_last_store_pc = 0xBFC304D0u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[6] & 0xFFFFu)); } @@ -126059,6 +154109,9 @@ label_BFC304D0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (10)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC304D8u); return; } g_debug_last_store_pc = 0xBFC304D8u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[7] & 0xFFFFu)); } return; label_BFC304DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC304DC: A4860010 sh $a2, 16($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (16)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC304DCu); return; } g_debug_last_store_pc = 0xBFC304DCu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[6] & 0xFFFFu)); } @@ -126067,6 +154120,9 @@ label_BFC304DC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (18)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC304E4u); return; } g_debug_last_store_pc = 0xBFC304E4u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[7] & 0xFFFFu)); } return; label_BFC304E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC304E8: A4860018 sh $a2, 24($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (24)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC304E8u); return; } g_debug_last_store_pc = 0xBFC304E8u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[6] & 0xFFFFu)); } @@ -126075,6 +154131,9 @@ label_BFC304E8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (26)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC304F0u); return; } g_debug_last_store_pc = 0xBFC304F0u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[7] & 0xFFFFu)); } return; label_BFC304F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC304F4: 10A0FFF6 beq $a1, $zero, 0xBFC304D0 */ uint32_t psx_brA_BFC304F4 = cpu->gpr[5]; uint32_t psx_brB_BFC304F4 = cpu->gpr[0]; @@ -126083,6 +154142,9 @@ label_BFC304F4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC304F4) goto label_BFC304D0; label_BFC304FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC304FC: 10A1FFF7 beq $a1, $at, 0xBFC304DC */ uint32_t psx_brA_BFC304FC = cpu->gpr[5]; uint32_t psx_brB_BFC304FC = cpu->gpr[1]; @@ -126091,6 +154153,9 @@ label_BFC304FC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC304FC) goto label_BFC304DC; label_BFC30504: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC30504: 10A1FFF8 beq $a1, $at, 0xBFC304E8 */ uint32_t psx_brA_BFC30504 = cpu->gpr[5]; uint32_t psx_brB_BFC30504 = cpu->gpr[1]; @@ -126099,6 +154164,9 @@ label_BFC30504: /* nop */ if (psx_taken_BFC30504) goto label_BFC304E8; label_BFC3050C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3050C: 03E00008 jr $ra */ /* 0xBFC30510: 00000000 nop */ @@ -126109,6 +154177,9 @@ label_BFC3050C: void func_1FC30514(CPUState* cpu) { debug_server_log_call_entry(0x1FC30514u); label_BFC30514: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC30514: 00052C00 sll $a1, $a1, 16 */ cpu->gpr[5] = cpu->gpr[5] << 16u; @@ -126131,6 +154202,9 @@ label_BFC30514: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] >> 16u); if (psx_taken_BFC30530) { cpu->pc = 0xBFC30584u; return; } label_BFC30538: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC30538: 00027080 sll $t6, $v0, 2 */ cpu->gpr[14] = cpu->gpr[2] << 2u; @@ -126151,6 +154225,9 @@ label_BFC30538: void func_1FC30554(CPUState* cpu) { debug_server_log_call_entry(0x1FC30554u); label_BFC30554: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC30554: A4860008 sh $a2, 8($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (8)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC30554u); return; } g_debug_last_store_pc = 0xBFC30554u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[6] & 0xFFFFu)); } @@ -126163,6 +154240,9 @@ label_BFC30554: void func_1FC30560(CPUState* cpu) { debug_server_log_call_entry(0x1FC30560u); label_BFC30560: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC30560: A4860010 sh $a2, 16($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (16)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC30560u); return; } g_debug_last_store_pc = 0xBFC30560u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[6] & 0xFFFFu)); } @@ -126175,6 +154255,9 @@ label_BFC30560: void func_1FC3056C(CPUState* cpu) { debug_server_log_call_entry(0x1FC3056Cu); label_BFC3056C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3056C: A4860018 sh $a2, 24($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (24)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3056Cu); return; } g_debug_last_store_pc = 0xBFC3056Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[6] & 0xFFFFu)); } @@ -126187,6 +154270,9 @@ label_BFC3056C: void func_1FC30578(CPUState* cpu) { debug_server_log_call_entry(0x1FC30578u); label_BFC30578: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC30578: A4860020 sh $a2, 32($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (32)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC30578u); return; } g_debug_last_store_pc = 0xBFC30578u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[6] & 0xFFFFu)); } @@ -126199,6 +154285,9 @@ label_BFC30578: void func_1FC3058C(CPUState* cpu) { debug_server_log_call_entry(0x1FC3058Cu); label_BFC3058C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC3058C: 848E0008 lh $t6, 8($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (8)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3058Cu); return; } cpu->gpr[14] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -126243,10 +154332,16 @@ label_BFC3058C: cpu->gpr[1] = cpu->gpr[15] + cpu->gpr[0]; if (psx_taken_BFC305D4) goto label_BFC305E0; label_BFC305DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC305DC: 24210FFF addiu $at, $at, 4095 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (4095)); label_BFC305E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC305E0: 0001C303 sra $t8, $at, 12 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[1] >> 12u); @@ -126267,10 +154362,16 @@ label_BFC305E0: cpu->gpr[1] = cpu->gpr[8] + cpu->gpr[0]; if (psx_taken_BFC305F8) goto label_BFC30604; label_BFC30600: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC30600: 24210FFF addiu $at, $at, 4095 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (4095)); label_BFC30604: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC30604: 00014B03 sra $t1, $at, 12 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[1] >> 12u); @@ -126291,10 +154392,16 @@ label_BFC30604: cpu->gpr[1] = cpu->gpr[11] + cpu->gpr[0]; if (psx_taken_BFC3061C) goto label_BFC30628; label_BFC30624: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC30624: 24210FFF addiu $at, $at, 4095 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (4095)); label_BFC30628: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC30628: 00016303 sra $t4, $at, 12 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[1] >> 12u); @@ -126307,10 +154414,16 @@ label_BFC30628: cpu->gpr[1] = cpu->gpr[14] + cpu->gpr[0]; if (psx_taken_BFC30630) goto label_BFC3063C; label_BFC30638: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC30638: 24210FFF addiu $at, $at, 4095 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (4095)); label_BFC3063C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3063C: 00017B03 sra $t7, $at, 12 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[1] >> 12u); @@ -126323,10 +154436,16 @@ label_BFC3063C: cpu->gpr[1] = cpu->gpr[25] + cpu->gpr[0]; if (psx_taken_BFC30644) goto label_BFC30650; label_BFC3064C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3064C: 24210FFF addiu $at, $at, 4095 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (4095)); label_BFC30650: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC30650: 00014303 sra $t0, $at, 12 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[1] >> 12u); @@ -126339,10 +154458,16 @@ label_BFC30650: cpu->gpr[1] = cpu->gpr[10] + cpu->gpr[0]; if (psx_taken_BFC30658) goto label_BFC30664; label_BFC30660: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC30660: 24210FFF addiu $at, $at, 4095 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (4095)); label_BFC30664: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC30664: 00015B03 sra $t3, $at, 12 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[1] >> 12u); @@ -126355,6 +154480,9 @@ label_BFC30664: void func_1FC30670(CPUState* cpu) { debug_server_log_call_entry(0x1FC30670u); label_BFC30670: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC30670: 848E0008 lh $t6, 8($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (8)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC30670u); return; } cpu->gpr[14] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -126399,10 +154527,16 @@ label_BFC30670: cpu->gpr[1] = cpu->gpr[15] + cpu->gpr[0]; if (psx_taken_BFC306B8) goto label_BFC306C4; label_BFC306C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC306C0: 24210FFF addiu $at, $at, 4095 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (4095)); label_BFC306C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC306C4: 0001C303 sra $t8, $at, 12 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[1] >> 12u); @@ -126423,10 +154557,16 @@ label_BFC306C4: cpu->gpr[1] = cpu->gpr[8] + cpu->gpr[0]; if (psx_taken_BFC306DC) goto label_BFC306E8; label_BFC306E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC306E4: 24210FFF addiu $at, $at, 4095 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (4095)); label_BFC306E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC306E8: 00014B03 sra $t1, $at, 12 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[1] >> 12u); @@ -126447,10 +154587,16 @@ label_BFC306E8: cpu->gpr[1] = cpu->gpr[11] + cpu->gpr[0]; if (psx_taken_BFC30700) goto label_BFC3070C; label_BFC30708: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC30708: 24210FFF addiu $at, $at, 4095 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (4095)); label_BFC3070C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3070C: 00016303 sra $t4, $at, 12 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[1] >> 12u); @@ -126471,10 +154617,16 @@ label_BFC3070C: cpu->gpr[1] = cpu->gpr[14] + cpu->gpr[0]; if (psx_taken_BFC30724) goto label_BFC30730; label_BFC3072C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3072C: 24210FFF addiu $at, $at, 4095 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (4095)); label_BFC30730: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC30730: 00017B03 sra $t7, $at, 12 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[1] >> 12u); @@ -126495,10 +154647,16 @@ label_BFC30730: cpu->gpr[1] = cpu->gpr[25] + cpu->gpr[0]; if (psx_taken_BFC30748) goto label_BFC30754; label_BFC30750: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC30750: 24210FFF addiu $at, $at, 4095 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (4095)); label_BFC30754: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC30754: 00014303 sra $t0, $at, 12 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[1] >> 12u); @@ -126511,10 +154669,16 @@ label_BFC30754: cpu->gpr[1] = cpu->gpr[10] + cpu->gpr[0]; if (psx_taken_BFC3075C) goto label_BFC30768; label_BFC30764: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC30764: 24210FFF addiu $at, $at, 4095 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (4095)); label_BFC30768: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC30768: 00015B03 sra $t3, $at, 12 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[1] >> 12u); @@ -126527,10 +154691,16 @@ label_BFC30768: cpu->gpr[1] = cpu->gpr[13] + cpu->gpr[0]; if (psx_taken_BFC30770) goto label_BFC3077C; label_BFC30778: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC30778: 24210FFF addiu $at, $at, 4095 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (4095)); label_BFC3077C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3077C: 00017303 sra $t6, $at, 12 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[1] >> 12u); @@ -126543,10 +154713,16 @@ label_BFC3077C: cpu->gpr[1] = cpu->gpr[24] + cpu->gpr[0]; if (psx_taken_BFC30784) goto label_BFC30790; label_BFC3078C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3078C: 24210FFF addiu $at, $at, 4095 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (4095)); label_BFC30790: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC30790: 0001CB03 sra $t9, $at, 12 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[1] >> 12u); @@ -126568,6 +154744,9 @@ void func_1FC3079C(CPUState* cpu) { } } label_BFC3079C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3079C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -126589,6 +154768,9 @@ label_BFC3079C: cpu->gpr[31] = 0x800487C0u; psx_dispatch(cpu, 0x800308B4u); label_BFC307C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC307C0: 8FA70018 lw $a3, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC307C0u); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } @@ -126602,6 +154784,9 @@ label_BFC307C0: cpu->gpr[31] = 0x800487D4u; psx_dispatch(cpu, 0x8004858Cu); label_BFC307D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(37u); +#endif psx_check_interrupts(cpu); /* 0xBFC307D4: 8FA30020 lw $v1, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC307D4u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -126691,6 +154876,9 @@ void func_1FC30868(CPUState* cpu) { } } label_BFC30868: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC30868: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -126712,6 +154900,9 @@ label_BFC30868: cpu->gpr[31] = 0x8004888Cu; psx_dispatch(cpu, 0x800308B4u); label_BFC3088C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3088C: 8FA70018 lw $a3, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3088Cu); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } @@ -126725,6 +154916,9 @@ label_BFC3088C: cpu->gpr[31] = 0x800488A0u; psx_dispatch(cpu, 0x80048670u); label_BFC308A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(47u); +#endif psx_check_interrupts(cpu); /* 0xBFC308A0: 8FA30020 lw $v1, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC308A0u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -126837,6 +155031,9 @@ void func_1FC30960(CPUState* cpu) { } } label_BFC30960: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC30960: 27BDFF58 addiu $sp, $sp, -168 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-168)); @@ -126868,6 +155065,9 @@ label_BFC30960: cpu->gpr[31] = 0x80048998u; psx_dispatch(cpu, 0x8005154Cu); label_BFC30998: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC30998: 240F0001 addiu $t7, $zero, 1 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -126879,6 +155079,9 @@ label_BFC30998: cpu->gpr[31] = 0x800489A8u; psx_dispatch(cpu, 0x8004F434u); label_BFC309A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC309A8: 8FB900AC lw $t9, 172($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC309A8u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -126900,6 +155103,9 @@ label_BFC309A8: cpu->gpr[31] = 0x800489CCu; psx_dispatch(cpu, 0x80051BA4u); label_BFC309CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC309CC: 87A90034 lh $t1, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC309CCu); return; } cpu->gpr[9] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -126939,6 +155145,9 @@ label_BFC309CC: cpu->gpr[31] = 0x80048A14u; psx_dispatch(cpu, 0x8004F368u); label_BFC30A14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC30A14: 27A40034 addiu $a0, $sp, 52 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (52)); @@ -126948,6 +155157,9 @@ label_BFC30A14: cpu->gpr[31] = 0x80048A20u; psx_dispatch(cpu, 0x8004F130u); label_BFC30A20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(24u); +#endif psx_check_interrupts(cpu); /* 0xBFC30A20: 24180010 addiu $t8, $zero, 16 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); @@ -127023,6 +155235,9 @@ void func_1FC30A80(CPUState* cpu) { } } label_BFC30A80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(21u); +#endif psx_check_interrupts(cpu); /* 0xBFC30A80: 27BDFF20 addiu $sp, $sp, -224 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-224)); @@ -127068,6 +155283,9 @@ label_BFC30A80: cpu->gpr[31] = 0x80048AD4u; psx_dispatch(cpu, 0x8005154Cu); label_BFC30AD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC30AD4: 8FA800EC lw $t0, 236($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (236)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC30AD4u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -127081,6 +155299,9 @@ label_BFC30AD4: cpu->gpr[31] = 0x80048AE8u; psx_dispatch(cpu, 0x8004F434u); label_BFC30AE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC30AE8: A7B2004C sh $s2, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC30AE8u); return; } g_debug_last_store_pc = 0xBFC30AE8u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[18] & 0xFFFFu)); } @@ -127102,6 +155323,9 @@ label_BFC30AE8: cpu->gpr[31] = 0x80048B0Cu; psx_dispatch(cpu, 0x80051A3Cu); label_BFC30B0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(51u); +#endif psx_check_interrupts(cpu); /* 0xBFC30B0C: 87B80048 lh $t8, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC30B0Cu); return; } cpu->gpr[24] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -127207,6 +155431,9 @@ label_BFC30B0C: cpu->gpr[31] = 0x80048BD8u; psx_dispatch(cpu, 0x8004F368u); label_BFC30BD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC30BD8: 0C0146F3 jal 0xB0051BCC */ /* 0xBFC30BDC: 27A40050 addiu $a0, $sp, 80 */ @@ -127214,6 +155441,9 @@ label_BFC30BD8: cpu->gpr[31] = 0x80048BE0u; psx_dispatch(cpu, 0x80051BCCu); label_BFC30BE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC30BE0: 8FB000F4 lw $s0, 244($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (244)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC30BE0u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -127245,6 +155475,9 @@ label_BFC30BE0: cpu->gpr[31] = 0x80048C18u; psx_dispatch(cpu, 0x8004F368u); label_BFC30C18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC30C18: 87B40048 lh $s4, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC30C18u); return; } cpu->gpr[20] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -127270,6 +155503,9 @@ label_BFC30C18: cpu->gpr[31] = 0x80048C44u; psx_dispatch(cpu, 0x8004F368u); label_BFC30C44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC30C44: 8FB100F8 lw $s1, 248($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (248)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC30C44u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -127305,6 +155541,9 @@ label_BFC30C44: cpu->gpr[31] = 0x80048C84u; psx_dispatch(cpu, 0x8004F368u); label_BFC30C84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC30C84: 87B40048 lh $s4, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC30C84u); return; } cpu->gpr[20] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -127332,6 +155571,9 @@ label_BFC30C84: cpu->gpr[31] = 0x80048CB4u; psx_dispatch(cpu, 0x8004F368u); label_BFC30CB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC30CB4: A3B00054 sb $s0, 84($sp) */ g_debug_last_store_pc = 0xBFC30CB4u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[29] + (84)), (uint8_t)(cpu->gpr[16] & 0xFFu)); @@ -127361,6 +155603,9 @@ label_BFC30CB4: cpu->gpr[31] = 0x80048CE8u; psx_dispatch(cpu, 0x8004F368u); label_BFC30CE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC30CE8: 87B5004A lh $s5, 74($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (74)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC30CE8u); return; } cpu->gpr[21] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -127386,6 +155631,9 @@ label_BFC30CE8: cpu->gpr[31] = 0x80048D14u; psx_dispatch(cpu, 0x8004F368u); label_BFC30D14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC30D14: A3B10054 sb $s1, 84($sp) */ g_debug_last_store_pc = 0xBFC30D14u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[29] + (84)), (uint8_t)(cpu->gpr[17] & 0xFFu)); @@ -127419,6 +155667,9 @@ label_BFC30D14: cpu->gpr[31] = 0x80048D50u; psx_dispatch(cpu, 0x8004F368u); label_BFC30D50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC30D50: 87B40048 lh $s4, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC30D50u); return; } cpu->gpr[20] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -127446,6 +155697,9 @@ label_BFC30D50: cpu->gpr[31] = 0x80048D80u; psx_dispatch(cpu, 0x8004F368u); label_BFC30D80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC30D80: 27A40048 addiu $a0, $sp, 72 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (72)); @@ -127455,6 +155709,9 @@ label_BFC30D80: cpu->gpr[31] = 0x80048D8Cu; psx_dispatch(cpu, 0x8004F130u); label_BFC30D8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(23u); +#endif psx_check_interrupts(cpu); /* 0xBFC30D8C: 02530019 multu $s2, $s3 */ { uint64_t psx_p = (uint64_t)cpu->gpr[18] * (uint64_t)cpu->gpr[19]; cpu->lo = (uint32_t)(psx_p & 0xFFFFFFFFu); cpu->hi = (uint32_t)(psx_p >> 32); } @@ -127531,6 +155788,9 @@ void func_1FC30DF0(CPUState* cpu) { } } label_BFC30DF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC30DF0: 27BDFEF8 addiu $sp, $sp, -264 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-264)); @@ -127572,6 +155832,9 @@ label_BFC30DF0: cpu->gpr[31] = 0x80048E3Cu; psx_dispatch(cpu, 0x8005154Cu); label_BFC30E3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC30E3C: 240F0001 addiu $t7, $zero, 1 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -127583,6 +155846,9 @@ label_BFC30E3C: cpu->gpr[31] = 0x80048E4Cu; psx_dispatch(cpu, 0x8004F434u); label_BFC30E4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC30E4C: A7A000A6 sh $zero, 166($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (166)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC30E4Cu); return; } g_debug_last_store_pc = 0xBFC30E4Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } @@ -127600,6 +155866,9 @@ label_BFC30E4C: cpu->gpr[31] = 0x80048E68u; psx_dispatch(cpu, 0x8004A9F0u); label_BFC30E68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC30E68: 8FB30108 lw $s3, 264($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (264)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC30E68u); return; } cpu->gpr[19] = cpu->read_word(psx_addr); } @@ -127613,6 +155882,9 @@ label_BFC30E68: cpu->gpr[31] = 0x80048E7Cu; psx_dispatch(cpu, 0x8004F130u); label_BFC30E7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC30E7C: 02402021 addu $a0, $s2, $zero */ cpu->gpr[4] = cpu->gpr[18] + cpu->gpr[0]; @@ -127624,6 +155896,9 @@ label_BFC30E7C: cpu->gpr[31] = 0x80048E8Cu; psx_dispatch(cpu, 0x8004A410u); label_BFC30E8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC30E8C: 3C07800D lui $a3, 0x800D */ cpu->gpr[7] = 0x800D0000u; @@ -127643,6 +155918,9 @@ label_BFC30E8C: cpu->gpr[31] = 0x80048EACu; psx_dispatch(cpu, 0x8004A2E4u); label_BFC30EAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC30EAC: 3C07800D lui $a3, 0x800D */ cpu->gpr[7] = 0x800D0000u; @@ -127662,6 +155940,9 @@ label_BFC30EAC: cpu->gpr[31] = 0x80048ECCu; psx_dispatch(cpu, 0x8004A2E4u); label_BFC30ECC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC30ECC: 3C048009 lui $a0, 0x8009 */ cpu->gpr[4] = 0x80090000u; @@ -127673,6 +155954,9 @@ label_BFC30ECC: cpu->gpr[31] = 0x80048EDCu; psx_dispatch(cpu, 0x8004A710u); label_BFC30EDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(23u); +#endif psx_check_interrupts(cpu); /* 0xBFC30EDC: 02560019 multu $s2, $s6 */ { uint64_t psx_p = (uint64_t)cpu->gpr[18] * (uint64_t)cpu->gpr[22]; cpu->lo = (uint32_t)(psx_p & 0xFFFFFFFFu); cpu->hi = (uint32_t)(psx_p >> 32); } @@ -127722,6 +156006,9 @@ label_BFC30EDC: cpu->gpr[31] = 0x80048F38u; psx_dispatch(cpu, 0x8004ACCCu); label_BFC30F38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC30F38: 02A08021 addu $s0, $s5, $zero */ cpu->gpr[16] = cpu->gpr[21] + cpu->gpr[0]; @@ -127732,6 +156019,9 @@ label_BFC30F38: cpu->gpr[21] = (uint32_t)((int32_t)cpu->gpr[21] + (-1)); if (psx_taken_BFC30F3C) goto label_BFC310D8; label_BFC30F44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC30F44: AFB40040 sw $s4, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC30F44u); return; } g_debug_last_store_pc = 0xBFC30F44u; cpu->write_word(psx_addr, cpu->gpr[20]); } @@ -127740,6 +156030,9 @@ label_BFC30F44: /* 0xBFC30F4C: 2651FFFE addiu $s1, $s2, -2 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[18] + (-2)); label_BFC30F50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC30F50: 0C016A3C jal 0xB005A8F0 */ /* 0xBFC30F54: 00000000 nop */ @@ -127747,6 +156040,9 @@ label_BFC30F50: cpu->gpr[31] = 0x80048F58u; psx_dispatch(cpu, 0x8005A8F0u); label_BFC30F58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC30F58: 0051001A div $v0, $s1 */ { int32_t psx_n = (int32_t)cpu->gpr[2]; int32_t psx_d = (int32_t)cpu->gpr[17]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -127759,10 +156055,16 @@ label_BFC30F58: /* nop */ if (psx_taken_BFC30F60) goto label_BFC30F6C; label_BFC30F68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC30F68: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC30F68u); return; label_BFC30F6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC30F6C: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -127773,6 +156075,9 @@ label_BFC30F6C: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC30F70) goto label_BFC30F84; label_BFC30F78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC30F78: 14410002 bne $v0, $at, 0xBFC30F84 */ uint32_t psx_brA_BFC30F78 = cpu->gpr[2]; uint32_t psx_brB_BFC30F78 = cpu->gpr[1]; @@ -127781,10 +156086,16 @@ label_BFC30F78: /* nop */ if (psx_taken_BFC30F78) goto label_BFC30F84; label_BFC30F80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC30F80: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC30F80u); return; label_BFC30F84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC30F84: 05210011 bgez $t1, 0xBFC30FCC */ uint32_t psx_brA_BFC30F84 = cpu->gpr[9]; @@ -127793,6 +156104,9 @@ label_BFC30F84: /* nop */ if (psx_taken_BFC30F84) goto label_BFC30FCC; label_BFC30F8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC30F8C: 0C016A3C jal 0xB005A8F0 */ /* 0xBFC30F90: 00000000 nop */ @@ -127800,6 +156114,9 @@ label_BFC30F8C: cpu->gpr[31] = 0x80048F94u; psx_dispatch(cpu, 0x8005A8F0u); label_BFC30F94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC30F94: 0051001A div $v0, $s1 */ { int32_t psx_n = (int32_t)cpu->gpr[2]; int32_t psx_d = (int32_t)cpu->gpr[17]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -127814,10 +156131,16 @@ label_BFC30F94: /* nop */ if (psx_taken_BFC30FA0) goto label_BFC30FAC; label_BFC30FA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC30FA8: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC30FA8u); return; label_BFC30FAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC30FAC: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -127828,6 +156151,9 @@ label_BFC30FAC: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC30FB0) goto label_BFC30FC4; label_BFC30FB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC30FB8: 14410002 bne $v0, $at, 0xBFC30FC4 */ uint32_t psx_brA_BFC30FB8 = cpu->gpr[2]; uint32_t psx_brB_BFC30FB8 = cpu->gpr[1]; @@ -127836,10 +156162,16 @@ label_BFC30FB8: /* nop */ if (psx_taken_BFC30FB8) goto label_BFC30FC4; label_BFC30FC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC30FC0: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC30FC0u); return; label_BFC30FC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC30FC4: 1000000E beq $zero, $zero, 0xBFC31000 */ uint32_t psx_brA_BFC30FC4 = cpu->gpr[0]; uint32_t psx_brB_BFC30FC4 = cpu->gpr[0]; @@ -127848,6 +156180,9 @@ label_BFC30FC4: /* nop */ if (psx_taken_BFC30FC4) goto label_BFC31000; label_BFC30FCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC30FCC: 0C016A3C jal 0xB005A8F0 */ /* 0xBFC30FD0: 00000000 nop */ @@ -127855,6 +156190,9 @@ label_BFC30FCC: cpu->gpr[31] = 0x80048FD4u; psx_dispatch(cpu, 0x8005A8F0u); label_BFC30FD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC30FD4: 0051001A div $v0, $s1 */ { int32_t psx_n = (int32_t)cpu->gpr[2]; int32_t psx_d = (int32_t)cpu->gpr[17]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -127867,10 +156205,16 @@ label_BFC30FD4: /* nop */ if (psx_taken_BFC30FDC) goto label_BFC30FE8; label_BFC30FE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC30FE4: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC30FE4u); return; label_BFC30FE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC30FE8: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -127881,6 +156225,9 @@ label_BFC30FE8: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC30FEC) goto label_BFC31000; label_BFC30FF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC30FF4: 14410002 bne $v0, $at, 0xBFC31000 */ uint32_t psx_brA_BFC30FF4 = cpu->gpr[2]; uint32_t psx_brB_BFC30FF4 = cpu->gpr[1]; @@ -127889,10 +156236,16 @@ label_BFC30FF4: /* nop */ if (psx_taken_BFC30FF4) goto label_BFC31000; label_BFC30FFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC30FFC: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC30FFCu); return; label_BFC31000: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31000: 0C016A3C jal 0xB005A8F0 */ /* 0xBFC31004: 00000000 nop */ @@ -127900,6 +156253,9 @@ label_BFC31000: cpu->gpr[31] = 0x80049008u; psx_dispatch(cpu, 0x8005A8F0u); label_BFC31008: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC31008: 0054001A div $v0, $s4 */ { int32_t psx_n = (int32_t)cpu->gpr[2]; int32_t psx_d = (int32_t)cpu->gpr[20]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -127912,10 +156268,16 @@ label_BFC31008: /* nop */ if (psx_taken_BFC31010) goto label_BFC3101C; label_BFC31018: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31018: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC31018u); return; label_BFC3101C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3101C: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -127926,6 +156288,9 @@ label_BFC3101C: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC31020) goto label_BFC31034; label_BFC31028: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31028: 14410002 bne $v0, $at, 0xBFC31034 */ uint32_t psx_brA_BFC31028 = cpu->gpr[2]; uint32_t psx_brB_BFC31028 = cpu->gpr[1]; @@ -127934,10 +156299,16 @@ label_BFC31028: /* nop */ if (psx_taken_BFC31028) goto label_BFC31034; label_BFC31030: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31030: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC31030u); return; label_BFC31034: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31034: 05410011 bgez $t2, 0xBFC3107C */ uint32_t psx_brA_BFC31034 = cpu->gpr[10]; @@ -127946,6 +156317,9 @@ label_BFC31034: /* nop */ if (psx_taken_BFC31034) goto label_BFC3107C; label_BFC3103C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3103C: 0C016A3C jal 0xB005A8F0 */ /* 0xBFC31040: 00000000 nop */ @@ -127953,6 +156327,9 @@ label_BFC3103C: cpu->gpr[31] = 0x80049044u; psx_dispatch(cpu, 0x8005A8F0u); label_BFC31044: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC31044: 0054001A div $v0, $s4 */ { int32_t psx_n = (int32_t)cpu->gpr[2]; int32_t psx_d = (int32_t)cpu->gpr[20]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -127967,10 +156344,16 @@ label_BFC31044: /* nop */ if (psx_taken_BFC31050) goto label_BFC3105C; label_BFC31058: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31058: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC31058u); return; label_BFC3105C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3105C: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -127981,6 +156364,9 @@ label_BFC3105C: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC31060) goto label_BFC31074; label_BFC31068: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31068: 14410002 bne $v0, $at, 0xBFC31074 */ uint32_t psx_brA_BFC31068 = cpu->gpr[2]; uint32_t psx_brB_BFC31068 = cpu->gpr[1]; @@ -127989,10 +156375,16 @@ label_BFC31068: /* nop */ if (psx_taken_BFC31068) goto label_BFC31074; label_BFC31070: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31070: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC31070u); return; label_BFC31074: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31074: 1000000F beq $zero, $zero, 0xBFC310B4 */ uint32_t psx_brA_BFC31074 = cpu->gpr[0]; uint32_t psx_brB_BFC31074 = cpu->gpr[0]; @@ -128001,6 +156393,9 @@ label_BFC31074: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (148)); if (psx_taken_BFC31074) goto label_BFC310B4; label_BFC3107C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3107C: 0C016A3C jal 0xB005A8F0 */ /* 0xBFC31080: 00000000 nop */ @@ -128008,6 +156403,9 @@ label_BFC3107C: cpu->gpr[31] = 0x80049084u; psx_dispatch(cpu, 0x8005A8F0u); label_BFC31084: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC31084: 0054001A div $v0, $s4 */ { int32_t psx_n = (int32_t)cpu->gpr[2]; int32_t psx_d = (int32_t)cpu->gpr[20]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -128020,10 +156418,16 @@ label_BFC31084: /* nop */ if (psx_taken_BFC3108C) goto label_BFC31098; label_BFC31094: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31094: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC31094u); return; label_BFC31098: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC31098: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -128034,6 +156438,9 @@ label_BFC31098: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC3109C) goto label_BFC310B0; label_BFC310A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC310A4: 14410002 bne $v0, $at, 0xBFC310B0 */ uint32_t psx_brA_BFC310A4 = cpu->gpr[2]; uint32_t psx_brB_BFC310A4 = cpu->gpr[1]; @@ -128042,14 +156449,23 @@ label_BFC310A4: /* nop */ if (psx_taken_BFC310A4) goto label_BFC310B0; label_BFC310AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC310AC: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC310ACu); return; label_BFC310B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC310B0: 27A40094 addiu $a0, $sp, 148 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (148)); label_BFC310B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC310B4: 26050001 addiu $a1, $s0, 1 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -128061,6 +156477,9 @@ label_BFC310B4: cpu->gpr[31] = 0x800490C4u; psx_dispatch(cpu, 0x8004A1F0u); label_BFC310C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC310C4: 02A08021 addu $s0, $s5, $zero */ cpu->gpr[16] = cpu->gpr[21] + cpu->gpr[0]; @@ -128071,12 +156490,18 @@ label_BFC310C4: cpu->gpr[21] = (uint32_t)((int32_t)cpu->gpr[21] + (-1)); if (psx_taken_BFC310C8) goto label_BFC30F50; label_BFC310D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC310D0: 8FB40040 lw $s4, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC310D0u); return; } cpu->gpr[20] = cpu->read_word(psx_addr); } /* 0xBFC310D4: 00000000 nop */ /* nop */ label_BFC310D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC310D8: 1AC00017 blez $s6, 0xBFC31138 */ uint32_t psx_brA_BFC310D8 = cpu->gpr[22]; @@ -128085,6 +156510,9 @@ label_BFC310D8: cpu->gpr[17] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC310D8) goto label_BFC31138; label_BFC310E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC310E0: 1A400011 blez $s2, 0xBFC31128 */ uint32_t psx_brA_BFC310E0 = cpu->gpr[18]; @@ -128093,10 +156521,16 @@ label_BFC310E0: cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC310E0) goto label_BFC31128; label_BFC310E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC310E8: 27A40094 addiu $a0, $sp, 148 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (148)); label_BFC310EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC310EC: 02002821 addu $a1, $s0, $zero */ cpu->gpr[5] = cpu->gpr[16] + cpu->gpr[0]; @@ -128106,6 +156540,9 @@ label_BFC310EC: cpu->gpr[31] = 0x800490F8u; psx_dispatch(cpu, 0x8004A100u); label_BFC310F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC310F8: 10400008 beq $v0, $zero, 0xBFC3111C */ uint32_t psx_brA_BFC310F8 = cpu->gpr[2]; uint32_t psx_brB_BFC310F8 = cpu->gpr[0]; @@ -128114,6 +156551,9 @@ label_BFC310F8: /* nop */ if (psx_taken_BFC310F8) goto label_BFC3111C; label_BFC31100: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC31100: 02320019 multu $s1, $s2 */ { uint64_t psx_p = (uint64_t)cpu->gpr[17] * (uint64_t)cpu->gpr[18]; cpu->lo = (uint32_t)(psx_p & 0xFFFFFFFFu); cpu->hi = (uint32_t)(psx_p >> 32); } @@ -128130,6 +156570,9 @@ label_BFC31100: /* 0xBFC31118: A5E00000 sh $zero, 0($t7) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[15] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31118u); return; } g_debug_last_store_pc = 0xBFC31118u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } label_BFC3111C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3111C: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -128140,6 +156583,9 @@ label_BFC3111C: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (148)); if (psx_taken_BFC31120) goto label_BFC310EC; label_BFC31128: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC31128: 26310001 addiu $s1, $s1, 1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); @@ -128152,6 +156598,9 @@ label_BFC31128: /* nop */ if (psx_taken_BFC31130) goto label_BFC310E0; label_BFC31138: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(23u); +#endif psx_check_interrupts(cpu); /* 0xBFC31138: 8FA20108 lw $v0, 264($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (264)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31138u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -128220,6 +156669,9 @@ void func_1FC31194(CPUState* cpu) { } } label_BFC31194: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC31194: 27BDFB98 addiu $sp, $sp, -1128 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-1128)); @@ -128251,6 +156703,9 @@ label_BFC31194: cpu->gpr[31] = 0x800491CCu; psx_dispatch(cpu, 0x8005154Cu); label_BFC311CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC311CC: 240F0001 addiu $t7, $zero, 1 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -128262,6 +156717,9 @@ label_BFC311CC: cpu->gpr[31] = 0x800491DCu; psx_dispatch(cpu, 0x8004F434u); label_BFC311DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC311DC: 8FB90470 lw $t9, 1136($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (1136)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC311DCu); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -128283,6 +156741,9 @@ label_BFC311DC: cpu->gpr[31] = 0x80049200u; psx_dispatch(cpu, 0x80051BA4u); label_BFC31200: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC31200: A3A00400 sb $zero, 1024($sp) */ g_debug_last_store_pc = 0xBFC31200u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[29] + (1024)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -128312,6 +156773,9 @@ label_BFC31200: cpu->gpr[31] = 0x80049234u; psx_dispatch(cpu, 0x8004F368u); label_BFC31234: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31234: 0C010FC0 jal 0xB0043F00 */ /* 0xBFC31238: 00000000 nop */ @@ -128319,6 +156783,9 @@ label_BFC31234: cpu->gpr[31] = 0x8004923Cu; psx_dispatch(cpu, 0x80043F00u); label_BFC3123C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3123C: 10400015 beq $v0, $zero, 0xBFC31294 */ uint32_t psx_brA_BFC3123C = cpu->gpr[2]; uint32_t psx_brB_BFC3123C = cpu->gpr[0]; @@ -128327,6 +156794,9 @@ label_BFC3123C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (1148)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31240u); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } if (psx_taken_BFC3123C) goto label_BFC31294; label_BFC31244: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC31244: 8FA20480 lw $v0, 1152($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (1152)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31244u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -128364,6 +156834,9 @@ label_BFC31244: cpu->gpr[31] = 0x80049288u; psx_dispatch(cpu, 0x80049448u); label_BFC31288: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31288: 10000020 beq $zero, $zero, 0xBFC3130C */ uint32_t psx_brA_BFC31288 = cpu->gpr[0]; uint32_t psx_brB_BFC31288 = cpu->gpr[0]; @@ -128372,10 +156845,16 @@ label_BFC31288: /* nop */ if (psx_taken_BFC31288) goto label_BFC3130C; label_BFC31290: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31290: 8FA7047C lw $a3, 1148($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (1148)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31290u); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } label_BFC31294: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC31294: 8FA20480 lw $v0, 1152($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (1152)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31294u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -128412,10 +156891,16 @@ label_BFC31294: cpu->gpr[1] = cpu->gpr[7] + cpu->gpr[0]; if (psx_taken_BFC312CC) goto label_BFC312D8; label_BFC312D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC312D4: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC312D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC312D8: 00013843 sra $a3, $at, 1 */ cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -128426,10 +156911,16 @@ label_BFC312D8: cpu->gpr[1] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC312DC) goto label_BFC312E8; label_BFC312E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC312E4: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC312E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC312E8: 0001C843 sra $t9, $at, 1 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -128444,10 +156935,16 @@ label_BFC312E8: cpu->gpr[1] = cpu->gpr[9] + cpu->gpr[0]; if (psx_taken_BFC312F4) goto label_BFC31300; label_BFC312FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC312FC: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC31300: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC31300: 00015043 sra $t2, $at, 1 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -128457,6 +156954,9 @@ label_BFC31300: cpu->gpr[31] = 0x8004930Cu; psx_dispatch(cpu, 0x80049448u); label_BFC3130C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3130C: 0C0124FB jal 0xB00493EC */ /* 0xBFC31310: 27A4005C addiu $a0, $sp, 92 */ @@ -128464,6 +156964,9 @@ label_BFC3130C: cpu->gpr[31] = 0x80049314u; psx_dispatch(cpu, 0x800493ECu); label_BFC31314: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC31314: 27A403F4 addiu $a0, $sp, 1012 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (1012)); @@ -128473,6 +156976,9 @@ label_BFC31314: cpu->gpr[31] = 0x80049320u; psx_dispatch(cpu, 0x8004F130u); label_BFC31320: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(24u); +#endif psx_check_interrupts(cpu); /* 0xBFC31320: 240D0010 addiu $t5, $zero, 16 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); @@ -128535,6 +157041,9 @@ void func_1FC31380(CPUState* cpu) { } } label_BFC31380: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC31380: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -128559,6 +157068,9 @@ label_BFC31380: /* 0xBFC313A8: 02002821 addu $a1, $s0, $zero */ cpu->gpr[5] = cpu->gpr[16] + cpu->gpr[0]; label_BFC313AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC313AC: 2610001C addiu $s0, $s0, 28 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (28)); @@ -128568,6 +157080,9 @@ label_BFC313AC: cpu->gpr[31] = 0x800493B8u; psx_dispatch(cpu, 0x80051804u); label_BFC313B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC313B8: 864E038C lh $t6, 908($s2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[18] + (908)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC313B8u); return; } cpu->gpr[14] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -128584,6 +157099,9 @@ label_BFC313B8: cpu->gpr[5] = cpu->gpr[16] + cpu->gpr[0]; if (psx_taken_BFC313C8) goto label_BFC313AC; label_BFC313D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC313D0: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC313D0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -128612,6 +157130,9 @@ void func_1FC313EC(CPUState* cpu) { } } label_BFC313EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC313EC: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -128632,6 +157153,9 @@ label_BFC313EC: /* 0xBFC3140C: 02002021 addu $a0, $s0, $zero */ cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; label_BFC31410: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31410: 0C013CDA jal 0xB004F368 */ /* 0xBFC31414: 2610001C addiu $s0, $s0, 28 */ @@ -128639,6 +157163,9 @@ label_BFC31410: cpu->gpr[31] = 0x80049418u; psx_dispatch(cpu, 0x8004F368u); label_BFC31418: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC31418: 864E038C lh $t6, 908($s2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[18] + (908)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31418u); return; } cpu->gpr[14] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -128655,6 +157182,9 @@ label_BFC31418: cpu->gpr[4] = cpu->gpr[16] + cpu->gpr[0]; if (psx_taken_BFC31428) goto label_BFC31410; label_BFC31430: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC31430: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31430u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -128681,6 +157211,9 @@ void func_1FC31448(CPUState* cpu) { } } label_BFC31448: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(46u); +#endif psx_check_interrupts(cpu); /* 0xBFC31448: 27BDFFA0 addiu $sp, $sp, -96 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-96)); @@ -128775,6 +157308,9 @@ label_BFC31448: /* 0xBFC314FC: AFA30010 sw $v1, 16($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC314FCu); return; } g_debug_last_store_pc = 0xBFC314FCu; cpu->write_word(psx_addr, cpu->gpr[3]); } label_BFC31500: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC31500: AFA80014 sw $t0, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31500u); return; } g_debug_last_store_pc = 0xBFC31500u; cpu->write_word(psx_addr, cpu->gpr[8]); } @@ -128802,6 +157338,9 @@ label_BFC31500: cpu->gpr[31] = 0x80049530u; psx_dispatch(cpu, 0x80049638u); label_BFC31530: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC31530: 02128021 addu $s0, $s0, $s2 */ cpu->gpr[16] = cpu->gpr[16] + cpu->gpr[18]; @@ -128814,6 +157353,9 @@ label_BFC31530: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (92)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3153Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC31538) goto label_BFC31554; label_BFC31540: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC31540: 8FA80074 lw $t0, 116($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (116)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31540u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -128826,10 +157368,16 @@ label_BFC31540: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3154Cu); return; } g_debug_last_store_pc = 0xBFC3154Cu; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC31548) goto label_BFC31500; label_BFC31550: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31550: 8FBF005C lw $ra, 92($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (92)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31550u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC31554: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC31554: 8FB00038 lw $s0, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31554u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -128866,6 +157414,9 @@ void func_1FC31580(CPUState* cpu) { } } label_BFC31580: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC31580: 27BDFFB0 addiu $sp, $sp, -80 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-80)); @@ -128896,6 +157447,9 @@ label_BFC31580: /* 0xBFC315B4: 26150392 addiu $s5, $s0, 914 */ cpu->gpr[21] = (uint32_t)((int32_t)cpu->gpr[16] + (914)); label_BFC315B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC315B8: 860E0388 lh $t6, 904($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (904)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC315B8u); return; } cpu->gpr[14] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -128933,6 +157487,9 @@ label_BFC315B8: cpu->gpr[31] = 0x800495FCu; psx_dispatch(cpu, 0x80049638u); label_BFC315FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC315FC: 8613038C lh $s3, 908($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (908)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC315FCu); return; } cpu->gpr[19] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -128949,6 +157506,9 @@ label_BFC315FC: /* nop */ if (psx_taken_BFC3160C) goto label_BFC315B8; label_BFC31614: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC31614: 8FBF004C lw $ra, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31614u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -128985,6 +157545,9 @@ void func_1FC31638(CPUState* cpu) { } } label_BFC31638: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC31638: 27BDFF98 addiu $sp, $sp, -104 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-104)); @@ -129006,6 +157569,9 @@ label_BFC31638: cpu->gpr[31] = 0x8004965Cu; psx_dispatch(cpu, 0x8005199Cu); label_BFC3165C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(32u); +#endif psx_check_interrupts(cpu); /* 0xBFC3165C: 8FA6008C lw $a2, 140($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (140)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3165Cu); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -129073,6 +157639,9 @@ label_BFC3165C: cpu->gpr[31] = 0x800496DCu; psx_dispatch(cpu, 0x8004C9B8u); label_BFC316DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC316DC: 8FB90078 lw $t9, 120($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (120)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC316DCu); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -129098,6 +157667,9 @@ label_BFC316DC: cpu->gpr[31] = 0x80049708u; psx_dispatch(cpu, 0x8004C9B8u); label_BFC31708: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC31708: 8FAC0078 lw $t4, 120($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (120)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31708u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -129115,6 +157687,9 @@ label_BFC31708: cpu->gpr[31] = 0x80049724u; psx_dispatch(cpu, 0x8004C898u); label_BFC31724: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC31724: 8FAF007C lw $t7, 124($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (124)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31724u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -129134,6 +157709,9 @@ label_BFC31724: cpu->gpr[31] = 0x80049744u; psx_dispatch(cpu, 0x8004C898u); label_BFC31744: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(32u); +#endif psx_check_interrupts(cpu); /* 0xBFC31744: 8FA30070 lw $v1, 112($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (112)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31744u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -129214,6 +157792,9 @@ void func_1FC317D0(CPUState* cpu) { } } label_BFC317D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC317D0: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -129247,6 +157828,9 @@ label_BFC317D0: cpu->gpr[31] = 0x8004980Cu; psx_dispatch(cpu, 0x8004A2E4u); label_BFC3180C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3180C: 8FA30020 lw $v1, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3180Cu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -129265,10 +157849,16 @@ label_BFC3180C: cpu->gpr[1] = cpu->gpr[15] + cpu->gpr[0]; if (psx_taken_BFC31820) goto label_BFC3182C; label_BFC31828: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31828: 2421003F addiu $at, $at, 63 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (63)); label_BFC3182C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC3182C: 0001C183 sra $t8, $at, 6 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[1] >> 6u); @@ -129295,6 +157885,9 @@ label_BFC3182C: cpu->gpr[10] = cpu->gpr[8] & 0x3Fu; if (psx_taken_BFC31850) goto label_BFC31864; label_BFC31858: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31858: 11400002 beq $t2, $zero, 0xBFC31864 */ uint32_t psx_brA_BFC31858 = cpu->gpr[10]; uint32_t psx_brB_BFC31858 = cpu->gpr[0]; @@ -129303,10 +157896,16 @@ label_BFC31858: /* nop */ if (psx_taken_BFC31858) goto label_BFC31864; label_BFC31860: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31860: 254AFFC0 addiu $t2, $t2, -64 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[10] + (-64)); label_BFC31864: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31864: 11400004 beq $t2, $zero, 0xBFC31878 */ uint32_t psx_brA_BFC31864 = cpu->gpr[10]; uint32_t psx_brB_BFC31864 = cpu->gpr[0]; @@ -129315,6 +157914,9 @@ label_BFC31864: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC31864) goto label_BFC31878; label_BFC3186C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3186C: 10000002 beq $zero, $zero, 0xBFC31878 */ uint32_t psx_brA_BFC3186C = cpu->gpr[0]; uint32_t psx_brB_BFC3186C = cpu->gpr[0]; @@ -129323,10 +157925,16 @@ label_BFC3186C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC3186C) goto label_BFC31878; label_BFC31874: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31874: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC31878: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31878: 05010002 bgez $t0, 0xBFC31884 */ uint32_t psx_brA_BFC31878 = cpu->gpr[8]; @@ -129335,10 +157943,16 @@ label_BFC31878: cpu->gpr[1] = cpu->gpr[8] + cpu->gpr[0]; if (psx_taken_BFC31878) goto label_BFC31884; label_BFC31880: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31880: 2421003F addiu $at, $at, 63 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (63)); label_BFC31884: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC31884: 00015983 sra $t3, $at, 6 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[1] >> 6u); @@ -129374,6 +157988,9 @@ label_BFC31884: cpu->gpr[31] = 0x800498C4u; psx_dispatch(cpu, 0x8004A2E4u); label_BFC318C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC318C4: 8FA90024 lw $t1, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC318C4u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -129392,10 +158009,16 @@ label_BFC318C4: cpu->gpr[1] = cpu->gpr[15] + cpu->gpr[0]; if (psx_taken_BFC318D8) goto label_BFC318E4; label_BFC318E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC318E0: 2421003F addiu $at, $at, 63 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (63)); label_BFC318E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC318E4: 0001C183 sra $t8, $at, 6 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[1] >> 6u); @@ -129422,6 +158045,9 @@ label_BFC318E4: cpu->gpr[10] = cpu->gpr[3] & 0x3Fu; if (psx_taken_BFC31908) goto label_BFC3191C; label_BFC31910: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31910: 11400002 beq $t2, $zero, 0xBFC3191C */ uint32_t psx_brA_BFC31910 = cpu->gpr[10]; uint32_t psx_brB_BFC31910 = cpu->gpr[0]; @@ -129430,10 +158056,16 @@ label_BFC31910: /* nop */ if (psx_taken_BFC31910) goto label_BFC3191C; label_BFC31918: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31918: 254AFFC0 addiu $t2, $t2, -64 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[10] + (-64)); label_BFC3191C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3191C: 11400004 beq $t2, $zero, 0xBFC31930 */ uint32_t psx_brA_BFC3191C = cpu->gpr[10]; uint32_t psx_brB_BFC3191C = cpu->gpr[0]; @@ -129442,6 +158074,9 @@ label_BFC3191C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3191C) goto label_BFC31930; label_BFC31924: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31924: 10000002 beq $zero, $zero, 0xBFC31930 */ uint32_t psx_brA_BFC31924 = cpu->gpr[0]; uint32_t psx_brB_BFC31924 = cpu->gpr[0]; @@ -129450,10 +158085,16 @@ label_BFC31924: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC31924) goto label_BFC31930; label_BFC3192C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3192C: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC31930: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31930: 04610002 bgez $v1, 0xBFC3193C */ uint32_t psx_brA_BFC31930 = cpu->gpr[3]; @@ -129462,10 +158103,16 @@ label_BFC31930: cpu->gpr[1] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC31930) goto label_BFC3193C; label_BFC31938: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31938: 2421003F addiu $at, $at, 63 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (63)); label_BFC3193C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3193C: 00015983 sra $t3, $at, 6 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[1] >> 6u); @@ -129483,6 +158130,9 @@ label_BFC3193C: cpu->gpr[31] = 0x80049958u; psx_dispatch(cpu, 0x80049968u); label_BFC31958: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC31958: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31958u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -129510,6 +158160,9 @@ void func_1FC31968(CPUState* cpu) { } } label_BFC31968: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC31968: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -129523,6 +158176,9 @@ label_BFC31968: cpu->gpr[31] = 0x8004997Cu; psx_dispatch(cpu, 0x8004A010u); label_BFC3197C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3197C: 3C04800E lui $a0, 0x800E */ cpu->gpr[4] = 0x800E0000u; @@ -129538,6 +158194,9 @@ label_BFC3197C: cpu->gpr[31] = 0x80049994u; psx_dispatch(cpu, 0x8004B358u); label_BFC31994: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC31994: 3C04800E lui $a0, 0x800E */ cpu->gpr[4] = 0x800E0000u; @@ -129553,6 +158212,9 @@ label_BFC31994: cpu->gpr[31] = 0x800499ACu; psx_dispatch(cpu, 0x8004B358u); label_BFC319AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC319AC: 3C04800E lui $a0, 0x800E */ cpu->gpr[4] = 0x800E0000u; @@ -129562,6 +158224,9 @@ label_BFC319AC: cpu->gpr[31] = 0x800499B8u; psx_dispatch(cpu, 0x8004A010u); label_BFC319B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC319B8: 3C04800E lui $a0, 0x800E */ cpu->gpr[4] = 0x800E0000u; @@ -129577,6 +158242,9 @@ label_BFC319B8: cpu->gpr[31] = 0x800499D0u; psx_dispatch(cpu, 0x8004B358u); label_BFC319D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC319D0: 3C04800E lui $a0, 0x800E */ cpu->gpr[4] = 0x800E0000u; @@ -129586,6 +158254,9 @@ label_BFC319D0: cpu->gpr[31] = 0x800499DCu; psx_dispatch(cpu, 0x8004A040u); label_BFC319DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC319DC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC319DCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -129611,6 +158282,9 @@ void func_1FC319EC(CPUState* cpu) { } } label_BFC319EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC319EC: 00041C00 sll $v1, $a0, 16 */ cpu->gpr[3] = cpu->gpr[4] << 16u; @@ -129637,6 +158311,9 @@ label_BFC319EC: cpu->gpr[14] = cpu->gpr[3] & 0x3Fu; if (psx_taken_BFC31A10) goto label_BFC31A24; label_BFC31A18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31A18: 11C00002 beq $t6, $zero, 0xBFC31A24 */ uint32_t psx_brA_BFC31A18 = cpu->gpr[14]; uint32_t psx_brB_BFC31A18 = cpu->gpr[0]; @@ -129645,10 +158322,16 @@ label_BFC31A18: /* nop */ if (psx_taken_BFC31A18) goto label_BFC31A24; label_BFC31A20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31A20: 25CEFFC0 addiu $t6, $t6, -64 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[14] + (-64)); label_BFC31A24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31A24: 11C00004 beq $t6, $zero, 0xBFC31A38 */ uint32_t psx_brA_BFC31A24 = cpu->gpr[14]; uint32_t psx_brB_BFC31A24 = cpu->gpr[0]; @@ -129657,6 +158340,9 @@ label_BFC31A24: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC31A24) goto label_BFC31A38; label_BFC31A2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31A2C: 10000002 beq $zero, $zero, 0xBFC31A38 */ uint32_t psx_brA_BFC31A2C = cpu->gpr[0]; uint32_t psx_brB_BFC31A2C = cpu->gpr[0]; @@ -129665,10 +158351,16 @@ label_BFC31A2C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC31A2C) goto label_BFC31A38; label_BFC31A34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31A34: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC31A38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC31A38: A7A00040 sh $zero, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31A38u); return; } g_debug_last_store_pc = 0xBFC31A38u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } @@ -129683,10 +158375,16 @@ label_BFC31A38: cpu->gpr[1] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC31A44) goto label_BFC31A50; label_BFC31A4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31A4C: 2421003F addiu $at, $at, 63 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (63)); label_BFC31A50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC31A50: 00017983 sra $t7, $at, 6 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[1] >> 6u); @@ -129728,6 +158426,9 @@ label_BFC31A50: cpu->gpr[31] = 0x80049A9Cu; psx_dispatch(cpu, 0x8004A450u); label_BFC31A9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC31A9C: 87A30058 lh $v1, 88($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (88)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31A9Cu); return; } cpu->gpr[3] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -129738,6 +158439,9 @@ label_BFC31A9C: cpu->gpr[8] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC31AA0) goto label_BFC31AFC; label_BFC31AA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC31AA8: A7A00040 sh $zero, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31AA8u); return; } g_debug_last_store_pc = 0xBFC31AA8u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } @@ -129779,12 +158483,18 @@ label_BFC31AA8: cpu->gpr[31] = 0x80049AF4u; psx_dispatch(cpu, 0x8004A450u); label_BFC31AF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31AF4: 87A30058 lh $v1, 88($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (88)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31AF4u); return; } cpu->gpr[3] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } /* 0xBFC31AF8: 00404021 addu $t0, $v0, $zero */ cpu->gpr[8] = cpu->gpr[2] + cpu->gpr[0]; label_BFC31AFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC31AFC: 87B80054 lh $t8, 84($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (84)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31AFCu); return; } cpu->gpr[24] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -129811,6 +158521,9 @@ label_BFC31AFC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (6)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31B24u); return; } g_debug_last_store_pc = 0xBFC31B24u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[11] & 0xFFFFu)); } if (psx_taken_BFC31B20) goto label_BFC31C4C; label_BFC31B28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC31B28: 87A70064 lh $a3, 100($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (100)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31B28u); return; } cpu->gpr[7] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -129823,6 +158536,9 @@ label_BFC31B28: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC31B30) goto label_BFC31C50; label_BFC31B38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31B38: 06010004 bgez $s0, 0xBFC31B4C */ uint32_t psx_brA_BFC31B38 = cpu->gpr[16]; @@ -129831,6 +158547,9 @@ label_BFC31B38: cpu->gpr[12] = cpu->gpr[16] & 0x3Fu; if (psx_taken_BFC31B38) goto label_BFC31B4C; label_BFC31B40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31B40: 11800002 beq $t4, $zero, 0xBFC31B4C */ uint32_t psx_brA_BFC31B40 = cpu->gpr[12]; uint32_t psx_brB_BFC31B40 = cpu->gpr[0]; @@ -129839,10 +158558,16 @@ label_BFC31B40: /* nop */ if (psx_taken_BFC31B40) goto label_BFC31B4C; label_BFC31B48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31B48: 258CFFC0 addiu $t4, $t4, -64 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[12] + (-64)); label_BFC31B4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31B4C: 11800004 beq $t4, $zero, 0xBFC31B60 */ uint32_t psx_brA_BFC31B4C = cpu->gpr[12]; uint32_t psx_brB_BFC31B4C = cpu->gpr[0]; @@ -129851,6 +158576,9 @@ label_BFC31B4C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC31B4C) goto label_BFC31B60; label_BFC31B54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31B54: 10000002 beq $zero, $zero, 0xBFC31B60 */ uint32_t psx_brA_BFC31B54 = cpu->gpr[0]; uint32_t psx_brB_BFC31B54 = cpu->gpr[0]; @@ -129859,10 +158587,16 @@ label_BFC31B54: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC31B54) goto label_BFC31B60; label_BFC31B5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31B5C: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC31B60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC31B60: A7A00040 sh $zero, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31B60u); return; } g_debug_last_store_pc = 0xBFC31B60u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } @@ -129877,10 +158611,16 @@ label_BFC31B60: cpu->gpr[1] = cpu->gpr[16] + cpu->gpr[0]; if (psx_taken_BFC31B6C) goto label_BFC31B78; label_BFC31B74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31B74: 2421003F addiu $at, $at, 63 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (63)); label_BFC31B78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC31B78: 00016983 sra $t5, $at, 6 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[1] >> 6u); @@ -129920,6 +158660,9 @@ label_BFC31B78: cpu->gpr[31] = 0x80049BC0u; psx_dispatch(cpu, 0x8004A450u); label_BFC31BC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC31BC0: 8FA8004C lw $t0, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31BC0u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -129930,6 +158673,9 @@ label_BFC31BC0: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC31BC4) goto label_BFC31C20; label_BFC31BCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC31BCC: A7A00040 sh $zero, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31BCCu); return; } g_debug_last_store_pc = 0xBFC31BCCu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } @@ -129971,12 +158717,18 @@ label_BFC31BCC: cpu->gpr[31] = 0x80049C18u; psx_dispatch(cpu, 0x8004A450u); label_BFC31C18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31C18: 8FA8004C lw $t0, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31C18u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } /* 0xBFC31C1C: 00401821 addu $v1, $v0, $zero */ cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; label_BFC31C20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC31C20: 87AE0054 lh $t6, 84($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (84)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31C20u); return; } cpu->gpr[14] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -130003,10 +158755,16 @@ label_BFC31C20: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (6)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31C48u); return; } g_debug_last_store_pc = 0xBFC31C48u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[9] & 0xFFFFu)); } if (psx_taken_BFC31C44) goto label_BFC31C50; label_BFC31C4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31C4C: 24030001 addiu $v1, $zero, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC31C50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC31C50: 8FBF0034 lw $ra, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31C50u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -130031,6 +158789,9 @@ void func_1FC31C64(CPUState* cpu) { } } label_BFC31C64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC31C64: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -130051,10 +158812,16 @@ label_BFC31C64: cpu->gpr[1] = cpu->gpr[14] + cpu->gpr[0]; if (psx_taken_BFC31C7C) goto label_BFC31C88; label_BFC31C84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31C84: 2421003F addiu $at, $at, 63 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (63)); label_BFC31C88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC31C88: 00017983 sra $t7, $at, 6 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[1] >> 6u); @@ -130079,6 +158846,9 @@ label_BFC31C88: cpu->gpr[25] = cpu->gpr[7] & 0x3Fu; if (psx_taken_BFC31CA8) goto label_BFC31CBC; label_BFC31CB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31CB0: 13200002 beq $t9, $zero, 0xBFC31CBC */ uint32_t psx_brA_BFC31CB0 = cpu->gpr[25]; uint32_t psx_brB_BFC31CB0 = cpu->gpr[0]; @@ -130087,10 +158857,16 @@ label_BFC31CB0: /* nop */ if (psx_taken_BFC31CB0) goto label_BFC31CBC; label_BFC31CB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31CB8: 2739FFC0 addiu $t9, $t9, -64 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[25] + (-64)); label_BFC31CBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31CBC: 13200004 beq $t9, $zero, 0xBFC31CD0 */ uint32_t psx_brA_BFC31CBC = cpu->gpr[25]; uint32_t psx_brB_BFC31CBC = cpu->gpr[0]; @@ -130099,6 +158875,9 @@ label_BFC31CBC: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC31CBC) goto label_BFC31CD0; label_BFC31CC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31CC4: 10000002 beq $zero, $zero, 0xBFC31CD0 */ uint32_t psx_brA_BFC31CC4 = cpu->gpr[0]; uint32_t psx_brB_BFC31CC4 = cpu->gpr[0]; @@ -130107,10 +158886,16 @@ label_BFC31CC4: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC31CC4) goto label_BFC31CD0; label_BFC31CCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31CCC: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC31CD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31CD0: 04E10002 bgez $a3, 0xBFC31CDC */ uint32_t psx_brA_BFC31CD0 = cpu->gpr[7]; @@ -130119,10 +158904,16 @@ label_BFC31CD0: cpu->gpr[1] = cpu->gpr[7] + cpu->gpr[0]; if (psx_taken_BFC31CD0) goto label_BFC31CDC; label_BFC31CD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31CD8: 2421003F addiu $at, $at, 63 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (63)); label_BFC31CDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC31CDC: 00014183 sra $t0, $at, 6 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[1] >> 6u); @@ -130146,6 +158937,9 @@ label_BFC31CDC: cpu->gpr[31] = 0x80049D04u; psx_dispatch(cpu, 0x8004B358u); label_BFC31D04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC31D04: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31D04u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -130168,6 +158962,9 @@ void func_1FC31D14(CPUState* cpu) { } } label_BFC31D14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC31D14: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -130188,10 +158985,16 @@ label_BFC31D14: cpu->gpr[1] = cpu->gpr[14] + cpu->gpr[0]; if (psx_taken_BFC31D2C) goto label_BFC31D38; label_BFC31D34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31D34: 2421003F addiu $at, $at, 63 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (63)); label_BFC31D38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC31D38: 00017983 sra $t7, $at, 6 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[1] >> 6u); @@ -130216,6 +159019,9 @@ label_BFC31D38: cpu->gpr[25] = cpu->gpr[7] & 0x3Fu; if (psx_taken_BFC31D58) goto label_BFC31D6C; label_BFC31D60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31D60: 13200002 beq $t9, $zero, 0xBFC31D6C */ uint32_t psx_brA_BFC31D60 = cpu->gpr[25]; uint32_t psx_brB_BFC31D60 = cpu->gpr[0]; @@ -130224,10 +159030,16 @@ label_BFC31D60: /* nop */ if (psx_taken_BFC31D60) goto label_BFC31D6C; label_BFC31D68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31D68: 2739FFC0 addiu $t9, $t9, -64 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[25] + (-64)); label_BFC31D6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31D6C: 13200004 beq $t9, $zero, 0xBFC31D80 */ uint32_t psx_brA_BFC31D6C = cpu->gpr[25]; uint32_t psx_brB_BFC31D6C = cpu->gpr[0]; @@ -130236,6 +159048,9 @@ label_BFC31D6C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC31D6C) goto label_BFC31D80; label_BFC31D74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31D74: 10000002 beq $zero, $zero, 0xBFC31D80 */ uint32_t psx_brA_BFC31D74 = cpu->gpr[0]; uint32_t psx_brB_BFC31D74 = cpu->gpr[0]; @@ -130244,10 +159059,16 @@ label_BFC31D74: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC31D74) goto label_BFC31D80; label_BFC31D7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31D7C: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC31D80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31D80: 04E10002 bgez $a3, 0xBFC31D8C */ uint32_t psx_brA_BFC31D80 = cpu->gpr[7]; @@ -130256,10 +159077,16 @@ label_BFC31D80: cpu->gpr[1] = cpu->gpr[7] + cpu->gpr[0]; if (psx_taken_BFC31D80) goto label_BFC31D8C; label_BFC31D88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31D88: 2421003F addiu $at, $at, 63 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (63)); label_BFC31D8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC31D8C: 00014183 sra $t0, $at, 6 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[1] >> 6u); @@ -130283,6 +159110,9 @@ label_BFC31D8C: cpu->gpr[31] = 0x80049DB4u; psx_dispatch(cpu, 0x8004B358u); label_BFC31DB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC31DB4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31DB4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -130305,6 +159135,9 @@ void func_1FC31DC4(CPUState* cpu) { } } label_BFC31DC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC31DC4: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -130325,10 +159158,16 @@ label_BFC31DC4: cpu->gpr[1] = cpu->gpr[14] + cpu->gpr[0]; if (psx_taken_BFC31DDC) goto label_BFC31DE8; label_BFC31DE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31DE4: 2421003F addiu $at, $at, 63 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (63)); label_BFC31DE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC31DE8: 00017983 sra $t7, $at, 6 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[1] >> 6u); @@ -130353,6 +159192,9 @@ label_BFC31DE8: cpu->gpr[25] = cpu->gpr[7] & 0x3Fu; if (psx_taken_BFC31E08) goto label_BFC31E1C; label_BFC31E10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31E10: 13200002 beq $t9, $zero, 0xBFC31E1C */ uint32_t psx_brA_BFC31E10 = cpu->gpr[25]; uint32_t psx_brB_BFC31E10 = cpu->gpr[0]; @@ -130361,10 +159203,16 @@ label_BFC31E10: /* nop */ if (psx_taken_BFC31E10) goto label_BFC31E1C; label_BFC31E18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31E18: 2739FFC0 addiu $t9, $t9, -64 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[25] + (-64)); label_BFC31E1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31E1C: 13200004 beq $t9, $zero, 0xBFC31E30 */ uint32_t psx_brA_BFC31E1C = cpu->gpr[25]; uint32_t psx_brB_BFC31E1C = cpu->gpr[0]; @@ -130373,6 +159221,9 @@ label_BFC31E1C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC31E1C) goto label_BFC31E30; label_BFC31E24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31E24: 10000002 beq $zero, $zero, 0xBFC31E30 */ uint32_t psx_brA_BFC31E24 = cpu->gpr[0]; uint32_t psx_brB_BFC31E24 = cpu->gpr[0]; @@ -130381,10 +159232,16 @@ label_BFC31E24: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC31E24) goto label_BFC31E30; label_BFC31E2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31E2C: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC31E30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31E30: 04E10002 bgez $a3, 0xBFC31E3C */ uint32_t psx_brA_BFC31E30 = cpu->gpr[7]; @@ -130393,10 +159250,16 @@ label_BFC31E30: cpu->gpr[1] = cpu->gpr[7] + cpu->gpr[0]; if (psx_taken_BFC31E30) goto label_BFC31E3C; label_BFC31E38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31E38: 2421003F addiu $at, $at, 63 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (63)); label_BFC31E3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC31E3C: 00014183 sra $t0, $at, 6 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[1] >> 6u); @@ -130420,6 +159283,9 @@ label_BFC31E3C: cpu->gpr[31] = 0x80049E64u; psx_dispatch(cpu, 0x8004B358u); label_BFC31E64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC31E64: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31E64u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -130442,6 +159308,9 @@ void func_1FC31E74(CPUState* cpu) { } } label_BFC31E74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC31E74: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -130462,10 +159331,16 @@ label_BFC31E74: cpu->gpr[1] = cpu->gpr[14] + cpu->gpr[0]; if (psx_taken_BFC31E8C) goto label_BFC31E98; label_BFC31E94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31E94: 2421003F addiu $at, $at, 63 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (63)); label_BFC31E98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC31E98: 00017983 sra $t7, $at, 6 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[1] >> 6u); @@ -130490,6 +159365,9 @@ label_BFC31E98: cpu->gpr[25] = cpu->gpr[7] & 0x3Fu; if (psx_taken_BFC31EB8) goto label_BFC31ECC; label_BFC31EC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31EC0: 13200002 beq $t9, $zero, 0xBFC31ECC */ uint32_t psx_brA_BFC31EC0 = cpu->gpr[25]; uint32_t psx_brB_BFC31EC0 = cpu->gpr[0]; @@ -130498,10 +159376,16 @@ label_BFC31EC0: /* nop */ if (psx_taken_BFC31EC0) goto label_BFC31ECC; label_BFC31EC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31EC8: 2739FFC0 addiu $t9, $t9, -64 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[25] + (-64)); label_BFC31ECC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31ECC: 13200004 beq $t9, $zero, 0xBFC31EE0 */ uint32_t psx_brA_BFC31ECC = cpu->gpr[25]; uint32_t psx_brB_BFC31ECC = cpu->gpr[0]; @@ -130510,6 +159394,9 @@ label_BFC31ECC: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC31ECC) goto label_BFC31EE0; label_BFC31ED4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31ED4: 10000002 beq $zero, $zero, 0xBFC31EE0 */ uint32_t psx_brA_BFC31ED4 = cpu->gpr[0]; uint32_t psx_brB_BFC31ED4 = cpu->gpr[0]; @@ -130518,10 +159405,16 @@ label_BFC31ED4: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC31ED4) goto label_BFC31EE0; label_BFC31EDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31EDC: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC31EE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC31EE0: 04E10002 bgez $a3, 0xBFC31EEC */ uint32_t psx_brA_BFC31EE0 = cpu->gpr[7]; @@ -130530,10 +159423,16 @@ label_BFC31EE0: cpu->gpr[1] = cpu->gpr[7] + cpu->gpr[0]; if (psx_taken_BFC31EE0) goto label_BFC31EEC; label_BFC31EE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC31EE8: 2421003F addiu $at, $at, 63 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (63)); label_BFC31EEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC31EEC: 00014183 sra $t0, $at, 6 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[1] >> 6u); @@ -130557,6 +159456,9 @@ label_BFC31EEC: cpu->gpr[31] = 0x80049F14u; psx_dispatch(cpu, 0x8004B358u); label_BFC31F14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC31F14: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC31F14u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -130571,6 +159473,9 @@ label_BFC31F14: void func_1FC32010(CPUState* cpu) { debug_server_log_call_entry(0x1FC32010u); label_BFC32010: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC32010: 8C830008 lw $v1, 8($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32010u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -130585,6 +159490,9 @@ label_BFC32010: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (-1)); if (psx_taken_BFC3201C) goto label_BFC32038; label_BFC32024: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC32024: 00602821 addu $a1, $v1, $zero */ cpu->gpr[5] = cpu->gpr[3] + cpu->gpr[0]; @@ -130599,6 +159507,9 @@ label_BFC32024: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (-1)); if (psx_taken_BFC32030) goto label_BFC32024; label_BFC32038: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32038: 03E00008 jr $ra */ /* 0xBFC3203C: 00000000 nop */ @@ -130609,6 +159520,9 @@ label_BFC32038: void func_1FC32040(CPUState* cpu) { debug_server_log_call_entry(0x1FC32040u); label_BFC32040: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC32040: 8C830008 lw $v1, 8($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32040u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -130623,6 +159537,9 @@ label_BFC32040: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (-1)); if (psx_taken_BFC3204C) goto label_BFC32070; label_BFC32054: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC32054: 8C4E0000 lw $t6, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32054u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -130641,6 +159558,9 @@ label_BFC32054: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (-1)); if (psx_taken_BFC32068) goto label_BFC32054; label_BFC32070: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32070: 03E00008 jr $ra */ /* 0xBFC32074: 00000000 nop */ @@ -130651,6 +159571,9 @@ label_BFC32070: void func_1FC32078(CPUState* cpu) { debug_server_log_call_entry(0x1FC32078u); label_BFC32078: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC32078: 8C860008 lw $a2, 8($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32078u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -130667,6 +159590,9 @@ label_BFC32078: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (-1)); if (psx_taken_BFC32088) goto label_BFC320AC; label_BFC32090: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC32090: 8C4E0000 lw $t6, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32090u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -130685,6 +159611,9 @@ label_BFC32090: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC320A8u); return; } g_debug_last_store_pc = 0xBFC320A8u; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC320A4) goto label_BFC32090; label_BFC320AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC320AC: 03E00008 jr $ra */ /* 0xBFC320B0: 00000000 nop */ @@ -130695,6 +159624,9 @@ label_BFC320AC: void func_1FC320B4(CPUState* cpu) { debug_server_log_call_entry(0x1FC320B4u); label_BFC320B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC320B4: 8C880008 lw $t0, 8($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC320B4u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -130713,6 +159645,9 @@ label_BFC320B4: cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[8] + (-1)); if (psx_taken_BFC320C8) goto label_BFC320F8; label_BFC320D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC320D0: 8C4E0000 lw $t6, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC320D0u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -130737,6 +159672,9 @@ label_BFC320D0: cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[8] + (-1)); if (psx_taken_BFC320F0) goto label_BFC320D0; label_BFC320F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC320F8: 03E00008 jr $ra */ /* 0xBFC320FC: 00000000 nop */ @@ -130747,6 +159685,9 @@ label_BFC320F8: void func_1FC32100(CPUState* cpu) { debug_server_log_call_entry(0x1FC32100u); label_BFC32100: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC32100: 00052C00 sll $a1, $a1, 16 */ cpu->gpr[5] = cpu->gpr[5] << 16u; @@ -130761,6 +159702,9 @@ label_BFC32100: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] >> 16u); if (psx_taken_BFC3210C) goto label_BFC32144; label_BFC32114: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32114: 04C0000B bltz $a2, 0xBFC32144 */ uint32_t psx_brA_BFC32114 = cpu->gpr[6]; @@ -130769,6 +159713,9 @@ label_BFC32114: /* nop */ if (psx_taken_BFC32114) goto label_BFC32144; label_BFC3211C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3211C: 848E0000 lh $t6, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3211Cu); return; } cpu->gpr[14] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -130783,6 +159730,9 @@ label_BFC3211C: /* nop */ if (psx_taken_BFC32128) goto label_BFC32144; label_BFC32130: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC32130: 848F0002 lh $t7, 2($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32130u); return; } cpu->gpr[15] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -130797,12 +159747,18 @@ label_BFC32130: /* nop */ if (psx_taken_BFC3213C) goto label_BFC3214C; label_BFC32144: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32144: 03E00008 jr $ra */ /* 0xBFC32148: 2402FFFF addiu $v0, $zero, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); return; label_BFC3214C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(32u); +#endif psx_check_interrupts(cpu); /* 0xBFC3214C: 84880006 lh $t0, 6($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (6)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3214Cu); return; } cpu->gpr[8] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -130871,10 +159827,16 @@ label_BFC3214C: /* nop */ if (psx_taken_BFC321C4) goto label_BFC321D0; label_BFC321CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC321CC: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC321CCu); return; label_BFC321D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC321D0: 15200002 bne $t1, $zero, 0xBFC321DC */ uint32_t psx_brA_BFC321D0 = cpu->gpr[9]; uint32_t psx_brB_BFC321D0 = cpu->gpr[0]; @@ -130883,10 +159845,16 @@ label_BFC321D0: /* nop */ if (psx_taken_BFC321D0) goto label_BFC321DC; label_BFC321D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC321D8: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC321D8u); return; label_BFC321DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC321DC: 15200002 bne $t1, $zero, 0xBFC321E8 */ uint32_t psx_brA_BFC321DC = cpu->gpr[9]; uint32_t psx_brB_BFC321DC = cpu->gpr[0]; @@ -130895,10 +159863,16 @@ label_BFC321DC: /* nop */ if (psx_taken_BFC321DC) goto label_BFC321E8; label_BFC321E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC321E4: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC321E4u); return; label_BFC321E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC321E8: 03E00008 jr $ra */ /* 0xBFC321EC: 00000000 nop */ @@ -130909,6 +159883,9 @@ label_BFC321E8: void func_1FC321F0(CPUState* cpu) { debug_server_log_call_entry(0x1FC321F0u); label_BFC321F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC321F0: 00052C00 sll $a1, $a1, 16 */ cpu->gpr[5] = cpu->gpr[5] << 16u; @@ -130925,6 +159902,9 @@ label_BFC321F0: cpu->gpr[11] = cpu->gpr[7] + cpu->gpr[0]; if (psx_taken_BFC32200) goto label_BFC322DC; label_BFC32208: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32208: 04C00034 bltz $a2, 0xBFC322DC */ uint32_t psx_brA_BFC32208 = cpu->gpr[6]; @@ -130933,6 +159913,9 @@ label_BFC32208: /* nop */ if (psx_taken_BFC32208) goto label_BFC322DC; label_BFC32210: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC32210: 848E0000 lh $t6, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32210u); return; } cpu->gpr[14] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -130947,6 +159930,9 @@ label_BFC32210: /* nop */ if (psx_taken_BFC3221C) goto label_BFC322DC; label_BFC32224: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC32224: 848F0002 lh $t7, 2($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32224u); return; } cpu->gpr[15] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -130961,6 +159947,9 @@ label_BFC32224: /* nop */ if (psx_taken_BFC32230) goto label_BFC322DC; label_BFC32238: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(34u); +#endif psx_check_interrupts(cpu); /* 0xBFC32238: 84870006 lh $a3, 6($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (6)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32238u); return; } cpu->gpr[7] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -131033,10 +160022,16 @@ label_BFC32238: /* nop */ if (psx_taken_BFC322B8) goto label_BFC322C4; label_BFC322C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC322C0: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC322C0u); return; label_BFC322C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC322C4: 15000002 bne $t0, $zero, 0xBFC322D0 */ uint32_t psx_brA_BFC322C4 = cpu->gpr[8]; uint32_t psx_brB_BFC322C4 = cpu->gpr[0]; @@ -131045,10 +160040,16 @@ label_BFC322C4: /* nop */ if (psx_taken_BFC322C4) goto label_BFC322D0; label_BFC322CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC322CC: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC322CCu); return; label_BFC322D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC322D0: 15000002 bne $t0, $zero, 0xBFC322DC */ uint32_t psx_brA_BFC322D0 = cpu->gpr[8]; uint32_t psx_brB_BFC322D0 = cpu->gpr[0]; @@ -131057,10 +160058,16 @@ label_BFC322D0: /* nop */ if (psx_taken_BFC322D0) goto label_BFC322DC; label_BFC322D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC322D8: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC322D8u); return; label_BFC322DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC322DC: 03E00008 jr $ra */ /* 0xBFC322E0: 00000000 nop */ @@ -131081,6 +160088,9 @@ void func_1FC322E4(CPUState* cpu) { } } label_BFC322E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC322E4: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -131116,6 +160126,9 @@ label_BFC322E4: cpu->gpr[31] = 0x8004A324u; psx_dispatch(cpu, 0x8004A368u); label_BFC32324: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC32324: 87A3002C lh $v1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32324u); return; } cpu->gpr[3] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -131137,6 +160150,9 @@ label_BFC32324: cpu->gpr[31] = 0x8004A348u; psx_dispatch(cpu, 0x8004A410u); label_BFC32348: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC32348: AE020008 sw $v0, 8($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32348u); return; } g_debug_last_store_pc = 0xBFC32348u; cpu->write_word(psx_addr, cpu->gpr[2]); } @@ -131146,6 +160162,9 @@ label_BFC32348: cpu->gpr[31] = 0x8004A354u; psx_dispatch(cpu, 0x8004A010u); label_BFC32354: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC32354: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32354u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -131162,6 +160181,9 @@ label_BFC32354: void func_1FC32368(CPUState* cpu) { debug_server_log_call_entry(0x1FC32368u); label_BFC32368: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC32368: 00052C00 sll $a1, $a1, 16 */ cpu->gpr[5] = cpu->gpr[5] << 16u; @@ -131192,10 +160214,16 @@ label_BFC32368: /* nop */ if (psx_taken_BFC32394) goto label_BFC323A0; label_BFC3239C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3239C: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC3239Cu); return; label_BFC323A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC323A0: 14600002 bne $v1, $zero, 0xBFC323AC */ uint32_t psx_brA_BFC323A0 = cpu->gpr[3]; uint32_t psx_brB_BFC323A0 = cpu->gpr[0]; @@ -131204,10 +160232,16 @@ label_BFC323A0: /* nop */ if (psx_taken_BFC323A0) goto label_BFC323AC; label_BFC323A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC323A8: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC323A8u); return; label_BFC323AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC323AC: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -131218,6 +160252,9 @@ label_BFC323AC: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC323B0) goto label_BFC323C4; label_BFC323B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC323B8: 14810002 bne $a0, $at, 0xBFC323C4 */ uint32_t psx_brA_BFC323B8 = cpu->gpr[4]; uint32_t psx_brB_BFC323B8 = cpu->gpr[1]; @@ -131226,10 +160263,16 @@ label_BFC323B8: /* nop */ if (psx_taken_BFC323B8) goto label_BFC323C4; label_BFC323C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC323C0: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC323C0u); return; label_BFC323C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC323C4: 11E00004 beq $t7, $zero, 0xBFC323D8 */ uint32_t psx_brA_BFC323C4 = cpu->gpr[15]; uint32_t psx_brB_BFC323C4 = cpu->gpr[0]; @@ -131238,6 +160281,9 @@ label_BFC323C4: cpu->gpr[5] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC323C4) goto label_BFC323D8; label_BFC323CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC323CC: 10000002 beq $zero, $zero, 0xBFC323D8 */ uint32_t psx_brA_BFC323CC = cpu->gpr[0]; uint32_t psx_brB_BFC323CC = cpu->gpr[0]; @@ -131246,10 +160292,16 @@ label_BFC323CC: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC323CC) goto label_BFC323D8; label_BFC323D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC323D4: 00002821 addu $a1, $zero, $zero */ cpu->gpr[5] = cpu->gpr[0] + cpu->gpr[0]; label_BFC323D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC323D8: 0083001A div $a0, $v1 */ { int32_t psx_n = (int32_t)cpu->gpr[4]; int32_t psx_d = (int32_t)cpu->gpr[3]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -131264,10 +160316,16 @@ label_BFC323D8: /* nop */ if (psx_taken_BFC323E4) goto label_BFC323F0; label_BFC323EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC323EC: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC323ECu); return; label_BFC323F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC323F0: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -131278,6 +160336,9 @@ label_BFC323F0: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC323F4) goto label_BFC32408; label_BFC323FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC323FC: 14810002 bne $a0, $at, 0xBFC32408 */ uint32_t psx_brA_BFC323FC = cpu->gpr[4]; uint32_t psx_brB_BFC323FC = cpu->gpr[1]; @@ -131286,10 +160347,16 @@ label_BFC323FC: /* nop */ if (psx_taken_BFC323FC) goto label_BFC32408; label_BFC32404: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32404: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC32404u); return; label_BFC32408: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32408: 03E00008 jr $ra */ /* 0xBFC3240C: 00000000 nop */ @@ -131308,6 +160375,9 @@ void func_1FC32410(CPUState* cpu) { } } label_BFC32410: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC32410: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -131329,6 +160399,9 @@ label_BFC32410: cpu->gpr[31] = 0x8004A434u; psx_dispatch(cpu, 0x8004A368u); label_BFC32434: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC32434: 87AE0024 lh $t6, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32434u); return; } cpu->gpr[14] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -131357,6 +160430,9 @@ void func_1FC32450(CPUState* cpu) { } } label_BFC32450: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC32450: 27BDFFA0 addiu $sp, $sp, -96 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-96)); @@ -131393,6 +160469,9 @@ label_BFC32450: cpu->gpr[19] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC32488) goto label_BFC32540; label_BFC32490: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC32490: AFB20030 sw $s2, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32490u); return; } g_debug_last_store_pc = 0xBFC32490u; cpu->write_word(psx_addr, cpu->gpr[18]); } @@ -131405,6 +160484,9 @@ label_BFC32490: /* 0xBFC324A0: 00000000 nop */ /* nop */ label_BFC324A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC324A4: 1840001D blez $v0, 0xBFC3251C */ uint32_t psx_brA_BFC324A4 = cpu->gpr[2]; @@ -131413,6 +160495,9 @@ label_BFC324A4: cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC324A4) goto label_BFC3251C; label_BFC324AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC324AC: A7B00050 sh $s0, 80($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (80)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC324ACu); return; } g_debug_last_store_pc = 0xBFC324ACu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[16] & 0xFFFFu)); } @@ -131430,6 +160515,9 @@ label_BFC324AC: cpu->gpr[31] = 0x8004A4C8u; psx_dispatch(cpu, 0x8004A55Cu); label_BFC324C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC324C8: 1440000B bne $v0, $zero, 0xBFC324F8 */ uint32_t psx_brA_BFC324C8 = cpu->gpr[2]; uint32_t psx_brB_BFC324C8 = cpu->gpr[0]; @@ -131438,6 +160526,9 @@ label_BFC324C8: /* nop */ if (psx_taken_BFC324C8) goto label_BFC324F8; label_BFC324D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC324D0: 8FAE0070 lw $t6, 112($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (112)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC324D0u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -131462,6 +160553,9 @@ label_BFC324D0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC324F4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC324F0) goto label_BFC32548; label_BFC324F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC324F8: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -131480,12 +160574,18 @@ label_BFC324F8: /* nop */ if (psx_taken_BFC3250C) goto label_BFC324AC; label_BFC32514: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32514: 86230002 lh $v1, 2($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32514u); return; } cpu->gpr[3] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } /* 0xBFC32518: 00000000 nop */ /* nop */ label_BFC3251C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3251C: 26730001 addiu $s3, $s3, 1 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (1)); @@ -131502,6 +160602,9 @@ label_BFC3251C: /* nop */ if (psx_taken_BFC3252C) goto label_BFC324A4; label_BFC32534: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC32534: 8FB00034 lw $s0, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32534u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -131510,12 +160613,18 @@ label_BFC32534: /* 0xBFC3253C: 00000000 nop */ /* nop */ label_BFC32540: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32540: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; /* 0xBFC32544: 8FBF002C lw $ra, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32544u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC32548: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC32548: 8FB10020 lw $s1, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32548u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -131540,6 +160649,9 @@ void func_1FC3255C(CPUState* cpu) { } } label_BFC3255C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC3255C: 27BDFFA0 addiu $sp, $sp, -96 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-96)); @@ -131568,6 +160680,9 @@ label_BFC3255C: cpu->gpr[20] = cpu->gpr[7] + cpu->gpr[0]; if (psx_taken_BFC32584) goto label_BFC325A8; label_BFC3258C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3258C: 86290004 lh $t1, 4($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (4)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3258Cu); return; } cpu->gpr[9] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -131586,6 +160701,9 @@ label_BFC3258C: /* nop */ if (psx_taken_BFC325A0) goto label_BFC325B0; label_BFC325A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC325A8: 10000053 beq $zero, $zero, 0xBFC326F8 */ uint32_t psx_brA_BFC325A8 = cpu->gpr[0]; uint32_t psx_brB_BFC325A8 = cpu->gpr[0]; @@ -131594,6 +160712,9 @@ label_BFC325A8: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC325A8) goto label_BFC326F8; label_BFC325B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC325B0: 86270002 lh $a3, 2($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC325B0u); return; } cpu->gpr[7] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -131610,6 +160731,9 @@ label_BFC325B0: /* nop */ if (psx_taken_BFC325C0) goto label_BFC325E4; label_BFC325C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC325C8: 86280006 lh $t0, 6($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (6)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC325C8u); return; } cpu->gpr[8] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -131628,6 +160752,9 @@ label_BFC325C8: /* nop */ if (psx_taken_BFC325DC) goto label_BFC325EC; label_BFC325E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC325E4: 10000044 beq $zero, $zero, 0xBFC326F8 */ uint32_t psx_brA_BFC325E4 = cpu->gpr[0]; uint32_t psx_brB_BFC325E4 = cpu->gpr[0]; @@ -131636,6 +160763,9 @@ label_BFC325E4: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC325E4) goto label_BFC326F8; label_BFC325EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC325EC: 866A0000 lh $t2, 0($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC325ECu); return; } cpu->gpr[10] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -131652,6 +160782,9 @@ label_BFC325EC: /* nop */ if (psx_taken_BFC325FC) goto label_BFC3260C; label_BFC32604: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32604: 1000003C beq $zero, $zero, 0xBFC326F8 */ uint32_t psx_brA_BFC32604 = cpu->gpr[0]; uint32_t psx_brB_BFC32604 = cpu->gpr[0]; @@ -131660,6 +160793,9 @@ label_BFC32604: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC32604) goto label_BFC326F8; label_BFC3260C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3260C: 866C0002 lh $t4, 2($s3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[19] + (2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3260Cu); return; } cpu->gpr[12] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -131676,6 +160812,9 @@ label_BFC3260C: /* nop */ if (psx_taken_BFC3261C) goto label_BFC3262C; label_BFC32624: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32624: 10000034 beq $zero, $zero, 0xBFC326F8 */ uint32_t psx_brA_BFC32624 = cpu->gpr[0]; uint32_t psx_brB_BFC32624 = cpu->gpr[0]; @@ -131684,6 +160823,9 @@ label_BFC32624: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC32624) goto label_BFC326F8; label_BFC3262C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3262C: AFB20034 sw $s2, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3262Cu); return; } g_debug_last_store_pc = 0xBFC3262Cu; cpu->write_word(psx_addr, cpu->gpr[18]); } @@ -131700,12 +160842,18 @@ label_BFC3262C: /* nop */ if (psx_taken_BFC3263C) goto label_BFC326F0; label_BFC32644: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32644: AFB0002C sw $s0, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32644u); return; } g_debug_last_store_pc = 0xBFC32644u; cpu->write_word(psx_addr, cpu->gpr[16]); } /* 0xBFC32648: 00038400 sll $s0, $v1, 16 */ cpu->gpr[16] = cpu->gpr[3] << 16u; label_BFC3264C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3264C: 00108403 sra $s0, $s0, 16 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] >> 16u); @@ -131718,10 +160866,16 @@ label_BFC3264C: /* nop */ if (psx_taken_BFC32654) goto label_BFC326D0; label_BFC3265C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3265C: 02602021 addu $a0, $s3, $zero */ cpu->gpr[4] = cpu->gpr[19] + cpu->gpr[0]; label_BFC32660: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC32660: 02002821 addu $a1, $s0, $zero */ cpu->gpr[5] = cpu->gpr[16] + cpu->gpr[0]; @@ -131731,6 +160885,9 @@ label_BFC32660: cpu->gpr[31] = 0x8004A66Cu; psx_dispatch(cpu, 0x8004A100u); label_BFC3266C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3266C: 1054000B beq $v0, $s4, 0xBFC3269C */ uint32_t psx_brA_BFC3266C = cpu->gpr[2]; uint32_t psx_brB_BFC3266C = cpu->gpr[20]; @@ -131739,6 +160896,9 @@ label_BFC3266C: /* nop */ if (psx_taken_BFC3266C) goto label_BFC3269C; label_BFC32674: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32674: 16400006 bne $s2, $zero, 0xBFC32690 */ uint32_t psx_brA_BFC32674 = cpu->gpr[18]; uint32_t psx_brB_BFC32674 = cpu->gpr[0]; @@ -131747,6 +160907,9 @@ label_BFC32674: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32678u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } if (psx_taken_BFC32674) goto label_BFC32690; label_BFC3267C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3267C: 8FB0002C lw $s0, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3267Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -131759,10 +160922,16 @@ label_BFC3267C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC32684) goto label_BFC326F8; label_BFC3268C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3268C: 8FB0002C lw $s0, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3268Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } label_BFC32690: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC32690: 8FB20034 lw $s2, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32690u); return; } cpu->gpr[18] = cpu->read_word(psx_addr); } @@ -131773,6 +160942,9 @@ label_BFC32690: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC32694) goto label_BFC326F8; label_BFC3269C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3269C: 86230000 lh $v1, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3269Cu); return; } cpu->gpr[3] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -131795,6 +160967,9 @@ label_BFC3269C: cpu->gpr[4] = cpu->gpr[19] + cpu->gpr[0]; if (psx_taken_BFC326B8) goto label_BFC32660; label_BFC326C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC326C0: 862F0002 lh $t7, 2($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC326C0u); return; } cpu->gpr[15] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -131805,6 +160980,9 @@ label_BFC326C0: /* 0xBFC326CC: 01F82021 addu $a0, $t7, $t8 */ cpu->gpr[4] = cpu->gpr[15] + cpu->gpr[24]; label_BFC326D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC326D0: 26520001 addiu $s2, $s2, 1 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (1)); @@ -131821,18 +160999,27 @@ label_BFC326D0: cpu->gpr[16] = cpu->gpr[3] << 16u; if (psx_taken_BFC326E0) goto label_BFC3264C; label_BFC326E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC326E8: 8FB0002C lw $s0, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC326E8u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } /* 0xBFC326EC: 00000000 nop */ /* nop */ label_BFC326F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC326F0: 8FB20034 lw $s2, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC326F0u); return; } cpu->gpr[18] = cpu->read_word(psx_addr); } /* 0xBFC326F4: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC326F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC326F8: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC326F8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -131851,6 +161038,9 @@ label_BFC326F8: void func_1FC32710(CPUState* cpu) { debug_server_log_call_entry(0x1FC32710u); label_BFC32710: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC32710: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -131878,6 +161068,9 @@ void func_1FC32724(CPUState* cpu) { } } label_BFC32724: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC32724: 27BDFFB0 addiu $sp, $sp, -80 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-80)); @@ -131907,6 +161100,9 @@ label_BFC32724: cpu->gpr[31] = 0x8004A758u; psx_dispatch(cpu, 0x8004A100u); label_BFC32758: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC32758: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -131917,6 +161113,9 @@ label_BFC32758: cpu->gpr[18] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC3275C) goto label_BFC32808; label_BFC32764: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC32764: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -131939,6 +161138,9 @@ label_BFC32764: /* 0xBFC32788: A7380002 sh $t8, 2($t9) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[25] + (2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32788u); return; } g_debug_last_store_pc = 0xBFC32788u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[24] & 0xFFFFu)); } label_BFC3278C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC3278C: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -131970,6 +161172,9 @@ label_BFC3278C: cpu->gpr[31] = 0x8004A7C4u; psx_dispatch(cpu, 0x8004A100u); label_BFC327C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC327C4: 1452000C bne $v0, $s2, 0xBFC327F8 */ uint32_t psx_brA_BFC327C4 = cpu->gpr[2]; uint32_t psx_brB_BFC327C4 = cpu->gpr[18]; @@ -131978,6 +161183,9 @@ label_BFC327C4: /* nop */ if (psx_taken_BFC327C4) goto label_BFC327F8; label_BFC327CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC327CC: 87A50044 lh $a1, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC327CCu); return; } cpu->gpr[5] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -131991,6 +161199,9 @@ label_BFC327CC: cpu->gpr[31] = 0x8004A7E0u; psx_dispatch(cpu, 0x8004A1F0u); label_BFC327E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC327E0: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -132004,10 +161215,16 @@ label_BFC327E0: cpu->gpr[31] = 0x8004A7F4u; psx_dispatch(cpu, 0x8004A820u); label_BFC327F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC327F4: 00408021 addu $s0, $v0, $zero */ cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; label_BFC327F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC327F8: 1E00FFE4 bgtz $s0, 0xBFC3278C */ uint32_t psx_brA_BFC327F8 = cpu->gpr[16]; @@ -132016,12 +161233,18 @@ label_BFC327F8: /* nop */ if (psx_taken_BFC327F8) goto label_BFC3278C; label_BFC32800: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32800: 8FB0003C lw $s0, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32800u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } /* 0xBFC32804: 00000000 nop */ /* nop */ label_BFC32808: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC32808: 8FBF002C lw $ra, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32808u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -132048,6 +161271,9 @@ void func_1FC32820(CPUState* cpu) { } } label_BFC32820: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC32820: 27BDFFC0 addiu $sp, $sp, -64 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-64)); @@ -132080,6 +161306,9 @@ label_BFC32820: /* 0xBFC32858: 02602021 addu $a0, $s3, $zero */ cpu->gpr[4] = cpu->gpr[19] + cpu->gpr[0]; label_BFC3285C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3285C: 02802821 addu $a1, $s4, $zero */ cpu->gpr[5] = cpu->gpr[20] + cpu->gpr[0]; @@ -132091,6 +161320,9 @@ label_BFC3285C: cpu->gpr[31] = 0x8004A86Cu; psx_dispatch(cpu, 0x8004A8F4u); label_BFC3286C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3286C: 14550014 bne $v0, $s5, 0xBFC328C0 */ uint32_t psx_brA_BFC3286C = cpu->gpr[2]; uint32_t psx_brB_BFC3286C = cpu->gpr[21]; @@ -132099,6 +161331,9 @@ label_BFC3286C: /* nop */ if (psx_taken_BFC3286C) goto label_BFC328C0; label_BFC32874: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC32874: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -132139,10 +161374,16 @@ label_BFC32874: /* nop */ if (psx_taken_BFC328B4) goto label_BFC328C0; label_BFC328BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC328BC: 2610FFFF addiu $s0, $s0, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (-1)); label_BFC328C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC328C0: 26310001 addiu $s1, $s1, 1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); @@ -132153,6 +161394,9 @@ label_BFC328C0: cpu->gpr[4] = cpu->gpr[19] + cpu->gpr[0]; if (psx_taken_BFC328C4) goto label_BFC3285C; label_BFC328CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC328CC: 8FBF002C lw $ra, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC328CCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -132188,6 +161432,9 @@ void func_1FC328F4(CPUState* cpu) { } } label_BFC328F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC328F4: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -132211,6 +161458,9 @@ label_BFC328F4: cpu->gpr[31] = 0x8004A91Cu; psx_dispatch(cpu, 0x8004A944u); label_BFC3291C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3291C: 8FA30028 lw $v1, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3291Cu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -132226,6 +161476,9 @@ label_BFC3291C: cpu->gpr[31] = 0x8004A934u; psx_dispatch(cpu, 0x8004A100u); label_BFC32934: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC32934: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32934u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -132240,6 +161493,9 @@ label_BFC32934: void func_1FC32944(CPUState* cpu) { debug_server_log_call_entry(0x1FC32944u); label_BFC32944: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32944: 10000018 beq $zero, $zero, 0xBFC329A8 */ uint32_t psx_brA_BFC32944 = cpu->gpr[0]; uint32_t psx_brB_BFC32944 = cpu->gpr[0]; @@ -132248,6 +161504,9 @@ label_BFC32944: /* nop */ if (psx_taken_BFC32944) goto label_BFC329A8; label_BFC3294C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3294C: 848E0000 lh $t6, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3294Cu); return; } cpu->gpr[14] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -132266,6 +161525,9 @@ label_BFC3294C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32968u); return; } g_debug_last_store_pc = 0xBFC32968u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[24] & 0xFFFFu)); } return; label_BFC3296C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3296C: 84990000 lh $t9, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3296Cu); return; } cpu->gpr[25] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -132282,6 +161544,9 @@ label_BFC3296C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32984u); return; } g_debug_last_store_pc = 0xBFC32984u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[9] & 0xFFFFu)); } return; label_BFC32988: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC32988: 848A0000 lh $t2, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32988u); return; } cpu->gpr[10] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -132300,6 +161565,9 @@ label_BFC32988: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC329A4u); return; } g_debug_last_store_pc = 0xBFC329A4u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[12] & 0xFFFFu)); } return; label_BFC329A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC329A8: 10C0FFE8 beq $a2, $zero, 0xBFC3294C */ uint32_t psx_brA_BFC329A8 = cpu->gpr[6]; uint32_t psx_brB_BFC329A8 = cpu->gpr[0]; @@ -132308,6 +161576,9 @@ label_BFC329A8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC329A8) goto label_BFC3294C; label_BFC329B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC329B0: 10C1FFEE beq $a2, $at, 0xBFC3296C */ uint32_t psx_brA_BFC329B0 = cpu->gpr[6]; uint32_t psx_brB_BFC329B0 = cpu->gpr[1]; @@ -132316,6 +161587,9 @@ label_BFC329B0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC329B0) goto label_BFC3296C; label_BFC329B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC329B8: 10C1FFF3 beq $a2, $at, 0xBFC32988 */ uint32_t psx_brA_BFC329B8 = cpu->gpr[6]; uint32_t psx_brB_BFC329B8 = cpu->gpr[1]; @@ -132324,6 +161598,9 @@ label_BFC329B8: /* nop */ if (psx_taken_BFC329B8) goto label_BFC32988; label_BFC329C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC329C0: 848D0000 lh $t5, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC329C0u); return; } cpu->gpr[13] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -132358,6 +161635,9 @@ void func_1FC329F0(CPUState* cpu) { } } label_BFC329F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(21u); +#endif psx_check_interrupts(cpu); /* 0xBFC329F0: 27BDFE98 addiu $sp, $sp, -360 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-360)); @@ -132402,10 +161682,16 @@ label_BFC329F0: /* 0xBFC32A40: 00009021 addu $s2, $zero, $zero */ cpu->gpr[18] = cpu->gpr[0] + cpu->gpr[0]; label_BFC32A44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32A44: 02608021 addu $s0, $s3, $zero */ cpu->gpr[16] = cpu->gpr[19] + cpu->gpr[0]; label_BFC32A48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32A48: 0C012C4E jal 0xB004B138 */ /* 0xBFC32A4C: 02002021 addu $a0, $s0, $zero */ @@ -132413,6 +161699,9 @@ label_BFC32A48: cpu->gpr[31] = 0x8004AA50u; psx_dispatch(cpu, 0x8004B138u); label_BFC32A50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC32A50: 26520001 addiu $s2, $s2, 1 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (1)); @@ -132423,6 +161712,9 @@ label_BFC32A50: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (4)); if (psx_taken_BFC32A54) goto label_BFC32A48; label_BFC32A5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC32A5C: 2673000C addiu $s3, $s3, 12 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (12)); @@ -132435,6 +161727,9 @@ label_BFC32A5C: cpu->gpr[18] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC32A64) goto label_BFC32A44; label_BFC32A6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC32A6C: 8FA400B0 lw $a0, 176($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (176)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32A6Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -132467,10 +161762,16 @@ label_BFC32A6C: cpu->gpr[1] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC32A9C) goto label_BFC32AA8; label_BFC32AA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32AA4: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC32AA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC32AA8: 0001B843 sra $s7, $at, 1 */ cpu->gpr[23] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -132483,16 +161784,25 @@ label_BFC32AA8: cpu->gpr[1] = cpu->gpr[30] + cpu->gpr[0]; if (psx_taken_BFC32AB0) goto label_BFC32ABC; label_BFC32AB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32AB8: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC32ABC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32ABC: 0001F043 sra $fp, $at, 1 */ cpu->gpr[30] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); /* 0xBFC32AC0: 8FA6006C lw $a2, 108($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (108)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32AC0u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } label_BFC32AC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC32AC4: 8FA2005C lw $v0, 92($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (92)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32AC4u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -132517,14 +161827,23 @@ label_BFC32AC4: cpu->gpr[1] = cpu->gpr[6] + cpu->gpr[0]; if (psx_taken_BFC32AE4) goto label_BFC32AF0; label_BFC32AEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32AEC: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC32AF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32AF0: 0001A043 sra $s4, $at, 1 */ cpu->gpr[20] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); label_BFC32AF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC32AF4: 8FA2005C lw $v0, 92($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (92)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32AF4u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -132540,6 +161859,9 @@ label_BFC32AF4: cpu->gpr[31] = 0x8004AB0Cu; psx_dispatch(cpu, 0x80051A3Cu); label_BFC32B0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC32B0C: 86B90000 lh $t9, 0($s5) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[21] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32B0Cu); return; } cpu->gpr[25] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -132550,10 +161872,16 @@ label_BFC32B0C: cpu->gpr[1] = cpu->gpr[22] + cpu->gpr[0]; if (psx_taken_BFC32B10) goto label_BFC32B1C; label_BFC32B18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32B18: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC32B1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(69u); +#endif psx_check_interrupts(cpu); /* 0xBFC32B1C: 00011843 sra $v1, $at, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -132695,6 +162023,9 @@ label_BFC32B1C: cpu->gpr[31] = 0x8004AC30u; psx_dispatch(cpu, 0x8004F368u); label_BFC32C30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC32C30: 8FAE00B0 lw $t6, 176($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (176)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32C30u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -132715,6 +162046,9 @@ label_BFC32C30: cpu->gpr[22] = cpu->gpr[22] + cpu->gpr[14]; if (psx_taken_BFC32C48) goto label_BFC32AF4; label_BFC32C50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC32C50: 8FAC005C lw $t4, 92($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (92)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32C50u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -132751,6 +162085,9 @@ label_BFC32C50: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (132)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32C8Cu); return; } g_debug_last_store_pc = 0xBFC32C8Cu; cpu->write_word(psx_addr, cpu->gpr[24]); } if (psx_taken_BFC32C88) goto label_BFC32C9C; label_BFC32C90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC32C90: 8FA400B0 lw $a0, 176($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (176)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32C90u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -132761,6 +162098,9 @@ label_BFC32C90: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (108)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32C98u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } if (psx_taken_BFC32C94) goto label_BFC32AC4; label_BFC32C9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC32C9C: 8FBF0054 lw $ra, 84($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (84)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32C9Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -132819,6 +162159,9 @@ void func_1FC32CCC(CPUState* cpu) { } } label_BFC32CCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC32CCC: 27BDFF70 addiu $sp, $sp, -144 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-144)); @@ -132854,6 +162197,9 @@ label_BFC32CCC: cpu->gpr[31] = 0x8004AD0Cu; psx_dispatch(cpu, 0x8004A010u); label_BFC32D0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC32D0C: 8FA40094 lw $a0, 148($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (148)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32D0Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -132863,6 +162209,9 @@ label_BFC32D0C: cpu->gpr[31] = 0x8004AD18u; psx_dispatch(cpu, 0x8004A010u); label_BFC32D18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32D18: 1A80006C blez $s4, 0xBFC32ECC */ uint32_t psx_brA_BFC32D18 = cpu->gpr[20]; @@ -132871,6 +162220,9 @@ label_BFC32D18: cpu->gpr[19] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC32D18) goto label_BFC32ECC; label_BFC32D20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC32D20: AFB10044 sw $s1, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32D20u); return; } g_debug_last_store_pc = 0xBFC32D20u; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -132887,6 +162239,9 @@ label_BFC32D20: /* 0xBFC32D38: 2631FFFE addiu $s1, $s1, -2 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (-2)); label_BFC32D3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32D3C: 0C016A3C jal 0xB005A8F0 */ /* 0xBFC32D40: 00000000 nop */ @@ -132894,6 +162249,9 @@ label_BFC32D3C: cpu->gpr[31] = 0x8004AD44u; psx_dispatch(cpu, 0x8005A8F0u); label_BFC32D44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC32D44: 0051001A div $v0, $s1 */ { int32_t psx_n = (int32_t)cpu->gpr[2]; int32_t psx_d = (int32_t)cpu->gpr[17]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -132906,10 +162264,16 @@ label_BFC32D44: /* nop */ if (psx_taken_BFC32D4C) goto label_BFC32D58; label_BFC32D54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32D54: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC32D54u); return; label_BFC32D58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC32D58: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -132920,6 +162284,9 @@ label_BFC32D58: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC32D5C) goto label_BFC32D70; label_BFC32D64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32D64: 14410002 bne $v0, $at, 0xBFC32D70 */ uint32_t psx_brA_BFC32D64 = cpu->gpr[2]; uint32_t psx_brB_BFC32D64 = cpu->gpr[1]; @@ -132928,10 +162295,16 @@ label_BFC32D64: /* nop */ if (psx_taken_BFC32D64) goto label_BFC32D70; label_BFC32D6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32D6C: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC32D6Cu); return; label_BFC32D70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32D70: 07010011 bgez $t8, 0xBFC32DB8 */ uint32_t psx_brA_BFC32D70 = cpu->gpr[24]; @@ -132940,6 +162313,9 @@ label_BFC32D70: /* nop */ if (psx_taken_BFC32D70) goto label_BFC32DB8; label_BFC32D78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32D78: 0C016A3C jal 0xB005A8F0 */ /* 0xBFC32D7C: 00000000 nop */ @@ -132947,6 +162323,9 @@ label_BFC32D78: cpu->gpr[31] = 0x8004AD80u; psx_dispatch(cpu, 0x8005A8F0u); label_BFC32D80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC32D80: 0051001A div $v0, $s1 */ { int32_t psx_n = (int32_t)cpu->gpr[2]; int32_t psx_d = (int32_t)cpu->gpr[17]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -132961,10 +162340,16 @@ label_BFC32D80: /* nop */ if (psx_taken_BFC32D8C) goto label_BFC32D98; label_BFC32D94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32D94: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC32D94u); return; label_BFC32D98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC32D98: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -132975,6 +162360,9 @@ label_BFC32D98: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC32D9C) goto label_BFC32DB0; label_BFC32DA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32DA4: 14410002 bne $v0, $at, 0xBFC32DB0 */ uint32_t psx_brA_BFC32DA4 = cpu->gpr[2]; uint32_t psx_brB_BFC32DA4 = cpu->gpr[1]; @@ -132983,10 +162371,16 @@ label_BFC32DA4: /* nop */ if (psx_taken_BFC32DA4) goto label_BFC32DB0; label_BFC32DAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32DAC: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC32DACu); return; label_BFC32DB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32DB0: 1000000E beq $zero, $zero, 0xBFC32DEC */ uint32_t psx_brA_BFC32DB0 = cpu->gpr[0]; uint32_t psx_brB_BFC32DB0 = cpu->gpr[0]; @@ -132995,6 +162389,9 @@ label_BFC32DB0: /* nop */ if (psx_taken_BFC32DB0) goto label_BFC32DEC; label_BFC32DB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32DB8: 0C016A3C jal 0xB005A8F0 */ /* 0xBFC32DBC: 00000000 nop */ @@ -133002,6 +162399,9 @@ label_BFC32DB8: cpu->gpr[31] = 0x8004ADC0u; psx_dispatch(cpu, 0x8005A8F0u); label_BFC32DC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC32DC0: 0051001A div $v0, $s1 */ { int32_t psx_n = (int32_t)cpu->gpr[2]; int32_t psx_d = (int32_t)cpu->gpr[17]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -133014,10 +162414,16 @@ label_BFC32DC0: /* nop */ if (psx_taken_BFC32DC8) goto label_BFC32DD4; label_BFC32DD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32DD0: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC32DD0u); return; label_BFC32DD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC32DD4: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -133028,6 +162434,9 @@ label_BFC32DD4: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC32DD8) goto label_BFC32DEC; label_BFC32DE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32DE0: 14410002 bne $v0, $at, 0xBFC32DEC */ uint32_t psx_brA_BFC32DE0 = cpu->gpr[2]; uint32_t psx_brB_BFC32DE0 = cpu->gpr[1]; @@ -133036,10 +162445,16 @@ label_BFC32DE0: /* nop */ if (psx_taken_BFC32DE0) goto label_BFC32DEC; label_BFC32DE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32DE8: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC32DE8u); return; label_BFC32DEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32DEC: 0C016A3C jal 0xB005A8F0 */ /* 0xBFC32DF0: 00000000 nop */ @@ -133047,6 +162462,9 @@ label_BFC32DEC: cpu->gpr[31] = 0x8004ADF4u; psx_dispatch(cpu, 0x8005A8F0u); label_BFC32DF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC32DF4: 0052001A div $v0, $s2 */ { int32_t psx_n = (int32_t)cpu->gpr[2]; int32_t psx_d = (int32_t)cpu->gpr[18]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -133059,10 +162477,16 @@ label_BFC32DF4: /* nop */ if (psx_taken_BFC32DFC) goto label_BFC32E08; label_BFC32E04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32E04: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC32E04u); return; label_BFC32E08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC32E08: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -133073,6 +162497,9 @@ label_BFC32E08: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC32E0C) goto label_BFC32E20; label_BFC32E14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32E14: 14410002 bne $v0, $at, 0xBFC32E20 */ uint32_t psx_brA_BFC32E14 = cpu->gpr[2]; uint32_t psx_brB_BFC32E14 = cpu->gpr[1]; @@ -133081,10 +162508,16 @@ label_BFC32E14: /* nop */ if (psx_taken_BFC32E14) goto label_BFC32E20; label_BFC32E1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32E1C: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC32E1Cu); return; label_BFC32E20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32E20: 07210011 bgez $t9, 0xBFC32E68 */ uint32_t psx_brA_BFC32E20 = cpu->gpr[25]; @@ -133093,6 +162526,9 @@ label_BFC32E20: /* nop */ if (psx_taken_BFC32E20) goto label_BFC32E68; label_BFC32E28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32E28: 0C016A3C jal 0xB005A8F0 */ /* 0xBFC32E2C: 00000000 nop */ @@ -133100,6 +162536,9 @@ label_BFC32E28: cpu->gpr[31] = 0x8004AE30u; psx_dispatch(cpu, 0x8005A8F0u); label_BFC32E30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC32E30: 0052001A div $v0, $s2 */ { int32_t psx_n = (int32_t)cpu->gpr[2]; int32_t psx_d = (int32_t)cpu->gpr[18]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -133114,10 +162553,16 @@ label_BFC32E30: /* nop */ if (psx_taken_BFC32E3C) goto label_BFC32E48; label_BFC32E44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32E44: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC32E44u); return; label_BFC32E48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC32E48: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -133128,6 +162573,9 @@ label_BFC32E48: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC32E4C) goto label_BFC32E60; label_BFC32E54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32E54: 14410002 bne $v0, $at, 0xBFC32E60 */ uint32_t psx_brA_BFC32E54 = cpu->gpr[2]; uint32_t psx_brB_BFC32E54 = cpu->gpr[1]; @@ -133136,10 +162584,16 @@ label_BFC32E54: /* nop */ if (psx_taken_BFC32E54) goto label_BFC32E60; label_BFC32E5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32E5C: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC32E5Cu); return; label_BFC32E60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32E60: 1000000F beq $zero, $zero, 0xBFC32EA0 */ uint32_t psx_brA_BFC32E60 = cpu->gpr[0]; uint32_t psx_brB_BFC32E60 = cpu->gpr[0]; @@ -133148,6 +162602,9 @@ label_BFC32E60: cpu->gpr[4] = cpu->gpr[22] + cpu->gpr[0]; if (psx_taken_BFC32E60) goto label_BFC32EA0; label_BFC32E68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32E68: 0C016A3C jal 0xB005A8F0 */ /* 0xBFC32E6C: 00000000 nop */ @@ -133155,6 +162612,9 @@ label_BFC32E68: cpu->gpr[31] = 0x8004AE70u; psx_dispatch(cpu, 0x8005A8F0u); label_BFC32E70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC32E70: 0052001A div $v0, $s2 */ { int32_t psx_n = (int32_t)cpu->gpr[2]; int32_t psx_d = (int32_t)cpu->gpr[18]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -133167,10 +162627,16 @@ label_BFC32E70: /* nop */ if (psx_taken_BFC32E78) goto label_BFC32E84; label_BFC32E80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32E80: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC32E80u); return; label_BFC32E84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC32E84: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -133181,6 +162647,9 @@ label_BFC32E84: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC32E88) goto label_BFC32E9C; label_BFC32E90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32E90: 14410002 bne $v0, $at, 0xBFC32E9C */ uint32_t psx_brA_BFC32E90 = cpu->gpr[2]; uint32_t psx_brB_BFC32E90 = cpu->gpr[1]; @@ -133189,14 +162658,23 @@ label_BFC32E90: /* nop */ if (psx_taken_BFC32E90) goto label_BFC32E9C; label_BFC32E98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32E98: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC32E98u); return; label_BFC32E9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32E9C: 02C02021 addu $a0, $s6, $zero */ cpu->gpr[4] = cpu->gpr[22] + cpu->gpr[0]; label_BFC32EA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC32EA0: 26050001 addiu $a1, $s0, 1 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -133208,6 +162686,9 @@ label_BFC32EA0: cpu->gpr[31] = 0x8004AEB0u; psx_dispatch(cpu, 0x8004A1F0u); label_BFC32EB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC32EB0: 26730001 addiu $s3, $s3, 1 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (1)); @@ -133218,6 +162699,9 @@ label_BFC32EB0: /* nop */ if (psx_taken_BFC32EB4) goto label_BFC32D3C; label_BFC32EBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC32EBC: 8FB00048 lw $s0, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32EBCu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -133228,6 +162712,9 @@ label_BFC32EBC: /* 0xBFC32EC8: 00009821 addu $s3, $zero, $zero */ cpu->gpr[19] = cpu->gpr[0] + cpu->gpr[0]; label_BFC32ECC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32ECC: 1AE00082 blez $s7, 0xBFC330D8 */ uint32_t psx_brA_BFC32ECC = cpu->gpr[23]; @@ -133236,6 +162723,9 @@ label_BFC32ECC: /* nop */ if (psx_taken_BFC32ECC) goto label_BFC330D8; label_BFC32ED4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC32ED4: 8FA80080 lw $t0, 128($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (128)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC32ED4u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -133268,10 +162758,16 @@ label_BFC32ED4: cpu->gpr[1] = cpu->gpr[17] + cpu->gpr[0]; if (psx_taken_BFC32F04) goto label_BFC32F10; label_BFC32F0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32F0C: 24210007 addiu $at, $at, 7 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (7)); label_BFC32F10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC32F10: 000188C3 sra $s1, $at, 3 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[1] >> 3u); @@ -133282,10 +162778,16 @@ label_BFC32F10: cpu->gpr[1] = cpu->gpr[18] + cpu->gpr[0]; if (psx_taken_BFC32F14) goto label_BFC32F20; label_BFC32F1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32F1C: 24210007 addiu $at, $at, 7 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (7)); label_BFC32F20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC32F20: 000190C3 sra $s2, $at, 3 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[1] >> 3u); @@ -133296,10 +162798,16 @@ label_BFC32F20: cpu->gpr[1] = cpu->gpr[8] + cpu->gpr[0]; if (psx_taken_BFC32F24) goto label_BFC32F30; label_BFC32F2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32F2C: 24210007 addiu $at, $at, 7 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (7)); label_BFC32F30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC32F30: 0001A0C3 sra $s4, $at, 3 */ cpu->gpr[20] = (uint32_t)((int32_t)cpu->gpr[1] >> 3u); @@ -133310,14 +162818,23 @@ label_BFC32F30: cpu->gpr[1] = cpu->gpr[9] + cpu->gpr[0]; if (psx_taken_BFC32F34) goto label_BFC32F40; label_BFC32F3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32F3C: 24210007 addiu $at, $at, 7 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (7)); label_BFC32F40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32F40: 0001A8C3 sra $s5, $at, 3 */ cpu->gpr[21] = (uint32_t)((int32_t)cpu->gpr[1] >> 3u); label_BFC32F44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32F44: 0C016A3C jal 0xB005A8F0 */ /* 0xBFC32F48: 00000000 nop */ @@ -133325,6 +162842,9 @@ label_BFC32F44: cpu->gpr[31] = 0x8004AF4Cu; psx_dispatch(cpu, 0x8005A8F0u); label_BFC32F4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC32F4C: 0051001A div $v0, $s1 */ { int32_t psx_n = (int32_t)cpu->gpr[2]; int32_t psx_d = (int32_t)cpu->gpr[17]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -133337,10 +162857,16 @@ label_BFC32F4C: /* nop */ if (psx_taken_BFC32F54) goto label_BFC32F60; label_BFC32F5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32F5C: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC32F5Cu); return; label_BFC32F60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC32F60: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -133351,6 +162877,9 @@ label_BFC32F60: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC32F64) goto label_BFC32F78; label_BFC32F6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32F6C: 14410002 bne $v0, $at, 0xBFC32F78 */ uint32_t psx_brA_BFC32F6C = cpu->gpr[2]; uint32_t psx_brB_BFC32F6C = cpu->gpr[1]; @@ -133359,10 +162888,16 @@ label_BFC32F6C: /* nop */ if (psx_taken_BFC32F6C) goto label_BFC32F78; label_BFC32F74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32F74: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC32F74u); return; label_BFC32F78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32F78: 05410011 bgez $t2, 0xBFC32FC0 */ uint32_t psx_brA_BFC32F78 = cpu->gpr[10]; @@ -133371,6 +162906,9 @@ label_BFC32F78: /* nop */ if (psx_taken_BFC32F78) goto label_BFC32FC0; label_BFC32F80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32F80: 0C016A3C jal 0xB005A8F0 */ /* 0xBFC32F84: 00000000 nop */ @@ -133378,6 +162916,9 @@ label_BFC32F80: cpu->gpr[31] = 0x8004AF88u; psx_dispatch(cpu, 0x8005A8F0u); label_BFC32F88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC32F88: 0051001A div $v0, $s1 */ { int32_t psx_n = (int32_t)cpu->gpr[2]; int32_t psx_d = (int32_t)cpu->gpr[17]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -133392,10 +162933,16 @@ label_BFC32F88: /* nop */ if (psx_taken_BFC32F94) goto label_BFC32FA0; label_BFC32F9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32F9C: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC32F9Cu); return; label_BFC32FA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC32FA0: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -133406,6 +162953,9 @@ label_BFC32FA0: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC32FA4) goto label_BFC32FB8; label_BFC32FAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32FAC: 14410002 bne $v0, $at, 0xBFC32FB8 */ uint32_t psx_brA_BFC32FAC = cpu->gpr[2]; uint32_t psx_brB_BFC32FAC = cpu->gpr[1]; @@ -133414,10 +162964,16 @@ label_BFC32FAC: /* nop */ if (psx_taken_BFC32FAC) goto label_BFC32FB8; label_BFC32FB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32FB4: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC32FB4u); return; label_BFC32FB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32FB8: 1000000E beq $zero, $zero, 0xBFC32FF4 */ uint32_t psx_brA_BFC32FB8 = cpu->gpr[0]; uint32_t psx_brB_BFC32FB8 = cpu->gpr[0]; @@ -133426,6 +162982,9 @@ label_BFC32FB8: /* nop */ if (psx_taken_BFC32FB8) goto label_BFC32FF4; label_BFC32FC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32FC0: 0C016A3C jal 0xB005A8F0 */ /* 0xBFC32FC4: 00000000 nop */ @@ -133433,6 +162992,9 @@ label_BFC32FC0: cpu->gpr[31] = 0x8004AFC8u; psx_dispatch(cpu, 0x8005A8F0u); label_BFC32FC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC32FC8: 0051001A div $v0, $s1 */ { int32_t psx_n = (int32_t)cpu->gpr[2]; int32_t psx_d = (int32_t)cpu->gpr[17]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -133445,10 +163007,16 @@ label_BFC32FC8: /* nop */ if (psx_taken_BFC32FD0) goto label_BFC32FDC; label_BFC32FD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32FD8: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC32FD8u); return; label_BFC32FDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC32FDC: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -133459,6 +163027,9 @@ label_BFC32FDC: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC32FE0) goto label_BFC32FF4; label_BFC32FE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32FE8: 14410002 bne $v0, $at, 0xBFC32FF4 */ uint32_t psx_brA_BFC32FE8 = cpu->gpr[2]; uint32_t psx_brB_BFC32FE8 = cpu->gpr[1]; @@ -133467,10 +163038,16 @@ label_BFC32FE8: /* nop */ if (psx_taken_BFC32FE8) goto label_BFC32FF4; label_BFC32FF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC32FF0: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC32FF0u); return; label_BFC32FF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC32FF4: 0C016A3C jal 0xB005A8F0 */ /* 0xBFC32FF8: 00000000 nop */ @@ -133478,6 +163055,9 @@ label_BFC32FF4: cpu->gpr[31] = 0x8004AFFCu; psx_dispatch(cpu, 0x8005A8F0u); label_BFC32FFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC32FFC: 0052001A div $v0, $s2 */ { int32_t psx_n = (int32_t)cpu->gpr[2]; int32_t psx_d = (int32_t)cpu->gpr[18]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -133490,10 +163070,16 @@ label_BFC32FFC: /* nop */ if (psx_taken_BFC33004) goto label_BFC33010; label_BFC3300C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3300C: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC3300Cu); return; label_BFC33010: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC33010: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -133504,6 +163090,9 @@ label_BFC33010: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC33014) goto label_BFC33028; label_BFC3301C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3301C: 14410002 bne $v0, $at, 0xBFC33028 */ uint32_t psx_brA_BFC3301C = cpu->gpr[2]; uint32_t psx_brB_BFC3301C = cpu->gpr[1]; @@ -133512,10 +163101,16 @@ label_BFC3301C: /* nop */ if (psx_taken_BFC3301C) goto label_BFC33028; label_BFC33024: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC33024: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC33024u); return; label_BFC33028: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33028: 05610011 bgez $t3, 0xBFC33070 */ uint32_t psx_brA_BFC33028 = cpu->gpr[11]; @@ -133524,6 +163119,9 @@ label_BFC33028: /* nop */ if (psx_taken_BFC33028) goto label_BFC33070; label_BFC33030: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33030: 0C016A3C jal 0xB005A8F0 */ /* 0xBFC33034: 00000000 nop */ @@ -133531,6 +163129,9 @@ label_BFC33030: cpu->gpr[31] = 0x8004B038u; psx_dispatch(cpu, 0x8005A8F0u); label_BFC33038: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC33038: 0052001A div $v0, $s2 */ { int32_t psx_n = (int32_t)cpu->gpr[2]; int32_t psx_d = (int32_t)cpu->gpr[18]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -133545,10 +163146,16 @@ label_BFC33038: /* nop */ if (psx_taken_BFC33044) goto label_BFC33050; label_BFC3304C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3304C: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC3304Cu); return; label_BFC33050: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC33050: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -133559,6 +163166,9 @@ label_BFC33050: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC33054) goto label_BFC33068; label_BFC3305C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3305C: 14410002 bne $v0, $at, 0xBFC33068 */ uint32_t psx_brA_BFC3305C = cpu->gpr[2]; uint32_t psx_brB_BFC3305C = cpu->gpr[1]; @@ -133567,10 +163177,16 @@ label_BFC3305C: /* nop */ if (psx_taken_BFC3305C) goto label_BFC33068; label_BFC33064: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC33064: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC33064u); return; label_BFC33068: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33068: 1000000F beq $zero, $zero, 0xBFC330A8 */ uint32_t psx_brA_BFC33068 = cpu->gpr[0]; uint32_t psx_brB_BFC33068 = cpu->gpr[0]; @@ -133579,6 +163195,9 @@ label_BFC33068: cpu->gpr[4] = cpu->gpr[22] + cpu->gpr[0]; if (psx_taken_BFC33068) goto label_BFC330A8; label_BFC33070: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33070: 0C016A3C jal 0xB005A8F0 */ /* 0xBFC33074: 00000000 nop */ @@ -133586,6 +163205,9 @@ label_BFC33070: cpu->gpr[31] = 0x8004B078u; psx_dispatch(cpu, 0x8005A8F0u); label_BFC33078: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC33078: 0052001A div $v0, $s2 */ { int32_t psx_n = (int32_t)cpu->gpr[2]; int32_t psx_d = (int32_t)cpu->gpr[18]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -133598,10 +163220,16 @@ label_BFC33078: /* nop */ if (psx_taken_BFC33080) goto label_BFC3308C; label_BFC33088: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC33088: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC33088u); return; label_BFC3308C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3308C: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -133612,6 +163240,9 @@ label_BFC3308C: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC33090) goto label_BFC330A4; label_BFC33098: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33098: 14410002 bne $v0, $at, 0xBFC330A4 */ uint32_t psx_brA_BFC33098 = cpu->gpr[2]; uint32_t psx_brB_BFC33098 = cpu->gpr[1]; @@ -133620,14 +163251,23 @@ label_BFC33098: /* nop */ if (psx_taken_BFC33098) goto label_BFC330A4; label_BFC330A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC330A0: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC330A0u); return; label_BFC330A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC330A4: 02C02021 addu $a0, $s6, $zero */ cpu->gpr[4] = cpu->gpr[22] + cpu->gpr[0]; label_BFC330A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC330A8: 02142821 addu $a1, $s0, $s4 */ cpu->gpr[5] = cpu->gpr[16] + cpu->gpr[20]; @@ -133639,6 +163279,9 @@ label_BFC330A8: cpu->gpr[31] = 0x8004B0B8u; psx_dispatch(cpu, 0x8004A1F0u); label_BFC330B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC330B8: 26730001 addiu $s3, $s3, 1 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (1)); @@ -133649,6 +163292,9 @@ label_BFC330B8: /* nop */ if (psx_taken_BFC330BC) goto label_BFC32F44; label_BFC330C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC330C4: 8FB00048 lw $s0, 72($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (72)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC330C4u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -133661,6 +163307,9 @@ label_BFC330C4: /* 0xBFC330D4: 00000000 nop */ /* nop */ label_BFC330D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC330D8: 8FA50094 lw $a1, 148($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (148)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC330D8u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -133670,6 +163319,9 @@ label_BFC330D8: cpu->gpr[31] = 0x8004B0E4u; psx_dispatch(cpu, 0x8004A078u); label_BFC330E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC330E4: 8FA40094 lw $a0, 148($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (148)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC330E4u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -133679,6 +163331,9 @@ label_BFC330E4: cpu->gpr[31] = 0x8004B0F0u; psx_dispatch(cpu, 0x8004A040u); label_BFC330F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC330F0: 02C02021 addu $a0, $s6, $zero */ cpu->gpr[4] = cpu->gpr[22] + cpu->gpr[0]; @@ -133692,6 +163347,9 @@ label_BFC330F0: cpu->gpr[31] = 0x8004B104u; psx_dispatch(cpu, 0x8004A724u); label_BFC33104: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC33104: 8FA50094 lw $a1, 148($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (148)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC33104u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -133703,6 +163361,9 @@ label_BFC33104: cpu->gpr[31] = 0x8004B114u; psx_dispatch(cpu, 0x8004A0B4u); label_BFC33114: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33114: 0C012D00 jal 0xB004B400 */ /* 0xBFC33118: 02C02021 addu $a0, $s6, $zero */ @@ -133710,6 +163371,9 @@ label_BFC33114: cpu->gpr[31] = 0x8004B11Cu; psx_dispatch(cpu, 0x8004B400u); label_BFC3311C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3311C: 8FBF0034 lw $ra, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3311Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -133738,6 +163402,9 @@ void func_1FC33138(CPUState* cpu) { } } label_BFC33138: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC33138: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -133749,6 +163416,9 @@ label_BFC33138: cpu->gpr[31] = 0x8004B148u; psx_dispatch(cpu, 0x8005A8F0u); label_BFC33148: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(21u); +#endif psx_check_interrupts(cpu); /* 0xBFC33148: 24010006 addiu $at, $zero, 6 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (6)); @@ -133806,6 +163476,9 @@ void func_1FC331A0(CPUState* cpu) { } } label_BFC331A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC331A0: 27BDFFA8 addiu $sp, $sp, -88 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-88)); @@ -133846,6 +163519,9 @@ label_BFC331A0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC331E4u); return; } g_debug_last_store_pc = 0xBFC331E4u; cpu->write_word(psx_addr, cpu->gpr[16]); } if (psx_taken_BFC331E0) goto label_BFC331F0; label_BFC331E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC331E8: 10000002 beq $zero, $zero, 0xBFC331F4 */ uint32_t psx_brA_BFC331E8 = cpu->gpr[0]; uint32_t psx_brB_BFC331E8 = cpu->gpr[0]; @@ -133854,10 +163530,16 @@ label_BFC331E8: cpu->gpr[30] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC331E8) goto label_BFC331F4; label_BFC331F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC331F0: 241EFFFF addiu $fp, $zero, -1 */ cpu->gpr[30] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); label_BFC331F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC331F4: 87A30068 lh $v1, 104($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (104)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC331F4u); return; } cpu->gpr[3] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -133872,6 +163554,9 @@ label_BFC331F4: cpu->gpr[23] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC33200) goto label_BFC33214; label_BFC33208: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33208: 10000002 beq $zero, $zero, 0xBFC33214 */ uint32_t psx_brA_BFC33208 = cpu->gpr[0]; uint32_t psx_brB_BFC33208 = cpu->gpr[0]; @@ -133880,10 +163565,16 @@ label_BFC33208: cpu->gpr[23] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC33208) goto label_BFC33214; label_BFC33210: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC33210: 2417FFFF addiu $s7, $zero, -1 */ cpu->gpr[23] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); label_BFC33214: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC33214: 00F51023 subu $v0, $a3, $s5 */ cpu->gpr[2] = cpu->gpr[7] - cpu->gpr[21]; @@ -133894,6 +163585,9 @@ label_BFC33214: cpu->gpr[19] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC33218) goto label_BFC3322C; label_BFC33220: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33220: 10000002 beq $zero, $zero, 0xBFC3322C */ uint32_t psx_brA_BFC33220 = cpu->gpr[0]; uint32_t psx_brB_BFC33220 = cpu->gpr[0]; @@ -133902,10 +163596,16 @@ label_BFC33220: cpu->gpr[19] = cpu->gpr[0] - cpu->gpr[2]; if (psx_taken_BFC33220) goto label_BFC3322C; label_BFC33228: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC33228: 00409821 addu $s3, $v0, $zero */ cpu->gpr[19] = cpu->gpr[2] + cpu->gpr[0]; label_BFC3322C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3322C: 00761023 subu $v0, $v1, $s6 */ cpu->gpr[2] = cpu->gpr[3] - cpu->gpr[22]; @@ -133916,6 +163616,9 @@ label_BFC3322C: cpu->gpr[18] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC33230) goto label_BFC33244; label_BFC33238: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33238: 10000002 beq $zero, $zero, 0xBFC33244 */ uint32_t psx_brA_BFC33238 = cpu->gpr[0]; uint32_t psx_brB_BFC33238 = cpu->gpr[0]; @@ -133924,10 +163627,16 @@ label_BFC33238: cpu->gpr[18] = cpu->gpr[0] - cpu->gpr[2]; if (psx_taken_BFC33238) goto label_BFC33244; label_BFC33240: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC33240: 00409021 addu $s2, $v0, $zero */ cpu->gpr[18] = cpu->gpr[2] + cpu->gpr[0]; label_BFC33244: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC33244: 0253082A slt $at, $s2, $s3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[18] < (int32_t)cpu->gpr[19] ? 1 : 0); @@ -133938,6 +163647,9 @@ label_BFC33244: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[18] >> 1u); if (psx_taken_BFC33248) goto label_BFC332C4; label_BFC33250: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC33250: 00138043 sra $s0, $s3, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[19] >> 1u); @@ -133948,6 +163660,9 @@ label_BFC33250: cpu->gpr[17] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC33254) goto label_BFC3332C; label_BFC3325C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3325C: AFB40038 sw $s4, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3325Cu); return; } g_debug_last_store_pc = 0xBFC3325Cu; cpu->write_word(psx_addr, cpu->gpr[20]); } @@ -133956,6 +163671,9 @@ label_BFC3325C: /* 0xBFC33264: AFA40058 sw $a0, 88($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (88)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC33264u); return; } g_debug_last_store_pc = 0xBFC33264u; cpu->write_word(psx_addr, cpu->gpr[4]); } label_BFC33268: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC33268: 8FA40058 lw $a0, 88($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (88)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC33268u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -133969,6 +163687,9 @@ label_BFC33268: cpu->gpr[31] = 0x8004B27Cu; psx_dispatch(cpu, 0x8004A1F0u); label_BFC3327C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3327C: 02128021 addu $s0, $s0, $s2 */ cpu->gpr[16] = cpu->gpr[16] + cpu->gpr[18]; @@ -133981,6 +163702,9 @@ label_BFC3327C: /* nop */ if (psx_taken_BFC33284) goto label_BFC3329C; label_BFC3328C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3328C: 02D7B021 addu $s6, $s6, $s7 */ cpu->gpr[22] = cpu->gpr[22] + cpu->gpr[23]; @@ -133991,6 +163715,9 @@ label_BFC3328C: /* 0xBFC33298: 0016B403 sra $s6, $s6, 16 */ cpu->gpr[22] = (uint32_t)((int32_t)cpu->gpr[22] >> 16u); label_BFC3329C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3329C: 02BEA821 addu $s5, $s5, $fp */ cpu->gpr[21] = cpu->gpr[21] + cpu->gpr[30]; @@ -134007,6 +163734,9 @@ label_BFC3329C: cpu->gpr[21] = (uint32_t)((int32_t)cpu->gpr[21] >> 16u); if (psx_taken_BFC332AC) goto label_BFC33268; label_BFC332B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC332B4: 8FB40038 lw $s4, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC332B4u); return; } cpu->gpr[20] = cpu->read_word(psx_addr); } @@ -134017,10 +163747,16 @@ label_BFC332B4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC332BCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC332B8) goto label_BFC33330; label_BFC332C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC332C0: 00128043 sra $s0, $s2, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[18] >> 1u); label_BFC332C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC332C4: 06400019 bltz $s2, 0xBFC3332C */ uint32_t psx_brA_BFC332C4 = cpu->gpr[18]; @@ -134029,6 +163765,9 @@ label_BFC332C4: cpu->gpr[17] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC332C4) goto label_BFC3332C; label_BFC332CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC332CC: AFB40038 sw $s4, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC332CCu); return; } g_debug_last_store_pc = 0xBFC332CCu; cpu->write_word(psx_addr, cpu->gpr[20]); } @@ -134037,6 +163776,9 @@ label_BFC332CC: /* 0xBFC332D4: AFA40058 sw $a0, 88($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (88)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC332D4u); return; } g_debug_last_store_pc = 0xBFC332D4u; cpu->write_word(psx_addr, cpu->gpr[4]); } label_BFC332D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC332D8: 8FA40058 lw $a0, 88($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (88)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC332D8u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -134050,6 +163792,9 @@ label_BFC332D8: cpu->gpr[31] = 0x8004B2ECu; psx_dispatch(cpu, 0x8004A1F0u); label_BFC332EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC332EC: 02138021 addu $s0, $s0, $s3 */ cpu->gpr[16] = cpu->gpr[16] + cpu->gpr[19]; @@ -134062,6 +163807,9 @@ label_BFC332EC: /* nop */ if (psx_taken_BFC332F4) goto label_BFC3330C; label_BFC332FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC332FC: 02BEA821 addu $s5, $s5, $fp */ cpu->gpr[21] = cpu->gpr[21] + cpu->gpr[30]; @@ -134072,6 +163820,9 @@ label_BFC332FC: /* 0xBFC33308: 0015AC03 sra $s5, $s5, 16 */ cpu->gpr[21] = (uint32_t)((int32_t)cpu->gpr[21] >> 16u); label_BFC3330C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3330C: 02D7B021 addu $s6, $s6, $s7 */ cpu->gpr[22] = cpu->gpr[22] + cpu->gpr[23]; @@ -134088,16 +163839,25 @@ label_BFC3330C: cpu->gpr[22] = (uint32_t)((int32_t)cpu->gpr[22] >> 16u); if (psx_taken_BFC3331C) goto label_BFC332D8; label_BFC33324: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33324: 8FB40038 lw $s4, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC33324u); return; } cpu->gpr[20] = cpu->read_word(psx_addr); } /* 0xBFC33328: 00000000 nop */ /* nop */ label_BFC3332C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3332C: 8FBF0034 lw $ra, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3332Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC33330: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC33330: 8FB00014 lw $s0, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC33330u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -134132,6 +163892,9 @@ void func_1FC33358(CPUState* cpu) { } } label_BFC33358: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC33358: 27BDFFD0 addiu $sp, $sp, -48 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-48)); @@ -134168,6 +163931,9 @@ label_BFC33358: cpu->gpr[19] = cpu->gpr[6] + cpu->gpr[0]; if (psx_taken_BFC33390) goto label_BFC333E0; label_BFC33398: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC33398: 86250000 lh $a1, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC33398u); return; } cpu->gpr[5] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -134189,6 +163955,9 @@ label_BFC33398: cpu->gpr[31] = 0x8004B3BCu; psx_dispatch(cpu, 0x8004B1A0u); label_BFC333BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC333BC: 86390002 lh $t9, 2($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC333BCu); return; } cpu->gpr[25] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -134211,6 +163980,9 @@ label_BFC333BC: /* nop */ if (psx_taken_BFC333D8) goto label_BFC33398; label_BFC333E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC333E0: 8FBF002C lw $ra, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC333E0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -134241,6 +164013,9 @@ void func_1FC33400(CPUState* cpu) { } } label_BFC33400: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC33400: 27BDFF68 addiu $sp, $sp, -152 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-152)); @@ -134273,6 +164048,9 @@ label_BFC33400: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC33434u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC33430) goto label_BFC33528; label_BFC33438: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC33438: AFB5002C sw $s5, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC33438u); return; } g_debug_last_store_pc = 0xBFC33438u; cpu->write_word(psx_addr, cpu->gpr[21]); } @@ -134295,6 +164073,9 @@ label_BFC33438: /* 0xBFC3345C: 2BC10002 slti $at, $fp, 2 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[30] < (2) ? 1 : 0); label_BFC33460: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33460: 14200023 bne $at, $zero, 0xBFC334F0 */ uint32_t psx_brA_BFC33460 = cpu->gpr[1]; uint32_t psx_brB_BFC33460 = cpu->gpr[0]; @@ -134303,6 +164084,9 @@ label_BFC33460: cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC33460) goto label_BFC334F0; label_BFC33468: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC33468: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; @@ -134313,10 +164097,16 @@ label_BFC33468: /* 0xBFC33474: 2410FFFF addiu $s0, $zero, -1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); label_BFC33478: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC33478: 02F49021 addu $s2, $s7, $s4 */ cpu->gpr[18] = cpu->gpr[23] + cpu->gpr[20]; label_BFC3347C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3347C: 02C02021 addu $a0, $s6, $zero */ cpu->gpr[4] = cpu->gpr[22] + cpu->gpr[0]; @@ -134328,6 +164118,9 @@ label_BFC3347C: cpu->gpr[31] = 0x8004B48Cu; psx_dispatch(cpu, 0x8004A100u); label_BFC3348C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3348C: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -134340,6 +164133,9 @@ label_BFC3348C: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (4)); if (psx_taken_BFC33494) goto label_BFC3347C; label_BFC3349C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3349C: 26940001 addiu $s4, $s4, 1 */ cpu->gpr[20] = (uint32_t)((int32_t)cpu->gpr[20] + (1)); @@ -134352,6 +164148,9 @@ label_BFC3349C: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC334A4) goto label_BFC33478; label_BFC334AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC334AC: 27A40058 addiu $a0, $sp, 88 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (88)); @@ -134363,6 +164162,9 @@ label_BFC334AC: cpu->gpr[31] = 0x8004B4BCu; psx_dispatch(cpu, 0x8004B538u); label_BFC334BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC334BC: 10400004 beq $v0, $zero, 0xBFC334D0 */ uint32_t psx_brA_BFC334BC = cpu->gpr[2]; uint32_t psx_brB_BFC334BC = cpu->gpr[0]; @@ -134371,6 +164173,9 @@ label_BFC334BC: cpu->gpr[7] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC334BC) goto label_BFC334D0; label_BFC334C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC334C4: 10000002 beq $zero, $zero, 0xBFC334D0 */ uint32_t psx_brA_BFC334C4 = cpu->gpr[0]; uint32_t psx_brB_BFC334C4 = cpu->gpr[0]; @@ -134379,10 +164184,16 @@ label_BFC334C4: cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC334C4) goto label_BFC334D0; label_BFC334CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC334CC: 00003821 addu $a3, $zero, $zero */ cpu->gpr[7] = cpu->gpr[0] + cpu->gpr[0]; label_BFC334D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC334D0: 02C02021 addu $a0, $s6, $zero */ cpu->gpr[4] = cpu->gpr[22] + cpu->gpr[0]; @@ -134394,6 +164205,9 @@ label_BFC334D0: cpu->gpr[31] = 0x8004B4E0u; psx_dispatch(cpu, 0x8004A1F0u); label_BFC334E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC334E0: 26730001 addiu $s3, $s3, 1 */ cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[19] + (1)); @@ -134406,6 +164220,9 @@ label_BFC334E0: /* nop */ if (psx_taken_BFC334E8) goto label_BFC33468; label_BFC334F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC334F0: 8FB80050 lw $t8, 80($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (80)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC334F0u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -134420,6 +164237,9 @@ label_BFC334F0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[30] < (2) ? 1 : 0); if (psx_taken_BFC334FC) goto label_BFC33460; label_BFC33504: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC33504: 8FB00040 lw $s0, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC33504u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -134440,6 +164260,9 @@ label_BFC33504: /* 0xBFC33524: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC33524u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC33528: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC33528: 8FB6001C lw $s6, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC33528u); return; } cpu->gpr[22] = cpu->read_word(psx_addr); } @@ -134454,6 +164277,9 @@ label_BFC33528: void func_1FC33538(CPUState* cpu) { debug_server_log_call_entry(0x1FC33538u); label_BFC33538: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC33538: 8C820000 lw $v0, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC33538u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -134484,12 +164310,18 @@ label_BFC33538: cpu->gpr[11] = cpu->gpr[12] + cpu->gpr[0]; if (psx_taken_BFC33564) goto label_BFC33574; label_BFC3356C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3356C: 004B1021 addu $v0, $v0, $t3 */ cpu->gpr[2] = cpu->gpr[2] + cpu->gpr[11]; /* 0xBFC33570: 014B5023 subu $t2, $t2, $t3 */ cpu->gpr[10] = cpu->gpr[10] - cpu->gpr[11]; label_BFC33574: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC33574: 01232823 subu $a1, $t1, $v1 */ cpu->gpr[5] = cpu->gpr[9] - cpu->gpr[3]; @@ -134500,12 +164332,18 @@ label_BFC33574: cpu->gpr[4] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC33578) goto label_BFC33588; label_BFC33580: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33580: 00641821 addu $v1, $v1, $a0 */ cpu->gpr[3] = cpu->gpr[3] + cpu->gpr[4]; /* 0xBFC33584: 01244823 subu $t1, $t1, $a0 */ cpu->gpr[9] = cpu->gpr[9] - cpu->gpr[4]; label_BFC33588: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC33588: 01072823 subu $a1, $t0, $a3 */ cpu->gpr[5] = cpu->gpr[8] - cpu->gpr[7]; @@ -134516,12 +164354,18 @@ label_BFC33588: cpu->gpr[4] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC3358C) goto label_BFC3359C; label_BFC33594: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33594: 00E43821 addu $a3, $a3, $a0 */ cpu->gpr[7] = cpu->gpr[7] + cpu->gpr[4]; /* 0xBFC33598: 01044023 subu $t0, $t0, $a0 */ cpu->gpr[8] = cpu->gpr[8] - cpu->gpr[4]; label_BFC3359C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3359C: 00622823 subu $a1, $v1, $v0 */ cpu->gpr[5] = cpu->gpr[3] - cpu->gpr[2]; @@ -134532,12 +164376,18 @@ label_BFC3359C: cpu->gpr[4] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC335A0) goto label_BFC335B0; label_BFC335A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC335A8: 00441021 addu $v0, $v0, $a0 */ cpu->gpr[2] = cpu->gpr[2] + cpu->gpr[4]; /* 0xBFC335AC: 00641823 subu $v1, $v1, $a0 */ cpu->gpr[3] = cpu->gpr[3] - cpu->gpr[4]; label_BFC335B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC335B0: 00E22823 subu $a1, $a3, $v0 */ cpu->gpr[5] = cpu->gpr[7] - cpu->gpr[2]; @@ -134548,10 +164398,16 @@ label_BFC335B0: cpu->gpr[4] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC335B4) goto label_BFC335C0; label_BFC335BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC335BC: 00E43823 subu $a3, $a3, $a0 */ cpu->gpr[7] = cpu->gpr[7] - cpu->gpr[4]; label_BFC335C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC335C0: 01092023 subu $a0, $t0, $t1 */ cpu->gpr[4] = cpu->gpr[8] - cpu->gpr[9]; @@ -134562,12 +164418,18 @@ label_BFC335C0: cpu->gpr[2] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC335C4) goto label_BFC335D4; label_BFC335CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC335CC: 01224821 addu $t1, $t1, $v0 */ cpu->gpr[9] = cpu->gpr[9] + cpu->gpr[2]; /* 0xBFC335D0: 01024023 subu $t0, $t0, $v0 */ cpu->gpr[8] = cpu->gpr[8] - cpu->gpr[2]; label_BFC335D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC335D4: 010A2023 subu $a0, $t0, $t2 */ cpu->gpr[4] = cpu->gpr[8] - cpu->gpr[10]; @@ -134578,10 +164440,16 @@ label_BFC335D4: cpu->gpr[2] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC335D8) goto label_BFC335E4; label_BFC335E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC335E0: 01425021 addu $t2, $t2, $v0 */ cpu->gpr[10] = cpu->gpr[10] + cpu->gpr[2]; label_BFC335E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC335E4: 8CC20000 lw $v0, 0($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC335E4u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -134596,12 +164464,18 @@ label_BFC335E4: cpu->gpr[4] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC335F0) goto label_BFC33600; label_BFC335F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC335F8: 00441021 addu $v0, $v0, $a0 */ cpu->gpr[2] = cpu->gpr[2] + cpu->gpr[4]; /* 0xBFC335FC: 00641823 subu $v1, $v1, $a0 */ cpu->gpr[3] = cpu->gpr[3] - cpu->gpr[4]; label_BFC33600: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC33600: 01474023 subu $t0, $t2, $a3 */ cpu->gpr[8] = cpu->gpr[10] - cpu->gpr[7]; @@ -134612,12 +164486,18 @@ label_BFC33600: cpu->gpr[4] = cpu->gpr[8] + cpu->gpr[0]; if (psx_taken_BFC33604) goto label_BFC33614; label_BFC3360C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3360C: 00E43821 addu $a3, $a3, $a0 */ cpu->gpr[7] = cpu->gpr[7] + cpu->gpr[4]; /* 0xBFC33610: 01445023 subu $t2, $t2, $a0 */ cpu->gpr[10] = cpu->gpr[10] - cpu->gpr[4]; label_BFC33614: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC33614: 00E22823 subu $a1, $a3, $v0 */ cpu->gpr[5] = cpu->gpr[7] - cpu->gpr[2]; @@ -134628,12 +164508,18 @@ label_BFC33614: cpu->gpr[4] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC33618) goto label_BFC33628; label_BFC33620: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33620: 00441021 addu $v0, $v0, $a0 */ cpu->gpr[2] = cpu->gpr[2] + cpu->gpr[4]; /* 0xBFC33624: 00E43823 subu $a3, $a3, $a0 */ cpu->gpr[7] = cpu->gpr[7] - cpu->gpr[4]; label_BFC33628: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC33628: 01222823 subu $a1, $t1, $v0 */ cpu->gpr[5] = cpu->gpr[9] - cpu->gpr[2]; @@ -134644,10 +164530,16 @@ label_BFC33628: cpu->gpr[4] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC3362C) goto label_BFC33638; label_BFC33634: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC33634: 01244823 subu $t1, $t1, $a0 */ cpu->gpr[9] = cpu->gpr[9] - cpu->gpr[4]; label_BFC33638: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC33638: 012A2023 subu $a0, $t1, $t2 */ cpu->gpr[4] = cpu->gpr[9] - cpu->gpr[10]; @@ -134658,12 +164550,18 @@ label_BFC33638: cpu->gpr[2] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC3363C) goto label_BFC3364C; label_BFC33644: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33644: 01425021 addu $t2, $t2, $v0 */ cpu->gpr[10] = cpu->gpr[10] + cpu->gpr[2]; /* 0xBFC33648: 01224823 subu $t1, $t1, $v0 */ cpu->gpr[9] = cpu->gpr[9] - cpu->gpr[2]; label_BFC3364C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3364C: 01232823 subu $a1, $t1, $v1 */ cpu->gpr[5] = cpu->gpr[9] - cpu->gpr[3]; @@ -134676,10 +164574,16 @@ label_BFC3364C: cpu->gpr[8] = cpu->gpr[10] - cpu->gpr[7]; if (psx_taken_BFC33654) goto label_BFC33660; label_BFC3365C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3365C: 00621821 addu $v1, $v1, $v0 */ cpu->gpr[3] = cpu->gpr[3] + cpu->gpr[2]; label_BFC33660: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC33660: 8CC20000 lw $v0, 0($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC33660u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -134694,12 +164598,18 @@ label_BFC33660: cpu->gpr[4] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC3366C) goto label_BFC3367C; label_BFC33674: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33674: 00441021 addu $v0, $v0, $a0 */ cpu->gpr[2] = cpu->gpr[2] + cpu->gpr[4]; /* 0xBFC33678: 00641823 subu $v1, $v1, $a0 */ cpu->gpr[3] = cpu->gpr[3] - cpu->gpr[4]; label_BFC3367C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3367C: 05010003 bgez $t0, 0xBFC3368C */ uint32_t psx_brA_BFC3367C = cpu->gpr[8]; @@ -134708,12 +164618,18 @@ label_BFC3367C: cpu->gpr[4] = cpu->gpr[8] + cpu->gpr[0]; if (psx_taken_BFC3367C) goto label_BFC3368C; label_BFC33684: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33684: 00E43821 addu $a3, $a3, $a0 */ cpu->gpr[7] = cpu->gpr[7] + cpu->gpr[4]; /* 0xBFC33688: 01445023 subu $t2, $t2, $a0 */ cpu->gpr[10] = cpu->gpr[10] - cpu->gpr[4]; label_BFC3368C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3368C: 00E22823 subu $a1, $a3, $v0 */ cpu->gpr[5] = cpu->gpr[7] - cpu->gpr[2]; @@ -134724,10 +164640,16 @@ label_BFC3368C: cpu->gpr[4] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC33690) goto label_BFC3369C; label_BFC33698: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC33698: 00E43823 subu $a3, $a3, $a0 */ cpu->gpr[7] = cpu->gpr[7] - cpu->gpr[4]; label_BFC3369C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3369C: 01432023 subu $a0, $t2, $v1 */ cpu->gpr[4] = cpu->gpr[10] - cpu->gpr[3]; @@ -134738,10 +164660,16 @@ label_BFC3369C: cpu->gpr[2] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC336A0) goto label_BFC336AC; label_BFC336A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC336A8: 00621821 addu $v1, $v1, $v0 */ cpu->gpr[3] = cpu->gpr[3] + cpu->gpr[2]; label_BFC336AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC336AC: 8CC20000 lw $v0, 0($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC336ACu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -134754,12 +164682,18 @@ label_BFC336AC: cpu->gpr[4] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC336B4) goto label_BFC336C4; label_BFC336BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC336BC: 00641821 addu $v1, $v1, $a0 */ cpu->gpr[3] = cpu->gpr[3] + cpu->gpr[4]; /* 0xBFC336C0: 00E43823 subu $a3, $a3, $a0 */ cpu->gpr[7] = cpu->gpr[7] - cpu->gpr[4]; label_BFC336C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC336C4: 00E22823 subu $a1, $a3, $v0 */ cpu->gpr[5] = cpu->gpr[7] - cpu->gpr[2]; @@ -134770,10 +164704,16 @@ label_BFC336C4: cpu->gpr[4] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC336C8) goto label_BFC336D4; label_BFC336D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC336D0: 00441021 addu $v0, $v0, $a0 */ cpu->gpr[2] = cpu->gpr[2] + cpu->gpr[4]; label_BFC336D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC336D4: 00622823 subu $a1, $v1, $v0 */ cpu->gpr[5] = cpu->gpr[3] - cpu->gpr[2]; @@ -134784,10 +164724,16 @@ label_BFC336D4: cpu->gpr[4] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC336D8) goto label_BFC336E4; label_BFC336E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC336E0: 00641823 subu $v1, $v1, $a0 */ cpu->gpr[3] = cpu->gpr[3] - cpu->gpr[4]; label_BFC336E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC336E4: 03E00008 jr $ra */ /* 0xBFC336E8: 00601021 addu $v0, $v1, $zero */ @@ -134798,6 +164744,9 @@ label_BFC336E4: void func_1FC336F0(CPUState* cpu) { debug_server_log_call_entry(0x1FC336F0u); label_BFC336F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(26u); +#endif psx_check_interrupts(cpu); /* 0xBFC336F0: 00000000 nop */ /* nop */ @@ -134856,6 +164805,9 @@ label_BFC336F0: void func_1FC33758(CPUState* cpu) { debug_server_log_call_entry(0x1FC33758u); label_BFC33758: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(21u); +#endif psx_check_interrupts(cpu); /* 0xBFC33758: 48864000 mtc2 $a2, gte_data[8] */ cpu->gte_data[8] = cpu->gpr[6]; @@ -134904,6 +164856,9 @@ label_BFC33758: void func_1FC337AC(CPUState* cpu) { debug_server_log_call_entry(0x1FC337ACu); label_BFC337AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(21u); +#endif psx_check_interrupts(cpu); /* 0xBFC337AC: 48864000 mtc2 $a2, gte_data[8] */ cpu->gte_data[8] = cpu->gpr[6]; @@ -134952,6 +164907,9 @@ label_BFC337AC: void func_1FC33800(CPUState* cpu) { debug_server_log_call_entry(0x1FC33800u); label_BFC33800: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(35u); +#endif psx_check_interrupts(cpu); /* 0xBFC33800: 8C880000 lw $t0, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC33800u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -135028,6 +164986,9 @@ label_BFC33800: void func_1FC3388C(CPUState* cpu) { debug_server_log_call_entry(0x1FC3388Cu); label_BFC3388C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(35u); +#endif psx_check_interrupts(cpu); /* 0xBFC3388C: 8C880000 lw $t0, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3388Cu); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -135104,6 +165065,9 @@ label_BFC3388C: void func_1FC33918(CPUState* cpu) { debug_server_log_call_entry(0x1FC33918u); label_BFC33918: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(24u); +#endif psx_check_interrupts(cpu); /* 0xBFC33918: 90880000 lbu $t0, 0($a0) */ cpu->gpr[8] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (0))); @@ -135158,6 +165122,9 @@ label_BFC33918: void func_1FC33978(CPUState* cpu) { debug_server_log_call_entry(0x1FC33978u); label_BFC33978: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(30u); +#endif psx_check_interrupts(cpu); /* 0xBFC33978: 90880000 lbu $t0, 0($a0) */ cpu->gpr[8] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (0))); @@ -135232,6 +165199,9 @@ void func_1FC339F0(CPUState* cpu) { } } label_BFC339F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(26u); +#endif psx_check_interrupts(cpu); /* 0xBFC339F0: 8C880000 lw $t0, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC339F0u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -135287,6 +165257,9 @@ label_BFC339F0: cpu->gpr[31] = 0x8004BA58u; psx_dispatch(cpu, 0x8004BC98u); label_BFC33A58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(24u); +#endif psx_check_interrupts(cpu); /* 0xBFC33A58: 3C1F8008 lui $ra, 0x8008 */ cpu->gpr[31] = 0x80080000u; @@ -135349,6 +165322,9 @@ void func_1FC33AB8(CPUState* cpu) { } } label_BFC33AB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(26u); +#endif psx_check_interrupts(cpu); /* 0xBFC33AB8: 8C880000 lw $t0, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC33AB8u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -135404,6 +165380,9 @@ label_BFC33AB8: cpu->gpr[31] = 0x8004BB20u; psx_dispatch(cpu, 0x8004BC98u); label_BFC33B20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(24u); +#endif psx_check_interrupts(cpu); /* 0xBFC33B20: 3C1F8008 lui $ra, 0x8008 */ cpu->gpr[31] = 0x80080000u; @@ -135458,6 +165437,9 @@ label_BFC33B20: void func_1FC33B80(CPUState* cpu) { debug_server_log_call_entry(0x1FC33B80u); label_BFC33B80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC33B80: 4884F000 mtc2 $a0, gte_data[30] */ gte_write_data(cpu, 30, cpu->gpr[4]); @@ -135476,6 +165458,9 @@ label_BFC33B80: /* nop */ if (psx_taken_BFC33B94) goto label_BFC33BFC; label_BFC33B9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC33B9C: 30480001 andi $t0, $v0, 0x1 */ cpu->gpr[8] = cpu->gpr[2] & 0x1u; @@ -135498,6 +165483,9 @@ label_BFC33B9C: /* nop */ if (psx_taken_BFC33BB8) goto label_BFC33BC8; label_BFC33BC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33BC0: 01646004 sllv $t4, $a0, $t3 */ cpu->gpr[12] = cpu->gpr[4] << (cpu->gpr[11] & 0x1Fu); @@ -135505,17 +165493,26 @@ label_BFC33BC0: uint32_t psx_brA_BFC33BC4 = cpu->gpr[0]; uint32_t psx_brB_BFC33BC4 = cpu->gpr[0]; int psx_taken_BFC33BC4 = (psx_brA_BFC33BC4 == psx_brB_BFC33BC4); label_BFC33BC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC33BC8: 240B0018 addiu $t3, $zero, 24 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (24)); if (psx_taken_BFC33BC4) goto label_BFC33BD4; label_BFC33BCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33BCC: 016A5822 subu $t3, $t3, $t2 */ cpu->gpr[11] = cpu->gpr[11] - cpu->gpr[10]; /* 0xBFC33BD0: 01646007 srav $t4, $a0, $t3 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[4] >> (cpu->gpr[11] & 0x1Fu)); label_BFC33BD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC33BD4: 218CFFC0 addi $t4, $t4, -64 */ { int32_t psx_a = (int32_t)cpu->gpr[12]; int32_t psx_b = (-64); int64_t psx_r = (int64_t)psx_a + (int64_t)psx_b; if (psx_r < (int64_t)INT32_MIN || psx_r > (int64_t)INT32_MAX) { psx_arith_overflow(cpu); return; } cpu->gpr[12] = (uint32_t)(int32_t)psx_r; } @@ -135538,6 +165535,9 @@ label_BFC33BD4: /* nop */ return; label_BFC33BFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33BFC: 03E00008 jr $ra */ /* 0xBFC33C00: 24020000 addiu $v0, $zero, 0 */ @@ -135548,6 +165548,9 @@ label_BFC33BFC: void func_1FC33C04(CPUState* cpu) { debug_server_log_call_entry(0x1FC33C04u); label_BFC33C04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC33C04: 4884F000 mtc2 $a0, gte_data[30] */ gte_write_data(cpu, 30, cpu->gpr[4]); @@ -135566,6 +165569,9 @@ label_BFC33C04: /* nop */ if (psx_taken_BFC33C18) { cpu->pc = 0xBFC33C90u; return; } label_BFC33C20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC33C20: 30480001 andi $t0, $v0, 0x1 */ cpu->gpr[8] = cpu->gpr[2] & 0x1u; @@ -135588,6 +165594,9 @@ label_BFC33C20: /* nop */ if (psx_taken_BFC33C3C) goto label_BFC33C4C; label_BFC33C44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33C44: 01646004 sllv $t4, $a0, $t3 */ cpu->gpr[12] = cpu->gpr[4] << (cpu->gpr[11] & 0x1Fu); @@ -135595,17 +165604,26 @@ label_BFC33C44: uint32_t psx_brA_BFC33C48 = cpu->gpr[0]; uint32_t psx_brB_BFC33C48 = cpu->gpr[0]; int psx_taken_BFC33C48 = (psx_brA_BFC33C48 == psx_brB_BFC33C48); label_BFC33C4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC33C4C: 240B0018 addiu $t3, $zero, 24 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (24)); if (psx_taken_BFC33C48) goto label_BFC33C58; label_BFC33C50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33C50: 016A5822 subu $t3, $t3, $t2 */ cpu->gpr[11] = cpu->gpr[11] - cpu->gpr[10]; /* 0xBFC33C54: 01646007 srav $t4, $a0, $t3 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[4] >> (cpu->gpr[11] & 0x1Fu)); label_BFC33C58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC33C58: 218CFFC0 addi $t4, $t4, -64 */ { int32_t psx_a = (int32_t)cpu->gpr[12]; int32_t psx_b = (-64); int64_t psx_r = (int64_t)psx_a + (int64_t)psx_b; if (psx_r < (int64_t)INT32_MIN || psx_r > (int64_t)INT32_MAX) { psx_arith_overflow(cpu); return; } cpu->gpr[12] = (uint32_t)(int32_t)psx_r; } @@ -135626,6 +165644,9 @@ label_BFC33C58: /* nop */ if (psx_taken_BFC33C70) { cpu->pc = 0xBFC33C84u; return; } label_BFC33C78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC33C78: 012D1004 sllv $v0, $t5, $t1 */ cpu->gpr[2] = cpu->gpr[13] << (cpu->gpr[9] & 0x1Fu); @@ -135638,6 +165659,9 @@ label_BFC33C78: void func_1FC33C84(CPUState* cpu) { debug_server_log_call_entry(0x1FC33C84u); label_BFC33C84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC33C84: 00094822 subu $t1, $zero, $t1 */ cpu->gpr[9] = cpu->gpr[0] - cpu->gpr[9]; @@ -135650,6 +165674,9 @@ label_BFC33C84: void func_1FC33C98(CPUState* cpu) { debug_server_log_call_entry(0x1FC33C98u); label_BFC33C98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC33C98: 4884F000 mtc2 $a0, gte_data[30] */ gte_write_data(cpu, 30, cpu->gpr[4]); @@ -135668,6 +165695,9 @@ label_BFC33C98: /* nop */ if (psx_taken_BFC33CAC) { cpu->pc = 0xBFC33D1Cu; return; } label_BFC33CB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33CB4: 10400019 beq $v0, $zero, 0xBFC33D1C */ uint32_t psx_brA_BFC33CB4 = cpu->gpr[2]; uint32_t psx_brB_BFC33CB4 = cpu->gpr[0]; @@ -135676,6 +165706,9 @@ label_BFC33CB4: /* nop */ if (psx_taken_BFC33CB4) { cpu->pc = 0xBFC33D1Cu; return; } label_BFC33CBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC33CBC: 30480001 andi $t0, $v0, 0x1 */ cpu->gpr[8] = cpu->gpr[2] & 0x1u; @@ -135685,6 +165718,9 @@ label_BFC33CBC: void func_1FC33CC0(CPUState* cpu) { debug_server_log_call_entry(0x1FC33CC0u); label_BFC33CC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC33CC0: 240AFFFE addiu $t2, $zero, -2 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (-2)); @@ -135705,6 +165741,9 @@ label_BFC33CC0: /* nop */ if (psx_taken_BFC33CD8) goto label_BFC33CE8; label_BFC33CE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33CE0: 01646004 sllv $t4, $a0, $t3 */ cpu->gpr[12] = cpu->gpr[4] << (cpu->gpr[11] & 0x1Fu); @@ -135712,17 +165751,26 @@ label_BFC33CE0: uint32_t psx_brA_BFC33CE4 = cpu->gpr[0]; uint32_t psx_brB_BFC33CE4 = cpu->gpr[0]; int psx_taken_BFC33CE4 = (psx_brA_BFC33CE4 == psx_brB_BFC33CE4); label_BFC33CE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC33CE8: 240B0018 addiu $t3, $zero, 24 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (24)); if (psx_taken_BFC33CE4) goto label_BFC33CF4; label_BFC33CEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33CEC: 016A5822 subu $t3, $t3, $t2 */ cpu->gpr[11] = cpu->gpr[11] - cpu->gpr[10]; /* 0xBFC33CF0: 01646007 srav $t4, $a0, $t3 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[4] >> (cpu->gpr[11] & 0x1Fu)); label_BFC33CF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC33CF4: 218CFFC0 addi $t4, $t4, -64 */ { int32_t psx_a = (int32_t)cpu->gpr[12]; int32_t psx_b = (-64); int64_t psx_r = (int64_t)psx_a + (int64_t)psx_b; if (psx_r < (int64_t)INT32_MIN || psx_r > (int64_t)INT32_MAX) { psx_arith_overflow(cpu); return; } cpu->gpr[12] = (uint32_t)(int32_t)psx_r; } @@ -135749,6 +165797,9 @@ label_BFC33CF4: void func_1FC33D24(CPUState* cpu) { debug_server_log_call_entry(0x1FC33D24u); label_BFC33D24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC33D24: 000630C0 sll $a2, $a2, 3 */ cpu->gpr[6] = cpu->gpr[6] << 3u; @@ -135757,6 +165808,9 @@ label_BFC33D24: /* 0xBFC33D2C: 48874000 mtc2 $a3, gte_data[8] */ cpu->gte_data[8] = cpu->gpr[7]; label_BFC33D30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(27u); +#endif psx_check_interrupts(cpu); /* 0xBFC33D30: 8CA80000 lw $t0, 0($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC33D30u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -135815,6 +165869,9 @@ label_BFC33D30: /* nop */ if (psx_taken_BFC33D94) goto label_BFC33D30; label_BFC33D9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC33D9C: 03E00008 jr $ra */ /* 0xBFC33DA0: 00000000 nop */ @@ -135825,6 +165882,9 @@ label_BFC33D9C: void func_1FC33DA4(CPUState* cpu) { debug_server_log_call_entry(0x1FC33DA4u); label_BFC33DA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(31u); +#endif psx_check_interrupts(cpu); /* 0xBFC33DA4: 8C880000 lw $t0, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC33DA4u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -135893,6 +165953,9 @@ label_BFC33DA4: void func_1FC33E20(CPUState* cpu) { debug_server_log_call_entry(0x1FC33E20u); label_BFC33E20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC33E20: 90880000 lbu $t0, 0($a0) */ cpu->gpr[8] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (0))); @@ -135937,6 +166000,9 @@ label_BFC33E20: void func_1FC33E80(CPUState* cpu) { debug_server_log_call_entry(0x1FC33E80u); label_BFC33E80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC33E80: C8820000 lwc2 gte[2], 0($a0) */ cpu->gte_data[2] = cpu->read_word(cpu->gpr[4]); @@ -135951,6 +166017,9 @@ label_BFC33E80: void func_1FC33E90(CPUState* cpu) { debug_server_log_call_entry(0x1FC33E90u); label_BFC33E90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC33E90: C8840000 lwc2 gte[4], 0($a0) */ cpu->gte_data[4] = cpu->read_word(cpu->gpr[4]); @@ -135965,6 +166034,9 @@ label_BFC33E90: void func_1FC33EA0(CPUState* cpu) { debug_server_log_call_entry(0x1FC33EA0u); label_BFC33EA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC33EA0: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -135987,6 +166059,9 @@ label_BFC33EA0: void func_1FC33EC0(CPUState* cpu) { debug_server_log_call_entry(0x1FC33EC0u); label_BFC33EC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC33EC0: C8860000 lwc2 gte[6], 0($a0) */ cpu->gte_data[6] = cpu->read_word(cpu->gpr[4]); @@ -135999,6 +166074,9 @@ label_BFC33EC0: void func_1FC33ECC(CPUState* cpu) { debug_server_log_call_entry(0x1FC33ECCu); label_BFC33ECC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC33ECC: C8940000 lwc2 gte[20], 0($a0) */ cpu->gte_data[20] = cpu->read_word(cpu->gpr[4]); @@ -136015,6 +166093,9 @@ label_BFC33ECC: void func_1FC33EE0(CPUState* cpu) { debug_server_log_call_entry(0x1FC33EE0u); label_BFC33EE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC33EE0: 48844800 mtc2 $a0, gte_data[9] */ cpu->gte_data[9] = cpu->gpr[4]; @@ -136031,6 +166112,9 @@ label_BFC33EE0: void func_1FC33EF4(CPUState* cpu) { debug_server_log_call_entry(0x1FC33EF4u); label_BFC33EF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC33EF4: 48844000 mtc2 $a0, gte_data[8] */ cpu->gte_data[8] = cpu->gpr[4]; @@ -136043,6 +166127,9 @@ label_BFC33EF4: void func_1FC33F00(CPUState* cpu) { debug_server_log_call_entry(0x1FC33F00u); label_BFC33F00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC33F00: 00042100 sll $a0, $a0, 4 */ cpu->gpr[4] = cpu->gpr[4] << 4u; @@ -136065,6 +166152,9 @@ label_BFC33F00: void func_1FC33F20(CPUState* cpu) { debug_server_log_call_entry(0x1FC33F20u); label_BFC33F20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC33F20: 00042100 sll $a0, $a0, 4 */ cpu->gpr[4] = cpu->gpr[4] << 4u; @@ -136087,6 +166177,9 @@ label_BFC33F20: void func_1FC33F40(CPUState* cpu) { debug_server_log_call_entry(0x1FC33F40u); label_BFC33F40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC33F40: 48848800 mtc2 $a0, gte_data[17] */ cpu->gte_data[17] = cpu->gpr[4]; @@ -136103,6 +166196,9 @@ label_BFC33F40: void func_1FC33F54(CPUState* cpu) { debug_server_log_call_entry(0x1FC33F54u); label_BFC33F54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC33F54: 48848000 mtc2 $a0, gte_data[16] */ cpu->gte_data[16] = cpu->gpr[4]; @@ -136121,6 +166217,9 @@ label_BFC33F54: void func_1FC33F6C(CPUState* cpu) { debug_server_log_call_entry(0x1FC33F6Cu); label_BFC33F6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC33F6C: 48846000 mtc2 $a0, gte_data[12] */ cpu->gte_data[12] = cpu->gpr[4]; @@ -136137,6 +166236,9 @@ label_BFC33F6C: void func_1FC33F80(CPUState* cpu) { debug_server_log_call_entry(0x1FC33F80u); label_BFC33F80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC33F80: 48C40000 ctc2 $a0, gte_ctrl[0] */ cpu->gte_ctrl[0] = cpu->gpr[4]; @@ -136153,6 +166255,9 @@ label_BFC33F80: void func_1FC33F94(CPUState* cpu) { debug_server_log_call_entry(0x1FC33F94u); label_BFC33F94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC33F94: 4884C800 mtc2 $a0, gte_data[25] */ cpu->gte_data[25] = cpu->gpr[4]; @@ -136169,6 +166274,9 @@ label_BFC33F94: void func_1FC33FA8(CPUState* cpu) { debug_server_log_call_entry(0x1FC33FA8u); label_BFC33FA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC33FA8: 4884F000 mtc2 $a0, gte_data[30] */ gte_write_data(cpu, 30, cpu->gpr[4]); @@ -136181,6 +166289,9 @@ label_BFC33FA8: void func_1FC33FB4(CPUState* cpu) { debug_server_log_call_entry(0x1FC33FB4u); label_BFC33FB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC33FB4: 00042400 sll $a0, $a0, 16 */ cpu->gpr[4] = cpu->gpr[4] << 16u; @@ -136199,6 +166310,9 @@ label_BFC33FB4: void func_1FC33FCC(CPUState* cpu) { debug_server_log_call_entry(0x1FC33FCCu); label_BFC33FCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC33FCC: 48C4D000 ctc2 $a0, gte_ctrl[26] */ cpu->gte_ctrl[26] = cpu->gpr[4]; @@ -136211,6 +166325,9 @@ label_BFC33FCC: void func_1FC33FD8(CPUState* cpu) { debug_server_log_call_entry(0x1FC33FD8u); label_BFC33FD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC33FD8: 48C4D800 ctc2 $a0, gte_ctrl[27] */ cpu->gte_ctrl[27] = cpu->gpr[4]; @@ -136223,6 +166340,9 @@ label_BFC33FD8: void func_1FC33FE4(CPUState* cpu) { debug_server_log_call_entry(0x1FC33FE4u); label_BFC33FE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC33FE4: 48C4E000 ctc2 $a0, gte_ctrl[28] */ cpu->gte_ctrl[28] = cpu->gpr[4]; @@ -136235,6 +166355,9 @@ label_BFC33FE4: void func_1FC33FF0(CPUState* cpu) { debug_server_log_call_entry(0x1FC33FF0u); label_BFC33FF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC33FF0: 48023800 mfc2 $v0, gte_data[7] */ cpu->gpr[2] = cpu->gte_data[7]; @@ -136247,6 +166370,9 @@ label_BFC33FF0: void func_1FC33FFC(CPUState* cpu) { debug_server_log_call_entry(0x1FC33FFCu); label_BFC33FFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC33FFC: 48024000 mfc2 $v0, gte_data[8] */ cpu->gpr[2] = cpu->gte_data[8]; @@ -136259,6 +166385,9 @@ label_BFC33FFC: void func_1FC34008(CPUState* cpu) { debug_server_log_call_entry(0x1FC34008u); label_BFC34008: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC34008: E8890000 swc2 gte[9], 0($a0) */ cpu->write_word(cpu->gpr[4], cpu->gte_data[9]); @@ -136275,6 +166404,9 @@ label_BFC34008: void func_1FC3401C(CPUState* cpu) { debug_server_log_call_entry(0x1FC3401Cu); label_BFC3401C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3401C: E8930000 swc2 gte[19], 0($a0) */ cpu->write_word(cpu->gpr[4], cpu->gte_data[19]); @@ -136287,6 +166419,9 @@ label_BFC3401C: void func_1FC34028(CPUState* cpu) { debug_server_log_call_entry(0x1FC34028u); label_BFC34028: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC34028: E8910000 swc2 gte[17], 0($a0) */ cpu->write_word(cpu->gpr[4], cpu->gte_data[17]); @@ -136303,6 +166438,9 @@ label_BFC34028: void func_1FC3403C(CPUState* cpu) { debug_server_log_call_entry(0x1FC3403Cu); label_BFC3403C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3403C: E8900000 swc2 gte[16], 0($a0) */ cpu->write_word(cpu->gpr[4], cpu->gte_data[16]); @@ -136321,6 +166459,9 @@ label_BFC3403C: void func_1FC34054(CPUState* cpu) { debug_server_log_call_entry(0x1FC34054u); label_BFC34054: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC34054: E88C0000 swc2 gte[12], 0($a0) */ cpu->write_word(cpu->gpr[4], cpu->gte_data[12]); @@ -136337,6 +166478,9 @@ label_BFC34054: void func_1FC34068(CPUState* cpu) { debug_server_log_call_entry(0x1FC34068u); label_BFC34068: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC34068: E8940000 swc2 gte[20], 0($a0) */ cpu->write_word(cpu->gpr[4], cpu->gte_data[20]); @@ -136353,6 +166497,9 @@ label_BFC34068: void func_1FC3407C(CPUState* cpu) { debug_server_log_call_entry(0x1FC3407Cu); label_BFC3407C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3407C: 4802C000 mfc2 $v0, gte_data[24] */ cpu->gpr[2] = cpu->gte_data[24]; @@ -136365,6 +166512,9 @@ label_BFC3407C: void func_1FC34088(CPUState* cpu) { debug_server_log_call_entry(0x1FC34088u); label_BFC34088: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC34088: E8990000 swc2 gte[25], 0($a0) */ cpu->write_word(cpu->gpr[4], cpu->gte_data[25]); @@ -136381,6 +166531,9 @@ label_BFC34088: void func_1FC3409C(CPUState* cpu) { debug_server_log_call_entry(0x1FC3409Cu); label_BFC3409C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC3409C: 4808E800 mfc2 $t0, gte_data[29] */ cpu->gpr[8] = gte_read_data(cpu, 29); @@ -136411,6 +166564,9 @@ label_BFC3409C: void func_1FC340CC(CPUState* cpu) { debug_server_log_call_entry(0x1FC340CCu); label_BFC340CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC340CC: 4802F800 mfc2 $v0, gte_data[31] */ cpu->gpr[2] = cpu->gte_data[31]; @@ -136423,6 +166579,9 @@ label_BFC340CC: void func_1FC340D8(CPUState* cpu) { debug_server_log_call_entry(0x1FC340D8u); label_BFC340D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC340D8: 4842F800 cfc2 $v0, gte_ctrl[31] */ cpu->gpr[2] = cpu->gte_ctrl[31]; @@ -136435,6 +166594,9 @@ label_BFC340D8: void func_1FC340E4(CPUState* cpu) { debug_server_log_call_entry(0x1FC340E4u); label_BFC340E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC340E4: 4848C000 cfc2 $t0, gte_ctrl[24] */ cpu->gpr[8] = cpu->gte_ctrl[24]; @@ -136457,6 +166619,9 @@ label_BFC340E4: void func_1FC34104(CPUState* cpu) { debug_server_log_call_entry(0x1FC34104u); label_BFC34104: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC34104: 4842D000 cfc2 $v0, gte_ctrl[26] */ cpu->gpr[2] = cpu->gte_ctrl[26]; @@ -136469,6 +166634,9 @@ label_BFC34104: void func_1FC34110(CPUState* cpu) { debug_server_log_call_entry(0x1FC34110u); label_BFC34110: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC34110: 00803821 addu $a3, $a0, $zero */ cpu->gpr[7] = cpu->gpr[4] + cpu->gpr[0]; @@ -136479,6 +166647,9 @@ label_BFC34110: /* 0xBFC3411C: 24090003 addiu $t1, $zero, 3 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); label_BFC34120: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC34120: 00027040 sll $t6, $v0, 1 */ cpu->gpr[14] = cpu->gpr[2] << 1u; @@ -136489,6 +166660,9 @@ label_BFC34120: /* 0xBFC3412C: 00C02021 addu $a0, $a2, $zero */ cpu->gpr[4] = cpu->gpr[6] + cpu->gpr[0]; label_BFC34130: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC34130: 850F0000 lh $t7, 0($t0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[8] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34130u); return; } cpu->gpr[15] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -136505,6 +166679,9 @@ label_BFC34130: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (-2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34144u); return; } g_debug_last_store_pc = 0xBFC34144u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[15] & 0xFFFFu)); } if (psx_taken_BFC34140) goto label_BFC34130; label_BFC34148: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC34148: 24420001 addiu $v0, $v0, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (1)); @@ -136517,6 +166694,9 @@ label_BFC34148: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (6)); if (psx_taken_BFC34150) goto label_BFC34120; label_BFC34158: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34158: 03E00008 jr $ra */ /* 0xBFC3415C: 00A01021 addu $v0, $a1, $zero */ @@ -136540,6 +166720,9 @@ void func_1FC34160(CPUState* cpu) { } } label_BFC34160: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC34160: 27BDFFC0 addiu $sp, $sp, -64 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-64)); @@ -136563,6 +166746,9 @@ label_BFC34160: cpu->gpr[31] = 0x8004C188u; psx_dispatch(cpu, 0x8004C9B8u); label_BFC34188: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC34188: 86240002 lh $a0, 2($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34188u); return; } cpu->gpr[4] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -136572,6 +166758,9 @@ label_BFC34188: cpu->gpr[31] = 0x8004C194u; psx_dispatch(cpu, 0x8004C9B8u); label_BFC34194: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC34194: 86240004 lh $a0, 4($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (4)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34194u); return; } cpu->gpr[4] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -136581,6 +166770,9 @@ label_BFC34194: cpu->gpr[31] = 0x8004C1A0u; psx_dispatch(cpu, 0x8004C9B8u); label_BFC341A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC341A0: 00403821 addu $a3, $v0, $zero */ cpu->gpr[7] = cpu->gpr[2] + cpu->gpr[0]; @@ -136592,6 +166784,9 @@ label_BFC341A0: cpu->gpr[31] = 0x8004C1B0u; psx_dispatch(cpu, 0x8004C898u); label_BFC341B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC341B0: 8FA70034 lw $a3, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC341B0u); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } @@ -136605,6 +166800,9 @@ label_BFC341B0: cpu->gpr[31] = 0x8004C1C4u; psx_dispatch(cpu, 0x8004C898u); label_BFC341C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC341C4: 8FA50030 lw $a1, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC341C4u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -136620,6 +166818,9 @@ label_BFC341C4: cpu->gpr[31] = 0x8004C1DCu; psx_dispatch(cpu, 0x8004C898u); label_BFC341DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(74u); +#endif psx_check_interrupts(cpu); /* 0xBFC341DC: 8FA70034 lw $a3, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC341DCu); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } @@ -136787,6 +166988,9 @@ void func_1FC34304(CPUState* cpu) { } } label_BFC34304: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC34304: 27BDFFC0 addiu $sp, $sp, -64 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-64)); @@ -136810,6 +167014,9 @@ label_BFC34304: cpu->gpr[31] = 0x8004C32Cu; psx_dispatch(cpu, 0x8004C9B8u); label_BFC3432C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3432C: 86240002 lh $a0, 2($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3432Cu); return; } cpu->gpr[4] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -136819,6 +167026,9 @@ label_BFC3432C: cpu->gpr[31] = 0x8004C338u; psx_dispatch(cpu, 0x8004C9B8u); label_BFC34338: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC34338: 86240004 lh $a0, 4($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (4)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34338u); return; } cpu->gpr[4] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -136828,6 +167038,9 @@ label_BFC34338: cpu->gpr[31] = 0x8004C344u; psx_dispatch(cpu, 0x8004C9B8u); label_BFC34344: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC34344: 00403021 addu $a2, $v0, $zero */ cpu->gpr[6] = cpu->gpr[2] + cpu->gpr[0]; @@ -136839,6 +167052,9 @@ label_BFC34344: cpu->gpr[31] = 0x8004C354u; psx_dispatch(cpu, 0x8004C898u); label_BFC34354: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC34354: 8FA60034 lw $a2, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34354u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -136852,6 +167068,9 @@ label_BFC34354: cpu->gpr[31] = 0x8004C368u; psx_dispatch(cpu, 0x8004C898u); label_BFC34368: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC34368: 8FA60034 lw $a2, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34368u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -136867,6 +167086,9 @@ label_BFC34368: cpu->gpr[31] = 0x8004C380u; psx_dispatch(cpu, 0x8004C898u); label_BFC34380: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(73u); +#endif psx_check_interrupts(cpu); /* 0xBFC34380: 8FA5002C lw $a1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34380u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -137028,6 +167250,9 @@ void func_1FC344A4(CPUState* cpu) { } } label_BFC344A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC344A4: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -137043,6 +167268,9 @@ label_BFC344A4: cpu->gpr[31] = 0x8004C4BCu; psx_dispatch(cpu, 0x8004C9B8u); label_BFC344BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC344BC: 8FA5002C lw $a1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC344BCu); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -137056,6 +167284,9 @@ label_BFC344BC: cpu->gpr[31] = 0x8004C4D0u; psx_dispatch(cpu, 0x8004C898u); label_BFC344D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(73u); +#endif psx_check_interrupts(cpu); /* 0xBFC344D0: 8FA5002C lw $a1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC344D0u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -137217,6 +167448,9 @@ void func_1FC345F4(CPUState* cpu) { } } label_BFC345F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC345F4: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -137232,6 +167466,9 @@ label_BFC345F4: cpu->gpr[31] = 0x8004C60Cu; psx_dispatch(cpu, 0x8004C9B8u); label_BFC3460C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3460C: 8FA5002C lw $a1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3460Cu); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -137245,6 +167482,9 @@ label_BFC3460C: cpu->gpr[31] = 0x8004C620u; psx_dispatch(cpu, 0x8004C898u); label_BFC34620: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(74u); +#endif psx_check_interrupts(cpu); /* 0xBFC34620: 8FA5002C lw $a1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34620u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -137408,6 +167648,9 @@ void func_1FC34748(CPUState* cpu) { } } label_BFC34748: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC34748: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -137423,6 +167666,9 @@ label_BFC34748: cpu->gpr[31] = 0x8004C760u; psx_dispatch(cpu, 0x8004C9B8u); label_BFC34760: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC34760: 8FA5002C lw $a1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34760u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -137436,6 +167682,9 @@ label_BFC34760: cpu->gpr[31] = 0x8004C774u; psx_dispatch(cpu, 0x8004C898u); label_BFC34774: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(73u); +#endif psx_check_interrupts(cpu); /* 0xBFC34774: 8FA5002C lw $a1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34774u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -137597,6 +167846,9 @@ void func_1FC34898(CPUState* cpu) { } } label_BFC34898: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC34898: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -137609,6 +167861,9 @@ label_BFC34898: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC348A4u); return; } g_debug_last_store_pc = 0xBFC348A4u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC348A0) goto label_BFC348D0; label_BFC348A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC348A8: 00031823 subu $v1, $zero, $v1 */ cpu->gpr[3] = cpu->gpr[0] - cpu->gpr[3]; @@ -137619,6 +167874,9 @@ label_BFC348A8: cpu->gpr[3] = cpu->gpr[3] & 0xFFFu; if (psx_taken_BFC348AC) goto label_BFC348C0; label_BFC348B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC348B4: 10600002 beq $v1, $zero, 0xBFC348C0 */ uint32_t psx_brA_BFC348B4 = cpu->gpr[3]; uint32_t psx_brB_BFC348B4 = cpu->gpr[0]; @@ -137627,10 +167885,16 @@ label_BFC348B4: /* nop */ if (psx_taken_BFC348B4) goto label_BFC348C0; label_BFC348BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC348BC: 2463F000 addiu $v1, $v1, -4096 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (-4096)); label_BFC348C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC348C0: 0C01323F jal 0xB004C8FC */ /* 0xBFC348C4: 00602021 addu $a0, $v1, $zero */ @@ -137638,6 +167902,9 @@ label_BFC348C0: cpu->gpr[31] = 0x8004C8C8u; psx_dispatch(cpu, 0x8004C8FCu); label_BFC348C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC348C8: 10000008 beq $zero, $zero, 0xBFC348EC */ uint32_t psx_brA_BFC348C8 = cpu->gpr[0]; uint32_t psx_brB_BFC348C8 = cpu->gpr[0]; @@ -137646,6 +167913,9 @@ label_BFC348C8: cpu->gpr[2] = cpu->gpr[0] - cpu->gpr[2]; if (psx_taken_BFC348C8) goto label_BFC348EC; label_BFC348D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC348D0: 04610004 bgez $v1, 0xBFC348E4 */ uint32_t psx_brA_BFC348D0 = cpu->gpr[3]; @@ -137654,6 +167924,9 @@ label_BFC348D0: cpu->gpr[3] = cpu->gpr[3] & 0xFFFu; if (psx_taken_BFC348D0) goto label_BFC348E4; label_BFC348D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC348D8: 10600002 beq $v1, $zero, 0xBFC348E4 */ uint32_t psx_brA_BFC348D8 = cpu->gpr[3]; uint32_t psx_brB_BFC348D8 = cpu->gpr[0]; @@ -137662,10 +167935,16 @@ label_BFC348D8: /* nop */ if (psx_taken_BFC348D8) goto label_BFC348E4; label_BFC348E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC348E0: 2463F000 addiu $v1, $v1, -4096 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (-4096)); label_BFC348E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC348E4: 0C01323F jal 0xB004C8FC */ /* 0xBFC348E8: 00602021 addu $a0, $v1, $zero */ @@ -137673,6 +167952,9 @@ label_BFC348E4: cpu->gpr[31] = 0x8004C8ECu; psx_dispatch(cpu, 0x8004C8FCu); label_BFC348EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC348EC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC348ECu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -137687,6 +167969,9 @@ label_BFC348EC: void func_1FC348FC(CPUState* cpu) { debug_server_log_call_entry(0x1FC348FCu); label_BFC348FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC348FC: 04800009 bltz $a0, 0xBFC34924 */ uint32_t psx_brA_BFC348FC = cpu->gpr[4]; @@ -137695,6 +167980,9 @@ label_BFC348FC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (1024) ? 1 : 0); if (psx_taken_BFC348FC) { cpu->pc = 0xBFC34924u; return; } label_BFC34904: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34904: 10200008 beq $at, $zero, 0xBFC34928 */ uint32_t psx_brA_BFC34904 = cpu->gpr[1]; uint32_t psx_brB_BFC34904 = cpu->gpr[0]; @@ -137703,6 +167991,9 @@ label_BFC34904: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (1024) ? 1 : 0); if (psx_taken_BFC34904) { cpu->pc = 0xBFC34928u; return; } label_BFC3490C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3490C: 00047040 sll $t6, $a0, 1 */ cpu->gpr[14] = cpu->gpr[4] << 1u; @@ -137721,6 +168012,9 @@ label_BFC3490C: void func_1FC34924(CPUState* cpu) { debug_server_log_call_entry(0x1FC34924u); label_BFC34924: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC34924: 28810400 slti $at, $a0, 1024 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (1024) ? 1 : 0); @@ -137730,6 +168024,9 @@ label_BFC34924: void func_1FC34928(CPUState* cpu) { debug_server_log_call_entry(0x1FC34928u); label_BFC34928: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34928: 1420000A bne $at, $zero, 0xBFC34954 */ uint32_t psx_brA_BFC34928 = cpu->gpr[1]; uint32_t psx_brB_BFC34928 = cpu->gpr[0]; @@ -137738,6 +168035,9 @@ label_BFC34928: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (2048) ? 1 : 0); if (psx_taken_BFC34928) { cpu->pc = 0xBFC34954u; return; } label_BFC34930: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34930: 10200009 beq $at, $zero, 0xBFC34958 */ uint32_t psx_brA_BFC34930 = cpu->gpr[1]; uint32_t psx_brB_BFC34930 = cpu->gpr[0]; @@ -137746,6 +168046,9 @@ label_BFC34930: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (2048) ? 1 : 0); if (psx_taken_BFC34930) { cpu->pc = 0xBFC34958u; return; } label_BFC34938: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC34938: 00047840 sll $t7, $a0, 1 */ cpu->gpr[15] = cpu->gpr[4] << 1u; @@ -137766,6 +168069,9 @@ label_BFC34938: void func_1FC34954(CPUState* cpu) { debug_server_log_call_entry(0x1FC34954u); label_BFC34954: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC34954: 28810800 slti $at, $a0, 2048 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (2048) ? 1 : 0); @@ -137775,6 +168081,9 @@ label_BFC34954: void func_1FC34958(CPUState* cpu) { debug_server_log_call_entry(0x1FC34958u); label_BFC34958: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34958: 14200009 bne $at, $zero, 0xBFC34980 */ uint32_t psx_brA_BFC34958 = cpu->gpr[1]; uint32_t psx_brB_BFC34958 = cpu->gpr[0]; @@ -137783,6 +168092,9 @@ label_BFC34958: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (3072) ? 1 : 0); if (psx_taken_BFC34958) { cpu->pc = 0xBFC34980u; return; } label_BFC34960: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34960: 10200008 beq $at, $zero, 0xBFC34984 */ uint32_t psx_brA_BFC34960 = cpu->gpr[1]; uint32_t psx_brB_BFC34960 = cpu->gpr[0]; @@ -137791,6 +168103,9 @@ label_BFC34960: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (3072) ? 1 : 0); if (psx_taken_BFC34960) { cpu->pc = 0xBFC34984u; return; } label_BFC34968: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC34968: 0004C040 sll $t8, $a0, 1 */ cpu->gpr[24] = cpu->gpr[4] << 1u; @@ -137809,6 +168124,9 @@ label_BFC34968: void func_1FC34980(CPUState* cpu) { debug_server_log_call_entry(0x1FC34980u); label_BFC34980: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC34980: 28810C00 slti $at, $a0, 3072 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (3072) ? 1 : 0); @@ -137818,6 +168136,9 @@ label_BFC34980: void func_1FC34984(CPUState* cpu) { debug_server_log_call_entry(0x1FC34984u); label_BFC34984: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34984: 1420000A bne $at, $zero, 0xBFC349B0 */ uint32_t psx_brA_BFC34984 = cpu->gpr[1]; uint32_t psx_brB_BFC34984 = cpu->gpr[0]; @@ -137826,6 +168147,9 @@ label_BFC34984: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (4096) ? 1 : 0); if (psx_taken_BFC34984) goto label_BFC349B0; label_BFC3498C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3498C: 10200008 beq $at, $zero, 0xBFC349B0 */ uint32_t psx_brA_BFC3498C = cpu->gpr[1]; uint32_t psx_brB_BFC3498C = cpu->gpr[0]; @@ -137834,6 +168158,9 @@ label_BFC3498C: /* nop */ if (psx_taken_BFC3498C) goto label_BFC349B0; label_BFC34994: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC34994: 0004C840 sll $t9, $a0, 1 */ cpu->gpr[25] = cpu->gpr[4] << 1u; @@ -137850,6 +168177,9 @@ label_BFC34994: /* 0xBFC349AC: 00021023 subu $v0, $zero, $v0 */ cpu->gpr[2] = cpu->gpr[0] - cpu->gpr[2]; label_BFC349B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC349B0: 03E00008 jr $ra */ /* 0xBFC349B4: 00000000 nop */ @@ -137860,6 +168190,9 @@ label_BFC349B0: void func_1FC349B8(CPUState* cpu) { debug_server_log_call_entry(0x1FC349B8u); label_BFC349B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC349B8: 04810002 bgez $a0, 0xBFC349C4 */ uint32_t psx_brA_BFC349B8 = cpu->gpr[4]; @@ -137868,10 +168201,16 @@ label_BFC349B8: /* nop */ if (psx_taken_BFC349B8) goto label_BFC349C4; label_BFC349C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC349C0: 00042023 subu $a0, $zero, $a0 */ cpu->gpr[4] = cpu->gpr[0] - cpu->gpr[4]; label_BFC349C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC349C4: 04810004 bgez $a0, 0xBFC349D8 */ uint32_t psx_brA_BFC349C4 = cpu->gpr[4]; @@ -137880,6 +168219,9 @@ label_BFC349C4: cpu->gpr[4] = cpu->gpr[4] & 0xFFFu; if (psx_taken_BFC349C4) goto label_BFC349D8; label_BFC349CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC349CC: 10800002 beq $a0, $zero, 0xBFC349D8 */ uint32_t psx_brA_BFC349CC = cpu->gpr[4]; uint32_t psx_brB_BFC349CC = cpu->gpr[0]; @@ -137888,10 +168230,16 @@ label_BFC349CC: /* nop */ if (psx_taken_BFC349CC) goto label_BFC349D8; label_BFC349D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC349D4: 2484F000 addiu $a0, $a0, -4096 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (-4096)); label_BFC349D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC349D8: 0480000A bltz $a0, 0xBFC34A04 */ uint32_t psx_brA_BFC349D8 = cpu->gpr[4]; @@ -137900,6 +168248,9 @@ label_BFC349D8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (1024) ? 1 : 0); if (psx_taken_BFC349D8) { cpu->pc = 0xBFC34A04u; return; } label_BFC349E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC349E0: 10200009 beq $at, $zero, 0xBFC34A08 */ uint32_t psx_brA_BFC349E0 = cpu->gpr[1]; uint32_t psx_brB_BFC349E0 = cpu->gpr[0]; @@ -137908,6 +168259,9 @@ label_BFC349E0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (1024) ? 1 : 0); if (psx_taken_BFC349E0) { cpu->pc = 0xBFC34A08u; return; } label_BFC349E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC349E8: 00047040 sll $t6, $a0, 1 */ cpu->gpr[14] = cpu->gpr[4] << 1u; @@ -137928,6 +168282,9 @@ label_BFC349E8: void func_1FC34A04(CPUState* cpu) { debug_server_log_call_entry(0x1FC34A04u); label_BFC34A04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC34A04: 28810400 slti $at, $a0, 1024 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (1024) ? 1 : 0); @@ -137937,6 +168294,9 @@ label_BFC34A04: void func_1FC34A08(CPUState* cpu) { debug_server_log_call_entry(0x1FC34A08u); label_BFC34A08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34A08: 14200009 bne $at, $zero, 0xBFC34A30 */ uint32_t psx_brA_BFC34A08 = cpu->gpr[1]; uint32_t psx_brB_BFC34A08 = cpu->gpr[0]; @@ -137945,6 +168305,9 @@ label_BFC34A08: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (2048) ? 1 : 0); if (psx_taken_BFC34A08) { cpu->pc = 0xBFC34A30u; return; } label_BFC34A10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34A10: 10200008 beq $at, $zero, 0xBFC34A34 */ uint32_t psx_brA_BFC34A10 = cpu->gpr[1]; uint32_t psx_brB_BFC34A10 = cpu->gpr[0]; @@ -137953,6 +168316,9 @@ label_BFC34A10: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (2048) ? 1 : 0); if (psx_taken_BFC34A10) { cpu->pc = 0xBFC34A34u; return; } label_BFC34A18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC34A18: 00047840 sll $t7, $a0, 1 */ cpu->gpr[15] = cpu->gpr[4] << 1u; @@ -137971,6 +168337,9 @@ label_BFC34A18: void func_1FC34A30(CPUState* cpu) { debug_server_log_call_entry(0x1FC34A30u); label_BFC34A30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC34A30: 28810800 slti $at, $a0, 2048 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (2048) ? 1 : 0); @@ -137980,6 +168349,9 @@ label_BFC34A30: void func_1FC34A34(CPUState* cpu) { debug_server_log_call_entry(0x1FC34A34u); label_BFC34A34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34A34: 1420000A bne $at, $zero, 0xBFC34A60 */ uint32_t psx_brA_BFC34A34 = cpu->gpr[1]; uint32_t psx_brB_BFC34A34 = cpu->gpr[0]; @@ -137988,6 +168360,9 @@ label_BFC34A34: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (3072) ? 1 : 0); if (psx_taken_BFC34A34) { cpu->pc = 0xBFC34A60u; return; } label_BFC34A3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34A3C: 10200009 beq $at, $zero, 0xBFC34A64 */ uint32_t psx_brA_BFC34A3C = cpu->gpr[1]; uint32_t psx_brB_BFC34A3C = cpu->gpr[0]; @@ -137996,6 +168371,9 @@ label_BFC34A3C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (3072) ? 1 : 0); if (psx_taken_BFC34A3C) { cpu->pc = 0xBFC34A64u; return; } label_BFC34A44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC34A44: 0004C040 sll $t8, $a0, 1 */ cpu->gpr[24] = cpu->gpr[4] << 1u; @@ -138016,6 +168394,9 @@ label_BFC34A44: void func_1FC34A60(CPUState* cpu) { debug_server_log_call_entry(0x1FC34A60u); label_BFC34A60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC34A60: 28810C00 slti $at, $a0, 3072 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (3072) ? 1 : 0); @@ -138025,6 +168406,9 @@ label_BFC34A60: void func_1FC34A64(CPUState* cpu) { debug_server_log_call_entry(0x1FC34A64u); label_BFC34A64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34A64: 14200008 bne $at, $zero, 0xBFC34A88 */ uint32_t psx_brA_BFC34A64 = cpu->gpr[1]; uint32_t psx_brB_BFC34A64 = cpu->gpr[0]; @@ -138033,6 +168417,9 @@ label_BFC34A64: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (4096) ? 1 : 0); if (psx_taken_BFC34A64) goto label_BFC34A88; label_BFC34A6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34A6C: 10200006 beq $at, $zero, 0xBFC34A88 */ uint32_t psx_brA_BFC34A6C = cpu->gpr[1]; uint32_t psx_brB_BFC34A6C = cpu->gpr[0]; @@ -138041,6 +168428,9 @@ label_BFC34A6C: /* nop */ if (psx_taken_BFC34A6C) goto label_BFC34A88; label_BFC34A74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC34A74: 0004C840 sll $t9, $a0, 1 */ cpu->gpr[25] = cpu->gpr[4] << 1u; @@ -138053,6 +168443,9 @@ label_BFC34A74: /* 0xBFC34A84: 00000000 nop */ /* nop */ label_BFC34A88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34A88: 03E00008 jr $ra */ /* 0xBFC34A8C: 00000000 nop */ @@ -138063,6 +168456,9 @@ label_BFC34A88: void func_1FC34A90(CPUState* cpu) { debug_server_log_call_entry(0x1FC34A90u); label_BFC34A90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC34A90: 00801821 addu $v1, $a0, $zero */ cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[0]; @@ -138087,6 +168483,9 @@ void func_1FC34AA0(CPUState* cpu) { } } label_BFC34AA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC34AA0: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -138101,10 +168500,16 @@ label_BFC34AA0: /* nop */ if (psx_taken_BFC34AAC) goto label_BFC34AB8; label_BFC34AB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC34AB4: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC34AB4u); return; label_BFC34AB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC34AB8: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -138115,6 +168520,9 @@ label_BFC34AB8: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC34ABC) goto label_BFC34AD0; label_BFC34AC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34AC4: 15E10002 bne $t7, $at, 0xBFC34AD0 */ uint32_t psx_brA_BFC34AC4 = cpu->gpr[15]; uint32_t psx_brB_BFC34AC4 = cpu->gpr[1]; @@ -138123,10 +168531,16 @@ label_BFC34AC4: /* nop */ if (psx_taken_BFC34AC4) goto label_BFC34AD0; label_BFC34ACC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC34ACC: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC34ACCu); return; label_BFC34AD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34AD0: 0C012FF6 jal 0xB004BFD8 */ /* 0xBFC34AD4: 00000000 nop */ @@ -138134,6 +168548,9 @@ label_BFC34AD0: cpu->gpr[31] = 0x8004CAD8u; psx_dispatch(cpu, 0x8004BFD8u); label_BFC34AD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34AD8: 0C012FF9 jal 0xB004BFE4 */ /* 0xBFC34ADC: 3C040140 lui $a0, 0x140 */ @@ -138141,6 +168558,9 @@ label_BFC34AD8: cpu->gpr[31] = 0x8004CAE0u; psx_dispatch(cpu, 0x8004BFE4u); label_BFC34AE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC34AE0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34AE0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -138155,6 +168575,9 @@ label_BFC34AE0: void func_1FC34AF0(CPUState* cpu) { debug_server_log_call_entry(0x1FC34AF0u); label_BFC34AF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC34AF0: 00801821 addu $v1, $a0, $zero */ cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[0]; @@ -138183,6 +168606,9 @@ void func_1FC34B08(CPUState* cpu) { } } label_BFC34B08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC34B08: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -138197,10 +168623,16 @@ label_BFC34B08: /* nop */ if (psx_taken_BFC34B14) goto label_BFC34B20; label_BFC34B1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC34B1C: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC34B1Cu); return; label_BFC34B20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC34B20: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -138211,6 +168643,9 @@ label_BFC34B20: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC34B24) goto label_BFC34B38; label_BFC34B2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34B2C: 15C10002 bne $t6, $at, 0xBFC34B38 */ uint32_t psx_brA_BFC34B2C = cpu->gpr[14]; uint32_t psx_brB_BFC34B2C = cpu->gpr[1]; @@ -138219,10 +168654,16 @@ label_BFC34B2C: /* nop */ if (psx_taken_BFC34B2C) goto label_BFC34B38; label_BFC34B34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC34B34: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC34B34u); return; label_BFC34B38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34B38: 0C012FF6 jal 0xB004BFD8 */ /* 0xBFC34B3C: 00000000 nop */ @@ -138230,6 +168671,9 @@ label_BFC34B38: cpu->gpr[31] = 0x8004CB40u; psx_dispatch(cpu, 0x8004BFD8u); label_BFC34B40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34B40: 0C012FF9 jal 0xB004BFE4 */ /* 0xBFC34B44: 3C040140 lui $a0, 0x140 */ @@ -138237,6 +168681,9 @@ label_BFC34B40: cpu->gpr[31] = 0x8004CB48u; psx_dispatch(cpu, 0x8004BFE4u); label_BFC34B48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC34B48: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34B48u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -138251,6 +168698,9 @@ label_BFC34B48: void func_1FC34B58(CPUState* cpu) { debug_server_log_call_entry(0x1FC34B58u); label_BFC34B58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(92u); +#endif psx_check_interrupts(cpu); /* 0xBFC34B58: 27BDFF00 addiu $sp, $sp, -256 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-256)); @@ -138437,12 +168887,18 @@ label_BFC34B58: /* 0xBFC34CC4: 87AA00E8 lh $t2, 232($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (232)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34CC4u); return; } cpu->gpr[10] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } label_BFC34CC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34CC8: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; /* 0xBFC34CCC: 01202021 addu $a0, $t1, $zero */ cpu->gpr[4] = cpu->gpr[9] + cpu->gpr[0]; label_BFC34CD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC34CD0: 8C82FFBC lw $v0, -68($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (-68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34CD0u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -138455,12 +168911,18 @@ label_BFC34CD0: /* nop */ if (psx_taken_BFC34CD8) goto label_BFC34CE8; label_BFC34CE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34CE0: 00027023 subu $t6, $zero, $v0 */ cpu->gpr[14] = cpu->gpr[0] - cpu->gpr[2]; /* 0xBFC34CE4: AC8EFFBC sw $t6, -68($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (-68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34CE4u); return; } g_debug_last_store_pc = 0xBFC34CE4u; cpu->write_word(psx_addr, cpu->gpr[14]); } label_BFC34CE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC34CE8: 24630001 addiu $v1, $v1, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1)); @@ -138471,6 +168933,9 @@ label_BFC34CE8: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (4)); if (psx_taken_BFC34CEC) goto label_BFC34CD0; label_BFC34CF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC34CF4: 2529000C addiu $t1, $t1, 12 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[9] + (12)); @@ -138483,6 +168948,9 @@ label_BFC34CF4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (232)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34D00u); return; } cpu->gpr[10] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } if (psx_taken_BFC34CFC) goto label_BFC34CC8; label_BFC34D04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC34D04: A7A600E2 sh $a2, 226($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (226)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34D04u); return; } g_debug_last_store_pc = 0xBFC34D04u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[6] & 0xFFFFu)); } @@ -138501,12 +168969,18 @@ label_BFC34D04: /* 0xBFC34D20: 27AA0124 addiu $t2, $sp, 292 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[29] + (292)); label_BFC34D24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34D24: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; /* 0xBFC34D28: 01202021 addu $a0, $t1, $zero */ cpu->gpr[4] = cpu->gpr[9] + cpu->gpr[0]; label_BFC34D2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC34D2C: 8C98FFBC lw $t8, -68($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (-68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34D2Cu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -138521,6 +168995,9 @@ label_BFC34D2C: /* nop */ if (psx_taken_BFC34D38) goto label_BFC34D54; label_BFC34D40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC34D40: 00C31021 addu $v0, $a2, $v1 */ cpu->gpr[2] = cpu->gpr[6] + cpu->gpr[3]; @@ -138533,6 +169010,9 @@ label_BFC34D40: /* 0xBFC34D50: 00404021 addu $t0, $v0, $zero */ cpu->gpr[8] = cpu->gpr[2] + cpu->gpr[0]; label_BFC34D54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC34D54: 24630001 addiu $v1, $v1, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1)); @@ -138543,6 +169023,9 @@ label_BFC34D54: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (4)); if (psx_taken_BFC34D58) goto label_BFC34D2C; label_BFC34D60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC34D60: 2529000C addiu $t1, $t1, 12 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[9] + (12)); @@ -138555,6 +169038,9 @@ label_BFC34D60: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (3)); if (psx_taken_BFC34D68) goto label_BFC34D24; label_BFC34D70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC34D70: 01001021 addu $v0, $t0, $zero */ cpu->gpr[2] = cpu->gpr[8] + cpu->gpr[0]; @@ -138567,6 +169053,9 @@ label_BFC34D70: /* nop */ if (psx_taken_BFC34D78) { cpu->pc = 0xBFC34E18u; return; } label_BFC34D80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC34D80: 0002C880 sll $t9, $v0, 2 */ cpu->gpr[25] = cpu->gpr[2] << 2u; @@ -138589,6 +169078,9 @@ label_BFC34D80: default: cpu->pc = cpu->gpr[25]; return; } label_BFC34D9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC34D9C: AFAB0094 sw $t3, 148($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (148)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34D9Cu); return; } g_debug_last_store_pc = 0xBFC34D9Cu; cpu->write_word(psx_addr, cpu->gpr[11]); } @@ -138615,6 +169107,9 @@ label_BFC34D9C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (172)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34DC4u); return; } g_debug_last_store_pc = 0xBFC34DC4u; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC34DC0) { cpu->pc = 0xBFC34E18u; return; } label_BFC34DC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC34DC8: AFAB0094 sw $t3, 148($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (148)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34DC8u); return; } g_debug_last_store_pc = 0xBFC34DC8u; cpu->write_word(psx_addr, cpu->gpr[11]); } @@ -138639,6 +169134,9 @@ label_BFC34DC8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (164)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34DECu); return; } g_debug_last_store_pc = 0xBFC34DECu; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC34DE8) { cpu->pc = 0xBFC34E18u; return; } label_BFC34DF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC34DF0: AFAC0094 sw $t4, 148($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (148)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34DF0u); return; } g_debug_last_store_pc = 0xBFC34DF0u; cpu->write_word(psx_addr, cpu->gpr[12]); } @@ -138667,6 +169165,9 @@ void func_1FC34E00(CPUState* cpu) { } } label_BFC34E00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC34E00: 87B800EC lh $t8, 236($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (236)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34E00u); return; } cpu->gpr[24] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -138683,6 +169184,9 @@ label_BFC34E00: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (164)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34E14u); return; } g_debug_last_store_pc = 0xBFC34E14u; cpu->write_word(psx_addr, cpu->gpr[24]); } if (psx_taken_BFC34E10) goto label_BFC34E18; label_BFC34E18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC34E18: 27A40094 addiu $a0, $sp, 148 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (148)); @@ -138694,6 +169198,9 @@ label_BFC34E18: cpu->gpr[31] = 0x8004CE28u; psx_dispatch(cpu, 0x8004E2D0u); label_BFC34E28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC34E28: 27A40084 addiu $a0, $sp, 132 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (132)); @@ -138703,6 +169210,9 @@ label_BFC34E28: cpu->gpr[31] = 0x8004CE34u; psx_dispatch(cpu, 0x8004B9F0u); label_BFC34E34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC34E34: 8FAF0074 lw $t7, 116($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (116)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34E34u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -138724,6 +169234,9 @@ label_BFC34E34: cpu->gpr[31] = 0x8004CE58u; psx_dispatch(cpu, 0x8004B9F0u); label_BFC34E58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC34E58: 8FB80054 lw $t8, 84($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (84)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34E58u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -138747,6 +169260,9 @@ label_BFC34E58: cpu->gpr[31] = 0x8004CE80u; psx_dispatch(cpu, 0x8004E2D0u); label_BFC34E80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC34E80: 27A40084 addiu $a0, $sp, 132 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (132)); @@ -138756,6 +169272,9 @@ label_BFC34E80: cpu->gpr[31] = 0x8004CE8Cu; psx_dispatch(cpu, 0x8004B9F0u); label_BFC34E8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC34E8C: 8FAE0064 lw $t6, 100($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34E8Cu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -138788,6 +169307,9 @@ label_BFC34E8C: void func_1FC34EC0(CPUState* cpu) { debug_server_log_call_entry(0x1FC34EC0u); label_BFC34EC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC34EC0: 848E0000 lh $t6, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34EC0u); return; } cpu->gpr[14] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -138797,6 +169319,9 @@ label_BFC34EC0: void func_1FC34EC4(CPUState* cpu) { debug_server_log_call_entry(0x1FC34EC4u); label_BFC34EC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(29u); +#endif psx_check_interrupts(cpu); /* 0xBFC34EC4: 27BDFFC0 addiu $sp, $sp, -64 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-64)); @@ -138857,12 +169382,18 @@ label_BFC34EC4: /* 0xBFC34F34: AFB80034 sw $t8, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34F34u); return; } g_debug_last_store_pc = 0xBFC34F34u; cpu->write_word(psx_addr, cpu->gpr[24]); } label_BFC34F38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34F38: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; /* 0xBFC34F3C: 00A02021 addu $a0, $a1, $zero */ cpu->gpr[4] = cpu->gpr[5] + cpu->gpr[0]; label_BFC34F40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC34F40: 8C86FFD4 lw $a2, -44($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (-44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC34F40u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -138875,6 +169406,9 @@ label_BFC34F40: /* nop */ if (psx_taken_BFC34F48) goto label_BFC34F60; label_BFC34F50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC34F50: 0006C823 subu $t9, $zero, $a2 */ cpu->gpr[25] = cpu->gpr[0] - cpu->gpr[6]; @@ -138885,6 +169419,9 @@ label_BFC34F50: /* 0xBFC34F5C: 00000000 nop */ /* nop */ label_BFC34F60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC34F60: 24630001 addiu $v1, $v1, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1)); @@ -138897,6 +169434,9 @@ label_BFC34F60: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (4)); if (psx_taken_BFC34F68) goto label_BFC34F40; label_BFC34F70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC34F70: 24A5000C addiu $a1, $a1, 12 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (12)); @@ -138909,6 +169449,9 @@ label_BFC34F70: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (20) ? 1 : 0); if (psx_taken_BFC34F78) goto label_BFC34F38; label_BFC34F80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34F80: 10200004 beq $at, $zero, 0xBFC34F94 */ uint32_t psx_brA_BFC34F80 = cpu->gpr[1]; uint32_t psx_brB_BFC34F80 = cpu->gpr[0]; @@ -138917,6 +169460,9 @@ label_BFC34F80: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC34F80) goto label_BFC34F94; label_BFC34F88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34F88: 10000002 beq $zero, $zero, 0xBFC34F94 */ uint32_t psx_brA_BFC34F88 = cpu->gpr[0]; uint32_t psx_brB_BFC34F88 = cpu->gpr[0]; @@ -138925,10 +169471,16 @@ label_BFC34F88: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC34F88) goto label_BFC34F94; label_BFC34F90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC34F90: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC34F94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC34F94: 03E00008 jr $ra */ /* 0xBFC34F98: 27BD0040 addiu $sp, $sp, 64 */ @@ -138939,6 +169491,9 @@ label_BFC34F94: void func_1FC35128(CPUState* cpu) { debug_server_log_call_entry(0x1FC35128u); label_BFC35128: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(73u); +#endif psx_check_interrupts(cpu); /* 0xBFC35128: 8C880000 lw $t0, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC35128u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -139091,6 +169646,9 @@ label_BFC35128: void func_1FC3524C(CPUState* cpu) { debug_server_log_call_entry(0x1FC3524Cu); label_BFC3524C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(63u); +#endif psx_check_interrupts(cpu); /* 0xBFC3524C: 48C02800 ctc2 $zero, gte_ctrl[5] */ cpu->gte_ctrl[5] = cpu->gpr[0]; @@ -139223,6 +169781,9 @@ label_BFC3524C: void func_1FC35348(CPUState* cpu) { debug_server_log_call_entry(0x1FC35348u); label_BFC35348: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(74u); +#endif psx_check_interrupts(cpu); /* 0xBFC35348: 8C880000 lw $t0, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC35348u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -139377,6 +169938,9 @@ label_BFC35348: void func_1FC35470(CPUState* cpu) { debug_server_log_call_entry(0x1FC35470u); label_BFC35470: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(74u); +#endif psx_check_interrupts(cpu); /* 0xBFC35470: 8C880000 lw $t0, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC35470u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -139531,6 +170095,9 @@ label_BFC35470: void func_1FC35598(CPUState* cpu) { debug_server_log_call_entry(0x1FC35598u); label_BFC35598: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(64u); +#endif psx_check_interrupts(cpu); /* 0xBFC35598: 48C02800 ctc2 $zero, gte_ctrl[5] */ cpu->gte_ctrl[5] = cpu->gpr[0]; @@ -139665,6 +170232,9 @@ label_BFC35598: void func_1FC35698(CPUState* cpu) { debug_server_log_call_entry(0x1FC35698u); label_BFC35698: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(75u); +#endif psx_check_interrupts(cpu); /* 0xBFC35698: 8C880000 lw $t0, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC35698u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -139821,6 +170391,9 @@ label_BFC35698: void func_1FC357C4(CPUState* cpu) { debug_server_log_call_entry(0x1FC357C4u); label_BFC357C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(26u); +#endif psx_check_interrupts(cpu); /* 0xBFC357C4: 8C880000 lw $t0, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC357C4u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -139879,6 +170452,9 @@ label_BFC357C4: void func_1FC3582C(CPUState* cpu) { debug_server_log_call_entry(0x1FC3582Cu); label_BFC3582C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC3582C: 48C02800 ctc2 $zero, gte_ctrl[5] */ cpu->gte_ctrl[5] = cpu->gpr[0]; @@ -139917,6 +170493,9 @@ label_BFC3582C: void func_1FC3586C(CPUState* cpu) { debug_server_log_call_entry(0x1FC3586Cu); label_BFC3586C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3586C: 8CA80000 lw $t0, 0($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3586Cu); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -139941,6 +170520,9 @@ label_BFC3586C: void func_1FC35890(CPUState* cpu) { debug_server_log_call_entry(0x1FC35890u); label_BFC35890: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(73u); +#endif psx_check_interrupts(cpu); /* 0xBFC35890: 8C880000 lw $t0, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC35890u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -140093,6 +170675,9 @@ label_BFC35890: void func_1FC359B4(CPUState* cpu) { debug_server_log_call_entry(0x1FC359B4u); label_BFC359B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(73u); +#endif psx_check_interrupts(cpu); /* 0xBFC359B4: 8C880000 lw $t0, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC359B4u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -140245,6 +170830,9 @@ label_BFC359B4: void func_1FC35AD8(CPUState* cpu) { debug_server_log_call_entry(0x1FC35AD8u); label_BFC35AD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC35AD8: 8C880000 lw $t0, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC35AD8u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -140275,6 +170863,9 @@ label_BFC35AD8: void func_1FC35B08(CPUState* cpu) { debug_server_log_call_entry(0x1FC35B08u); label_BFC35B08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC35B08: 8C880000 lw $t0, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC35B08u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -140305,6 +170896,9 @@ label_BFC35B08: void func_1FC35B38(CPUState* cpu) { debug_server_log_call_entry(0x1FC35B38u); label_BFC35B38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC35B38: 8C880000 lw $t0, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC35B38u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -140335,6 +170929,9 @@ label_BFC35B38: void func_1FC35B68(CPUState* cpu) { debug_server_log_call_entry(0x1FC35B68u); label_BFC35B68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC35B68: 8C880014 lw $t0, 20($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC35B68u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -140365,6 +170962,9 @@ void func_1FC35B88(CPUState* cpu) { } } label_BFC35B88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC35B88: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -140381,6 +170981,9 @@ label_BFC35B88: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC35B98) { cpu->pc = 0xBFC35BC4u; return; } label_BFC35BA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC35BA0: AC3F8ED0 sw $ra, -28976($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28976)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC35BA0u); return; } g_debug_last_store_pc = 0xBFC35BA0u; cpu->write_word(psx_addr, cpu->gpr[31]); } @@ -140392,6 +170995,9 @@ label_BFC35BA0: cpu->gpr[31] = 0x8004DBB0u; psx_dispatch(cpu, 0x8005A910u); label_BFC35BB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC35BB0: 3C1F8008 lui $ra, 0x8008 */ cpu->gpr[31] = 0x80080000u; @@ -140408,6 +171014,9 @@ label_BFC35BB0: void func_1FC35BC4(CPUState* cpu) { debug_server_log_call_entry(0x1FC35BC4u); label_BFC35BC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(25u); +#endif psx_check_interrupts(cpu); /* 0xBFC35BC4: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -140472,6 +171081,9 @@ void func_1FC35C28(CPUState* cpu) { } } label_BFC35C28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC35C28: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -140486,6 +171098,9 @@ label_BFC35C28: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC35C34) { cpu->pc = 0xBFC35C60u; return; } label_BFC35C3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC35C3C: AC3F8ED0 sw $ra, -28976($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28976)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC35C3Cu); return; } g_debug_last_store_pc = 0xBFC35C3Cu; cpu->write_word(psx_addr, cpu->gpr[31]); } @@ -140497,6 +171112,9 @@ label_BFC35C3C: cpu->gpr[31] = 0x8004DC4Cu; psx_dispatch(cpu, 0x8005A910u); label_BFC35C4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC35C4C: 3C1F8008 lui $ra, 0x8008 */ cpu->gpr[31] = 0x80080000u; @@ -140513,6 +171131,9 @@ label_BFC35C4C: void func_1FC35C60(CPUState* cpu) { debug_server_log_call_entry(0x1FC35C60u); label_BFC35C60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(26u); +#endif psx_check_interrupts(cpu); /* 0xBFC35C60: 21CEFFE0 addi $t6, $t6, -32 */ { int32_t psx_a = (int32_t)cpu->gpr[14]; int32_t psx_b = (-32); int64_t psx_r = (int64_t)psx_a + (int64_t)psx_b; if (psx_r < (int64_t)INT32_MIN || psx_r > (int64_t)INT32_MAX) { psx_arith_overflow(cpu); return; } cpu->gpr[14] = (uint32_t)(int32_t)psx_r; } @@ -140571,6 +171192,9 @@ label_BFC35C60: void func_1FC35CC8(CPUState* cpu) { debug_server_log_call_entry(0x1FC35CC8u); label_BFC35CC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC35CC8: 48480000 cfc2 $t0, gte_ctrl[0] */ cpu->gpr[8] = cpu->gte_ctrl[0]; @@ -140613,6 +171237,9 @@ label_BFC35CC8: void func_1FC35D10(CPUState* cpu) { debug_server_log_call_entry(0x1FC35D10u); label_BFC35D10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC35D10: 48484000 cfc2 $t0, gte_ctrl[8] */ cpu->gpr[8] = cpu->gte_ctrl[8]; @@ -140655,6 +171282,9 @@ label_BFC35D10: void func_1FC35D58(CPUState* cpu) { debug_server_log_call_entry(0x1FC35D58u); label_BFC35D58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC35D58: 48488000 cfc2 $t0, gte_ctrl[16] */ cpu->gpr[8] = cpu->gte_ctrl[16]; @@ -140697,6 +171327,9 @@ label_BFC35D58: void func_1FC35DA0(CPUState* cpu) { debug_server_log_call_entry(0x1FC35DA0u); label_BFC35DA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC35DA0: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -140729,6 +171362,9 @@ label_BFC35DA0: void func_1FC35DD4(CPUState* cpu) { debug_server_log_call_entry(0x1FC35DD4u); label_BFC35DD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(23u); +#endif psx_check_interrupts(cpu); /* 0xBFC35DD4: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -140781,6 +171417,9 @@ label_BFC35DD4: void func_1FC35E30(CPUState* cpu) { debug_server_log_call_entry(0x1FC35E30u); label_BFC35E30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC35E30: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -140813,6 +171452,9 @@ label_BFC35E30: void func_1FC35E64(CPUState* cpu) { debug_server_log_call_entry(0x1FC35E64u); label_BFC35E64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC35E64: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -140845,6 +171487,9 @@ label_BFC35E64: void func_1FC35E98(CPUState* cpu) { debug_server_log_call_entry(0x1FC35E98u); label_BFC35E98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC35E98: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -140871,6 +171516,9 @@ label_BFC35E98: void func_1FC35EC0(CPUState* cpu) { debug_server_log_call_entry(0x1FC35EC0u); label_BFC35EC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC35EC0: C8890000 lwc2 gte[9], 0($a0) */ cpu->gte_data[9] = cpu->read_word(cpu->gpr[4]); @@ -140899,6 +171547,9 @@ label_BFC35EC0: void func_1FC35EEC(CPUState* cpu) { debug_server_log_call_entry(0x1FC35EECu); label_BFC35EEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC35EEC: C8890000 lwc2 gte[9], 0($a0) */ cpu->gte_data[9] = cpu->read_word(cpu->gpr[4]); @@ -140927,6 +171578,9 @@ label_BFC35EEC: void func_1FC35F18(CPUState* cpu) { debug_server_log_call_entry(0x1FC35F18u); label_BFC35F18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC35F18: C8860000 lwc2 gte[6], 0($a0) */ cpu->gte_data[6] = cpu->read_word(cpu->gpr[4]); @@ -140949,6 +171603,9 @@ label_BFC35F18: void func_1FC35F38(CPUState* cpu) { debug_server_log_call_entry(0x1FC35F38u); label_BFC35F38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC35F38: C8940000 lwc2 gte[20], 0($a0) */ cpu->gte_data[20] = cpu->read_word(cpu->gpr[4]); @@ -140987,6 +171644,9 @@ label_BFC35F38: void func_1FC35F78(CPUState* cpu) { debug_server_log_call_entry(0x1FC35F78u); label_BFC35F78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC35F78: C8890000 lwc2 gte[9], 0($a0) */ cpu->gte_data[9] = cpu->read_word(cpu->gpr[4]); @@ -141013,6 +171673,9 @@ label_BFC35F78: void func_1FC35FA0(CPUState* cpu) { debug_server_log_call_entry(0x1FC35FA0u); label_BFC35FA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC35FA0: C8890000 lwc2 gte[9], 0($a0) */ cpu->gte_data[9] = cpu->read_word(cpu->gpr[4]); @@ -141043,6 +171706,9 @@ label_BFC35FA0: void func_1FC35FD0(CPUState* cpu) { debug_server_log_call_entry(0x1FC35FD0u); label_BFC35FD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC35FD0: C8890000 lwc2 gte[9], 0($a0) */ cpu->gte_data[9] = cpu->read_word(cpu->gpr[4]); @@ -141073,6 +171739,9 @@ label_BFC35FD0: void func_1FC36000(CPUState* cpu) { debug_server_log_call_entry(0x1FC36000u); label_BFC36000: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC36000: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -141097,6 +171766,9 @@ label_BFC36000: void func_1FC36024(CPUState* cpu) { debug_server_log_call_entry(0x1FC36024u); label_BFC36024: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC36024: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -141137,6 +171809,9 @@ label_BFC36024: void func_1FC36068(CPUState* cpu) { debug_server_log_call_entry(0x1FC36068u); label_BFC36068: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC36068: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -141165,6 +171840,9 @@ label_BFC36068: void func_1FC36094(CPUState* cpu) { debug_server_log_call_entry(0x1FC36094u); label_BFC36094: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC36094: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -141209,6 +171887,9 @@ label_BFC36094: void func_1FC360E0(CPUState* cpu) { debug_server_log_call_entry(0x1FC360E0u); label_BFC360E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC360E0: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -141233,6 +171914,9 @@ label_BFC360E0: void func_1FC36104(CPUState* cpu) { debug_server_log_call_entry(0x1FC36104u); label_BFC36104: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC36104: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -141275,6 +171959,9 @@ label_BFC36104: void func_1FC3614C(CPUState* cpu) { debug_server_log_call_entry(0x1FC3614Cu); label_BFC3614C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC3614C: C8890000 lwc2 gte[9], 0($a0) */ cpu->gte_data[9] = cpu->read_word(cpu->gpr[4]); @@ -141303,6 +171990,9 @@ label_BFC3614C: void func_1FC36178(CPUState* cpu) { debug_server_log_call_entry(0x1FC36178u); label_BFC36178: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC36178: C8890000 lwc2 gte[9], 0($a0) */ cpu->gte_data[9] = cpu->read_word(cpu->gpr[4]); @@ -141329,6 +172019,9 @@ label_BFC36178: void func_1FC361A0(CPUState* cpu) { debug_server_log_call_entry(0x1FC361A0u); label_BFC361A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC361A0: 48846000 mtc2 $a0, gte_data[12] */ cpu->gte_data[12] = cpu->gpr[4]; @@ -141357,6 +172050,9 @@ label_BFC361A0: void func_1FC361CC(CPUState* cpu) { debug_server_log_call_entry(0x1FC361CCu); label_BFC361CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC361CC: C88C0000 lwc2 gte[12], 0($a0) */ cpu->gte_data[12] = cpu->read_word(cpu->gpr[4]); @@ -141383,6 +172079,9 @@ label_BFC361CC: void func_1FC361F4(CPUState* cpu) { debug_server_log_call_entry(0x1FC361F4u); label_BFC361F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC361F4: C88C0000 lwc2 gte[12], 0($a0) */ cpu->gte_data[12] = cpu->read_word(cpu->gpr[4]); @@ -141409,6 +172108,9 @@ label_BFC361F4: void func_1FC3621C(CPUState* cpu) { debug_server_log_call_entry(0x1FC3621Cu); label_BFC3621C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC3621C: C88C0000 lwc2 gte[12], 0($a0) */ cpu->gte_data[12] = cpu->read_word(cpu->gpr[4]); @@ -141435,6 +172137,9 @@ label_BFC3621C: void func_1FC36244(CPUState* cpu) { debug_server_log_call_entry(0x1FC36244u); label_BFC36244: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC36244: 4B400006 gte cmd 0x06 */ gte_execute(cpu, 0x1400006); @@ -141453,6 +172158,9 @@ label_BFC36244: void func_1FC3625C(CPUState* cpu) { debug_server_log_call_entry(0x1FC3625Cu); label_BFC3625C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3625C: 48848800 mtc2 $a0, gte_data[17] */ cpu->gte_data[17] = cpu->gpr[4]; @@ -141477,6 +172185,9 @@ label_BFC3625C: void func_1FC36280(CPUState* cpu) { debug_server_log_call_entry(0x1FC36280u); label_BFC36280: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC36280: 4B58002D gte cmd 0x2D */ gte_execute(cpu, 0x158002D); @@ -141493,6 +172204,9 @@ label_BFC36280: void func_1FC36294(CPUState* cpu) { debug_server_log_call_entry(0x1FC36294u); label_BFC36294: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC36294: 48848000 mtc2 $a0, gte_data[16] */ cpu->gte_data[16] = cpu->gpr[4]; @@ -141519,6 +172233,9 @@ label_BFC36294: void func_1FC362BC(CPUState* cpu) { debug_server_log_call_entry(0x1FC362BCu); label_BFC362BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC362BC: 4B68002E gte cmd 0x2E */ gte_execute(cpu, 0x168002E); @@ -141535,6 +172252,9 @@ label_BFC362BC: void func_1FC362D0(CPUState* cpu) { debug_server_log_call_entry(0x1FC362D0u); label_BFC362D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(23u); +#endif psx_check_interrupts(cpu); /* 0xBFC362D0: 484D0000 cfc2 $t5, gte_ctrl[0] */ cpu->gpr[13] = cpu->gte_ctrl[0]; @@ -141587,6 +172307,9 @@ label_BFC362D0: void func_1FC3632C(CPUState* cpu) { debug_server_log_call_entry(0x1FC3632Cu); label_BFC3632C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(23u); +#endif psx_check_interrupts(cpu); /* 0xBFC3632C: 484D0000 cfc2 $t5, gte_ctrl[0] */ cpu->gpr[13] = cpu->gte_ctrl[0]; @@ -141639,6 +172362,9 @@ label_BFC3632C: void func_1FC36388(CPUState* cpu) { debug_server_log_call_entry(0x1FC36388u); label_BFC36388: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC36388: 4884F000 mtc2 $a0, gte_data[30] */ gte_write_data(cpu, 30, cpu->gpr[4]); @@ -141657,12 +172383,18 @@ label_BFC36388: void func_1FC363A0(CPUState* cpu) { debug_server_log_call_entry(0x1FC363A0u); label_BFC363A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC363A0: 8FA80010 lw $t0, 16($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC363A0u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } /* 0xBFC363A4: 00000000 nop */ /* nop */ label_BFC363A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC363A8: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -141699,6 +172431,9 @@ label_BFC363A8: /* nop */ if (psx_taken_BFC363E0) goto label_BFC363A8; label_BFC363E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC363E8: 03E00008 jr $ra */ /* 0xBFC363EC: 00000000 nop */ @@ -141709,12 +172444,18 @@ label_BFC363E8: void func_1FC363F0(CPUState* cpu) { debug_server_log_call_entry(0x1FC363F0u); label_BFC363F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC363F0: 8FA80010 lw $t0, 16($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC363F0u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } /* 0xBFC363F4: 00000000 nop */ /* nop */ label_BFC363F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC363F8: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -141763,6 +172504,9 @@ label_BFC363F8: /* nop */ if (psx_taken_BFC36448) goto label_BFC363F8; label_BFC36450: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC36450: 03E00008 jr $ra */ /* 0xBFC36454: 00000000 nop */ @@ -141773,6 +172517,9 @@ label_BFC36450: void func_1FC36458(CPUState* cpu) { debug_server_log_call_entry(0x1FC36458u); label_BFC36458: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(33u); +#endif psx_check_interrupts(cpu); /* 0xBFC36458: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -141845,6 +172592,9 @@ label_BFC36458: void func_1FC364DC(CPUState* cpu) { debug_server_log_call_entry(0x1FC364DCu); label_BFC364DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(24u); +#endif psx_check_interrupts(cpu); /* 0xBFC364DC: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -141899,6 +172649,9 @@ label_BFC364DC: void func_1FC3653C(CPUState* cpu) { debug_server_log_call_entry(0x1FC3653Cu); label_BFC3653C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(34u); +#endif psx_check_interrupts(cpu); /* 0xBFC3653C: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -141973,6 +172726,9 @@ label_BFC3653C: void func_1FC365C4(CPUState* cpu) { debug_server_log_call_entry(0x1FC365C4u); label_BFC365C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC365C4: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -142005,6 +172761,9 @@ label_BFC365C4: void func_1FC365F8(CPUState* cpu) { debug_server_log_call_entry(0x1FC365F8u); label_BFC365F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(23u); +#endif psx_check_interrupts(cpu); /* 0xBFC365F8: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -142055,6 +172814,9 @@ label_BFC365F8: /* nop */ if (psx_taken_BFC3664C) goto label_BFC3665C; label_BFC36654: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC36654: 10000009 beq $zero, $zero, 0xBFC3667C */ uint32_t psx_brA_BFC36654 = cpu->gpr[0]; uint32_t psx_brB_BFC36654 = cpu->gpr[0]; @@ -142063,6 +172825,9 @@ label_BFC36654: /* nop */ if (psx_taken_BFC36654) goto label_BFC3667C; label_BFC3665C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3665C: E8EC0000 swc2 gte[12], 0($a3) */ cpu->write_word(cpu->gpr[7], cpu->gte_data[12]); @@ -142081,6 +172846,9 @@ label_BFC3665C: /* 0xBFC36678: AD280000 sw $t0, 0($t1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC36678u); return; } g_debug_last_store_pc = 0xBFC36678u; cpu->write_word(psx_addr, cpu->gpr[8]); } label_BFC3667C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3667C: 03E00008 jr $ra */ /* 0xBFC36680: 00000000 nop */ @@ -142091,6 +172859,9 @@ label_BFC3667C: void func_1FC36684(CPUState* cpu) { debug_server_log_call_entry(0x1FC36684u); label_BFC36684: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(23u); +#endif psx_check_interrupts(cpu); /* 0xBFC36684: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -142141,6 +172912,9 @@ label_BFC36684: /* nop */ if (psx_taken_BFC366D8) goto label_BFC366E8; label_BFC366E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC366E0: 10000015 beq $zero, $zero, 0xBFC36738 */ uint32_t psx_brA_BFC366E0 = cpu->gpr[0]; uint32_t psx_brB_BFC366E0 = cpu->gpr[0]; @@ -142149,6 +172923,9 @@ label_BFC366E0: /* nop */ if (psx_taken_BFC366E0) goto label_BFC36738; label_BFC366E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC366E8: E90C0000 swc2 gte[12], 0($t0) */ cpu->write_word(cpu->gpr[8], cpu->gte_data[12]); @@ -142191,6 +172968,9 @@ label_BFC366E8: /* 0xBFC36734: AD620000 sw $v0, 0($t3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[11] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC36734u); return; } g_debug_last_store_pc = 0xBFC36734u; cpu->write_word(psx_addr, cpu->gpr[2]); } label_BFC36738: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC36738: 03E00008 jr $ra */ /* 0xBFC3673C: 00000000 nop */ @@ -142201,6 +172981,9 @@ label_BFC36738: void func_1FC36740(CPUState* cpu) { debug_server_log_call_entry(0x1FC36740u); label_BFC36740: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC36740: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -142249,6 +173032,9 @@ label_BFC36740: /* nop */ if (psx_taken_BFC36790) goto label_BFC367A0; label_BFC36798: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC36798: 1000000C beq $zero, $zero, 0xBFC367CC */ uint32_t psx_brA_BFC36798 = cpu->gpr[0]; uint32_t psx_brB_BFC36798 = cpu->gpr[0]; @@ -142257,6 +173043,9 @@ label_BFC36798: /* nop */ if (psx_taken_BFC36798) goto label_BFC367CC; label_BFC367A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC367A0: E8EC0000 swc2 gte[12], 0($a3) */ cpu->write_word(cpu->gpr[7], cpu->gte_data[12]); @@ -142281,6 +173070,9 @@ label_BFC367A0: /* 0xBFC367C8: AD280000 sw $t0, 0($t1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC367C8u); return; } g_debug_last_store_pc = 0xBFC367C8u; cpu->write_word(psx_addr, cpu->gpr[8]); } label_BFC367CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC367CC: 03E00008 jr $ra */ /* 0xBFC367D0: 00000000 nop */ @@ -142291,6 +173083,9 @@ label_BFC367CC: void func_1FC367D4(CPUState* cpu) { debug_server_log_call_entry(0x1FC367D4u); label_BFC367D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(21u); +#endif psx_check_interrupts(cpu); /* 0xBFC367D4: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -142337,6 +173132,9 @@ label_BFC367D4: /* nop */ if (psx_taken_BFC36820) goto label_BFC36830; label_BFC36828: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC36828: 2402FFFF addiu $v0, $zero, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -142344,11 +173142,17 @@ label_BFC36828: uint32_t psx_brA_BFC3682C = cpu->gpr[0]; uint32_t psx_brB_BFC3682C = cpu->gpr[0]; int psx_taken_BFC3682C = (psx_brA_BFC3682C == psx_brB_BFC3682C); label_BFC36830: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC36830: E8EC0000 swc2 gte[12], 0($a3) */ cpu->write_word(cpu->gpr[7], cpu->gte_data[12]); if (psx_taken_BFC3682C) goto label_BFC36878; label_BFC36834: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC36834: 8FA80010 lw $t0, 16($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC36834u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -142385,6 +173189,9 @@ label_BFC36834: /* 0xBFC36874: 24020000 addiu $v0, $zero, 0 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (0)); label_BFC36878: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC36878: 03E00008 jr $ra */ /* 0xBFC3687C: 00000000 nop */ @@ -142395,6 +173202,9 @@ label_BFC36878: void func_1FC36880(CPUState* cpu) { debug_server_log_call_entry(0x1FC36880u); label_BFC36880: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC36880: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -142443,6 +173253,9 @@ label_BFC36880: /* nop */ if (psx_taken_BFC368D0) goto label_BFC368E0; label_BFC368D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC368D8: 10000017 beq $zero, $zero, 0xBFC36938 */ uint32_t psx_brA_BFC368D8 = cpu->gpr[0]; uint32_t psx_brB_BFC368D8 = cpu->gpr[0]; @@ -142451,6 +173264,9 @@ label_BFC368D8: /* nop */ if (psx_taken_BFC368D8) goto label_BFC36938; label_BFC368E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC368E0: E90C0000 swc2 gte[12], 0($t0) */ cpu->write_word(cpu->gpr[8], cpu->gte_data[12]); @@ -142497,6 +173313,9 @@ label_BFC368E0: /* 0xBFC36934: AD280000 sw $t0, 0($t1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC36934u); return; } g_debug_last_store_pc = 0xBFC36934u; cpu->write_word(psx_addr, cpu->gpr[8]); } label_BFC36938: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC36938: 03E00008 jr $ra */ /* 0xBFC3693C: 00000000 nop */ @@ -142507,6 +173326,9 @@ label_BFC36938: void func_1FC36940(CPUState* cpu) { debug_server_log_call_entry(0x1FC36940u); label_BFC36940: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC36940: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -142557,6 +173379,9 @@ label_BFC36940: void func_1FC36998(CPUState* cpu) { debug_server_log_call_entry(0x1FC36998u); label_BFC36998: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(41u); +#endif psx_check_interrupts(cpu); /* 0xBFC36998: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -142645,6 +173470,9 @@ label_BFC36998: void func_1FC36A3C(CPUState* cpu) { debug_server_log_call_entry(0x1FC36A3Cu); label_BFC36A3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC36A3C: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -142693,16 +173521,25 @@ label_BFC36A3C: /* nop */ if (psx_taken_BFC36A8C) goto label_BFC36A98; label_BFC36A94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC36A94: 1000001D beq $zero, $zero, 0xBFC36B0C */ uint32_t psx_brA_BFC36A94 = cpu->gpr[0]; uint32_t psx_brB_BFC36A94 = cpu->gpr[0]; int psx_taken_BFC36A94 = (psx_brA_BFC36A94 == psx_brB_BFC36A94); label_BFC36A98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC36A98: C8E00000 lwc2 gte[0], 0($a3) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[7]); if (psx_taken_BFC36A94) goto label_BFC36B0C; label_BFC36A9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(28u); +#endif psx_check_interrupts(cpu); /* 0xBFC36A9C: C8E10004 lwc2 gte[1], 4($a3) */ cpu->gte_data[1] = cpu->read_word((uint32_t)((int32_t)cpu->gpr[7] + (4))); @@ -142761,6 +173598,9 @@ label_BFC36A9C: /* 0xBFC36B08: AD280000 sw $t0, 0($t1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC36B08u); return; } g_debug_last_store_pc = 0xBFC36B08u; cpu->write_word(psx_addr, cpu->gpr[8]); } label_BFC36B0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC36B0C: 03E00008 jr $ra */ /* 0xBFC36B10: 00000000 nop */ @@ -142771,6 +173611,9 @@ label_BFC36B0C: void func_1FC36B14(CPUState* cpu) { debug_server_log_call_entry(0x1FC36B14u); label_BFC36B14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC36B14: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -142819,16 +173662,25 @@ label_BFC36B14: /* nop */ if (psx_taken_BFC36B64) goto label_BFC36B70; label_BFC36B6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC36B6C: 1000001D beq $zero, $zero, 0xBFC36BE4 */ uint32_t psx_brA_BFC36B6C = cpu->gpr[0]; uint32_t psx_brB_BFC36B6C = cpu->gpr[0]; int psx_taken_BFC36B6C = (psx_brA_BFC36B6C == psx_brB_BFC36B6C); label_BFC36B70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC36B70: C8E00000 lwc2 gte[0], 0($a3) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[7]); if (psx_taken_BFC36B6C) goto label_BFC36BE4; label_BFC36B74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(28u); +#endif psx_check_interrupts(cpu); /* 0xBFC36B74: C8E10004 lwc2 gte[1], 4($a3) */ cpu->gte_data[1] = cpu->read_word((uint32_t)((int32_t)cpu->gpr[7] + (4))); @@ -142887,6 +173739,9 @@ label_BFC36B74: /* 0xBFC36BE0: AD280000 sw $t0, 0($t1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC36BE0u); return; } g_debug_last_store_pc = 0xBFC36BE0u; cpu->write_word(psx_addr, cpu->gpr[8]); } label_BFC36BE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC36BE4: 03E00008 jr $ra */ /* 0xBFC36BE8: 00000000 nop */ @@ -142897,6 +173752,9 @@ label_BFC36BE4: void func_1FC36BEC(CPUState* cpu) { debug_server_log_call_entry(0x1FC36BECu); label_BFC36BEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC36BEC: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -142927,6 +173785,9 @@ label_BFC36BEC: /* 0xBFC36C20: 8FA80014 lw $t0, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC36C20u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } label_BFC36C24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC36C24: 4AA80428 gte cmd 0x28 */ gte_execute(cpu, 0x0A80428); @@ -142939,6 +173800,9 @@ label_BFC36C24: /* nop */ if (psx_taken_BFC36C2C) goto label_BFC36C24; label_BFC36C34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC36C34: C8C60000 lwc2 gte[6], 0($a2) */ cpu->gte_data[6] = cpu->read_word(cpu->gpr[6]); @@ -142967,6 +173831,9 @@ label_BFC36C34: void func_1FC36C60(CPUState* cpu) { debug_server_log_call_entry(0x1FC36C60u); label_BFC36C60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC36C60: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -142979,6 +173846,9 @@ label_BFC36C60: /* 0xBFC36C70: 8FA80010 lw $t0, 16($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC36C70u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } label_BFC36C74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC36C74: 4AA80428 gte cmd 0x28 */ gte_execute(cpu, 0x0A80428); @@ -142991,6 +173861,9 @@ label_BFC36C74: /* nop */ if (psx_taken_BFC36C7C) goto label_BFC36C74; label_BFC36C84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC36C84: C8A60000 lwc2 gte[6], 0($a1) */ cpu->gte_data[6] = cpu->read_word(cpu->gpr[5]); @@ -143013,6 +173886,9 @@ label_BFC36C84: void func_1FC36CA4(CPUState* cpu) { debug_server_log_call_entry(0x1FC36CA4u); label_BFC36CA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC36CA4: C8800000 lwc2 gte[0], 0($a0) */ cpu->gte_data[0] = cpu->read_word(cpu->gpr[4]); @@ -143025,6 +173901,9 @@ label_BFC36CA4: /* 0xBFC36CB4: 00E04021 addu $t0, $a3, $zero */ cpu->gpr[8] = cpu->gpr[7] + cpu->gpr[0]; label_BFC36CB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC36CB8: 4AA80428 gte cmd 0x28 */ gte_execute(cpu, 0x0A80428); @@ -143037,6 +173916,9 @@ label_BFC36CB8: /* nop */ if (psx_taken_BFC36CC0) goto label_BFC36CB8; label_BFC36CC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC36CC8: C8A60000 lwc2 gte[6], 0($a1) */ cpu->gte_data[6] = cpu->read_word(cpu->gpr[5]); @@ -143065,6 +173947,9 @@ void func_1FC36CF0(CPUState* cpu) { } } label_BFC36CF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC36CF0: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -143082,6 +173967,9 @@ label_BFC36CF0: cpu->gpr[31] = 0x8004ED0Cu; psx_dispatch(cpu, 0x8005AB70u); label_BFC36D0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC36D0C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC36D0Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -143096,6 +173984,9 @@ label_BFC36D0C: void func_1FC36D1C(CPUState* cpu) { debug_server_log_call_entry(0x1FC36D1Cu); label_BFC36D1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC36D1C: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -143137,6 +174028,9 @@ void func_1FC36D48(CPUState* cpu) { } } label_BFC36D48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC36D48: 0C016818 jal 0xB005A060 */ /* 0xBFC36D4C: 00000000 nop */ @@ -143144,6 +174038,9 @@ label_BFC36D48: cpu->gpr[31] = 0x8004ED50u; psx_dispatch(cpu, 0x8005A060u); label_BFC36D50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC36D50: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -143159,6 +174056,9 @@ label_BFC36D50: cpu->gpr[31] = 0x8004ED68u; psx_dispatch(cpu, 0x8005A0C0u); label_BFC36D68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC36D68: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -143170,6 +174070,9 @@ label_BFC36D68: cpu->gpr[31] = 0x8004ED78u; psx_dispatch(cpu, 0x8004ECF0u); label_BFC36D78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC36D78: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -143187,6 +174090,9 @@ label_BFC36D78: cpu->gpr[31] = 0x8004ED94u; psx_dispatch(cpu, cpu->gpr[25]); label_BFC36D94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC36D94: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -143196,6 +174102,9 @@ label_BFC36D94: cpu->gpr[31] = 0x8004EDA0u; psx_dispatch(cpu, 0x80050A7Cu); label_BFC36DA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC36DA0: 10000015 beq $zero, $zero, 0xBFC36DF8 */ uint32_t psx_brA_BFC36DA0 = cpu->gpr[0]; uint32_t psx_brB_BFC36DA0 = cpu->gpr[0]; @@ -143204,6 +174113,9 @@ label_BFC36DA0: /* nop */ if (psx_taken_BFC36DA0) { cpu->pc = 0xBFC36DF8u; return; } label_BFC36DA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC36DA8: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -143221,6 +174133,9 @@ label_BFC36DA8: cpu->gpr[31] = 0x8004EDC4u; psx_dispatch(cpu, cpu->gpr[9]); label_BFC36DC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC36DC4: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -143244,6 +174159,9 @@ void func_1FC36DD0(CPUState* cpu) { } } label_BFC36DD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC36DD0: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -143261,6 +174179,9 @@ label_BFC36DD0: cpu->gpr[31] = 0x8004EDECu; psx_dispatch(cpu, cpu->gpr[11]); label_BFC36DEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC36DEC: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -143286,6 +174207,9 @@ void func_1FC36DF8(CPUState* cpu) { } } label_BFC36DF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC36DF8: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -143300,6 +174224,9 @@ label_BFC36DF8: cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC36E04) goto label_BFC36E18; label_BFC36E0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC36E0C: 10000002 beq $zero, $zero, 0xBFC36E18 */ uint32_t psx_brA_BFC36E0C = cpu->gpr[0]; uint32_t psx_brB_BFC36E0C = cpu->gpr[0]; @@ -143308,10 +174235,16 @@ label_BFC36E0C: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (128)); if (psx_taken_BFC36E0C) goto label_BFC36E18; label_BFC36E14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC36E14: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; label_BFC36E18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC36E18: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -143329,6 +174262,9 @@ label_BFC36E18: cpu->gpr[31] = 0x8004EE34u; psx_dispatch(cpu, cpu->gpr[14]); label_BFC36E34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC36E34: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -143348,6 +174284,9 @@ label_BFC36E34: cpu->gpr[31] = 0x8004EE54u; psx_dispatch(cpu, cpu->gpr[24]); label_BFC36E54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC36E54: 8FB90028 lw $t9, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC36E54u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -143362,6 +174301,9 @@ label_BFC36E54: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC36E64u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC36E60) goto label_BFC36EB4; label_BFC36E68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC36E68: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -143378,6 +174320,9 @@ label_BFC36E68: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28076)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC36E7Cu); return; } g_debug_last_store_pc = 0xBFC36E7Cu; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC36E78) goto label_BFC36E8C; label_BFC36E80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC36E80: 3C032000 lui $v1, 0x2000 */ cpu->gpr[3] = 0x20000000u; @@ -143388,12 +174333,18 @@ label_BFC36E80: cpu->gpr[3] = cpu->gpr[3] | 0x501u; if (psx_taken_BFC36E84) goto label_BFC36E94; label_BFC36E8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC36E8C: 3C032000 lui $v1, 0x2000 */ cpu->gpr[3] = 0x20000000u; /* 0xBFC36E90: 34630504 ori $v1, $v1, 0x504 */ cpu->gpr[3] = cpu->gpr[3] | 0x504u; label_BFC36E94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC36E94: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -143411,10 +174362,16 @@ label_BFC36E94: cpu->gpr[31] = 0x8004EEB0u; psx_dispatch(cpu, cpu->gpr[12]); label_BFC36EB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC36EB0: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC36EB0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC36EB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC36EB4: 27BD0028 addiu $sp, $sp, 40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (40)); @@ -143437,6 +174394,9 @@ void func_1FC36EC0(CPUState* cpu) { } } label_BFC36EC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC36EC0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -143457,6 +174417,9 @@ label_BFC36EC0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC36EDCu); return; } g_debug_last_store_pc = 0xBFC36EDCu; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC36ED8) goto label_BFC36EE8; label_BFC36EE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC36EE0: 10000002 beq $zero, $zero, 0xBFC36EEC */ uint32_t psx_brA_BFC36EE0 = cpu->gpr[0]; uint32_t psx_brB_BFC36EE0 = cpu->gpr[0]; @@ -143465,10 +174428,16 @@ label_BFC36EE0: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (128)); if (psx_taken_BFC36EE0) goto label_BFC36EEC; label_BFC36EE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC36EE8: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; label_BFC36EEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC36EEC: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -143486,6 +174455,9 @@ label_BFC36EEC: cpu->gpr[31] = 0x8004EF08u; psx_dispatch(cpu, cpu->gpr[24]); label_BFC36F08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC36F08: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -143505,6 +174477,9 @@ label_BFC36F08: cpu->gpr[31] = 0x8004EF28u; psx_dispatch(cpu, cpu->gpr[8]); label_BFC36F28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC36F28: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -143519,6 +174494,9 @@ label_BFC36F28: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC36F38u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC36F34) goto label_BFC36F84; label_BFC36F3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC36F3C: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -143533,6 +174511,9 @@ label_BFC36F3C: cpu->gpr[3] = 0x20000000u; if (psx_taken_BFC36F48) goto label_BFC36F60; label_BFC36F50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC36F50: 3C032000 lui $v1, 0x2000 */ cpu->gpr[3] = 0x20000000u; @@ -143543,14 +174524,23 @@ label_BFC36F50: cpu->gpr[3] = cpu->gpr[3] | 0x501u; if (psx_taken_BFC36F54) goto label_BFC36F64; label_BFC36F5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC36F5C: 3C032000 lui $v1, 0x2000 */ cpu->gpr[3] = 0x20000000u; label_BFC36F60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC36F60: 34630504 ori $v1, $v1, 0x504 */ cpu->gpr[3] = cpu->gpr[3] | 0x504u; label_BFC36F64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC36F64: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -143568,10 +174558,16 @@ label_BFC36F64: cpu->gpr[31] = 0x8004EF80u; psx_dispatch(cpu, cpu->gpr[12]); label_BFC36F80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC36F80: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC36F80u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC36F84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC36F84: 8FA20024 lw $v0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC36F84u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -143592,6 +174588,9 @@ void func_1FC36F90(CPUState* cpu) { } } label_BFC36F90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC36F90: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -143612,6 +174611,9 @@ label_BFC36F90: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28080)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC36FACu); return; } g_debug_last_store_pc = 0xBFC36FACu; cpu->write_word(psx_addr, cpu->gpr[5]); } if (psx_taken_BFC36FA8) goto label_BFC36FE0; label_BFC36FB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC36FB0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -143635,12 +174637,18 @@ label_BFC36FB0: cpu->gpr[31] = 0x8004EFD8u; psx_dispatch(cpu, cpu->gpr[14]); label_BFC36FD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC36FD8: 8FA3001C lw $v1, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC36FD8u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } /* 0xBFC36FDC: 00000000 nop */ /* nop */ label_BFC36FE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC36FE0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC36FE0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -143655,6 +174663,9 @@ label_BFC36FE0: void func_1FC36FF0(CPUState* cpu) { debug_server_log_call_entry(0x1FC36FF0u); label_BFC36FF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC36FF0: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -143677,6 +174688,9 @@ void func_1FC37028(CPUState* cpu) { } } label_BFC37028: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC37028: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -143687,6 +174701,9 @@ label_BFC37028: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37030u); return; } g_debug_last_store_pc = 0xBFC37030u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC3702C) goto label_BFC3703C; label_BFC37034: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37034: 10000003 beq $zero, $zero, 0xBFC37044 */ uint32_t psx_brA_BFC37034 = cpu->gpr[0]; uint32_t psx_brB_BFC37034 = cpu->gpr[0]; @@ -143695,12 +174712,18 @@ label_BFC37034: cpu->gpr[4] = 0x03000000u; if (psx_taken_BFC37034) goto label_BFC37044; label_BFC3703C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3703C: 3C040300 lui $a0, 0x300 */ cpu->gpr[4] = 0x03000000u; /* 0xBFC37040: 34840001 ori $a0, $a0, 0x1 */ cpu->gpr[4] = cpu->gpr[4] | 0x1u; label_BFC37044: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC37044: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -143718,6 +174741,9 @@ label_BFC37044: cpu->gpr[31] = 0x8004F060u; psx_dispatch(cpu, cpu->gpr[15]); label_BFC37060: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC37060: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37060u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -143740,6 +174766,9 @@ void func_1FC37070(CPUState* cpu) { } } label_BFC37070: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC37070: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -143759,6 +174788,9 @@ label_BFC37070: cpu->gpr[31] = 0x8004F090u; psx_dispatch(cpu, cpu->gpr[15]); label_BFC37090: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC37090: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37090u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -143781,6 +174813,9 @@ void func_1FC370A0(CPUState* cpu) { } } label_BFC370A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC370A0: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -143818,6 +174853,9 @@ label_BFC370A0: cpu->gpr[31] = 0x8004F0E4u; psx_dispatch(cpu, cpu->gpr[25]); label_BFC370E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC370E4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC370E4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -143840,6 +174878,9 @@ void func_1FC370F4(CPUState* cpu) { } } label_BFC370F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC370F4: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -143865,6 +174906,9 @@ label_BFC370F4: cpu->gpr[31] = 0x8004F120u; psx_dispatch(cpu, cpu->gpr[14]); label_BFC37120: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC37120: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37120u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -143887,6 +174931,9 @@ void func_1FC37130(CPUState* cpu) { } } label_BFC37130: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC37130: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -143912,6 +174959,9 @@ label_BFC37130: cpu->gpr[31] = 0x8004F15Cu; psx_dispatch(cpu, cpu->gpr[14]); label_BFC3715C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3715C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3715Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -143934,6 +174984,9 @@ void func_1FC3716C(CPUState* cpu) { } } label_BFC3716C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(26u); +#endif psx_check_interrupts(cpu); /* 0xBFC3716C: 27BDFFD0 addiu $sp, $sp, -48 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-48)); @@ -143989,6 +175042,9 @@ label_BFC3716C: cpu->gpr[31] = 0x8004F1D4u; psx_dispatch(cpu, cpu->gpr[13]); label_BFC371D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC371D4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC371D4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -144011,6 +175067,9 @@ void func_1FC37334(CPUState* cpu) { } } label_BFC37334: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC37334: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -144032,6 +175091,9 @@ label_BFC37334: cpu->gpr[31] = 0x8004F358u; psx_dispatch(cpu, cpu->gpr[15]); label_BFC37358: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC37358: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37358u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -144056,6 +175118,9 @@ void func_1FC37368(CPUState* cpu) { } } label_BFC37368: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC37368: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -144072,6 +175137,9 @@ label_BFC37368: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3737Cu); return; } g_debug_last_store_pc = 0xBFC3737Cu; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC37378) goto label_BFC37390; label_BFC37380: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC37380: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -144083,6 +175151,9 @@ label_BFC37380: cpu->gpr[31] = 0x8004F390u; psx_dispatch(cpu, 0x80052228u); label_BFC37390: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC37390: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -144100,6 +175171,9 @@ label_BFC37390: cpu->gpr[31] = 0x8004F3ACu; psx_dispatch(cpu, cpu->gpr[24]); label_BFC373AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC373AC: 8FB90020 lw $t9, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC373ACu); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -144121,6 +175195,9 @@ label_BFC373AC: cpu->gpr[31] = 0x8004F3D0u; psx_dispatch(cpu, cpu->gpr[9]); label_BFC373D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC373D0: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC373D0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -144144,6 +175221,9 @@ void func_1FC373E0(CPUState* cpu) { } } label_BFC373E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC373E0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -144160,6 +175240,9 @@ label_BFC373E0: cpu->gpr[5] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC373F0) goto label_BFC37408; label_BFC373F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC373F8: 0C0147F9 jal 0xB0051FE4 */ /* 0xBFC373FC: 00A02021 addu $a0, $a1, $zero */ @@ -144167,6 +175250,9 @@ label_BFC373F8: cpu->gpr[31] = 0x8004F400u; psx_dispatch(cpu, 0x80051FE4u); label_BFC37400: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37400: 10000009 beq $zero, $zero, 0xBFC37428 */ uint32_t psx_brA_BFC37400 = cpu->gpr[0]; uint32_t psx_brB_BFC37400 = cpu->gpr[0]; @@ -144175,6 +175261,9 @@ label_BFC37400: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37404u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC37400) goto label_BFC37428; label_BFC37408: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC37408: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -144192,10 +175281,16 @@ label_BFC37408: cpu->gpr[31] = 0x8004F424u; psx_dispatch(cpu, cpu->gpr[15]); label_BFC37424: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37424: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37424u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC37428: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC37428: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -144218,6 +175313,9 @@ void func_1FC37434(CPUState* cpu) { } } label_BFC37434: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC37434: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -144239,6 +175337,9 @@ label_BFC37434: cpu->gpr[31] = 0x8004F458u; psx_dispatch(cpu, 0x8004FAC4u); label_BFC37458: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC37458: 8E0E001C lw $t6, 28($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37458u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -144272,6 +175373,9 @@ label_BFC37458: cpu->gpr[31] = 0x8004F494u; psx_dispatch(cpu, cpu->gpr[25]); label_BFC37494: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC37494: 3C04800E lui $a0, 0x800E */ cpu->gpr[4] = 0x800E0000u; @@ -144285,6 +175389,9 @@ label_BFC37494: cpu->gpr[31] = 0x8004F4A8u; psx_dispatch(cpu, 0x800513CCu); label_BFC374A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC374A8: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC374A8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -144309,6 +175416,9 @@ void func_1FC374BC(CPUState* cpu) { } } label_BFC374BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC374BC: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -144328,6 +175438,9 @@ label_BFC374BC: cpu->gpr[31] = 0x8004F4DCu; psx_dispatch(cpu, 0x800513CCu); label_BFC374DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC374DC: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC374DCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -144355,6 +175468,9 @@ void func_1FC374EC(CPUState* cpu) { } } label_BFC374EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC374EC: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -144373,6 +175489,9 @@ label_BFC374EC: cpu->gpr[5] = 0x08000000u; if (psx_taken_BFC37500) goto label_BFC37538; label_BFC37508: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC37508: AFA5002C sw $a1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37508u); return; } g_debug_last_store_pc = 0xBFC37508u; cpu->write_word(psx_addr, cpu->gpr[5]); } @@ -144384,6 +175503,9 @@ label_BFC37508: cpu->gpr[31] = 0x8004F518u; psx_dispatch(cpu, 0x80050108u); label_BFC37518: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC37518: 8FAA0030 lw $t2, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37518u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -144404,6 +175526,9 @@ label_BFC37518: cpu->gpr[3] = cpu->gpr[25] | cpu->gpr[11]; if (psx_taken_BFC37530) goto label_BFC37550; label_BFC37538: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC37538: 854C0002 lh $t4, 2($t2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[10] + (2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37538u); return; } cpu->gpr[12] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -144418,6 +175543,9 @@ label_BFC37538: /* 0xBFC3754C: 01D81825 or $v1, $t6, $t8 */ cpu->gpr[3] = cpu->gpr[14] | cpu->gpr[24]; label_BFC37550: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC37550: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -144437,6 +175565,9 @@ label_BFC37550: cpu->gpr[31] = 0x8004F570u; psx_dispatch(cpu, cpu->gpr[11]); label_BFC37570: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC37570: 8FAA0030 lw $t2, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37570u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -144465,6 +175596,9 @@ label_BFC37570: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (16)); if (psx_taken_BFC37598) goto label_BFC375A8; label_BFC375A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC375A0: 10000002 beq $zero, $zero, 0xBFC375AC */ uint32_t psx_brA_BFC375A0 = cpu->gpr[0]; uint32_t psx_brB_BFC375A0 = cpu->gpr[0]; @@ -144473,10 +175607,16 @@ label_BFC375A0: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC375A0) goto label_BFC375AC; label_BFC375A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC375A8: 24030100 addiu $v1, $zero, 256 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (256)); label_BFC375AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC375AC: 00036080 sll $t4, $v1, 2 */ cpu->gpr[12] = cpu->gpr[3] << 2u; @@ -144493,6 +175633,9 @@ label_BFC375AC: cpu->gpr[9] = cpu->gpr[7] + cpu->gpr[12]; if (psx_taken_BFC375BC) goto label_BFC375CC; label_BFC375C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC375C4: 10000002 beq $zero, $zero, 0xBFC375D0 */ uint32_t psx_brA_BFC375C4 = cpu->gpr[0]; uint32_t psx_brB_BFC375C4 = cpu->gpr[0]; @@ -144501,10 +175644,16 @@ label_BFC375C4: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC375C4) goto label_BFC375D0; label_BFC375CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC375CC: 240300F0 addiu $v1, $zero, 240 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (240)); label_BFC375D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC375D0: 28E101F4 slti $at, $a3, 500 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[7] < (500) ? 1 : 0); @@ -144515,6 +175664,9 @@ label_BFC375D0: cpu->gpr[8] = cpu->gpr[6] + cpu->gpr[3]; if (psx_taken_BFC375D4) goto label_BFC375E4; label_BFC375DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC375DC: 10000008 beq $zero, $zero, 0xBFC37600 */ uint32_t psx_brA_BFC375DC = cpu->gpr[0]; uint32_t psx_brB_BFC375DC = cpu->gpr[0]; @@ -144523,6 +175675,9 @@ label_BFC375DC: cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[0] + (500)); if (psx_taken_BFC375DC) goto label_BFC37600; label_BFC375E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC375E4: 28E10CDB slti $at, $a3, 3291 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[7] < (3291) ? 1 : 0); @@ -144533,6 +175688,9 @@ label_BFC375E4: cpu->gpr[3] = cpu->gpr[7] + cpu->gpr[0]; if (psx_taken_BFC375E8) goto label_BFC375FC; label_BFC375F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC375F0: 10000002 beq $zero, $zero, 0xBFC375FC */ uint32_t psx_brA_BFC375F0 = cpu->gpr[0]; uint32_t psx_brB_BFC375F0 = cpu->gpr[0]; @@ -144541,14 +175699,23 @@ label_BFC375F0: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (3290)); if (psx_taken_BFC375F0) goto label_BFC375FC; label_BFC375F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC375F8: 00E01821 addu $v1, $a3, $zero */ cpu->gpr[3] = cpu->gpr[7] + cpu->gpr[0]; label_BFC375FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC375FC: 00603821 addu $a3, $v1, $zero */ cpu->gpr[7] = cpu->gpr[3] + cpu->gpr[0]; label_BFC37600: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC37600: 24E20050 addiu $v0, $a3, 80 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[7] + (80)); @@ -144561,6 +175728,9 @@ label_BFC37600: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[9] < (3291) ? 1 : 0); if (psx_taken_BFC37608) goto label_BFC3761C; label_BFC37610: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37610: 10000008 beq $zero, $zero, 0xBFC37634 */ uint32_t psx_brA_BFC37610 = cpu->gpr[0]; uint32_t psx_brB_BFC37610 = cpu->gpr[0]; @@ -144569,10 +175739,16 @@ label_BFC37610: cpu->gpr[9] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC37610) goto label_BFC37634; label_BFC37618: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37618: 29210CDB slti $at, $t1, 3291 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[9] < (3291) ? 1 : 0); label_BFC3761C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3761C: 14200004 bne $at, $zero, 0xBFC37630 */ uint32_t psx_brA_BFC3761C = cpu->gpr[1]; uint32_t psx_brB_BFC3761C = cpu->gpr[0]; @@ -144581,6 +175757,9 @@ label_BFC3761C: cpu->gpr[3] = cpu->gpr[9] + cpu->gpr[0]; if (psx_taken_BFC3761C) goto label_BFC37630; label_BFC37624: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37624: 10000002 beq $zero, $zero, 0xBFC37630 */ uint32_t psx_brA_BFC37624 = cpu->gpr[0]; uint32_t psx_brB_BFC37624 = cpu->gpr[0]; @@ -144589,14 +175768,23 @@ label_BFC37624: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (3290)); if (psx_taken_BFC37624) goto label_BFC37630; label_BFC3762C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3762C: 01201821 addu $v1, $t1, $zero */ cpu->gpr[3] = cpu->gpr[9] + cpu->gpr[0]; label_BFC37630: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37630: 00604821 addu $t1, $v1, $zero */ cpu->gpr[9] = cpu->gpr[3] + cpu->gpr[0]; label_BFC37634: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37634: 04C10004 bgez $a2, 0xBFC37648 */ uint32_t psx_brA_BFC37634 = cpu->gpr[6]; @@ -144605,6 +175793,9 @@ label_BFC37634: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[6] < (312) ? 1 : 0); if (psx_taken_BFC37634) goto label_BFC37648; label_BFC3763C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3763C: 10000008 beq $zero, $zero, 0xBFC37660 */ uint32_t psx_brA_BFC3763C = cpu->gpr[0]; uint32_t psx_brB_BFC3763C = cpu->gpr[0]; @@ -144613,10 +175804,16 @@ label_BFC3763C: cpu->gpr[6] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3763C) goto label_BFC37660; label_BFC37644: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37644: 28C10138 slti $at, $a2, 312 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[6] < (312) ? 1 : 0); label_BFC37648: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37648: 14200004 bne $at, $zero, 0xBFC3765C */ uint32_t psx_brA_BFC37648 = cpu->gpr[1]; uint32_t psx_brB_BFC37648 = cpu->gpr[0]; @@ -144625,6 +175822,9 @@ label_BFC37648: cpu->gpr[3] = cpu->gpr[6] + cpu->gpr[0]; if (psx_taken_BFC37648) goto label_BFC3765C; label_BFC37650: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37650: 10000002 beq $zero, $zero, 0xBFC3765C */ uint32_t psx_brA_BFC37650 = cpu->gpr[0]; uint32_t psx_brB_BFC37650 = cpu->gpr[0]; @@ -144633,14 +175833,23 @@ label_BFC37650: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (311)); if (psx_taken_BFC37650) goto label_BFC3765C; label_BFC37658: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37658: 00C01821 addu $v1, $a2, $zero */ cpu->gpr[3] = cpu->gpr[6] + cpu->gpr[0]; label_BFC3765C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3765C: 00603021 addu $a2, $v1, $zero */ cpu->gpr[6] = cpu->gpr[3] + cpu->gpr[0]; label_BFC37660: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC37660: 0106082A slt $at, $t0, $a2 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[8] < (int32_t)cpu->gpr[6] ? 1 : 0); @@ -144651,6 +175860,9 @@ label_BFC37660: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[8] < (312) ? 1 : 0); if (psx_taken_BFC37664) goto label_BFC37678; label_BFC3766C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3766C: 10000008 beq $zero, $zero, 0xBFC37690 */ uint32_t psx_brA_BFC3766C = cpu->gpr[0]; uint32_t psx_brB_BFC3766C = cpu->gpr[0]; @@ -144659,10 +175871,16 @@ label_BFC3766C: cpu->gpr[8] = cpu->gpr[6] + cpu->gpr[0]; if (psx_taken_BFC3766C) goto label_BFC37690; label_BFC37674: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37674: 29010138 slti $at, $t0, 312 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[8] < (312) ? 1 : 0); label_BFC37678: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37678: 14200004 bne $at, $zero, 0xBFC3768C */ uint32_t psx_brA_BFC37678 = cpu->gpr[1]; uint32_t psx_brB_BFC37678 = cpu->gpr[0]; @@ -144671,6 +175889,9 @@ label_BFC37678: cpu->gpr[3] = cpu->gpr[8] + cpu->gpr[0]; if (psx_taken_BFC37678) goto label_BFC3768C; label_BFC37680: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37680: 10000002 beq $zero, $zero, 0xBFC3768C */ uint32_t psx_brA_BFC37680 = cpu->gpr[0]; uint32_t psx_brB_BFC37680 = cpu->gpr[0]; @@ -144679,14 +175900,23 @@ label_BFC37680: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (311)); if (psx_taken_BFC37680) goto label_BFC3768C; label_BFC37688: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37688: 01001821 addu $v1, $t0, $zero */ cpu->gpr[3] = cpu->gpr[8] + cpu->gpr[0]; label_BFC3768C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3768C: 00604021 addu $t0, $v1, $zero */ cpu->gpr[8] = cpu->gpr[3] + cpu->gpr[0]; label_BFC37690: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC37690: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -144718,6 +175948,9 @@ label_BFC37690: cpu->gpr[31] = 0x8004F6C8u; psx_dispatch(cpu, cpu->gpr[11]); label_BFC376C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC376C8: 8FA8001C lw $t0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC376C8u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -144749,6 +175982,9 @@ label_BFC376C8: cpu->gpr[31] = 0x8004F700u; psx_dispatch(cpu, cpu->gpr[25]); label_BFC37700: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC37700: 8FAA0030 lw $t2, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37700u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -144765,12 +176001,18 @@ label_BFC37700: /* nop */ if (psx_taken_BFC37710) goto label_BFC37720; label_BFC37718: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37718: 3C050800 lui $a1, 0x800 */ cpu->gpr[5] = 0x08000000u; /* 0xBFC3771C: 34A50008 ori $a1, $a1, 0x8 */ cpu->gpr[5] = cpu->gpr[5] | 0x8u; label_BFC37720: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC37720: 914B0011 lbu $t3, 17($t2) */ cpu->gpr[11] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[10] + (17))); @@ -144783,10 +176025,16 @@ label_BFC37720: /* nop */ if (psx_taken_BFC37728) goto label_BFC37734; label_BFC37730: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37730: 34A50010 ori $a1, $a1, 0x10 */ cpu->gpr[5] = cpu->gpr[5] | 0x10u; label_BFC37734: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC37734: 914C0010 lbu $t4, 16($t2) */ cpu->gpr[12] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[10] + (16))); @@ -144799,10 +176047,16 @@ label_BFC37734: /* nop */ if (psx_taken_BFC3773C) goto label_BFC37748; label_BFC37744: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37744: 34A50020 ori $a1, $a1, 0x20 */ cpu->gpr[5] = cpu->gpr[5] | 0x20u; label_BFC37748: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC37748: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -144817,10 +176071,16 @@ label_BFC37748: /* nop */ if (psx_taken_BFC37754) goto label_BFC37760; label_BFC3775C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3775C: 34A50080 ori $a1, $a1, 0x80 */ cpu->gpr[5] = cpu->gpr[5] | 0x80u; label_BFC37760: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC37760: 85420004 lh $v0, 4($t2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[10] + (4)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37760u); return; } cpu->gpr[2] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -144835,6 +176095,9 @@ label_BFC37760: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (353) ? 1 : 0); if (psx_taken_BFC3776C) goto label_BFC37780; label_BFC37774: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37774: 10000011 beq $zero, $zero, 0xBFC377BC */ uint32_t psx_brA_BFC37774 = cpu->gpr[0]; uint32_t psx_brB_BFC37774 = cpu->gpr[0]; @@ -144843,10 +176106,16 @@ label_BFC37774: /* nop */ if (psx_taken_BFC37774) goto label_BFC377BC; label_BFC3777C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3777C: 28410161 slti $at, $v0, 353 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (353) ? 1 : 0); label_BFC37780: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37780: 10200004 beq $at, $zero, 0xBFC37794 */ uint32_t psx_brA_BFC37780 = cpu->gpr[1]; uint32_t psx_brB_BFC37780 = cpu->gpr[0]; @@ -144855,6 +176124,9 @@ label_BFC37780: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (401) ? 1 : 0); if (psx_taken_BFC37780) goto label_BFC37794; label_BFC37788: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37788: 1000000C beq $zero, $zero, 0xBFC377BC */ uint32_t psx_brA_BFC37788 = cpu->gpr[0]; uint32_t psx_brB_BFC37788 = cpu->gpr[0]; @@ -144863,10 +176135,16 @@ label_BFC37788: cpu->gpr[5] = cpu->gpr[5] | 0x1u; if (psx_taken_BFC37788) goto label_BFC377BC; label_BFC37790: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37790: 28410191 slti $at, $v0, 401 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (401) ? 1 : 0); label_BFC37794: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37794: 10200004 beq $at, $zero, 0xBFC377A8 */ uint32_t psx_brA_BFC37794 = cpu->gpr[1]; uint32_t psx_brB_BFC37794 = cpu->gpr[0]; @@ -144875,6 +176153,9 @@ label_BFC37794: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (561) ? 1 : 0); if (psx_taken_BFC37794) goto label_BFC377A8; label_BFC3779C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3779C: 10000007 beq $zero, $zero, 0xBFC377BC */ uint32_t psx_brA_BFC3779C = cpu->gpr[0]; uint32_t psx_brB_BFC3779C = cpu->gpr[0]; @@ -144883,10 +176164,16 @@ label_BFC3779C: cpu->gpr[5] = cpu->gpr[5] | 0x40u; if (psx_taken_BFC3779C) goto label_BFC377BC; label_BFC377A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC377A4: 28410231 slti $at, $v0, 561 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (561) ? 1 : 0); label_BFC377A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC377A8: 10200003 beq $at, $zero, 0xBFC377B8 */ uint32_t psx_brA_BFC377A8 = cpu->gpr[1]; uint32_t psx_brB_BFC377A8 = cpu->gpr[0]; @@ -144895,6 +176182,9 @@ label_BFC377A8: /* nop */ if (psx_taken_BFC377A8) goto label_BFC377B8; label_BFC377B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC377B0: 10000002 beq $zero, $zero, 0xBFC377BC */ uint32_t psx_brA_BFC377B0 = cpu->gpr[0]; uint32_t psx_brB_BFC377B0 = cpu->gpr[0]; @@ -144903,10 +176193,16 @@ label_BFC377B0: cpu->gpr[5] = cpu->gpr[5] | 0x2u; if (psx_taken_BFC377B0) goto label_BFC377BC; label_BFC377B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC377B8: 34A50003 ori $a1, $a1, 0x3 */ cpu->gpr[5] = cpu->gpr[5] | 0x3u; label_BFC377BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC377BC: 10600004 beq $v1, $zero, 0xBFC377D0 */ uint32_t psx_brA_BFC377BC = cpu->gpr[3]; uint32_t psx_brB_BFC377BC = cpu->gpr[0]; @@ -144915,6 +176211,9 @@ label_BFC377BC: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (256)); if (psx_taken_BFC377BC) goto label_BFC377D0; label_BFC377C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC377C4: 10000002 beq $zero, $zero, 0xBFC377D0 */ uint32_t psx_brA_BFC377C4 = cpu->gpr[0]; uint32_t psx_brB_BFC377C4 = cpu->gpr[0]; @@ -144923,10 +176222,16 @@ label_BFC377C4: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (288)); if (psx_taken_BFC377C4) goto label_BFC377D0; label_BFC377CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC377CC: 24030100 addiu $v1, $zero, 256 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (256)); label_BFC377D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC377D0: 854F0006 lh $t7, 6($t2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[10] + (6)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC377D0u); return; } cpu->gpr[15] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -144941,6 +176246,9 @@ label_BFC377D0: /* nop */ if (psx_taken_BFC377DC) goto label_BFC377EC; label_BFC377E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC377E4: 10000002 beq $zero, $zero, 0xBFC377F0 */ uint32_t psx_brA_BFC377E4 = cpu->gpr[0]; uint32_t psx_brB_BFC377E4 = cpu->gpr[0]; @@ -144949,10 +176257,16 @@ label_BFC377E4: /* nop */ if (psx_taken_BFC377E4) goto label_BFC377F0; label_BFC377EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC377EC: 34A50024 ori $a1, $a1, 0x24 */ cpu->gpr[5] = cpu->gpr[5] | 0x24u; label_BFC377F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC377F0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -144970,6 +176284,9 @@ label_BFC377F0: cpu->gpr[31] = 0x8004F80Cu; psx_dispatch(cpu, cpu->gpr[24]); label_BFC3780C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3780C: 8FAA0030 lw $t2, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3780Cu); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -144985,6 +176302,9 @@ label_BFC3780C: cpu->gpr[31] = 0x8004F824u; psx_dispatch(cpu, 0x800513CCu); label_BFC37824: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC37824: 8FAA0030 lw $t2, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37824u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -145009,6 +176329,9 @@ void func_1FC37838(CPUState* cpu) { } } label_BFC37838: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC37838: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -145028,6 +176351,9 @@ label_BFC37838: cpu->gpr[31] = 0x8004F858u; psx_dispatch(cpu, 0x800513CCu); label_BFC37858: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC37858: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37858u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -145050,6 +176376,9 @@ void func_1FC37868(CPUState* cpu) { } } label_BFC37868: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC37868: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -145069,6 +176398,9 @@ label_BFC37868: cpu->gpr[31] = 0x8004F888u; psx_dispatch(cpu, cpu->gpr[15]); label_BFC37888: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC37888: 3C018000 lui $at, 0x8000 */ cpu->gpr[1] = 0x80000000u; @@ -145081,6 +176413,9 @@ label_BFC37888: cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC37890) goto label_BFC378A4; label_BFC37898: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37898: 10000002 beq $zero, $zero, 0xBFC378A4 */ uint32_t psx_brA_BFC37898 = cpu->gpr[0]; uint32_t psx_brB_BFC37898 = cpu->gpr[0]; @@ -145089,10 +176424,16 @@ label_BFC37898: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC37898) goto label_BFC378A4; label_BFC378A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC378A0: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; label_BFC378A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC378A4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC378A4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -145115,6 +176456,9 @@ void func_1FC378B4(CPUState* cpu) { } } label_BFC378B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC378B4: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -145144,6 +176488,9 @@ label_BFC378B4: cpu->gpr[31] = 0x8004F8E8u; psx_dispatch(cpu, 0x80050090u); label_BFC378E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC378E8: 8FA30018 lw $v1, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC378E8u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -145175,6 +176522,9 @@ void func_1FC37908(CPUState* cpu) { } } label_BFC37908: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC37908: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -145210,6 +176560,9 @@ label_BFC37908: cpu->gpr[31] = 0x8004F948u; psx_dispatch(cpu, 0x8004FE60u); label_BFC37948: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC37948: 8FA30024 lw $v1, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37948u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -145239,6 +176592,9 @@ label_BFC37948: cpu->gpr[31] = 0x8004F97Cu; psx_dispatch(cpu, 0x8004FF4Cu); label_BFC3797C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3797C: 8FAC0020 lw $t4, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3797Cu); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -145267,6 +176623,9 @@ void func_1FC37998(CPUState* cpu) { } } label_BFC37998: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC37998: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -145300,6 +176659,9 @@ label_BFC37998: cpu->gpr[31] = 0x8004F9D4u; psx_dispatch(cpu, 0x80050038u); label_BFC379D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC379D4: 8FA30018 lw $v1, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC379D4u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -145331,6 +176693,9 @@ void func_1FC37A4C(CPUState* cpu) { } } label_BFC37A4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC37A4C: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -145368,6 +176733,9 @@ label_BFC37A4C: cpu->gpr[31] = 0x8004FA90u; psx_dispatch(cpu, 0x8004FDC8u); label_BFC37A90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC37A90: 8FB90020 lw $t9, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37A90u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -145383,6 +176751,9 @@ label_BFC37A90: cpu->gpr[31] = 0x8004FAA8u; psx_dispatch(cpu, 0x80050090u); label_BFC37AA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC37AA8: 8FAA0020 lw $t2, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37AA8u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -145415,6 +176786,9 @@ void func_1FC37AC4(CPUState* cpu) { } } label_BFC37AC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC37AC4: 27BDFFB0 addiu $sp, $sp, -80 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-80)); @@ -145440,6 +176814,9 @@ label_BFC37AC4: cpu->gpr[31] = 0x8004FAF0u; psx_dispatch(cpu, 0x8004FE60u); label_BFC37AF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC37AF0: AE420004 sw $v0, 4($s2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[18] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37AF0u); return; } g_debug_last_store_pc = 0xBFC37AF0u; cpu->write_word(psx_addr, cpu->gpr[2]); } @@ -145465,6 +176842,9 @@ label_BFC37AF0: cpu->gpr[31] = 0x8004FB1Cu; psx_dispatch(cpu, 0x8004FF4Cu); label_BFC37B1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC37B1C: 00114080 sll $t0, $s1, 2 */ cpu->gpr[8] = cpu->gpr[17] << 2u; @@ -145486,6 +176866,9 @@ label_BFC37B1C: cpu->gpr[31] = 0x8004FB40u; psx_dispatch(cpu, 0x80050038u); label_BFC37B40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC37B40: 8FA3002C lw $v1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37B40u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -145507,6 +176890,9 @@ label_BFC37B40: cpu->gpr[31] = 0x8004FB64u; psx_dispatch(cpu, 0x8004FDC8u); label_BFC37B64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC37B64: 8FA3002C lw $v1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37B64u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -145524,6 +176910,9 @@ label_BFC37B64: cpu->gpr[31] = 0x8004FB80u; psx_dispatch(cpu, 0x80050090u); label_BFC37B80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC37B80: 8FA3002C lw $v1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37B80u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -145548,6 +176937,9 @@ label_BFC37B80: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); if (psx_taken_BFC37BA0) goto label_BFC37D90; label_BFC37BA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC37BA8: 860B0000 lh $t3, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37BA8u); return; } cpu->gpr[11] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -145580,6 +176972,9 @@ label_BFC37BA8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37BDCu); return; } cpu->gpr[24] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } if (psx_taken_BFC37BD8) goto label_BFC37BEC; label_BFC37BE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37BE0: 1000000B beq $zero, $zero, 0xBFC37C10 */ uint32_t psx_brA_BFC37BE0 = cpu->gpr[0]; uint32_t psx_brB_BFC37BE0 = cpu->gpr[0]; @@ -145588,10 +176983,16 @@ label_BFC37BE0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37BE4u); return; } g_debug_last_store_pc = 0xBFC37BE4u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } if (psx_taken_BFC37BE0) goto label_BFC37C10; label_BFC37BE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37BE8: 87B80040 lh $t8, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37BE8u); return; } cpu->gpr[24] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } label_BFC37BEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC37BEC: 00000000 nop */ /* nop */ @@ -145604,6 +177005,9 @@ label_BFC37BEC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37BF8u); return; } cpu->gpr[2] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } if (psx_taken_BFC37BF4) goto label_BFC37C08; label_BFC37BFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37BFC: 10000003 beq $zero, $zero, 0xBFC37C0C */ uint32_t psx_brA_BFC37BFC = cpu->gpr[0]; uint32_t psx_brB_BFC37BFC = cpu->gpr[0]; @@ -145612,18 +177016,30 @@ label_BFC37BFC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1023)); if (psx_taken_BFC37BFC) goto label_BFC37C0C; label_BFC37C04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37C04: 87A20040 lh $v0, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37C04u); return; } cpu->gpr[2] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } label_BFC37C08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37C08: 00000000 nop */ /* nop */ label_BFC37C0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37C0C: A7A20040 sh $v0, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37C0Cu); return; } g_debug_last_store_pc = 0xBFC37C0Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[2] & 0xFFFFu)); } label_BFC37C10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC37C10: 87B90042 lh $t9, 66($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (66)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37C10u); return; } cpu->gpr[25] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -145636,6 +177052,9 @@ label_BFC37C10: /* nop */ if (psx_taken_BFC37C18) goto label_BFC37C28; label_BFC37C20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37C20: 10000018 beq $zero, $zero, 0xBFC37C84 */ uint32_t psx_brA_BFC37C20 = cpu->gpr[0]; uint32_t psx_brB_BFC37C20 = cpu->gpr[0]; @@ -145644,6 +177063,9 @@ label_BFC37C20: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (66)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37C24u); return; } g_debug_last_store_pc = 0xBFC37C24u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } if (psx_taken_BFC37C20) goto label_BFC37C84; label_BFC37C28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC37C28: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -145658,6 +177080,9 @@ label_BFC37C28: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (511)); if (psx_taken_BFC37C34) goto label_BFC37C48; label_BFC37C3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37C3C: 10000002 beq $zero, $zero, 0xBFC37C48 */ uint32_t psx_brA_BFC37C3C = cpu->gpr[0]; uint32_t psx_brB_BFC37C3C = cpu->gpr[0]; @@ -145666,10 +177091,16 @@ label_BFC37C3C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1023)); if (psx_taken_BFC37C3C) goto label_BFC37C48; label_BFC37C44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37C44: 240201FF addiu $v0, $zero, 511 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (511)); label_BFC37C48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC37C48: 87A80042 lh $t0, 66($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (66)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37C48u); return; } cpu->gpr[8] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -145684,6 +177115,9 @@ label_BFC37C48: /* nop */ if (psx_taken_BFC37C54) goto label_BFC37C78; label_BFC37C5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37C5C: 10800004 beq $a0, $zero, 0xBFC37C70 */ uint32_t psx_brA_BFC37C5C = cpu->gpr[4]; uint32_t psx_brB_BFC37C5C = cpu->gpr[0]; @@ -145692,6 +177126,9 @@ label_BFC37C5C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (511)); if (psx_taken_BFC37C5C) goto label_BFC37C70; label_BFC37C64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37C64: 10000002 beq $zero, $zero, 0xBFC37C70 */ uint32_t psx_brA_BFC37C64 = cpu->gpr[0]; uint32_t psx_brB_BFC37C64 = cpu->gpr[0]; @@ -145700,10 +177137,16 @@ label_BFC37C64: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1023)); if (psx_taken_BFC37C64) goto label_BFC37C70; label_BFC37C6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37C6C: 240201FF addiu $v0, $zero, 511 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (511)); label_BFC37C70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37C70: 10000003 beq $zero, $zero, 0xBFC37C80 */ uint32_t psx_brA_BFC37C70 = cpu->gpr[0]; uint32_t psx_brB_BFC37C70 = cpu->gpr[0]; @@ -145712,16 +177155,25 @@ label_BFC37C70: cpu->gpr[4] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC37C70) goto label_BFC37C80; label_BFC37C78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37C78: 87A40042 lh $a0, 66($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (66)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37C78u); return; } cpu->gpr[4] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } /* 0xBFC37C7C: 00000000 nop */ /* nop */ label_BFC37C80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37C80: A7A40042 sh $a0, 66($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (66)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37C80u); return; } g_debug_last_store_pc = 0xBFC37C80u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[4] & 0xFFFFu)); } label_BFC37C84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC37C84: 87A9003C lh $t1, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37C84u); return; } cpu->gpr[9] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -145736,6 +177188,9 @@ label_BFC37C84: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37C94u); return; } cpu->gpr[13] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } if (psx_taken_BFC37C90) goto label_BFC37CB0; label_BFC37C98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC37C98: 87AB0040 lh $t3, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37C98u); return; } cpu->gpr[11] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -145750,10 +177205,16 @@ label_BFC37C98: /* nop */ if (psx_taken_BFC37CA4) goto label_BFC37D40; label_BFC37CAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37CAC: 87AD003C lh $t5, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37CACu); return; } cpu->gpr[13] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } label_BFC37CB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(36u); +#endif psx_check_interrupts(cpu); /* 0xBFC37CB0: 860E0008 lh $t6, 8($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (8)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37CB0u); return; } cpu->gpr[14] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -145830,6 +177291,9 @@ label_BFC37CB0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (62)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37D3Cu); return; } g_debug_last_store_pc = 0xBFC37D3Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[14] & 0xFFFFu)); } if (psx_taken_BFC37D38) goto label_BFC37D90; label_BFC37D40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC37D40: 920F001B lbu $t7, 27($s0) */ cpu->gpr[15] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (27))); @@ -145872,6 +177336,9 @@ label_BFC37D40: /* 0xBFC37D8C: AC6EFFFC sw $t6, -4($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37D8Cu); return; } g_debug_last_store_pc = 0xBFC37D8Cu; cpu->write_word(psx_addr, cpu->gpr[14]); } label_BFC37D90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC37D90: 8E420000 lw $v0, 0($s2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[18] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC37D90u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -145906,6 +177373,9 @@ label_BFC37D90: void func_1FC37DC8(CPUState* cpu) { debug_server_log_call_entry(0x1FC37DC8u); label_BFC37DC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC37DC8: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -145920,6 +177390,9 @@ label_BFC37DC8: /* nop */ if (psx_taken_BFC37DD4) goto label_BFC37E1C; label_BFC37DDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37DDC: 10A00004 beq $a1, $zero, 0xBFC37DF0 */ uint32_t psx_brA_BFC37DDC = cpu->gpr[5]; uint32_t psx_brB_BFC37DDC = cpu->gpr[0]; @@ -145928,6 +177401,9 @@ label_BFC37DDC: cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC37DDC) goto label_BFC37DF0; label_BFC37DE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37DE4: 10000002 beq $zero, $zero, 0xBFC37DF0 */ uint32_t psx_brA_BFC37DE4 = cpu->gpr[0]; uint32_t psx_brB_BFC37DE4 = cpu->gpr[0]; @@ -145936,10 +177412,16 @@ label_BFC37DE4: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (2048)); if (psx_taken_BFC37DE4) goto label_BFC37DF0; label_BFC37DEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37DEC: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; label_BFC37DF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37DF0: 10800004 beq $a0, $zero, 0xBFC37E04 */ uint32_t psx_brA_BFC37DF0 = cpu->gpr[4]; uint32_t psx_brB_BFC37DF0 = cpu->gpr[0]; @@ -145948,6 +177430,9 @@ label_BFC37DF0: cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC37DF0) goto label_BFC37E04; label_BFC37DF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37DF8: 10000002 beq $zero, $zero, 0xBFC37E04 */ uint32_t psx_brA_BFC37DF8 = cpu->gpr[0]; uint32_t psx_brB_BFC37DF8 = cpu->gpr[0]; @@ -145956,10 +177441,16 @@ label_BFC37DF8: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (4096)); if (psx_taken_BFC37DF8) goto label_BFC37E04; label_BFC37E00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37E00: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; label_BFC37E04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC37E04: 3C01E100 lui $at, 0xE100 */ cpu->gpr[1] = 0xE1000000u; @@ -145974,6 +177465,9 @@ label_BFC37E04: cpu->gpr[2] = cpu->gpr[24] | cpu->gpr[25]; return; label_BFC37E1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37E1C: 10A00004 beq $a1, $zero, 0xBFC37E30 */ uint32_t psx_brA_BFC37E1C = cpu->gpr[5]; uint32_t psx_brB_BFC37E1C = cpu->gpr[0]; @@ -145982,6 +177476,9 @@ label_BFC37E1C: cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC37E1C) goto label_BFC37E30; label_BFC37E24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37E24: 10000002 beq $zero, $zero, 0xBFC37E30 */ uint32_t psx_brA_BFC37E24 = cpu->gpr[0]; uint32_t psx_brB_BFC37E24 = cpu->gpr[0]; @@ -145990,10 +177487,16 @@ label_BFC37E24: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (512)); if (psx_taken_BFC37E24) goto label_BFC37E30; label_BFC37E2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37E2C: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; label_BFC37E30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37E30: 10800004 beq $a0, $zero, 0xBFC37E44 */ uint32_t psx_brA_BFC37E30 = cpu->gpr[4]; uint32_t psx_brB_BFC37E30 = cpu->gpr[0]; @@ -146002,6 +177505,9 @@ label_BFC37E30: cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC37E30) goto label_BFC37E44; label_BFC37E38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37E38: 10000002 beq $zero, $zero, 0xBFC37E44 */ uint32_t psx_brA_BFC37E38 = cpu->gpr[0]; uint32_t psx_brB_BFC37E38 = cpu->gpr[0]; @@ -146010,10 +177516,16 @@ label_BFC37E38: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (1024)); if (psx_taken_BFC37E38) goto label_BFC37E44; label_BFC37E40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37E40: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; label_BFC37E44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC37E44: 3C01E100 lui $at, 0xE100 */ cpu->gpr[1] = 0xE1000000u; @@ -146034,6 +177546,9 @@ label_BFC37E44: void func_1FC37E60(CPUState* cpu) { debug_server_log_call_entry(0x1FC37E60u); label_BFC37E60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC37E60: 00042400 sll $a0, $a0, 16 */ cpu->gpr[4] = cpu->gpr[4] << 16u; @@ -146048,6 +177563,9 @@ label_BFC37E60: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] >> 16u); if (psx_taken_BFC37E6C) goto label_BFC37E7C; label_BFC37E74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37E74: 10000009 beq $zero, $zero, 0xBFC37E9C */ uint32_t psx_brA_BFC37E74 = cpu->gpr[0]; uint32_t psx_brB_BFC37E74 = cpu->gpr[0]; @@ -146056,6 +177574,9 @@ label_BFC37E74: cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC37E74) goto label_BFC37E9C; label_BFC37E7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC37E7C: 28810400 slti $at, $a0, 1024 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (1024) ? 1 : 0); @@ -146066,6 +177587,9 @@ label_BFC37E7C: cpu->gpr[2] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC37E80) goto label_BFC37E94; label_BFC37E88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37E88: 10000002 beq $zero, $zero, 0xBFC37E94 */ uint32_t psx_brA_BFC37E88 = cpu->gpr[0]; uint32_t psx_brB_BFC37E88 = cpu->gpr[0]; @@ -146074,16 +177598,25 @@ label_BFC37E88: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1023)); if (psx_taken_BFC37E88) goto label_BFC37E94; label_BFC37E90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37E90: 00801021 addu $v0, $a0, $zero */ cpu->gpr[2] = cpu->gpr[4] + cpu->gpr[0]; label_BFC37E94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37E94: 00022400 sll $a0, $v0, 16 */ cpu->gpr[4] = cpu->gpr[2] << 16u; /* 0xBFC37E98: 00042403 sra $a0, $a0, 16 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] >> 16u); label_BFC37E9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37E9C: 04A10005 bgez $a1, 0xBFC37EB4 */ uint32_t psx_brA_BFC37E9C = cpu->gpr[5]; @@ -146092,6 +177625,9 @@ label_BFC37E9C: /* nop */ if (psx_taken_BFC37E9C) goto label_BFC37EB4; label_BFC37EA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC37EA4: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -146104,6 +177640,9 @@ label_BFC37EA4: cpu->gpr[5] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC37EAC) goto label_BFC37F08; label_BFC37EB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC37EB4: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -146118,6 +177657,9 @@ label_BFC37EB4: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (511)); if (psx_taken_BFC37EC0) goto label_BFC37ED4; label_BFC37EC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37EC8: 10000002 beq $zero, $zero, 0xBFC37ED4 */ uint32_t psx_brA_BFC37EC8 = cpu->gpr[0]; uint32_t psx_brB_BFC37EC8 = cpu->gpr[0]; @@ -146126,10 +177668,16 @@ label_BFC37EC8: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1023)); if (psx_taken_BFC37EC8) goto label_BFC37ED4; label_BFC37ED0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37ED0: 240301FF addiu $v1, $zero, 511 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (511)); label_BFC37ED4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC37ED4: 0065082A slt $at, $v1, $a1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[3] < (int32_t)cpu->gpr[5] ? 1 : 0); @@ -146140,6 +177688,9 @@ label_BFC37ED4: cpu->gpr[6] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC37ED8) goto label_BFC37F00; label_BFC37EE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37EE0: 10400004 beq $v0, $zero, 0xBFC37EF4 */ uint32_t psx_brA_BFC37EE0 = cpu->gpr[2]; uint32_t psx_brB_BFC37EE0 = cpu->gpr[0]; @@ -146148,6 +177699,9 @@ label_BFC37EE0: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (511)); if (psx_taken_BFC37EE0) goto label_BFC37EF4; label_BFC37EE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37EE8: 10000002 beq $zero, $zero, 0xBFC37EF4 */ uint32_t psx_brA_BFC37EE8 = cpu->gpr[0]; uint32_t psx_brB_BFC37EE8 = cpu->gpr[0]; @@ -146156,10 +177710,16 @@ label_BFC37EE8: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1023)); if (psx_taken_BFC37EE8) goto label_BFC37EF4; label_BFC37EF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37EF0: 240301FF addiu $v1, $zero, 511 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (511)); label_BFC37EF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37EF4: 10000002 beq $zero, $zero, 0xBFC37F00 */ uint32_t psx_brA_BFC37EF4 = cpu->gpr[0]; uint32_t psx_brB_BFC37EF4 = cpu->gpr[0]; @@ -146168,16 +177728,25 @@ label_BFC37EF4: cpu->gpr[6] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC37EF4) goto label_BFC37F00; label_BFC37EFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37EFC: 00A03021 addu $a2, $a1, $zero */ cpu->gpr[6] = cpu->gpr[5] + cpu->gpr[0]; label_BFC37F00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37F00: 00062C00 sll $a1, $a2, 16 */ cpu->gpr[5] = cpu->gpr[6] << 16u; /* 0xBFC37F04: 00052C03 sra $a1, $a1, 16 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] >> 16u); label_BFC37F08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37F08: 10400009 beq $v0, $zero, 0xBFC37F30 */ uint32_t psx_brA_BFC37F08 = cpu->gpr[2]; uint32_t psx_brB_BFC37F08 = cpu->gpr[0]; @@ -146186,6 +177755,9 @@ label_BFC37F08: cpu->gpr[8] = cpu->gpr[5] & 0x3FFu; if (psx_taken_BFC37F08) goto label_BFC37F30; label_BFC37F10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC37F10: 30AE0FFF andi $t6, $a1, 0xFFF */ cpu->gpr[14] = cpu->gpr[5] & 0xFFFu; @@ -146202,6 +177774,9 @@ label_BFC37F10: cpu->gpr[2] = cpu->gpr[24] | cpu->gpr[25]; return; label_BFC37F30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC37F30: 00084A80 sll $t1, $t0, 10 */ cpu->gpr[9] = cpu->gpr[8] << 10u; @@ -146222,6 +177797,9 @@ label_BFC37F30: void func_1FC37F4C(CPUState* cpu) { debug_server_log_call_entry(0x1FC37F4Cu); label_BFC37F4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC37F4C: 00042400 sll $a0, $a0, 16 */ cpu->gpr[4] = cpu->gpr[4] << 16u; @@ -146236,6 +177814,9 @@ label_BFC37F4C: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] >> 16u); if (psx_taken_BFC37F58) goto label_BFC37F68; label_BFC37F60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37F60: 10000009 beq $zero, $zero, 0xBFC37F88 */ uint32_t psx_brA_BFC37F60 = cpu->gpr[0]; uint32_t psx_brB_BFC37F60 = cpu->gpr[0]; @@ -146244,6 +177825,9 @@ label_BFC37F60: cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC37F60) goto label_BFC37F88; label_BFC37F68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC37F68: 28810400 slti $at, $a0, 1024 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[4] < (1024) ? 1 : 0); @@ -146254,6 +177838,9 @@ label_BFC37F68: cpu->gpr[2] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC37F6C) goto label_BFC37F80; label_BFC37F74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37F74: 10000002 beq $zero, $zero, 0xBFC37F80 */ uint32_t psx_brA_BFC37F74 = cpu->gpr[0]; uint32_t psx_brB_BFC37F74 = cpu->gpr[0]; @@ -146262,16 +177849,25 @@ label_BFC37F74: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1023)); if (psx_taken_BFC37F74) goto label_BFC37F80; label_BFC37F7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37F7C: 00801021 addu $v0, $a0, $zero */ cpu->gpr[2] = cpu->gpr[4] + cpu->gpr[0]; label_BFC37F80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37F80: 00022400 sll $a0, $v0, 16 */ cpu->gpr[4] = cpu->gpr[2] << 16u; /* 0xBFC37F84: 00042403 sra $a0, $a0, 16 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] >> 16u); label_BFC37F88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37F88: 04A10005 bgez $a1, 0xBFC37FA0 */ uint32_t psx_brA_BFC37F88 = cpu->gpr[5]; @@ -146280,6 +177876,9 @@ label_BFC37F88: /* nop */ if (psx_taken_BFC37F88) goto label_BFC37FA0; label_BFC37F90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC37F90: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -146292,6 +177891,9 @@ label_BFC37F90: cpu->gpr[5] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC37F98) goto label_BFC37FF4; label_BFC37FA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC37FA0: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -146306,6 +177908,9 @@ label_BFC37FA0: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (511)); if (psx_taken_BFC37FAC) goto label_BFC37FC0; label_BFC37FB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37FB4: 10000002 beq $zero, $zero, 0xBFC37FC0 */ uint32_t psx_brA_BFC37FB4 = cpu->gpr[0]; uint32_t psx_brB_BFC37FB4 = cpu->gpr[0]; @@ -146314,10 +177919,16 @@ label_BFC37FB4: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1023)); if (psx_taken_BFC37FB4) goto label_BFC37FC0; label_BFC37FBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37FBC: 240301FF addiu $v1, $zero, 511 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (511)); label_BFC37FC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC37FC0: 0065082A slt $at, $v1, $a1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[3] < (int32_t)cpu->gpr[5] ? 1 : 0); @@ -146328,6 +177939,9 @@ label_BFC37FC0: cpu->gpr[6] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC37FC4) goto label_BFC37FEC; label_BFC37FCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37FCC: 10400004 beq $v0, $zero, 0xBFC37FE0 */ uint32_t psx_brA_BFC37FCC = cpu->gpr[2]; uint32_t psx_brB_BFC37FCC = cpu->gpr[0]; @@ -146336,6 +177950,9 @@ label_BFC37FCC: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (511)); if (psx_taken_BFC37FCC) goto label_BFC37FE0; label_BFC37FD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37FD4: 10000002 beq $zero, $zero, 0xBFC37FE0 */ uint32_t psx_brA_BFC37FD4 = cpu->gpr[0]; uint32_t psx_brB_BFC37FD4 = cpu->gpr[0]; @@ -146344,10 +177961,16 @@ label_BFC37FD4: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1023)); if (psx_taken_BFC37FD4) goto label_BFC37FE0; label_BFC37FDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37FDC: 240301FF addiu $v1, $zero, 511 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (511)); label_BFC37FE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37FE0: 10000002 beq $zero, $zero, 0xBFC37FEC */ uint32_t psx_brA_BFC37FE0 = cpu->gpr[0]; uint32_t psx_brB_BFC37FE0 = cpu->gpr[0]; @@ -146356,16 +177979,25 @@ label_BFC37FE0: cpu->gpr[6] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC37FE0) goto label_BFC37FEC; label_BFC37FE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC37FE8: 00A03021 addu $a2, $a1, $zero */ cpu->gpr[6] = cpu->gpr[5] + cpu->gpr[0]; label_BFC37FEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37FEC: 00062C00 sll $a1, $a2, 16 */ cpu->gpr[5] = cpu->gpr[6] << 16u; /* 0xBFC37FF0: 00052C03 sra $a1, $a1, 16 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] >> 16u); label_BFC37FF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC37FF4: 10400009 beq $v0, $zero, 0xBFC3801C */ uint32_t psx_brA_BFC37FF4 = cpu->gpr[2]; uint32_t psx_brB_BFC37FF4 = cpu->gpr[0]; @@ -146374,6 +178006,9 @@ label_BFC37FF4: cpu->gpr[8] = cpu->gpr[5] & 0x1FFu; if (psx_taken_BFC37FF4) goto label_BFC3801C; label_BFC37FFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC37FFC: 30AE0FFF andi $t6, $a1, 0xFFF */ cpu->gpr[14] = cpu->gpr[5] & 0xFFFu; @@ -146390,6 +178025,9 @@ label_BFC37FFC: cpu->gpr[2] = cpu->gpr[24] | cpu->gpr[25]; return; label_BFC3801C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3801C: 00084A80 sll $t1, $t0, 10 */ cpu->gpr[9] = cpu->gpr[8] << 10u; @@ -146410,6 +178048,9 @@ label_BFC3801C: void func_1FC38038(CPUState* cpu) { debug_server_log_call_entry(0x1FC38038u); label_BFC38038: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC38038: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -146428,6 +178069,9 @@ label_BFC38038: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] >> 16u); if (psx_taken_BFC3804C) goto label_BFC38070; label_BFC38054: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC38054: 30AF0FFF andi $t7, $a1, 0xFFF */ cpu->gpr[15] = cpu->gpr[5] & 0xFFFu; @@ -146444,6 +178088,9 @@ label_BFC38054: cpu->gpr[2] = cpu->gpr[25] | cpu->gpr[8]; return; label_BFC38070: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC38070: 30A907FF andi $t1, $a1, 0x7FF */ cpu->gpr[9] = cpu->gpr[5] & 0x7FFu; @@ -146466,6 +178113,9 @@ label_BFC38070: void func_1FC38090(CPUState* cpu) { debug_server_log_call_entry(0x1FC38090u); label_BFC38090: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38090: 1080001B beq $a0, $zero, 0xBFC38100 */ uint32_t psx_brA_BFC38090 = cpu->gpr[4]; uint32_t psx_brB_BFC38090 = cpu->gpr[0]; @@ -146474,6 +178124,9 @@ label_BFC38090: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC38090) goto label_BFC38100; label_BFC38098: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(25u); +#endif psx_check_interrupts(cpu); /* 0xBFC38098: 84860002 lh $a2, 2($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38098u); return; } cpu->gpr[6] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -146526,6 +178179,9 @@ label_BFC38098: cpu->gpr[2] = cpu->gpr[9] | cpu->gpr[5]; return; label_BFC38100: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38100: 03E00008 jr $ra */ /* 0xBFC38104: 00000000 nop */ @@ -146536,6 +178192,9 @@ label_BFC38100: void func_1FC38108(CPUState* cpu) { debug_server_log_call_entry(0x1FC38108u); label_BFC38108: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38108: 1000002D beq $zero, $zero, 0xBFC381C0 */ uint32_t psx_brA_BFC38108 = cpu->gpr[0]; uint32_t psx_brB_BFC38108 = cpu->gpr[0]; @@ -146544,6 +178203,9 @@ label_BFC38108: /* nop */ if (psx_taken_BFC38108) goto label_BFC381C0; label_BFC38110: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC38110: 84820000 lh $v0, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38110u); return; } cpu->gpr[2] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -146552,6 +178214,9 @@ label_BFC38110: /* nop */ return; label_BFC3811C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3811C: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -146566,6 +178231,9 @@ label_BFC3811C: /* nop */ if (psx_taken_BFC38128) goto label_BFC38148; label_BFC38130: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC38130: 848F0000 lh $t7, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38130u); return; } cpu->gpr[15] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -146582,18 +178250,27 @@ label_BFC38130: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1024)); if (psx_taken_BFC38140) goto label_BFC38150; label_BFC38148: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38148: 84830000 lh $v1, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38148u); return; } cpu->gpr[3] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } /* 0xBFC3814C: 00000000 nop */ /* nop */ label_BFC38150: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38150: 03E00008 jr $ra */ /* 0xBFC38154: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; return; label_BFC38158: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC38158: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -146608,6 +178285,9 @@ label_BFC38158: /* nop */ if (psx_taken_BFC38164) goto label_BFC3819C; label_BFC3816C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3816C: 848B0004 lh $t3, 4($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (4)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3816Cu); return; } cpu->gpr[11] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -146626,10 +178306,16 @@ label_BFC3816C: cpu->gpr[1] = cpu->gpr[11] + cpu->gpr[0]; if (psx_taken_BFC38180) goto label_BFC3818C; label_BFC38188: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC38188: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC3818C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3818C: 00016043 sra $t4, $at, 1 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -146642,6 +178328,9 @@ label_BFC3818C: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1024)); if (psx_taken_BFC38194) goto label_BFC381B8; label_BFC3819C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3819C: 84830000 lh $v1, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3819Cu); return; } cpu->gpr[3] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -146656,20 +178345,32 @@ label_BFC3819C: cpu->gpr[1] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC381A8) goto label_BFC381B4; label_BFC381B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC381B0: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC381B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC381B4: 00011843 sra $v1, $at, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); label_BFC381B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC381B8: 03E00008 jr $ra */ /* 0xBFC381BC: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; return; label_BFC381C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC381C0: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -146684,6 +178385,9 @@ label_BFC381C0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC381CC) goto label_BFC38110; label_BFC381D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC381D4: 1041FFD1 beq $v0, $at, 0xBFC3811C */ uint32_t psx_brA_BFC381D4 = cpu->gpr[2]; uint32_t psx_brB_BFC381D4 = cpu->gpr[1]; @@ -146692,6 +178396,9 @@ label_BFC381D4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC381D4) goto label_BFC3811C; label_BFC381DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC381DC: 1041FFDE beq $v0, $at, 0xBFC38158 */ uint32_t psx_brA_BFC381DC = cpu->gpr[2]; uint32_t psx_brB_BFC381DC = cpu->gpr[1]; @@ -146700,6 +178407,9 @@ label_BFC381DC: /* nop */ if (psx_taken_BFC381DC) goto label_BFC38158; label_BFC381E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC381E4: 03E00008 jr $ra */ /* 0xBFC381E8: 00000000 nop */ @@ -146719,6 +178429,9 @@ void func_1FC38204(CPUState* cpu) { } } label_BFC38204: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(27u); +#endif psx_check_interrupts(cpu); /* 0xBFC38204: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -146776,6 +178489,9 @@ label_BFC38204: cpu->gpr[31] = 0x80050270u; psx_dispatch(cpu, 0x800512E8u); label_BFC38270: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC38270: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -146796,6 +178512,9 @@ label_BFC38270: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3828Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } if (psx_taken_BFC38288) goto label_BFC382CC; label_BFC38290: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38290: 0C0144C0 jal 0xB0051300 */ /* 0xBFC38294: 00000000 nop */ @@ -146803,6 +178522,9 @@ label_BFC38290: cpu->gpr[31] = 0x80050298u; psx_dispatch(cpu, 0x80051300u); label_BFC38298: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38298: 10400003 beq $v0, $zero, 0xBFC382A8 */ uint32_t psx_brA_BFC38298 = cpu->gpr[2]; uint32_t psx_brB_BFC38298 = cpu->gpr[0]; @@ -146811,6 +178533,9 @@ label_BFC38298: /* nop */ if (psx_taken_BFC38298) goto label_BFC382A8; label_BFC382A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC382A0: 1000000B beq $zero, $zero, 0xBFC382D0 */ uint32_t psx_brA_BFC382A0 = cpu->gpr[0]; uint32_t psx_brB_BFC382A0 = cpu->gpr[0]; @@ -146819,6 +178544,9 @@ label_BFC382A0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC382A0) goto label_BFC382D0; label_BFC382A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC382A8: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -146839,14 +178567,23 @@ label_BFC382A8: /* nop */ if (psx_taken_BFC382C0) goto label_BFC38290; label_BFC382C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC382C8: 8FA20024 lw $v0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC382C8u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } label_BFC382CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC382CC: 00000000 nop */ /* nop */ label_BFC382D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC382D0: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC382D0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -146872,6 +178609,9 @@ void func_1FC382E0(CPUState* cpu) { } } label_BFC382E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC382E0: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -146908,6 +178648,9 @@ label_BFC382E0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3831Cu); return; } cpu->gpr[9] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } if (psx_taken_BFC38318) goto label_BFC3832C; label_BFC38320: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38320: 1000000B beq $zero, $zero, 0xBFC38350 */ uint32_t psx_brA_BFC38320 = cpu->gpr[0]; uint32_t psx_brB_BFC38320 = cpu->gpr[0]; @@ -146916,10 +178659,16 @@ label_BFC38320: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38324u); return; } g_debug_last_store_pc = 0xBFC38324u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } if (psx_taken_BFC38320) goto label_BFC38350; label_BFC38328: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC38328: 87A9001C lh $t1, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38328u); return; } cpu->gpr[9] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } label_BFC3832C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3832C: 00000000 nop */ /* nop */ @@ -146932,6 +178681,9 @@ label_BFC3832C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38338u); return; } cpu->gpr[2] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } if (psx_taken_BFC38334) goto label_BFC38348; label_BFC3833C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3833C: 10000003 beq $zero, $zero, 0xBFC3834C */ uint32_t psx_brA_BFC3833C = cpu->gpr[0]; uint32_t psx_brB_BFC3833C = cpu->gpr[0]; @@ -146940,18 +178692,30 @@ label_BFC3833C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1023)); if (psx_taken_BFC3833C) goto label_BFC3834C; label_BFC38344: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC38344: 87A2001C lh $v0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38344u); return; } cpu->gpr[2] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } label_BFC38348: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC38348: 00000000 nop */ /* nop */ label_BFC3834C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3834C: A7A2001C sh $v0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3834Cu); return; } g_debug_last_store_pc = 0xBFC3834Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[2] & 0xFFFFu)); } label_BFC38350: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC38350: 87AA001E lh $t2, 30($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (30)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38350u); return; } cpu->gpr[10] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -146964,6 +178728,9 @@ label_BFC38350: /* nop */ if (psx_taken_BFC38358) goto label_BFC38368; label_BFC38360: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38360: 10000018 beq $zero, $zero, 0xBFC383C4 */ uint32_t psx_brA_BFC38360 = cpu->gpr[0]; uint32_t psx_brB_BFC38360 = cpu->gpr[0]; @@ -146972,6 +178739,9 @@ label_BFC38360: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (30)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38364u); return; } g_debug_last_store_pc = 0xBFC38364u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } if (psx_taken_BFC38360) goto label_BFC383C4; label_BFC38368: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC38368: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -146986,6 +178756,9 @@ label_BFC38368: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (511)); if (psx_taken_BFC38374) goto label_BFC38388; label_BFC3837C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3837C: 10000002 beq $zero, $zero, 0xBFC38388 */ uint32_t psx_brA_BFC3837C = cpu->gpr[0]; uint32_t psx_brB_BFC3837C = cpu->gpr[0]; @@ -146994,10 +178767,16 @@ label_BFC3837C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1023)); if (psx_taken_BFC3837C) goto label_BFC38388; label_BFC38384: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC38384: 240201FF addiu $v0, $zero, 511 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (511)); label_BFC38388: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC38388: 87AB001E lh $t3, 30($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (30)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38388u); return; } cpu->gpr[11] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -147012,6 +178791,9 @@ label_BFC38388: /* nop */ if (psx_taken_BFC38394) goto label_BFC383B8; label_BFC3839C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3839C: 10600004 beq $v1, $zero, 0xBFC383B0 */ uint32_t psx_brA_BFC3839C = cpu->gpr[3]; uint32_t psx_brB_BFC3839C = cpu->gpr[0]; @@ -147020,6 +178802,9 @@ label_BFC3839C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (511)); if (psx_taken_BFC3839C) goto label_BFC383B0; label_BFC383A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC383A4: 10000002 beq $zero, $zero, 0xBFC383B0 */ uint32_t psx_brA_BFC383A4 = cpu->gpr[0]; uint32_t psx_brB_BFC383A4 = cpu->gpr[0]; @@ -147028,10 +178813,16 @@ label_BFC383A4: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1023)); if (psx_taken_BFC383A4) goto label_BFC383B0; label_BFC383AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC383AC: 240201FF addiu $v0, $zero, 511 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (511)); label_BFC383B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC383B0: 10000003 beq $zero, $zero, 0xBFC383C0 */ uint32_t psx_brA_BFC383B0 = cpu->gpr[0]; uint32_t psx_brB_BFC383B0 = cpu->gpr[0]; @@ -147040,16 +178831,25 @@ label_BFC383B0: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC383B0) goto label_BFC383C0; label_BFC383B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC383B8: 87A3001E lh $v1, 30($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (30)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC383B8u); return; } cpu->gpr[3] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } /* 0xBFC383BC: 00000000 nop */ /* nop */ label_BFC383C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC383C0: A7A3001E sh $v1, 30($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (30)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC383C0u); return; } g_debug_last_store_pc = 0xBFC383C0u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[3] & 0xFFFFu)); } label_BFC383C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC383C4: 87AC0018 lh $t4, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC383C4u); return; } cpu->gpr[12] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -147064,6 +178864,9 @@ label_BFC383C4: cpu->gpr[2] = 0x00FF0000u; if (psx_taken_BFC383D0) goto label_BFC383F0; label_BFC383D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC383D8: 87AE001C lh $t6, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC383D8u); return; } cpu->gpr[14] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -147078,10 +178881,16 @@ label_BFC383D8: cpu->gpr[11] = 0x04FF0000u; if (psx_taken_BFC383E4) goto label_BFC384C4; label_BFC383EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC383EC: 3C0200FF lui $v0, 0xFF */ cpu->gpr[2] = 0x00FF0000u; label_BFC383F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(35u); +#endif psx_check_interrupts(cpu); /* 0xBFC383F0: 3C18800E lui $t8, 0x800E */ cpu->gpr[24] = 0x800E0000u; @@ -147155,6 +178964,9 @@ label_BFC383F0: cpu->gpr[31] = 0x8005047Cu; psx_dispatch(cpu, 0x80050B80u); label_BFC3847C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3847C: 3C01E300 lui $at, 0xE300 */ cpu->gpr[1] = 0xE3000000u; @@ -147170,6 +178982,9 @@ label_BFC3847C: cpu->gpr[31] = 0x80050494u; psx_dispatch(cpu, 0x80050B80u); label_BFC38494: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC38494: 3C01E400 lui $at, 0xE400 */ cpu->gpr[1] = 0xE4000000u; @@ -147185,6 +179000,9 @@ label_BFC38494: cpu->gpr[31] = 0x800504ACu; psx_dispatch(cpu, 0x80050B80u); label_BFC384AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC384AC: 3C01E500 lui $at, 0xE500 */ cpu->gpr[1] = 0xE5000000u; @@ -147199,10 +179017,16 @@ label_BFC384AC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-5692)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC384BCu); return; } g_debug_last_store_pc = 0xBFC384BCu; cpu->write_word(psx_addr, cpu->gpr[10]); } if (psx_taken_BFC384B8) goto label_BFC38508; label_BFC384C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC384C0: 3C0B04FF lui $t3, 0x4FF */ cpu->gpr[11] = 0x04FF0000u; label_BFC384C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC384C4: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -147239,6 +179063,9 @@ label_BFC384C4: /* 0xBFC38504: AC38E9A8 sw $t8, -5720($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-5720)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38504u); return; } g_debug_last_store_pc = 0xBFC38504u; cpu->write_word(psx_addr, cpu->gpr[24]); } label_BFC38508: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC38508: 3C04800E lui $a0, 0x800E */ cpu->gpr[4] = 0x800E0000u; @@ -147248,6 +179075,9 @@ label_BFC38508: cpu->gpr[31] = 0x80050514u; psx_dispatch(cpu, 0x80050B28u); label_BFC38514: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC38514: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38514u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -147271,6 +179101,9 @@ void func_1FC38524(CPUState* cpu) { } } label_BFC38524: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC38524: 27BDFFC0 addiu $sp, $sp, -64 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-64)); @@ -147311,6 +179144,9 @@ label_BFC38524: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38568u); return; } cpu->gpr[9] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } if (psx_taken_BFC38564) goto label_BFC38578; label_BFC3856C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3856C: 1000000B beq $zero, $zero, 0xBFC3859C */ uint32_t psx_brA_BFC3856C = cpu->gpr[0]; uint32_t psx_brB_BFC3856C = cpu->gpr[0]; @@ -147319,10 +179155,16 @@ label_BFC3856C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38570u); return; } g_debug_last_store_pc = 0xBFC38570u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } if (psx_taken_BFC3856C) goto label_BFC3859C; label_BFC38574: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC38574: 87A9002C lh $t1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38574u); return; } cpu->gpr[9] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } label_BFC38578: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC38578: 00000000 nop */ /* nop */ @@ -147335,6 +179177,9 @@ label_BFC38578: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38584u); return; } cpu->gpr[3] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } if (psx_taken_BFC38580) goto label_BFC38594; label_BFC38588: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38588: 10000003 beq $zero, $zero, 0xBFC38598 */ uint32_t psx_brA_BFC38588 = cpu->gpr[0]; uint32_t psx_brB_BFC38588 = cpu->gpr[0]; @@ -147343,18 +179188,30 @@ label_BFC38588: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1023)); if (psx_taken_BFC38588) goto label_BFC38598; label_BFC38590: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC38590: 87A3002C lh $v1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38590u); return; } cpu->gpr[3] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } label_BFC38594: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC38594: 00000000 nop */ /* nop */ label_BFC38598: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC38598: A7A3002C sh $v1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38598u); return; } g_debug_last_store_pc = 0xBFC38598u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[3] & 0xFFFFu)); } label_BFC3859C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3859C: 87AA002E lh $t2, 46($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (46)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3859Cu); return; } cpu->gpr[10] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -147367,6 +179224,9 @@ label_BFC3859C: /* nop */ if (psx_taken_BFC385A4) goto label_BFC385B4; label_BFC385AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC385AC: 10000018 beq $zero, $zero, 0xBFC38610 */ uint32_t psx_brA_BFC385AC = cpu->gpr[0]; uint32_t psx_brB_BFC385AC = cpu->gpr[0]; @@ -147375,6 +179235,9 @@ label_BFC385AC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (46)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC385B0u); return; } g_debug_last_store_pc = 0xBFC385B0u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } if (psx_taken_BFC385AC) goto label_BFC38610; label_BFC385B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC385B4: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -147389,6 +179252,9 @@ label_BFC385B4: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (511)); if (psx_taken_BFC385C0) goto label_BFC385D4; label_BFC385C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC385C8: 10000002 beq $zero, $zero, 0xBFC385D4 */ uint32_t psx_brA_BFC385C8 = cpu->gpr[0]; uint32_t psx_brB_BFC385C8 = cpu->gpr[0]; @@ -147397,10 +179263,16 @@ label_BFC385C8: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1023)); if (psx_taken_BFC385C8) goto label_BFC385D4; label_BFC385D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC385D0: 240201FF addiu $v0, $zero, 511 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (511)); label_BFC385D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC385D4: 87AB002E lh $t3, 46($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (46)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC385D4u); return; } cpu->gpr[11] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -147415,6 +179287,9 @@ label_BFC385D4: /* nop */ if (psx_taken_BFC385E0) goto label_BFC38604; label_BFC385E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC385E8: 10600004 beq $v1, $zero, 0xBFC385FC */ uint32_t psx_brA_BFC385E8 = cpu->gpr[3]; uint32_t psx_brB_BFC385E8 = cpu->gpr[0]; @@ -147423,6 +179298,9 @@ label_BFC385E8: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (511)); if (psx_taken_BFC385E8) goto label_BFC385FC; label_BFC385F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC385F0: 10000002 beq $zero, $zero, 0xBFC385FC */ uint32_t psx_brA_BFC385F0 = cpu->gpr[0]; uint32_t psx_brB_BFC385F0 = cpu->gpr[0]; @@ -147431,10 +179309,16 @@ label_BFC385F0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1023)); if (psx_taken_BFC385F0) goto label_BFC385FC; label_BFC385F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC385F8: 240201FF addiu $v0, $zero, 511 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (511)); label_BFC385FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC385FC: 10000003 beq $zero, $zero, 0xBFC3860C */ uint32_t psx_brA_BFC385FC = cpu->gpr[0]; uint32_t psx_brB_BFC385FC = cpu->gpr[0]; @@ -147443,16 +179327,25 @@ label_BFC385FC: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC385FC) goto label_BFC3860C; label_BFC38604: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38604: 87A3002E lh $v1, 46($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (46)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38604u); return; } cpu->gpr[3] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } /* 0xBFC38608: 00000000 nop */ /* nop */ label_BFC3860C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3860C: A7A3002E sh $v1, 46($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (46)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3860Cu); return; } g_debug_last_store_pc = 0xBFC3860Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[3] & 0xFFFFu)); } label_BFC38610: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC38610: 87AC0028 lh $t4, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38610u); return; } cpu->gpr[12] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -147467,6 +179360,9 @@ label_BFC38610: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38620u); return; } cpu->gpr[15] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } if (psx_taken_BFC3861C) goto label_BFC38644; label_BFC38624: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC38624: 258DFC00 addiu $t5, $t4, -1024 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[12] + (-1024)); @@ -147477,10 +179373,16 @@ label_BFC38624: cpu->gpr[1] = cpu->gpr[13] + cpu->gpr[0]; if (psx_taken_BFC38628) goto label_BFC38634; label_BFC38630: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC38630: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC38634: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC38634: 00017043 sra $t6, $at, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -147491,6 +179393,9 @@ label_BFC38634: /* 0xBFC38640: 87AF002C lh $t7, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38640u); return; } cpu->gpr[15] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } label_BFC38644: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC38644: 87B8002E lh $t8, 46($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (46)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38644u); return; } cpu->gpr[24] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -147509,10 +179414,16 @@ label_BFC38644: cpu->gpr[1] = cpu->gpr[8] + cpu->gpr[0]; if (psx_taken_BFC38658) goto label_BFC38664; label_BFC38660: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC38660: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC38664: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC38664: 00014843 sra $t1, $at, 1 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -147522,6 +179433,9 @@ label_BFC38664: cpu->gpr[31] = 0x80050670u; psx_dispatch(cpu, 0x800512E8u); label_BFC38670: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC38670: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -147542,6 +179456,9 @@ label_BFC38670: /* nop */ if (psx_taken_BFC38688) goto label_BFC386C0; label_BFC38690: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38690: 0C0144C0 jal 0xB0051300 */ /* 0xBFC38694: 00000000 nop */ @@ -147549,6 +179466,9 @@ label_BFC38690: cpu->gpr[31] = 0x80050698u; psx_dispatch(cpu, 0x80051300u); label_BFC38698: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38698: 14400009 bne $v0, $zero, 0xBFC386C0 */ uint32_t psx_brA_BFC38698 = cpu->gpr[2]; uint32_t psx_brB_BFC38698 = cpu->gpr[0]; @@ -147557,6 +179477,9 @@ label_BFC38698: /* nop */ if (psx_taken_BFC38698) goto label_BFC386C0; label_BFC386A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC386A0: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -147577,6 +179500,9 @@ label_BFC386A0: /* nop */ if (psx_taken_BFC386B8) goto label_BFC38690; label_BFC386C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC386C0: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -147597,6 +179523,9 @@ label_BFC386C0: cpu->gpr[9] = 0xA0000000u; if (psx_taken_BFC386D8) goto label_BFC386F0; label_BFC386E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC386E0: 3C08B000 lui $t0, 0xB000 */ cpu->gpr[8] = 0xB0000000u; @@ -147607,14 +179536,23 @@ label_BFC386E0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC386E8u); return; } g_debug_last_store_pc = 0xBFC386E8u; cpu->write_word(psx_addr, cpu->gpr[8]); } if (psx_taken_BFC386E4) goto label_BFC386F4; label_BFC386EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC386EC: 3C09A000 lui $t1, 0xA000 */ cpu->gpr[9] = 0xA0000000u; label_BFC386F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC386F0: ACA90000 sw $t1, 0($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC386F0u); return; } g_debug_last_store_pc = 0xBFC386F0u; cpu->write_word(psx_addr, cpu->gpr[9]); } label_BFC386F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC386F4: 8FA6003C lw $a2, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC386F4u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -147637,6 +179575,9 @@ label_BFC386F4: cpu->gpr[4] = cpu->gpr[6] & 0xFu; if (psx_taken_BFC38710) goto label_BFC38724; label_BFC38718: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38718: 10800002 beq $a0, $zero, 0xBFC38724 */ uint32_t psx_brA_BFC38718 = cpu->gpr[4]; uint32_t psx_brB_BFC38718 = cpu->gpr[0]; @@ -147645,10 +179586,16 @@ label_BFC38718: /* nop */ if (psx_taken_BFC38718) goto label_BFC38724; label_BFC38720: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC38720: 2484FFF0 addiu $a0, $a0, -16 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (-16)); label_BFC38724: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC38724: 00801821 addu $v1, $a0, $zero */ cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[0]; @@ -147659,6 +179606,9 @@ label_BFC38724: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[4] + (-1)); if (psx_taken_BFC38728) goto label_BFC38748; label_BFC38730: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC38730: 8E2C0000 lw $t4, 0($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38730u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -147675,6 +179625,9 @@ label_BFC38730: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38744u); return; } g_debug_last_store_pc = 0xBFC38744u; cpu->write_word(psx_addr, cpu->gpr[12]); } if (psx_taken_BFC38740) goto label_BFC38730; label_BFC38748: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38748: 04C10002 bgez $a2, 0xBFC38754 */ uint32_t psx_brA_BFC38748 = cpu->gpr[6]; @@ -147683,10 +179636,16 @@ label_BFC38748: cpu->gpr[1] = cpu->gpr[6] + cpu->gpr[0]; if (psx_taken_BFC38748) goto label_BFC38754; label_BFC38750: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC38750: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC38754: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC38754: 00011103 sra $v0, $at, 4 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -147697,6 +179656,9 @@ label_BFC38754: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3875Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC38758) goto label_BFC387C0; label_BFC38760: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(24u); +#endif psx_check_interrupts(cpu); /* 0xBFC38760: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -147747,6 +179709,9 @@ label_BFC38760: /* 0xBFC387BC: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC387BCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC387C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC387C0: 8FB0001C lw $s0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC387C0u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -147771,6 +179736,9 @@ void func_1FC387D4(CPUState* cpu) { } } label_BFC387D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC387D4: 27BDFFB0 addiu $sp, $sp, -80 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-80)); @@ -147809,6 +179777,9 @@ label_BFC387D4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38814u); return; } cpu->gpr[9] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } if (psx_taken_BFC38810) goto label_BFC38824; label_BFC38818: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38818: 1000000B beq $zero, $zero, 0xBFC38848 */ uint32_t psx_brA_BFC38818 = cpu->gpr[0]; uint32_t psx_brB_BFC38818 = cpu->gpr[0]; @@ -147817,10 +179788,16 @@ label_BFC38818: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3881Cu); return; } g_debug_last_store_pc = 0xBFC3881Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } if (psx_taken_BFC38818) goto label_BFC38848; label_BFC38820: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC38820: 87A9004C lh $t1, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38820u); return; } cpu->gpr[9] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } label_BFC38824: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC38824: 00000000 nop */ /* nop */ @@ -147833,6 +179810,9 @@ label_BFC38824: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38830u); return; } cpu->gpr[3] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } if (psx_taken_BFC3882C) goto label_BFC38840; label_BFC38834: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38834: 10000003 beq $zero, $zero, 0xBFC38844 */ uint32_t psx_brA_BFC38834 = cpu->gpr[0]; uint32_t psx_brB_BFC38834 = cpu->gpr[0]; @@ -147841,18 +179821,30 @@ label_BFC38834: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1023)); if (psx_taken_BFC38834) goto label_BFC38844; label_BFC3883C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3883C: 87A3004C lh $v1, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3883Cu); return; } cpu->gpr[3] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } label_BFC38840: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC38840: 00000000 nop */ /* nop */ label_BFC38844: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC38844: A7A3004C sh $v1, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38844u); return; } g_debug_last_store_pc = 0xBFC38844u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[3] & 0xFFFFu)); } label_BFC38848: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC38848: 87AA004E lh $t2, 78($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (78)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38848u); return; } cpu->gpr[10] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -147865,6 +179857,9 @@ label_BFC38848: /* nop */ if (psx_taken_BFC38850) goto label_BFC38860; label_BFC38858: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38858: 10000018 beq $zero, $zero, 0xBFC388BC */ uint32_t psx_brA_BFC38858 = cpu->gpr[0]; uint32_t psx_brB_BFC38858 = cpu->gpr[0]; @@ -147873,6 +179868,9 @@ label_BFC38858: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (78)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3885Cu); return; } g_debug_last_store_pc = 0xBFC3885Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } if (psx_taken_BFC38858) goto label_BFC388BC; label_BFC38860: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC38860: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -147887,6 +179885,9 @@ label_BFC38860: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (511)); if (psx_taken_BFC3886C) goto label_BFC38880; label_BFC38874: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38874: 10000002 beq $zero, $zero, 0xBFC38880 */ uint32_t psx_brA_BFC38874 = cpu->gpr[0]; uint32_t psx_brB_BFC38874 = cpu->gpr[0]; @@ -147895,10 +179896,16 @@ label_BFC38874: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1023)); if (psx_taken_BFC38874) goto label_BFC38880; label_BFC3887C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3887C: 240201FF addiu $v0, $zero, 511 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (511)); label_BFC38880: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC38880: 87AB004E lh $t3, 78($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (78)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38880u); return; } cpu->gpr[11] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -147913,6 +179920,9 @@ label_BFC38880: /* nop */ if (psx_taken_BFC3888C) goto label_BFC388B0; label_BFC38894: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38894: 10600004 beq $v1, $zero, 0xBFC388A8 */ uint32_t psx_brA_BFC38894 = cpu->gpr[3]; uint32_t psx_brB_BFC38894 = cpu->gpr[0]; @@ -147921,6 +179931,9 @@ label_BFC38894: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (511)); if (psx_taken_BFC38894) goto label_BFC388A8; label_BFC3889C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3889C: 10000002 beq $zero, $zero, 0xBFC388A8 */ uint32_t psx_brA_BFC3889C = cpu->gpr[0]; uint32_t psx_brB_BFC3889C = cpu->gpr[0]; @@ -147929,10 +179942,16 @@ label_BFC3889C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1023)); if (psx_taken_BFC3889C) goto label_BFC388A8; label_BFC388A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC388A4: 240201FF addiu $v0, $zero, 511 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (511)); label_BFC388A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC388A8: 10000003 beq $zero, $zero, 0xBFC388B8 */ uint32_t psx_brA_BFC388A8 = cpu->gpr[0]; uint32_t psx_brB_BFC388A8 = cpu->gpr[0]; @@ -147941,16 +179960,25 @@ label_BFC388A8: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC388A8) goto label_BFC388B8; label_BFC388B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC388B0: 87A3004E lh $v1, 78($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (78)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC388B0u); return; } cpu->gpr[3] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } /* 0xBFC388B4: 00000000 nop */ /* nop */ label_BFC388B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC388B8: A7A3004E sh $v1, 78($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (78)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC388B8u); return; } g_debug_last_store_pc = 0xBFC388B8u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[3] & 0xFFFFu)); } label_BFC388BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC388BC: 87AC004C lh $t4, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC388BCu); return; } cpu->gpr[12] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -147971,10 +179999,16 @@ label_BFC388BC: cpu->gpr[1] = cpu->gpr[7] + cpu->gpr[0]; if (psx_taken_BFC388D4) goto label_BFC388E0; label_BFC388DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC388DC: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC388E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC388E0: 00013843 sra $a3, $at, 1 */ cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -147985,6 +180019,9 @@ label_BFC388E0: /* nop */ if (psx_taken_BFC388E4) goto label_BFC388F4; label_BFC388EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC388EC: 1000005F beq $zero, $zero, 0xBFC38A6C */ uint32_t psx_brA_BFC388EC = cpu->gpr[0]; uint32_t psx_brB_BFC388EC = cpu->gpr[0]; @@ -147993,6 +180030,9 @@ label_BFC388EC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC388EC) goto label_BFC38A6C; label_BFC388F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC388F4: 3C068008 lui $a2, 0x8008 */ cpu->gpr[6] = 0x80080000u; @@ -148013,12 +180053,18 @@ label_BFC388F4: /* nop */ if (psx_taken_BFC3890C) goto label_BFC38968; label_BFC38914: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38914: AFA70044 sw $a3, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38914u); return; } g_debug_last_store_pc = 0xBFC38914u; cpu->write_word(psx_addr, cpu->gpr[7]); } /* 0xBFC38918: 8FA70044 lw $a3, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38918u); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } label_BFC3891C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3891C: 0C0144C0 jal 0xB0051300 */ /* 0xBFC38920: 00000000 nop */ @@ -148026,6 +180072,9 @@ label_BFC3891C: cpu->gpr[31] = 0x80050924u; psx_dispatch(cpu, 0x80051300u); label_BFC38924: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38924: 10400006 beq $v0, $zero, 0xBFC38940 */ uint32_t psx_brA_BFC38924 = cpu->gpr[2]; uint32_t psx_brB_BFC38924 = cpu->gpr[0]; @@ -148034,6 +180083,9 @@ label_BFC38924: /* nop */ if (psx_taken_BFC38924) goto label_BFC38940; label_BFC3892C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3892C: 3C068008 lui $a2, 0x8008 */ cpu->gpr[6] = 0x80080000u; @@ -148048,6 +180100,9 @@ label_BFC3892C: /* nop */ if (psx_taken_BFC38938) goto label_BFC38968; label_BFC38940: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC38940: 3C068008 lui $a2, 0x8008 */ cpu->gpr[6] = 0x80080000u; @@ -148068,12 +180123,18 @@ label_BFC38940: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3895Cu); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } if (psx_taken_BFC38958) goto label_BFC3891C; label_BFC38960: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38960: 8FA70044 lw $a3, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38960u); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } /* 0xBFC38964: 00000000 nop */ /* nop */ label_BFC38968: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC38968: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -148112,6 +180173,9 @@ label_BFC38968: /* nop */ if (psx_taken_BFC389A4) goto label_BFC389C0; label_BFC389AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC389AC: 8CCE0000 lw $t6, 0($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC389ACu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -148126,6 +180190,9 @@ label_BFC389AC: /* nop */ if (psx_taken_BFC389B8) goto label_BFC389AC; label_BFC389C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC389C0: 04E10004 bgez $a3, 0xBFC389D4 */ uint32_t psx_brA_BFC389C0 = cpu->gpr[7]; @@ -148134,6 +180201,9 @@ label_BFC389C0: cpu->gpr[4] = cpu->gpr[7] & 0xFu; if (psx_taken_BFC389C0) goto label_BFC389D4; label_BFC389C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC389C8: 10800002 beq $a0, $zero, 0xBFC389D4 */ uint32_t psx_brA_BFC389C8 = cpu->gpr[4]; uint32_t psx_brB_BFC389C8 = cpu->gpr[0]; @@ -148142,10 +180212,16 @@ label_BFC389C8: /* nop */ if (psx_taken_BFC389C8) goto label_BFC389D4; label_BFC389D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC389D0: 2484FFF0 addiu $a0, $a0, -16 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (-16)); label_BFC389D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC389D4: 00801821 addu $v1, $a0, $zero */ cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[0]; @@ -148156,6 +180232,9 @@ label_BFC389D4: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[4] + (-1)); if (psx_taken_BFC389D8) goto label_BFC389F8; label_BFC389E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC389E0: 8CB80000 lw $t8, 0($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC389E0u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -148172,6 +180251,9 @@ label_BFC389E0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC389F4u); return; } g_debug_last_store_pc = 0xBFC389F4u; cpu->write_word(psx_addr, cpu->gpr[24]); } if (psx_taken_BFC389F0) goto label_BFC389E0; label_BFC389F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC389F8: 04E10002 bgez $a3, 0xBFC38A04 */ uint32_t psx_brA_BFC389F8 = cpu->gpr[7]; @@ -148180,10 +180262,16 @@ label_BFC389F8: cpu->gpr[1] = cpu->gpr[7] + cpu->gpr[0]; if (psx_taken_BFC389F8) goto label_BFC38A04; label_BFC38A00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC38A00: 2421000F addiu $at, $at, 15 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (15)); label_BFC38A04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC38A04: 00011103 sra $v0, $at, 4 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[1] >> 4u); @@ -148194,6 +180282,9 @@ label_BFC38A04: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38A0Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } if (psx_taken_BFC38A08) goto label_BFC38A68; label_BFC38A10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC38A10: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -148240,10 +180331,16 @@ label_BFC38A10: /* 0xBFC38A64: 8FB00024 lw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38A64u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } label_BFC38A68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC38A68: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC38A6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC38A6C: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38A6Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -148266,6 +180363,9 @@ void func_1FC38A7C(CPUState* cpu) { } } label_BFC38A7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC38A7C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -148281,6 +180381,9 @@ label_BFC38A7C: cpu->gpr[31] = 0x80050A94u; psx_dispatch(cpu, 0x8005AB80u); label_BFC38A94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC38A94: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38A94u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -148295,6 +180398,9 @@ label_BFC38A94: void func_1FC38AA4(CPUState* cpu) { debug_server_log_call_entry(0x1FC38AA4u); label_BFC38AA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC38AA4: 3C0100FF lui $at, 0xFF */ cpu->gpr[1] = 0x00FF0000u; @@ -148325,6 +180431,9 @@ label_BFC38AA4: void func_1FC38AD4(CPUState* cpu) { debug_server_log_call_entry(0x1FC38AD4u); label_BFC38AD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC38AD4: 00047080 sll $t6, $a0, 2 */ cpu->gpr[14] = cpu->gpr[4] << 2u; @@ -148345,6 +180454,9 @@ label_BFC38AD4: void func_1FC38AF0(CPUState* cpu) { debug_server_log_call_entry(0x1FC38AF0u); label_BFC38AF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC38AF0: 00A01021 addu $v0, $a1, $zero */ cpu->gpr[2] = cpu->gpr[5] + cpu->gpr[0]; @@ -148355,6 +180467,9 @@ label_BFC38AF0: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (-1)); if (psx_taken_BFC38AF4) goto label_BFC38B20; label_BFC38AFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC38AFC: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -148363,6 +180478,9 @@ label_BFC38AFC: /* 0xBFC38B04: 00000000 nop */ /* nop */ label_BFC38B08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC38B08: 8C8E0000 lw $t6, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38B08u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -148379,6 +180497,9 @@ label_BFC38B08: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38B1Cu); return; } g_debug_last_store_pc = 0xBFC38B1Cu; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC38B18) goto label_BFC38B08; label_BFC38B20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38B20: 03E00008 jr $ra */ /* 0xBFC38B24: 00001021 addu $v0, $zero, $zero */ @@ -148389,6 +180510,9 @@ label_BFC38B20: void func_1FC38B28(CPUState* cpu) { debug_server_log_call_entry(0x1FC38B28u); label_BFC38B28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC38B28: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -148439,6 +180563,9 @@ label_BFC38B28: void func_1FC38B80(CPUState* cpu) { debug_server_log_call_entry(0x1FC38B80u); label_BFC38B80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC38B80: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -148478,6 +180605,9 @@ void func_1FC38BE8(CPUState* cpu) { } } label_BFC38BE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC38BE8: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -148511,6 +180641,9 @@ label_BFC38BE8: cpu->gpr[31] = 0x80050C24u; psx_dispatch(cpu, 0x800513CCu); label_BFC38C24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC38C24: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -148540,6 +180673,9 @@ label_BFC38C24: cpu->gpr[31] = 0x80050C58u; psx_dispatch(cpu, 0x80050C68u); label_BFC38C58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC38C58: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38C58u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -148564,6 +180700,9 @@ void func_1FC38C68(CPUState* cpu) { } } label_BFC38C68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC38C68: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -148589,6 +180728,9 @@ label_BFC38C68: cpu->gpr[31] = 0x80050C94u; psx_dispatch(cpu, 0x800512E8u); label_BFC38C94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC38C94: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -148603,6 +180745,9 @@ label_BFC38C94: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38CA4u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } if (psx_taken_BFC38CA0) goto label_BFC38CD8; label_BFC38CA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38CA8: 0C0144C0 jal 0xB0051300 */ /* 0xBFC38CAC: 00000000 nop */ @@ -148610,6 +180755,9 @@ label_BFC38CA8: cpu->gpr[31] = 0x80050CB0u; psx_dispatch(cpu, 0x80051300u); label_BFC38CB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38CB0: 10400003 beq $v0, $zero, 0xBFC38CC0 */ uint32_t psx_brA_BFC38CB0 = cpu->gpr[2]; uint32_t psx_brB_BFC38CB0 = cpu->gpr[0]; @@ -148618,6 +180766,9 @@ label_BFC38CB0: /* nop */ if (psx_taken_BFC38CB0) goto label_BFC38CC0; label_BFC38CB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38CB8: 10000038 beq $zero, $zero, 0xBFC38D9C */ uint32_t psx_brA_BFC38CB8 = cpu->gpr[0]; uint32_t psx_brB_BFC38CB8 = cpu->gpr[0]; @@ -148626,6 +180777,9 @@ label_BFC38CB8: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC38CB8) goto label_BFC38D9C; label_BFC38CC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC38CC0: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -148640,10 +180794,16 @@ label_BFC38CC0: /* nop */ if (psx_taken_BFC38CCC) goto label_BFC38CA8; label_BFC38CD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC38CD4: 8FB80020 lw $t8, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38CD4u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } label_BFC38CD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(40u); +#endif psx_check_interrupts(cpu); /* 0xBFC38CD8: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -148728,6 +180888,9 @@ label_BFC38CD8: /* nop */ if (psx_taken_BFC38D70) goto label_BFC38D80; label_BFC38D78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38D78: 0C01436B jal 0xB0050DAC */ /* 0xBFC38D7C: 00000000 nop */ @@ -148735,6 +180898,9 @@ label_BFC38D78: cpu->gpr[31] = 0x80050D80u; psx_dispatch(cpu, 0x80050DACu); label_BFC38D80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC38D80: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -148751,6 +180917,9 @@ label_BFC38D80: /* 0xBFC38D98: 3042003F andi $v0, $v0, 0x3F */ cpu->gpr[2] = cpu->gpr[2] & 0x3Fu; label_BFC38D9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC38D9C: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38D9Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -148776,6 +180945,9 @@ void func_1FC38DAC(CPUState* cpu) { } } label_BFC38DAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC38DAC: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -148790,6 +180962,9 @@ label_BFC38DAC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38DBCu); return; } g_debug_last_store_pc = 0xBFC38DBCu; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC38DB8) goto label_BFC38DC8; label_BFC38DC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38DC0: 1000006E beq $zero, $zero, 0xBFC38F7C */ uint32_t psx_brA_BFC38DC0 = cpu->gpr[0]; uint32_t psx_brB_BFC38DC0 = cpu->gpr[0]; @@ -148798,6 +180973,9 @@ label_BFC38DC0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC38DC0) goto label_BFC38F7C; label_BFC38DC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC38DC8: AFB00028 sw $s0, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38DC8u); return; } g_debug_last_store_pc = 0xBFC38DC8u; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -148817,6 +180995,9 @@ label_BFC38DC8: cpu->gpr[31] = 0x80050DE8u; psx_dispatch(cpu, 0x800512E8u); label_BFC38DE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC38DE8: 3C11800E lui $s1, 0x800E */ cpu->gpr[17] = 0x800E0000u; @@ -148829,6 +181010,9 @@ label_BFC38DE8: /* 0xBFC38DF8: 3C130400 lui $s3, 0x400 */ cpu->gpr[19] = 0x04000000u; label_BFC38DFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC38DFC: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -148849,6 +181033,9 @@ label_BFC38DFC: /* nop */ if (psx_taken_BFC38E14) goto label_BFC38E24; label_BFC38E1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38E1C: 10000047 beq $zero, $zero, 0xBFC38F3C */ uint32_t psx_brA_BFC38E1C = cpu->gpr[0]; uint32_t psx_brB_BFC38E1C = cpu->gpr[0]; @@ -148857,6 +181044,9 @@ label_BFC38E1C: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC38E1C) goto label_BFC38F3C; label_BFC38E24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC38E24: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -148875,6 +181065,9 @@ label_BFC38E24: /* nop */ if (psx_taken_BFC38E38) goto label_BFC38E48; label_BFC38E40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38E40: 1000003E beq $zero, $zero, 0xBFC38F3C */ uint32_t psx_brA_BFC38E40 = cpu->gpr[0]; uint32_t psx_brB_BFC38E40 = cpu->gpr[0]; @@ -148883,6 +181076,9 @@ label_BFC38E40: cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC38E40) goto label_BFC38F3C; label_BFC38E48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC38E48: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -148903,6 +181099,9 @@ label_BFC38E48: /* nop */ if (psx_taken_BFC38E60) goto label_BFC38E98; label_BFC38E68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38E68: 0C0144C0 jal 0xB0051300 */ /* 0xBFC38E6C: 00000000 nop */ @@ -148910,6 +181109,9 @@ label_BFC38E68: cpu->gpr[31] = 0x80050E70u; psx_dispatch(cpu, 0x80051300u); label_BFC38E70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38E70: 14400009 bne $v0, $zero, 0xBFC38E98 */ uint32_t psx_brA_BFC38E70 = cpu->gpr[2]; uint32_t psx_brB_BFC38E70 = cpu->gpr[0]; @@ -148918,6 +181120,9 @@ label_BFC38E70: /* nop */ if (psx_taken_BFC38E70) goto label_BFC38E98; label_BFC38E78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC38E78: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -148938,6 +181143,9 @@ label_BFC38E78: /* nop */ if (psx_taken_BFC38E90) goto label_BFC38E68; label_BFC38E98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(34u); +#endif psx_check_interrupts(cpu); /* 0xBFC38E98: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -149009,6 +181217,9 @@ label_BFC38E98: cpu->gpr[31] = 0x80050F20u; psx_dispatch(cpu, cpu->gpr[25]); label_BFC38F20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC38F20: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -149027,6 +181238,9 @@ label_BFC38F20: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28004)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38F38u); return; } g_debug_last_store_pc = 0xBFC38F38u; cpu->write_word(psx_addr, cpu->gpr[10]); } if (psx_taken_BFC38F34) goto label_BFC38DFC; label_BFC38F3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC38F3C: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -149037,6 +181251,9 @@ label_BFC38F3C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-27964)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38F44u); return; } g_debug_last_store_pc = 0xBFC38F44u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC38F40) goto label_BFC38F64; label_BFC38F48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC38F48: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -149051,6 +181268,9 @@ label_BFC38F48: /* nop */ if (psx_taken_BFC38F54) goto label_BFC38F64; label_BFC38F5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38F5C: 0040F809 jalr $ra, $v0 */ /* 0xBFC38F60: 00000000 nop */ @@ -149058,6 +181278,9 @@ label_BFC38F5C: cpu->gpr[31] = 0x80050F64u; psx_dispatch(cpu, cpu->gpr[2]); label_BFC38F64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC38F64: 02001021 addu $v0, $s0, $zero */ cpu->gpr[2] = cpu->gpr[16] + cpu->gpr[0]; @@ -149072,6 +181295,9 @@ label_BFC38F64: /* 0xBFC38F78: 00000000 nop */ /* nop */ label_BFC38F7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC38F7C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38F7Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -149086,6 +181312,9 @@ label_BFC38F7C: void func_1FC38F8C(CPUState* cpu) { debug_server_log_call_entry(0x1FC38F8Cu); label_BFC38F8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC38F8C: 10000022 beq $zero, $zero, 0xBFC39018 */ uint32_t psx_brA_BFC38F8C = cpu->gpr[0]; uint32_t psx_brB_BFC38F8C = cpu->gpr[0]; @@ -149094,6 +181323,9 @@ label_BFC38F8C: /* nop */ if (psx_taken_BFC38F8C) goto label_BFC39018; label_BFC38F94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC38F94: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -149126,6 +181358,9 @@ label_BFC38F94: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28008)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC38FC8u); return; } g_debug_last_store_pc = 0xBFC38FC8u; cpu->write_word(psx_addr, cpu->gpr[24]); } if (psx_taken_BFC38FC4) goto label_BFC39034; label_BFC38FCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC38FCC: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -149168,6 +181403,9 @@ label_BFC38FCC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-28008)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39014u); return; } g_debug_last_store_pc = 0xBFC39014u; cpu->write_word(psx_addr, cpu->gpr[12]); } if (psx_taken_BFC39010) goto label_BFC39034; label_BFC39018: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC39018: 1080FFDE beq $a0, $zero, 0xBFC38F94 */ uint32_t psx_brA_BFC39018 = cpu->gpr[4]; uint32_t psx_brB_BFC39018 = cpu->gpr[0]; @@ -149176,6 +181414,9 @@ label_BFC39018: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC39018) goto label_BFC38F94; label_BFC39020: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC39020: 1081FFEA beq $a0, $at, 0xBFC38FCC */ uint32_t psx_brA_BFC39020 = cpu->gpr[4]; uint32_t psx_brB_BFC39020 = cpu->gpr[1]; @@ -149184,6 +181425,9 @@ label_BFC39020: /* nop */ if (psx_taken_BFC39020) goto label_BFC38FCC; label_BFC39028: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC39028: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -149192,6 +181436,9 @@ label_BFC39028: /* 0xBFC39030: 00000000 nop */ /* nop */ label_BFC39034: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC39034: 8C4D0000 lw $t5, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39034u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -149224,6 +181471,9 @@ label_BFC39034: cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC39064) goto label_BFC39078; label_BFC3906C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3906C: 10000002 beq $zero, $zero, 0xBFC39078 */ uint32_t psx_brA_BFC3906C = cpu->gpr[0]; uint32_t psx_brB_BFC3906C = cpu->gpr[0]; @@ -149232,10 +181482,16 @@ label_BFC3906C: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC3906C) goto label_BFC39078; label_BFC39074: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC39074: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; label_BFC39078: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC39078: 03E00008 jr $ra */ /* 0xBFC3907C: 00601021 addu $v0, $v1, $zero */ @@ -149258,6 +181514,9 @@ void func_1FC39080(CPUState* cpu) { } } label_BFC39080: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC39080: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -149268,6 +181527,9 @@ label_BFC39080: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39088u); return; } g_debug_last_store_pc = 0xBFC39088u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC39084) goto label_BFC39228; label_BFC3908C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3908C: AFB00024 sw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3908Cu); return; } g_debug_last_store_pc = 0xBFC3908Cu; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -149279,6 +181541,9 @@ label_BFC3908C: cpu->gpr[31] = 0x8005109Cu; psx_dispatch(cpu, 0x800512E8u); label_BFC3909C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3909C: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -149297,6 +181562,9 @@ label_BFC3909C: cpu->gpr[16] = 0x01000000u; if (psx_taken_BFC390B0) goto label_BFC390CC; label_BFC390B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC390B8: 3C121000 lui $s2, 0x1000 */ cpu->gpr[18] = 0x10000000u; @@ -149309,10 +181577,16 @@ label_BFC390B8: cpu->gpr[16] = 0x01000000u; if (psx_taken_BFC390C0) goto label_BFC3913C; label_BFC390C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC390C8: 3C100100 lui $s0, 0x100 */ cpu->gpr[16] = 0x01000000u; label_BFC390CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC390CC: 0C0144C0 jal 0xB0051300 */ /* 0xBFC390D0: 00000000 nop */ @@ -149320,6 +181594,9 @@ label_BFC390CC: cpu->gpr[31] = 0x800510D4u; psx_dispatch(cpu, 0x80051300u); label_BFC390D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC390D4: 10400006 beq $v0, $zero, 0xBFC390F0 */ uint32_t psx_brA_BFC390D4 = cpu->gpr[2]; uint32_t psx_brB_BFC390D4 = cpu->gpr[0]; @@ -149328,6 +181605,9 @@ label_BFC390D4: /* nop */ if (psx_taken_BFC390D4) goto label_BFC390F0; label_BFC390DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC390DC: 8FB00024 lw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC390DCu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -149342,6 +181622,9 @@ label_BFC390DC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC390E8) goto label_BFC392D8; label_BFC390F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC390F0: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -149362,6 +181645,9 @@ label_BFC390F0: /* nop */ if (psx_taken_BFC39108) goto label_BFC39118; label_BFC39110: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC39110: 0C01436B jal 0xB0050DAC */ /* 0xBFC39114: 00000000 nop */ @@ -149369,6 +181655,9 @@ label_BFC39110: cpu->gpr[31] = 0x80051118u; psx_dispatch(cpu, 0x80050DACu); label_BFC39118: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC39118: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -149387,12 +181676,18 @@ label_BFC39118: /* nop */ if (psx_taken_BFC3912C) goto label_BFC390CC; label_BFC39134: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC39134: 3C116000 lui $s1, 0x6000 */ cpu->gpr[17] = 0x60000000u; /* 0xBFC39138: 3C121000 lui $s2, 0x1000 */ cpu->gpr[18] = 0x10000000u; label_BFC3913C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3913C: 0C0144C0 jal 0xB0051300 */ /* 0xBFC39140: 00000000 nop */ @@ -149400,6 +181695,9 @@ label_BFC3913C: cpu->gpr[31] = 0x80051144u; psx_dispatch(cpu, 0x80051300u); label_BFC39144: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC39144: 10400006 beq $v0, $zero, 0xBFC39160 */ uint32_t psx_brA_BFC39144 = cpu->gpr[2]; uint32_t psx_brB_BFC39144 = cpu->gpr[0]; @@ -149408,6 +181706,9 @@ label_BFC39144: /* nop */ if (psx_taken_BFC39144) goto label_BFC39160; label_BFC3914C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3914C: 8FB00024 lw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3914Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -149422,6 +181723,9 @@ label_BFC3914C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC39158) goto label_BFC392D8; label_BFC39160: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC39160: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -149442,6 +181746,9 @@ label_BFC39160: /* nop */ if (psx_taken_BFC39178) goto label_BFC3919C; label_BFC39180: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC39180: 8C4D0000 lw $t5, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39180u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -149456,6 +181763,9 @@ label_BFC39180: /* nop */ if (psx_taken_BFC3918C) goto label_BFC3913C; label_BFC39194: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC39194: 1000000C beq $zero, $zero, 0xBFC391C8 */ uint32_t psx_brA_BFC39194 = cpu->gpr[0]; uint32_t psx_brB_BFC39194 = cpu->gpr[0]; @@ -149464,6 +181774,9 @@ label_BFC39194: cpu->gpr[16] = 0x04000000u; if (psx_taken_BFC39194) goto label_BFC391C8; label_BFC3919C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3919C: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -149484,6 +181797,9 @@ label_BFC3919C: /* nop */ if (psx_taken_BFC391B4) goto label_BFC3913C; label_BFC391BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC391BC: 3C100400 lui $s0, 0x400 */ cpu->gpr[16] = 0x04000000u; @@ -149494,6 +181810,9 @@ label_BFC391BC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC391C4u); return; } g_debug_last_store_pc = 0xBFC391C4u; cpu->write_word(psx_addr, cpu->gpr[16]); } if (psx_taken_BFC391C0) goto label_BFC391C8; label_BFC391C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC391C8: 8C480000 lw $t0, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC391C8u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -149508,6 +181827,9 @@ label_BFC391C8: /* nop */ if (psx_taken_BFC391D4) goto label_BFC392C8; label_BFC391DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC391DC: 0C0144C0 jal 0xB0051300 */ /* 0xBFC391E0: 00000000 nop */ @@ -149515,6 +181837,9 @@ label_BFC391DC: cpu->gpr[31] = 0x800511E4u; psx_dispatch(cpu, 0x80051300u); label_BFC391E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC391E4: 10400006 beq $v0, $zero, 0xBFC39200 */ uint32_t psx_brA_BFC391E4 = cpu->gpr[2]; uint32_t psx_brB_BFC391E4 = cpu->gpr[0]; @@ -149523,6 +181848,9 @@ label_BFC391E4: /* nop */ if (psx_taken_BFC391E4) goto label_BFC39200; label_BFC391EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC391EC: 8FB00024 lw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC391ECu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -149537,6 +181865,9 @@ label_BFC391EC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC391F8) goto label_BFC392D8; label_BFC39200: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC39200: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -149557,6 +181888,9 @@ label_BFC39200: /* nop */ if (psx_taken_BFC39218) goto label_BFC391DC; label_BFC39220: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC39220: 1000002A beq $zero, $zero, 0xBFC392CC */ uint32_t psx_brA_BFC39220 = cpu->gpr[0]; uint32_t psx_brB_BFC39220 = cpu->gpr[0]; @@ -149565,6 +181899,9 @@ label_BFC39220: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39224u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } if (psx_taken_BFC39220) goto label_BFC392CC; label_BFC39228: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC39228: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -149583,6 +181920,9 @@ label_BFC39228: /* nop */ if (psx_taken_BFC3923C) goto label_BFC39264; label_BFC39244: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC39244: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -149603,6 +181943,9 @@ label_BFC39244: cpu->gpr[2] = cpu->gpr[2] & 0x3Fu; if (psx_taken_BFC3925C) goto label_BFC392D8; label_BFC39264: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC39264: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -149623,6 +181966,9 @@ label_BFC39264: /* nop */ if (psx_taken_BFC3927C) goto label_BFC39290; label_BFC39284: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC39284: 8FB2001C lw $s2, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39284u); return; } cpu->gpr[18] = cpu->read_word(psx_addr); } @@ -149633,6 +181979,9 @@ label_BFC39284: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC39288) goto label_BFC392D8; label_BFC39290: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC39290: AFB00024 sw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39290u); return; } g_debug_last_store_pc = 0xBFC39290u; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -149649,6 +181998,9 @@ label_BFC39290: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC392A4u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } if (psx_taken_BFC392A0) goto label_BFC392BC; label_BFC392A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC392A8: 8FB00024 lw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC392A8u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -149661,10 +182013,16 @@ label_BFC392A8: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC392B0) goto label_BFC392D8; label_BFC392B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC392B8: 8FB00024 lw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC392B8u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } label_BFC392BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC392BC: 8FB2001C lw $s2, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC392BCu); return; } cpu->gpr[18] = cpu->read_word(psx_addr); } @@ -149675,10 +182033,16 @@ label_BFC392BC: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC392C0) goto label_BFC392D8; label_BFC392C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC392C8: 8FB00024 lw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC392C8u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } label_BFC392CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC392CC: 8FB10020 lw $s1, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC392CCu); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -149687,6 +182051,9 @@ label_BFC392CC: /* 0xBFC392D4: 00000000 nop */ /* nop */ label_BFC392D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC392D8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC392D8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -149701,6 +182068,9 @@ label_BFC392D8: void func_1FC392E8(CPUState* cpu) { debug_server_log_call_entry(0x1FC392E8u); label_BFC392E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC392E8: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -149728,6 +182098,9 @@ void func_1FC39300(CPUState* cpu) { } } label_BFC39300: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC39300: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -149748,6 +182121,9 @@ label_BFC39300: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3931Cu); return; } g_debug_last_store_pc = 0xBFC3931Cu; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC39318) goto label_BFC393B8; label_BFC39320: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC39320: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -149768,6 +182144,9 @@ label_BFC39320: cpu->gpr[7] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC39338) goto label_BFC3934C; label_BFC39340: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC39340: 10000002 beq $zero, $zero, 0xBFC3934C */ uint32_t psx_brA_BFC39340 = cpu->gpr[0]; uint32_t psx_brB_BFC39340 = cpu->gpr[0]; @@ -149776,10 +182155,16 @@ label_BFC39340: cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC39340) goto label_BFC3934C; label_BFC39348: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC39348: 00003821 addu $a3, $zero, $zero */ cpu->gpr[7] = cpu->gpr[0] + cpu->gpr[0]; label_BFC3934C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3934C: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -149800,6 +182185,9 @@ label_BFC3934C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC39364) goto label_BFC39378; label_BFC3936C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3936C: 10000002 beq $zero, $zero, 0xBFC39378 */ uint32_t psx_brA_BFC3936C = cpu->gpr[0]; uint32_t psx_brB_BFC3936C = cpu->gpr[0]; @@ -149808,10 +182196,16 @@ label_BFC3936C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC3936C) goto label_BFC39378; label_BFC39374: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC39374: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC39378: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC39378: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -149839,6 +182233,9 @@ label_BFC39378: cpu->gpr[31] = 0x800513A8u; psx_dispatch(cpu, 0x8005A910u); label_BFC393A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC393A8: 0C0143E3 jal 0xB0050F8C */ /* 0xBFC393AC: 24040001 addiu $a0, $zero, 1 */ @@ -149846,6 +182243,9 @@ label_BFC393A8: cpu->gpr[31] = 0x800513B0u; psx_dispatch(cpu, 0x80050F8Cu); label_BFC393B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC393B0: 10000002 beq $zero, $zero, 0xBFC393BC */ uint32_t psx_brA_BFC393B0 = cpu->gpr[0]; uint32_t psx_brB_BFC393B0 = cpu->gpr[0]; @@ -149854,10 +182254,16 @@ label_BFC393B0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC393B0) goto label_BFC393BC; label_BFC393B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC393B8: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC393BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC393BC: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC393BCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -149872,6 +182278,9 @@ label_BFC393BC: void func_1FC393CC(CPUState* cpu) { debug_server_log_call_entry(0x1FC393CCu); label_BFC393CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC393CC: 00C01021 addu $v0, $a2, $zero */ cpu->gpr[2] = cpu->gpr[6] + cpu->gpr[0]; @@ -149882,6 +182291,9 @@ label_BFC393CC: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (-1)); if (psx_taken_BFC393D0) goto label_BFC393F4; label_BFC393D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC393D8: 90AE0000 lbu $t6, 0($a1) */ cpu->gpr[14] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (0))); @@ -149900,6 +182312,9 @@ label_BFC393D8: g_debug_last_store_pc = 0xBFC393F0u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (-1)), (uint8_t)(cpu->gpr[14] & 0xFFu)); if (psx_taken_BFC393EC) goto label_BFC393D8; label_BFC393F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC393F4: 03E00008 jr $ra */ /* 0xBFC393F8: 00000000 nop */ @@ -149919,6 +182334,9 @@ void func_1FC39410(CPUState* cpu) { } } label_BFC39410: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC39410: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -149947,6 +182365,9 @@ label_BFC39410: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (54)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3943Cu); return; } g_debug_last_store_pc = 0xBFC3943Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[15] & 0xFFFFu)); } if (psx_taken_BFC39438) goto label_BFC39494; label_BFC39440: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC39440: 8FB8004C lw $t8, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39440u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -149961,10 +182382,16 @@ label_BFC39440: cpu->gpr[1] = cpu->gpr[24] + cpu->gpr[0]; if (psx_taken_BFC3944C) goto label_BFC39458; label_BFC39454: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC39454: 24210003 addiu $at, $at, 3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (3)); label_BFC39458: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC39458: 0001C883 sra $t9, $at, 2 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[1] >> 2u); @@ -149975,6 +182402,9 @@ label_BFC39458: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39460u); return; } g_debug_last_store_pc = 0xBFC39460u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[25] & 0xFFFFu)); } if (psx_taken_BFC3945C) goto label_BFC394AC; label_BFC39464: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC39464: 8FAA004C lw $t2, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39464u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -149989,10 +182419,16 @@ label_BFC39464: cpu->gpr[1] = cpu->gpr[10] + cpu->gpr[0]; if (psx_taken_BFC39470) goto label_BFC3947C; label_BFC39478: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC39478: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC3947C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3947C: 00015843 sra $t3, $at, 1 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -150003,10 +182439,16 @@ label_BFC3947C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39484u); return; } g_debug_last_store_pc = 0xBFC39484u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[11] & 0xFFFFu)); } if (psx_taken_BFC39480) goto label_BFC394AC; label_BFC39488: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC39488: 8FAC004C lw $t4, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39488u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } label_BFC3948C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3948C: 10000007 beq $zero, $zero, 0xBFC394AC */ uint32_t psx_brA_BFC3948C = cpu->gpr[0]; uint32_t psx_brB_BFC3948C = cpu->gpr[0]; @@ -150015,6 +182457,9 @@ label_BFC3948C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39490u); return; } g_debug_last_store_pc = 0xBFC39490u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[12] & 0xFFFFu)); } if (psx_taken_BFC3948C) goto label_BFC394AC; label_BFC39494: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC39494: 1060FFEA beq $v1, $zero, 0xBFC39440 */ uint32_t psx_brA_BFC39494 = cpu->gpr[3]; uint32_t psx_brB_BFC39494 = cpu->gpr[0]; @@ -150023,6 +182468,9 @@ label_BFC39494: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC39494) goto label_BFC39440; label_BFC3949C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3949C: 1061FFF1 beq $v1, $at, 0xBFC39464 */ uint32_t psx_brA_BFC3949C = cpu->gpr[3]; uint32_t psx_brB_BFC3949C = cpu->gpr[1]; @@ -150031,6 +182479,9 @@ label_BFC3949C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC3949C) goto label_BFC39464; label_BFC394A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC394A4: 1061FFF9 beq $v1, $at, 0xBFC3948C */ uint32_t psx_brA_BFC394A4 = cpu->gpr[3]; uint32_t psx_brB_BFC394A4 = cpu->gpr[1]; @@ -150039,6 +182490,9 @@ label_BFC394A4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC394A8u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } if (psx_taken_BFC394A4) goto label_BFC3948C; label_BFC394AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC394AC: AFA3003C sw $v1, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC394ACu); return; } g_debug_last_store_pc = 0xBFC394ACu; cpu->write_word(psx_addr, cpu->gpr[3]); } @@ -150052,6 +182506,9 @@ label_BFC394AC: cpu->gpr[31] = 0x800514C0u; psx_dispatch(cpu, 0x8004F0F4u); label_BFC394C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC394C0: 8FA3003C lw $v1, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC394C0u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -150069,6 +182526,9 @@ label_BFC394C0: cpu->gpr[31] = 0x800514DCu; psx_dispatch(cpu, 0x80051630u); label_BFC394DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC394DC: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC394DCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -150092,6 +182552,9 @@ void func_1FC394EC(CPUState* cpu) { } } label_BFC394EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC394EC: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -150127,6 +182590,9 @@ label_BFC394EC: cpu->gpr[31] = 0x8005152Cu; psx_dispatch(cpu, 0x8004F0F4u); label_BFC3952C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3952C: 8FA4002C lw $a0, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3952Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -150138,6 +182604,9 @@ label_BFC3952C: cpu->gpr[31] = 0x8005153Cu; psx_dispatch(cpu, 0x800516D0u); label_BFC3953C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3953C: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3953Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -150160,6 +182629,9 @@ void func_1FC3954C(CPUState* cpu) { } } label_BFC3954C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(21u); +#endif psx_check_interrupts(cpu); /* 0xBFC3954C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -150206,6 +182678,9 @@ label_BFC3954C: g_debug_last_store_pc = 0xBFC3959Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[3] + (22)), (uint8_t)(cpu->gpr[2] & 0xFFu)); if (psx_taken_BFC39598) goto label_BFC395A8; label_BFC395A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC395A0: 10000002 beq $zero, $zero, 0xBFC395AC */ uint32_t psx_brA_BFC395A0 = cpu->gpr[0]; uint32_t psx_brB_BFC395A0 = cpu->gpr[0]; @@ -150214,10 +182689,16 @@ label_BFC395A0: g_debug_last_store_pc = 0xBFC395A4u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[3] + (23)), (uint8_t)(cpu->gpr[0] & 0xFFu)); if (psx_taken_BFC395A0) goto label_BFC395AC; label_BFC395A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC395A8: A0620017 sb $v0, 23($v1) */ g_debug_last_store_pc = 0xBFC395A8u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[3] + (23)), (uint8_t)(cpu->gpr[2] & 0xFFu)); label_BFC395AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC395AC: A4690008 sh $t1, 8($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (8)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC395ACu); return; } g_debug_last_store_pc = 0xBFC395ACu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[9] & 0xFFFFu)); } @@ -150237,6 +182718,9 @@ label_BFC395AC: cpu->gpr[31] = 0x800515CCu; psx_dispatch(cpu, 0x80051630u); label_BFC395CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC395CC: 8FA30018 lw $v1, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC395CCu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -150259,6 +182743,9 @@ label_BFC395CC: void func_1FC395EC(CPUState* cpu) { debug_server_log_call_entry(0x1FC395ECu); label_BFC395EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC395EC: A4850000 sh $a1, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC395ECu); return; } g_debug_last_store_pc = 0xBFC395ECu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[5] & 0xFFFFu)); } @@ -150303,6 +182790,9 @@ void func_1FC39630(CPUState* cpu) { } } label_BFC39630: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC39630: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -150320,6 +182810,9 @@ label_BFC39630: cpu->gpr[31] = 0x8005164Cu; psx_dispatch(cpu, 0x8004EFF0u); label_BFC3964C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3964C: 8FA40018 lw $a0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3964Cu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -150336,6 +182829,9 @@ label_BFC3964C: cpu->gpr[14] = cpu->gpr[4] & 0x3u; if (psx_taken_BFC3965C) goto label_BFC39698; label_BFC39664: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC39664: 308E0003 andi $t6, $a0, 0x3 */ cpu->gpr[14] = cpu->gpr[4] & 0x3u; @@ -150364,10 +182860,16 @@ label_BFC39664: cpu->gpr[3] = cpu->gpr[11] | cpu->gpr[13]; if (psx_taken_BFC3968C) goto label_BFC396C0; label_BFC39694: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC39694: 308E0003 andi $t6, $a0, 0x3 */ cpu->gpr[14] = cpu->gpr[4] & 0x3u; label_BFC39698: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC39698: 30AF0003 andi $t7, $a1, 0x3 */ cpu->gpr[15] = cpu->gpr[5] & 0x3u; @@ -150390,6 +182892,9 @@ label_BFC39698: /* 0xBFC396BC: 018D1825 or $v1, $t4, $t5 */ cpu->gpr[3] = cpu->gpr[12] | cpu->gpr[13]; label_BFC396C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC396C0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC396C0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -150404,6 +182909,9 @@ label_BFC396C0: void func_1FC396D0(CPUState* cpu) { debug_server_log_call_entry(0x1FC396D0u); label_BFC396D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC396D0: 00047903 sra $t7, $a0, 4 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[4] >> 4u); @@ -150432,6 +182940,9 @@ void func_1FC396E8(CPUState* cpu) { } } label_BFC396E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC396E8: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -150445,6 +182956,9 @@ label_BFC396E8: cpu->gpr[31] = 0x800516FCu; psx_dispatch(cpu, 0x8004EFF0u); label_BFC396FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC396FC: 97A30020 lhu $v1, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC396FCu); return; } cpu->gpr[3] = (uint32_t)cpu->read_half(psx_addr); } @@ -150455,6 +182969,9 @@ label_BFC396FC: /* nop */ if (psx_taken_BFC39700) goto label_BFC39748; label_BFC39708: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC39708: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -150486,6 +183003,9 @@ label_BFC39708: cpu->gpr[31] = 0x80051740u; psx_dispatch(cpu, cpu->gpr[24]); label_BFC39740: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC39740: 10000010 beq $zero, $zero, 0xBFC39784 */ uint32_t psx_brA_BFC39740 = cpu->gpr[0]; uint32_t psx_brB_BFC39740 = cpu->gpr[0]; @@ -150494,6 +183014,9 @@ label_BFC39740: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39744u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC39740) goto label_BFC39784; label_BFC39748: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC39748: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -150525,10 +183048,16 @@ label_BFC39748: cpu->gpr[31] = 0x80051780u; psx_dispatch(cpu, cpu->gpr[9]); label_BFC39780: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC39780: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39780u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC39784: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC39784: 27BD0020 addiu $sp, $sp, 32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (32)); @@ -150541,6 +183070,9 @@ label_BFC39784: void func_1FC39804(CPUState* cpu) { debug_server_log_call_entry(0x1FC39804u); label_BFC39804: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC39804: 8C8E0000 lw $t6, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39804u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -150581,6 +183113,9 @@ label_BFC39804: void func_1FC398D4(CPUState* cpu) { debug_server_log_call_entry(0x1FC398D4u); label_BFC398D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC398D4: 10A00007 beq $a1, $zero, 0xBFC398F4 */ uint32_t psx_brA_BFC398D4 = cpu->gpr[5]; uint32_t psx_brB_BFC398D4 = cpu->gpr[0]; @@ -150589,6 +183124,9 @@ label_BFC398D4: /* nop */ if (psx_taken_BFC398D4) goto label_BFC398F4; label_BFC398DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC398DC: 90820007 lbu $v0, 7($a0) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (7))); @@ -150603,6 +183141,9 @@ label_BFC398DC: g_debug_last_store_pc = 0xBFC398F0u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (7)), (uint8_t)(cpu->gpr[2] & 0xFFu)); return; label_BFC398F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC398F4: 90820007 lbu $v0, 7($a0) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (7))); @@ -150623,6 +183164,9 @@ label_BFC398F4: void func_1FC39910(CPUState* cpu) { debug_server_log_call_entry(0x1FC39910u); label_BFC39910: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC39910: 10A00007 beq $a1, $zero, 0xBFC39930 */ uint32_t psx_brA_BFC39910 = cpu->gpr[5]; uint32_t psx_brB_BFC39910 = cpu->gpr[0]; @@ -150631,6 +183175,9 @@ label_BFC39910: /* nop */ if (psx_taken_BFC39910) goto label_BFC39930; label_BFC39918: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC39918: 90820007 lbu $v0, 7($a0) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (7))); @@ -150645,6 +183192,9 @@ label_BFC39918: g_debug_last_store_pc = 0xBFC3992Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (7)), (uint8_t)(cpu->gpr[2] & 0xFFu)); return; label_BFC39930: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC39930: 90820007 lbu $v0, 7($a0) */ cpu->gpr[2] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (7))); @@ -150665,6 +183215,9 @@ label_BFC39930: void func_1FC3994C(CPUState* cpu) { debug_server_log_call_entry(0x1FC3994Cu); label_BFC3994C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC3994C: 8C8E0000 lw $t6, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3994Cu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -150691,6 +183244,9 @@ label_BFC3994C: void func_1FC3999C(CPUState* cpu) { debug_server_log_call_entry(0x1FC3999Cu); label_BFC3999C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC3999C: 8C8E0000 lw $t6, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3999Cu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -150717,6 +183273,9 @@ label_BFC3999C: void func_1FC399EC(CPUState* cpu) { debug_server_log_call_entry(0x1FC399ECu); label_BFC399EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC399EC: 8C8E0000 lw $t6, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC399ECu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -150743,6 +183302,9 @@ label_BFC399EC: void func_1FC39A14(CPUState* cpu) { debug_server_log_call_entry(0x1FC39A14u); label_BFC39A14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC39A14: 8C8E0000 lw $t6, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39A14u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -150769,6 +183331,9 @@ label_BFC39A14: void func_1FC39A3C(CPUState* cpu) { debug_server_log_call_entry(0x1FC39A3Cu); label_BFC39A3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC39A3C: 8C8E0000 lw $t6, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39A3Cu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -150795,6 +183360,9 @@ label_BFC39A3C: void func_1FC39ADC(CPUState* cpu) { debug_server_log_call_entry(0x1FC39ADCu); label_BFC39ADC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC39ADC: 8C8E0000 lw $t6, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39ADCu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -150821,6 +183389,9 @@ label_BFC39ADC: void func_1FC39BA4(CPUState* cpu) { debug_server_log_call_entry(0x1FC39BA4u); label_BFC39BA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC39BA4: 8C8E0000 lw $t6, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39BA4u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -150847,6 +183418,9 @@ label_BFC39BA4: void func_1FC39BCC(CPUState* cpu) { debug_server_log_call_entry(0x1FC39BCCu); label_BFC39BCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC39BCC: 8C8E0000 lw $t6, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39BCCu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -150888,6 +183462,9 @@ void func_1FC39D38(CPUState* cpu) { } } label_BFC39D38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC39D38: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -150919,6 +183496,9 @@ label_BFC39D38: cpu->gpr[31] = 0x80051D70u; psx_dispatch(cpu, cpu->gpr[15]); label_BFC39D70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC39D70: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -150936,6 +183516,9 @@ label_BFC39D70: cpu->gpr[31] = 0x80051D8Cu; psx_dispatch(cpu, cpu->gpr[24]); label_BFC39D8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC39D8C: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -150959,6 +183542,9 @@ label_BFC39D8C: cpu->gpr[31] = 0x80051DB4u; psx_dispatch(cpu, cpu->gpr[8]); label_BFC39DB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC39DB4: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -150974,6 +183560,9 @@ label_BFC39DB4: cpu->gpr[31] = 0x80051DCCu; psx_dispatch(cpu, cpu->gpr[9]); label_BFC39DCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC39DCC: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -150989,6 +183578,9 @@ label_BFC39DCC: cpu->gpr[31] = 0x80051DE4u; psx_dispatch(cpu, cpu->gpr[10]); label_BFC39DE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC39DE4: 0C013BFC jal 0xB004EFF0 */ /* 0xBFC39DE8: 00000000 nop */ @@ -150996,6 +183588,9 @@ label_BFC39DE4: cpu->gpr[31] = 0x80051DECu; psx_dispatch(cpu, 0x8004EFF0u); label_BFC39DEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC39DEC: 10400012 beq $v0, $zero, 0xBFC39E38 */ uint32_t psx_brA_BFC39DEC = cpu->gpr[2]; uint32_t psx_brB_BFC39DEC = cpu->gpr[0]; @@ -151004,6 +183599,9 @@ label_BFC39DEC: /* nop */ if (psx_taken_BFC39DEC) goto label_BFC39E38; label_BFC39DF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC39DF4: 96020014 lhu $v0, 20($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (20)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39DF4u); return; } cpu->gpr[2] = (uint32_t)cpu->read_half(psx_addr); } @@ -151037,6 +183635,9 @@ label_BFC39DF4: cpu->gpr[31] = 0x80051E30u; psx_dispatch(cpu, cpu->gpr[13]); label_BFC39E30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC39E30: 10000011 beq $zero, $zero, 0xBFC39E78 */ uint32_t psx_brA_BFC39E30 = cpu->gpr[0]; uint32_t psx_brB_BFC39E30 = cpu->gpr[0]; @@ -151045,6 +183646,9 @@ label_BFC39E30: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39E34u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC39E30) goto label_BFC39E78; label_BFC39E38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC39E38: 96020014 lhu $v0, 20($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (20)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39E38u); return; } cpu->gpr[2] = (uint32_t)cpu->read_half(psx_addr); } @@ -151078,10 +183682,16 @@ label_BFC39E38: cpu->gpr[31] = 0x80051E74u; psx_dispatch(cpu, cpu->gpr[24]); label_BFC39E74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC39E74: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39E74u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC39E78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC39E78: 8FB00020 lw $s0, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39E78u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -151105,6 +183715,9 @@ void func_1FC39E84(CPUState* cpu) { } } label_BFC39E84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC39E84: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -151136,6 +183749,9 @@ label_BFC39E84: cpu->gpr[31] = 0x80051EBCu; psx_dispatch(cpu, cpu->gpr[15]); label_BFC39EBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC39EBC: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -151159,6 +183775,9 @@ label_BFC39EBC: cpu->gpr[31] = 0x80051EE4u; psx_dispatch(cpu, cpu->gpr[25]); label_BFC39EE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC39EE4: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -151174,6 +183793,9 @@ label_BFC39EE4: cpu->gpr[31] = 0x80051EFCu; psx_dispatch(cpu, cpu->gpr[8]); label_BFC39EFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC39EFC: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -151189,6 +183811,9 @@ label_BFC39EFC: cpu->gpr[31] = 0x80051F14u; psx_dispatch(cpu, cpu->gpr[9]); label_BFC39F14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC39F14: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC39F14u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -151203,6 +183828,9 @@ label_BFC39F14: void func_1FC39F30(CPUState* cpu) { debug_server_log_call_entry(0x1FC39F30u); label_BFC39F30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC39F30: 308400FF andi $a0, $a0, 0xFF */ cpu->gpr[4] = cpu->gpr[4] & 0xFFu; @@ -151215,6 +183843,9 @@ label_BFC39F30: cpu->gpr[1] = (uint32_t)(cpu->gpr[4] < 0x00000020u ? 1 : 0); if (psx_taken_BFC39F38) goto label_BFC39F50; label_BFC39F40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC39F40: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -151223,6 +183854,9 @@ label_BFC39F40: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (-27260)); return; label_BFC39F50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC39F50: 1420000B bne $at, $zero, 0xBFC39F80 */ uint32_t psx_brA_BFC39F50 = cpu->gpr[1]; uint32_t psx_brB_BFC39F50 = cpu->gpr[0]; @@ -151231,6 +183865,9 @@ label_BFC39F50: cpu->gpr[1] = (uint32_t)(cpu->gpr[4] < 0x00000080u ? 1 : 0); if (psx_taken_BFC39F50) goto label_BFC39F80; label_BFC39F58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC39F58: 10200009 beq $at, $zero, 0xBFC39F80 */ uint32_t psx_brA_BFC39F58 = cpu->gpr[1]; uint32_t psx_brB_BFC39F58 = cpu->gpr[0]; @@ -151239,6 +183876,9 @@ label_BFC39F58: /* nop */ if (psx_taken_BFC39F58) goto label_BFC39F80; label_BFC39F60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC39F60: 248EFFE0 addiu $t6, $a0, -32 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[4] + (-32)); @@ -151257,6 +183897,9 @@ label_BFC39F60: /* nop */ return; label_BFC39F80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC39F80: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -151271,6 +183914,9 @@ label_BFC39F80: void func_1FC39F90(CPUState* cpu) { debug_server_log_call_entry(0x1FC39F90u); label_BFC39F90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC39F90: 308400FF andi $a0, $a0, 0xFF */ cpu->gpr[4] = cpu->gpr[4] & 0xFFu; @@ -151283,12 +183929,18 @@ label_BFC39F90: cpu->gpr[1] = (uint32_t)(cpu->gpr[4] < 0x00000020u ? 1 : 0); if (psx_taken_BFC39F98) goto label_BFC39FAC; label_BFC39FA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC39FA0: 03E00008 jr $ra */ /* 0xBFC39FA4: 24020003 addiu $v0, $zero, 3 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); return; label_BFC39FAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC39FAC: 1420000A bne $at, $zero, 0xBFC39FD8 */ uint32_t psx_brA_BFC39FAC = cpu->gpr[1]; uint32_t psx_brB_BFC39FAC = cpu->gpr[0]; @@ -151297,6 +183949,9 @@ label_BFC39FAC: cpu->gpr[1] = (uint32_t)(cpu->gpr[4] < 0x00000080u ? 1 : 0); if (psx_taken_BFC39FAC) goto label_BFC39FD8; label_BFC39FB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC39FB4: 10200009 beq $at, $zero, 0xBFC39FDC */ uint32_t psx_brA_BFC39FB4 = cpu->gpr[1]; uint32_t psx_brB_BFC39FB4 = cpu->gpr[0]; @@ -151305,6 +183960,9 @@ label_BFC39FB4: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC39FB4) goto label_BFC39FDC; label_BFC39FBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC39FBC: 248EFFE0 addiu $t6, $a0, -32 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[4] + (-32)); @@ -151321,10 +183979,16 @@ label_BFC39FBC: /* nop */ return; label_BFC39FD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC39FD8: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC39FDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC39FDC: 03E00008 jr $ra */ /* 0xBFC39FE0: 00000000 nop */ @@ -151344,6 +184008,9 @@ void func_1FC39FE4(CPUState* cpu) { } } label_BFC39FE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC39FE4: 27BDFFD0 addiu $sp, $sp, -48 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-48)); @@ -151372,6 +184039,9 @@ label_BFC39FE4: cpu->gpr[24] = cpu->gpr[3] >> 24u; if (psx_taken_BFC3A00C) goto label_BFC3A06C; label_BFC3A014: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A014: AFB10024 sw $s1, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A014u); return; } g_debug_last_store_pc = 0xBFC3A014u; cpu->write_word(psx_addr, cpu->gpr[17]); } @@ -151380,6 +184050,9 @@ label_BFC3A014: /* 0xBFC3A01C: 00037602 srl $t6, $v1, 24 */ cpu->gpr[14] = cpu->gpr[3] >> 24u; label_BFC3A020: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A020: 31CF00FF andi $t7, $t6, 0xFF */ cpu->gpr[15] = cpu->gpr[14] & 0xFFu; @@ -151390,6 +184063,9 @@ label_BFC3A020: /* nop */ if (psx_taken_BFC3A024) goto label_BFC3A044; label_BFC3A02C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A02C: 0C013CDA jal 0xB004F368 */ /* 0xBFC3A030: 02002021 addu $a0, $s0, $zero */ @@ -151397,6 +184073,9 @@ label_BFC3A02C: cpu->gpr[31] = 0x80052034u; psx_dispatch(cpu, 0x8004F368u); label_BFC3A034: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A034: 8E020000 lw $v0, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A034u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -151407,6 +184086,9 @@ label_BFC3A034: /* 0xBFC3A040: 00021202 srl $v0, $v0, 8 */ cpu->gpr[2] = cpu->gpr[2] >> 8u; label_BFC3A044: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A044: 00518025 or $s0, $v0, $s1 */ cpu->gpr[16] = cpu->gpr[2] | cpu->gpr[17]; @@ -151425,6 +184107,9 @@ label_BFC3A044: cpu->gpr[14] = cpu->gpr[3] >> 24u; if (psx_taken_BFC3A058) goto label_BFC3A020; label_BFC3A060: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A060: 8FB10024 lw $s1, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A060u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -151433,6 +184118,9 @@ label_BFC3A060: /* 0xBFC3A068: 0003C602 srl $t8, $v1, 24 */ cpu->gpr[24] = cpu->gpr[3] >> 24u; label_BFC3A06C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A06C: 331900FF andi $t9, $t8, 0xFF */ cpu->gpr[25] = cpu->gpr[24] & 0xFFu; @@ -151443,6 +184131,9 @@ label_BFC3A06C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A074u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC3A070) goto label_BFC3A084; label_BFC3A078: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A078: 0C013CDA jal 0xB004F368 */ /* 0xBFC3A07C: 02002021 addu $a0, $s0, $zero */ @@ -151450,10 +184141,16 @@ label_BFC3A078: cpu->gpr[31] = 0x80052080u; psx_dispatch(cpu, 0x8004F368u); label_BFC3A080: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A080: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A080u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC3A084: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A084: 8FB00014 lw $s0, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A084u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -151483,6 +184180,9 @@ void func_1FC3A094(CPUState* cpu) { } } label_BFC3A094: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A094: 27BDFFB0 addiu $sp, $sp, -80 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-80)); @@ -151512,6 +184212,9 @@ label_BFC3A094: cpu->gpr[31] = 0x800520C8u; psx_dispatch(cpu, cpu->gpr[14]); label_BFC3A0C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A0C8: 8E030000 lw $v1, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A0C8u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -151530,6 +184233,9 @@ label_BFC3A0C8: /* nop */ if (psx_taken_BFC3A0DC) goto label_BFC3A1DC; label_BFC3A0E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A0E4: AFB30030 sw $s3, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A0E4u); return; } g_debug_last_store_pc = 0xBFC3A0E4u; cpu->write_word(psx_addr, cpu->gpr[19]); } @@ -151556,6 +184262,9 @@ label_BFC3A0E4: /* 0xBFC3A110: 00037E02 srl $t7, $v1, 24 */ cpu->gpr[15] = cpu->gpr[3] >> 24u; label_BFC3A114: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A114: 31F800FF andi $t8, $t7, 0xFF */ cpu->gpr[24] = cpu->gpr[15] & 0xFFu; @@ -151566,6 +184275,9 @@ label_BFC3A114: /* nop */ if (psx_taken_BFC3A118) goto label_BFC3A16C; label_BFC3A120: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A120: 00921025 or $v0, $a0, $s2 */ cpu->gpr[2] = cpu->gpr[4] | cpu->gpr[18]; @@ -151584,6 +184296,9 @@ label_BFC3A120: /* nop */ if (psx_taken_BFC3A134) goto label_BFC3A164; label_BFC3A13C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A13C: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -151597,6 +184312,9 @@ label_BFC3A13C: cpu->gpr[31] = 0x80052150u; psx_dispatch(cpu, cpu->gpr[10]); label_BFC3A150: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A150: 8E0B0000 lw $t3, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A150u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -151609,6 +184327,9 @@ label_BFC3A150: /* 0xBFC3A160: 01B21025 or $v0, $t5, $s2 */ cpu->gpr[2] = cpu->gpr[13] | cpu->gpr[18]; label_BFC3A164: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A164: 10000011 beq $zero, $zero, 0xBFC3A1AC */ uint32_t psx_brA_BFC3A164 = cpu->gpr[0]; uint32_t psx_brB_BFC3A164 = cpu->gpr[0]; @@ -151617,6 +184338,9 @@ label_BFC3A164: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); if (psx_taken_BFC3A164) goto label_BFC3A1AC; label_BFC3A16C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A16C: 02802021 addu $a0, $s4, $zero */ cpu->gpr[4] = cpu->gpr[20] + cpu->gpr[0]; @@ -151626,6 +184350,9 @@ label_BFC3A16C: cpu->gpr[31] = 0x80052178u; psx_dispatch(cpu, 0x80052228u); label_BFC3A178: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A178: 92040007 lbu $a0, 7($s0) */ cpu->gpr[4] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (7))); @@ -151635,6 +184362,9 @@ label_BFC3A178: cpu->gpr[31] = 0x80052184u; psx_dispatch(cpu, 0x80051F30u); label_BFC3A184: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A184: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -151648,6 +184378,9 @@ label_BFC3A184: cpu->gpr[31] = 0x80052198u; psx_dispatch(cpu, cpu->gpr[14]); label_BFC3A198: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A198: 8E0F0000 lw $t7, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A198u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -151660,6 +184393,9 @@ label_BFC3A198: /* 0xBFC3A1A8: 03321025 or $v0, $t9, $s2 */ cpu->gpr[2] = cpu->gpr[25] | cpu->gpr[18]; label_BFC3A1AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A1AC: 00408021 addu $s0, $v0, $zero */ cpu->gpr[16] = cpu->gpr[2] + cpu->gpr[0]; @@ -151678,6 +184414,9 @@ label_BFC3A1AC: cpu->gpr[15] = cpu->gpr[3] >> 24u; if (psx_taken_BFC3A1C0) goto label_BFC3A114; label_BFC3A1C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A1C8: 8FB20034 lw $s2, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A1C8u); return; } cpu->gpr[18] = cpu->read_word(psx_addr); } @@ -151690,6 +184429,9 @@ label_BFC3A1C8: /* 0xBFC3A1D8: 00000000 nop */ /* nop */ label_BFC3A1DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A1DC: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -151701,6 +184443,9 @@ label_BFC3A1DC: cpu->gpr[31] = 0x800521ECu; psx_dispatch(cpu, 0x80052228u); label_BFC3A1EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A1EC: 92040007 lbu $a0, 7($s0) */ cpu->gpr[4] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[16] + (7))); @@ -151710,6 +184455,9 @@ label_BFC3A1EC: cpu->gpr[31] = 0x800521F8u; psx_dispatch(cpu, 0x80051F30u); label_BFC3A1F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A1F8: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -151725,6 +184473,9 @@ label_BFC3A1F8: cpu->gpr[31] = 0x80052210u; psx_dispatch(cpu, cpu->gpr[8]); label_BFC3A210: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A210: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A210u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -151753,6 +184504,9 @@ void func_1FC3A228(CPUState* cpu) { } } label_BFC3A228: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A228: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -151770,6 +184524,9 @@ label_BFC3A228: cpu->gpr[31] = 0x80052244u; psx_dispatch(cpu, 0x80051F90u); label_BFC3A244: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A244: 8FA6002C lw $a2, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A244u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -151780,6 +184537,9 @@ label_BFC3A244: /* nop */ if (psx_taken_BFC3A248) goto label_BFC3A2AC; label_BFC3A250: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A250: 8CCE0000 lw $t6, 0($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A250u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -151796,6 +184556,9 @@ label_BFC3A250: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3A260) goto label_BFC3A2B0; label_BFC3A268: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A268: 90C40007 lbu $a0, 7($a2) */ cpu->gpr[4] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[6] + (7))); @@ -151805,6 +184568,9 @@ label_BFC3A268: cpu->gpr[31] = 0x80052274u; psx_dispatch(cpu, 0x80051F30u); label_BFC3A274: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A274: 8FA6002C lw $a2, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A274u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -151832,6 +184598,9 @@ label_BFC3A274: cpu->gpr[31] = 0x800522A4u; psx_dispatch(cpu, cpu->gpr[10]); label_BFC3A2A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A2A4: 10000002 beq $zero, $zero, 0xBFC3A2B0 */ uint32_t psx_brA_BFC3A2A4 = cpu->gpr[0]; uint32_t psx_brB_BFC3A2A4 = cpu->gpr[0]; @@ -151840,10 +184609,16 @@ label_BFC3A2A4: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3A2A4) goto label_BFC3A2B0; label_BFC3A2AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A2AC: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC3A2B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A2B0: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A2B0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -151867,6 +184642,9 @@ void func_1FC3A2C0(CPUState* cpu) { } } label_BFC3A2C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A2C0: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -151880,6 +184658,9 @@ label_BFC3A2C0: cpu->gpr[31] = 0x800522D4u; psx_dispatch(cpu, 0x800560C0u); label_BFC3A2D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A2D4: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -151899,6 +184680,9 @@ label_BFC3A2D4: cpu->gpr[31] = 0x800522F4u; psx_dispatch(cpu, 0x80056324u); label_BFC3A2F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A2F4: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -151911,6 +184695,9 @@ label_BFC3A2F4: /* 0xBFC3A304: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; label_BFC3A308: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A308: 00447021 addu $t6, $v0, $a0 */ cpu->gpr[14] = cpu->gpr[2] + cpu->gpr[4]; @@ -151925,6 +184712,9 @@ label_BFC3A308: g_debug_last_store_pc = 0xBFC3A318u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[14] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); if (psx_taken_BFC3A314) goto label_BFC3A308; label_BFC3A31C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A31C: 83A20020 lb $v0, 32($sp) */ cpu->gpr[2] = (uint32_t)(int32_t)(int8_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (32))); @@ -151941,6 +184731,9 @@ label_BFC3A31C: cpu->gpr[3] = cpu->gpr[2] << 24u; if (psx_taken_BFC3A32C) goto label_BFC3A340; label_BFC3A334: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A334: 10000003 beq $zero, $zero, 0xBFC3A344 */ uint32_t psx_brA_BFC3A334 = cpu->gpr[0]; uint32_t psx_brB_BFC3A334 = cpu->gpr[0]; @@ -151949,14 +184742,23 @@ label_BFC3A334: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (24)); if (psx_taken_BFC3A334) goto label_BFC3A344; label_BFC3A33C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A33C: 00021E00 sll $v1, $v0, 24 */ cpu->gpr[3] = cpu->gpr[2] << 24u; label_BFC3A340: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A340: 00031E03 sra $v1, $v1, 24 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] >> 24u); label_BFC3A344: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A344: 00603821 addu $a3, $v1, $zero */ cpu->gpr[7] = cpu->gpr[3] + cpu->gpr[0]; @@ -151971,6 +184773,9 @@ label_BFC3A344: cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3A350) goto label_BFC3A3BC; label_BFC3A358: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A358: 3C05800E lui $a1, 0x800E */ cpu->gpr[5] = 0x800E0000u; @@ -151983,6 +184788,9 @@ label_BFC3A358: /* 0xBFC3A368: 00047880 sll $t7, $a0, 2 */ cpu->gpr[15] = cpu->gpr[4] << 2u; label_BFC3A36C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A36C: 01E47823 subu $t7, $t7, $a0 */ cpu->gpr[15] = cpu->gpr[15] - cpu->gpr[4]; @@ -152025,10 +184833,16 @@ label_BFC3A36C: cpu->gpr[15] = cpu->gpr[4] << 2u; if (psx_taken_BFC3A3B0) goto label_BFC3A36C; label_BFC3A3B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A3B8: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; label_BFC3A3BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A3BC: 3C05800E lui $a1, 0x800E */ cpu->gpr[5] = 0x800E0000u; @@ -152039,6 +184853,9 @@ label_BFC3A3BC: /* 0xBFC3A3C8: 24060040 addiu $a2, $zero, 64 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[0] + (64)); label_BFC3A3CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A3CC: 0004C0C0 sll $t8, $a0, 3 */ cpu->gpr[24] = cpu->gpr[4] << 3u; @@ -152063,6 +184880,9 @@ label_BFC3A3CC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (6)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A3F0u); return; } g_debug_last_store_pc = 0xBFC3A3F0u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[6] & 0xFFFFu)); } if (psx_taken_BFC3A3EC) goto label_BFC3A3CC; label_BFC3A3F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A3F4: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -152113,6 +184933,9 @@ label_BFC3A3F4: void func_1FC3A44C(CPUState* cpu) { debug_server_log_call_entry(0x1FC3A44Cu); label_BFC3A44C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A44C: 3C09800E lui $t1, 0x800E */ cpu->gpr[9] = 0x800E0000u; @@ -152143,6 +184966,9 @@ label_BFC3A44C: cpu->gpr[8] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3A478) goto label_BFC3A498; label_BFC3A480: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A480: 3C0D800E lui $t5, 0x800E */ cpu->gpr[13] = 0x800E0000u; @@ -152159,6 +184985,9 @@ label_BFC3A480: cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[0] + (99)); if (psx_taken_BFC3A490) goto label_BFC3A5A0; label_BFC3A498: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A498: 3C0D800E lui $t5, 0x800E */ cpu->gpr[13] = 0x800E0000u; @@ -152171,6 +185000,9 @@ label_BFC3A498: /* 0xBFC3A4A8: 24110063 addiu $s1, $zero, 99 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[0] + (99)); label_BFC3A4AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A4AC: 00087080 sll $t6, $t0, 2 */ cpu->gpr[14] = cpu->gpr[8] << 2u; @@ -152191,6 +185023,9 @@ label_BFC3A4AC: /* nop */ if (psx_taken_BFC3A4C4) goto label_BFC3A524; label_BFC3A4CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A4CC: 954B0006 lhu $t3, 6($t2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[10] + (6)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A4CCu); return; } cpu->gpr[11] = (uint32_t)cpu->read_half(psx_addr); } @@ -152203,6 +185038,9 @@ label_BFC3A4CC: /* nop */ if (psx_taken_BFC3A4D4) goto label_BFC3A4E4; label_BFC3A4DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A4DC: 10000052 beq $zero, $zero, 0xBFC3A628 */ uint32_t psx_brA_BFC3A4DC = cpu->gpr[0]; uint32_t psx_brB_BFC3A4DC = cpu->gpr[0]; @@ -152211,6 +185049,9 @@ label_BFC3A4DC: cpu->gpr[2] = cpu->gpr[8] + cpu->gpr[0]; if (psx_taken_BFC3A4DC) goto label_BFC3A628; label_BFC3A4E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A4E4: 854C0014 lh $t4, 20($t2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[10] + (20)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A4E4u); return; } cpu->gpr[12] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -152225,6 +185066,9 @@ label_BFC3A4E4: /* nop */ if (psx_taken_BFC3A4F0) goto label_BFC3A508; label_BFC3A4F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A4F8: 3182FFFF andi $v0, $t4, 0xFFFF */ cpu->gpr[2] = cpu->gpr[12] & 0xFFFFu; @@ -152237,6 +185081,9 @@ label_BFC3A4F8: cpu->gpr[6] = cpu->gpr[8] & 0xFFu; if (psx_taken_BFC3A500) goto label_BFC3A584; label_BFC3A508: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A508: 144C001E bne $v0, $t4, 0xBFC3A584 */ uint32_t psx_brA_BFC3A508 = cpu->gpr[2]; uint32_t psx_brB_BFC3A508 = cpu->gpr[12]; @@ -152245,6 +185092,9 @@ label_BFC3A508: cpu->gpr[1] = (uint32_t)(cpu->gpr[11] < cpu->gpr[4] ? 1 : 0); if (psx_taken_BFC3A508) goto label_BFC3A584; label_BFC3A510: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A510: 1020001C beq $at, $zero, 0xBFC3A584 */ uint32_t psx_brA_BFC3A510 = cpu->gpr[1]; uint32_t psx_brB_BFC3A510 = cpu->gpr[0]; @@ -152253,6 +185103,9 @@ label_BFC3A510: /* nop */ if (psx_taken_BFC3A510) goto label_BFC3A584; label_BFC3A518: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A518: 3164FFFF andi $a0, $t3, 0xFFFF */ cpu->gpr[4] = cpu->gpr[11] & 0xFFFFu; @@ -152263,6 +185116,9 @@ label_BFC3A518: cpu->gpr[6] = cpu->gpr[8] & 0xFFu; if (psx_taken_BFC3A51C) goto label_BFC3A584; label_BFC3A524: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A524: 14D10017 bne $a2, $s1, 0xBFC3A584 */ uint32_t psx_brA_BFC3A524 = cpu->gpr[6]; uint32_t psx_brB_BFC3A524 = cpu->gpr[17]; @@ -152271,6 +185127,9 @@ label_BFC3A524: /* nop */ if (psx_taken_BFC3A524) goto label_BFC3A584; label_BFC3A52C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A52C: 854B0014 lh $t3, 20($t2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[10] + (20)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A52Cu); return; } cpu->gpr[11] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -152285,6 +185144,9 @@ label_BFC3A52C: /* nop */ if (psx_taken_BFC3A538) goto label_BFC3A584; label_BFC3A540: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A540: 01606021 addu $t4, $t3, $zero */ cpu->gpr[12] = cpu->gpr[11] + cpu->gpr[0]; @@ -152297,6 +185159,9 @@ label_BFC3A540: /* nop */ if (psx_taken_BFC3A548) goto label_BFC3A560; label_BFC3A550: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A550: 95450006 lhu $a1, 6($t2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[10] + (6)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A550u); return; } cpu->gpr[5] = (uint32_t)cpu->read_half(psx_addr); } @@ -152309,6 +185174,9 @@ label_BFC3A550: cpu->gpr[7] = cpu->gpr[8] & 0xFFu; if (psx_taken_BFC3A558) goto label_BFC3A584; label_BFC3A560: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A560: 146C0008 bne $v1, $t4, 0xBFC3A584 */ uint32_t psx_brA_BFC3A560 = cpu->gpr[3]; uint32_t psx_brB_BFC3A560 = cpu->gpr[12]; @@ -152317,6 +185185,9 @@ label_BFC3A560: /* nop */ if (psx_taken_BFC3A560) goto label_BFC3A584; label_BFC3A568: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A568: 954B0006 lhu $t3, 6($t2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[10] + (6)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A568u); return; } cpu->gpr[11] = (uint32_t)cpu->read_half(psx_addr); } @@ -152331,12 +185202,18 @@ label_BFC3A568: /* nop */ if (psx_taken_BFC3A574) goto label_BFC3A584; label_BFC3A57C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A57C: 3165FFFF andi $a1, $t3, 0xFFFF */ cpu->gpr[5] = cpu->gpr[11] & 0xFFFFu; /* 0xBFC3A580: 310700FF andi $a3, $t0, 0xFF */ cpu->gpr[7] = cpu->gpr[8] & 0xFFu; label_BFC3A584: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A584: 85580002 lh $t8, 2($t2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[10] + (2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A584u); return; } cpu->gpr[24] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -152355,6 +185232,9 @@ label_BFC3A584: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[10] + (2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A59Cu); return; } g_debug_last_store_pc = 0xBFC3A59Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[25] & 0xFFFFu)); } if (psx_taken_BFC3A598) goto label_BFC3A4AC; label_BFC3A5A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A5A0: 10D10003 beq $a2, $s1, 0xBFC3A5B0 */ uint32_t psx_brA_BFC3A5A0 = cpu->gpr[6]; uint32_t psx_brB_BFC3A5A0 = cpu->gpr[17]; @@ -152363,6 +185243,9 @@ label_BFC3A5A0: /* nop */ if (psx_taken_BFC3A5A0) goto label_BFC3A5B0; label_BFC3A5A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A5A8: 1000001F beq $zero, $zero, 0xBFC3A628 */ uint32_t psx_brA_BFC3A5A8 = cpu->gpr[0]; uint32_t psx_brB_BFC3A5A8 = cpu->gpr[0]; @@ -152371,6 +185254,9 @@ label_BFC3A5A8: cpu->gpr[2] = cpu->gpr[6] + cpu->gpr[0]; if (psx_taken_BFC3A5A8) goto label_BFC3A628; label_BFC3A5B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A5B0: 10F10004 beq $a3, $s1, 0xBFC3A5C4 */ uint32_t psx_brA_BFC3A5B0 = cpu->gpr[7]; uint32_t psx_brB_BFC3A5B0 = cpu->gpr[17]; @@ -152379,6 +185265,9 @@ label_BFC3A5B0: cpu->gpr[5] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3A5B0) goto label_BFC3A5C4; label_BFC3A5B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A5B8: 1000001B beq $zero, $zero, 0xBFC3A628 */ uint32_t psx_brA_BFC3A5B8 = cpu->gpr[0]; uint32_t psx_brB_BFC3A5B8 = cpu->gpr[0]; @@ -152387,10 +185276,16 @@ label_BFC3A5B8: cpu->gpr[2] = cpu->gpr[7] + cpu->gpr[0]; if (psx_taken_BFC3A5B8) goto label_BFC3A628; label_BFC3A5C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A5C0: 00002821 addu $a1, $zero, $zero */ cpu->gpr[5] = cpu->gpr[0] + cpu->gpr[0]; label_BFC3A5C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A5C4: 312700FF andi $a3, $t1, 0xFF */ cpu->gpr[7] = cpu->gpr[9] & 0xFFu; @@ -152401,10 +185296,16 @@ label_BFC3A5C4: cpu->gpr[8] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3A5C8) goto label_BFC3A624; label_BFC3A5D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A5D0: 00087080 sll $t6, $t0, 2 */ cpu->gpr[14] = cpu->gpr[8] << 2u; label_BFC3A5D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A5D4: 01C87023 subu $t6, $t6, $t0 */ cpu->gpr[14] = cpu->gpr[14] - cpu->gpr[8]; @@ -152425,6 +185326,9 @@ label_BFC3A5D4: /* nop */ if (psx_taken_BFC3A5EC) goto label_BFC3A610; label_BFC3A5F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A5F4: 85420002 lh $v0, 2($t2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[10] + (2)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A5F4u); return; } cpu->gpr[2] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -152439,12 +185343,18 @@ label_BFC3A5F4: /* nop */ if (psx_taken_BFC3A600) goto label_BFC3A610; label_BFC3A608: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A608: 3045FFFF andi $a1, $v0, 0xFFFF */ cpu->gpr[5] = cpu->gpr[2] & 0xFFFFu; /* 0xBFC3A60C: 310700FF andi $a3, $t0, 0xFF */ cpu->gpr[7] = cpu->gpr[8] & 0xFFu; label_BFC3A610: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A610: 25080001 addiu $t0, $t0, 1 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[8] + (1)); @@ -152459,10 +185369,16 @@ label_BFC3A610: cpu->gpr[14] = cpu->gpr[8] << 2u; if (psx_taken_BFC3A61C) goto label_BFC3A5D4; label_BFC3A624: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A624: 00E01021 addu $v0, $a3, $zero */ cpu->gpr[2] = cpu->gpr[7] + cpu->gpr[0]; label_BFC3A628: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A628: 8FB00008 lw $s0, 8($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A628u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -152477,6 +185393,9 @@ label_BFC3A628: void func_1FC3A638(CPUState* cpu) { debug_server_log_call_entry(0x1FC3A638u); label_BFC3A638: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(55u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A638: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -152591,6 +185510,9 @@ label_BFC3A638: cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[0] + (127)); if (psx_taken_BFC3A70C) goto label_BFC3A734; label_BFC3A714: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A714: 00C80019 multu $a2, $t0 */ { uint64_t psx_p = (uint64_t)cpu->gpr[6] * (uint64_t)cpu->gpr[8]; cpu->lo = (uint32_t)(psx_p & 0xFFFFFFFFu); cpu->hi = (uint32_t)(psx_p >> 32); } @@ -152609,10 +185531,16 @@ label_BFC3A714: /* nop */ if (psx_taken_BFC3A728) goto label_BFC3A74C; label_BFC3A730: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A730: 2407007F addiu $a3, $zero, 127 */ cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[0] + (127)); label_BFC3A734: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A734: 00E86023 subu $t4, $a3, $t0 */ cpu->gpr[12] = cpu->gpr[7] - cpu->gpr[8]; @@ -152627,6 +185555,9 @@ label_BFC3A734: /* 0xBFC3A748: 00000000 nop */ /* nop */ label_BFC3A74C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A74C: 3C02800E lui $v0, 0x800E */ cpu->gpr[2] = 0x800E0000u; @@ -152643,6 +185574,9 @@ label_BFC3A74C: cpu->gpr[13] = cpu->gpr[7] - cpu->gpr[2]; if (psx_taken_BFC3A75C) goto label_BFC3A77C; label_BFC3A764: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A764: 00820019 multu $a0, $v0 */ { uint64_t psx_p = (uint64_t)cpu->gpr[4] * (uint64_t)cpu->gpr[2]; cpu->lo = (uint32_t)(psx_p & 0xFFFFFFFFu); cpu->hi = (uint32_t)(psx_p >> 32); } @@ -152657,10 +185591,16 @@ label_BFC3A764: /* nop */ if (psx_taken_BFC3A770) goto label_BFC3A78C; label_BFC3A778: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A778: 00E26823 subu $t5, $a3, $v0 */ cpu->gpr[13] = cpu->gpr[7] - cpu->gpr[2]; label_BFC3A77C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A77C: 006D0019 multu $v1, $t5 */ { uint64_t psx_p = (uint64_t)cpu->gpr[3] * (uint64_t)cpu->gpr[13]; cpu->lo = (uint32_t)(psx_p & 0xFFFFFFFFu); cpu->hi = (uint32_t)(psx_p >> 32); } @@ -152671,6 +185611,9 @@ label_BFC3A77C: /* 0xBFC3A788: 00000000 nop */ /* nop */ label_BFC3A78C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A78C: 3C02800E lui $v0, 0x800E */ cpu->gpr[2] = 0x800E0000u; @@ -152687,6 +185630,9 @@ label_BFC3A78C: cpu->gpr[14] = cpu->gpr[7] - cpu->gpr[2]; if (psx_taken_BFC3A79C) goto label_BFC3A7BC; label_BFC3A7A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A7A4: 00820019 multu $a0, $v0 */ { uint64_t psx_p = (uint64_t)cpu->gpr[4] * (uint64_t)cpu->gpr[2]; cpu->lo = (uint32_t)(psx_p & 0xFFFFFFFFu); cpu->hi = (uint32_t)(psx_p >> 32); } @@ -152701,10 +185647,16 @@ label_BFC3A7A4: /* nop */ if (psx_taken_BFC3A7B0) goto label_BFC3A7CC; label_BFC3A7B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A7B8: 00E27023 subu $t6, $a3, $v0 */ cpu->gpr[14] = cpu->gpr[7] - cpu->gpr[2]; label_BFC3A7BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A7BC: 006E0019 multu $v1, $t6 */ { uint64_t psx_p = (uint64_t)cpu->gpr[3] * (uint64_t)cpu->gpr[14]; cpu->lo = (uint32_t)(psx_p & 0xFFFFFFFFu); cpu->hi = (uint32_t)(psx_p >> 32); } @@ -152715,6 +185667,9 @@ label_BFC3A7BC: /* 0xBFC3A7C8: 00000000 nop */ /* nop */ label_BFC3A7CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A7CC: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -152729,6 +185684,9 @@ label_BFC3A7CC: cpu->gpr[1] = (uint32_t)(cpu->gpr[3] < cpu->gpr[4] ? 1 : 0); if (psx_taken_BFC3A7D8) goto label_BFC3A7F4; label_BFC3A7E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A7E0: 10200003 beq $at, $zero, 0xBFC3A7F0 */ uint32_t psx_brA_BFC3A7E0 = cpu->gpr[1]; uint32_t psx_brB_BFC3A7E0 = cpu->gpr[0]; @@ -152737,6 +185695,9 @@ label_BFC3A7E0: /* nop */ if (psx_taken_BFC3A7E0) goto label_BFC3A7F0; label_BFC3A7E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A7E8: 10000002 beq $zero, $zero, 0xBFC3A7F4 */ uint32_t psx_brA_BFC3A7E8 = cpu->gpr[0]; uint32_t psx_brB_BFC3A7E8 = cpu->gpr[0]; @@ -152745,10 +185706,16 @@ label_BFC3A7E8: cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC3A7E8) goto label_BFC3A7F4; label_BFC3A7F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A7F0: 00602021 addu $a0, $v1, $zero */ cpu->gpr[4] = cpu->gpr[3] + cpu->gpr[0]; label_BFC3A7F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(40u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A7F4: 00630019 multu $v1, $v1 */ { uint64_t psx_p = (uint64_t)cpu->gpr[3] * (uint64_t)cpu->gpr[3]; cpu->lo = (uint32_t)(psx_p & 0xFFFFFFFFu); cpu->hi = (uint32_t)(psx_p >> 32); } @@ -152833,6 +185800,9 @@ label_BFC3A7F4: g_debug_last_store_pc = 0xBFC3A890u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[6] + (23)), (uint8_t)(cpu->gpr[8] & 0xFFu)); if (psx_taken_BFC3A88C) goto label_BFC3A8A8; label_BFC3A894: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A894: 24090001 addiu $t1, $zero, 1 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -152847,6 +185817,9 @@ label_BFC3A894: cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3A8A0) goto label_BFC3A8BC; label_BFC3A8A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A8A8: 244A0010 addiu $t2, $v0, 16 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[2] + (16)); @@ -152859,6 +185832,9 @@ label_BFC3A8A8: /* 0xBFC3A8B8: 3084FFFF andi $a0, $a0, 0xFFFF */ cpu->gpr[4] = cpu->gpr[4] & 0xFFFFu; label_BFC3A8BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A8BC: 3C0C800E lui $t4, 0x800E */ cpu->gpr[12] = 0x800E0000u; @@ -152875,6 +185851,9 @@ label_BFC3A8BC: /* nop */ if (psx_taken_BFC3A8CC) goto label_BFC3A900; label_BFC3A8D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A8D4: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -152901,6 +185880,9 @@ label_BFC3A8D4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24810)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A8FCu); return; } g_debug_last_store_pc = 0xBFC3A8FCu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[25] & 0xFFFFu)); } if (psx_taken_BFC3A8F8) goto label_BFC3A930; label_BFC3A900: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A900: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -152927,6 +185909,9 @@ label_BFC3A900: /* 0xBFC3A92C: A42E9F16 sh $t6, -24810($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24810)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3A92Cu); return; } g_debug_last_store_pc = 0xBFC3A92Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[14] & 0xFFFFu)); } label_BFC3A930: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A930: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -152955,6 +185940,9 @@ label_BFC3A930: void func_1FC3A95C(CPUState* cpu) { debug_server_log_call_entry(0x1FC3A95Cu); label_BFC3A95C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A95C: 3C02800E lui $v0, 0x800E */ cpu->gpr[2] = 0x800E0000u; @@ -152971,6 +185959,9 @@ label_BFC3A95C: cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[2] + (16)); if (psx_taken_BFC3A96C) goto label_BFC3A98C; label_BFC3A974: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A974: 240E0001 addiu $t6, $zero, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -152985,10 +185976,16 @@ label_BFC3A974: cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3A980) goto label_BFC3A99C; label_BFC3A988: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A988: 244F0010 addiu $t7, $v0, 16 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[2] + (16)); label_BFC3A98C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A98C: 24180001 addiu $t8, $zero, 1 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -152999,6 +185996,9 @@ label_BFC3A98C: /* 0xBFC3A998: 3084FFFF andi $a0, $a0, 0xFFFF */ cpu->gpr[4] = cpu->gpr[4] & 0xFFFFu; label_BFC3A99C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A99C: 0002C880 sll $t9, $v0, 2 */ cpu->gpr[25] = cpu->gpr[2] << 2u; @@ -153045,6 +186045,9 @@ label_BFC3A99C: void func_1FC3A9EC(CPUState* cpu) { debug_server_log_call_entry(0x1FC3A9ECu); label_BFC3A9EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC3A9EC: 3C02800E lui $v0, 0x800E */ cpu->gpr[2] = 0x800E0000u; @@ -153075,10 +186078,16 @@ label_BFC3A9EC: cpu->gpr[1] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC3AA18) goto label_BFC3AA24; label_BFC3AA20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AA20: 24210007 addiu $at, $at, 7 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (7)); label_BFC3AA24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AA24: 000128C3 sra $a1, $at, 3 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[1] >> 3u); @@ -153103,10 +186112,16 @@ label_BFC3AA24: cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[7] >> 16u); if (psx_taken_BFC3AA44) goto label_BFC3AA50; label_BFC3AA4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AA4C: 2404000F addiu $a0, $zero, 15 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (15)); label_BFC3AA50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AA50: 2401000C addiu $at, $zero, 12 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (12)); @@ -153149,6 +186164,9 @@ label_BFC3AA50: /* nop */ if (psx_taken_BFC3AA94) goto label_BFC3AAA8; label_BFC3AA9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AA9C: 00E52804 sllv $a1, $a1, $a3 */ cpu->gpr[5] = cpu->gpr[5] << (cpu->gpr[7] & 0x1Fu); @@ -153159,6 +186177,9 @@ label_BFC3AA9C: cpu->gpr[5] = cpu->gpr[5] & 0xFFFFu; if (psx_taken_BFC3AAA0) goto label_BFC3AABC; label_BFC3AAA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AAA8: 04E10004 bgez $a3, 0xBFC3AABC */ uint32_t psx_brA_BFC3AAA8 = cpu->gpr[7]; @@ -153167,6 +186188,9 @@ label_BFC3AAA8: /* nop */ if (psx_taken_BFC3AAA8) goto label_BFC3AABC; label_BFC3AAB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AAB0: 00076823 subu $t5, $zero, $a3 */ cpu->gpr[13] = cpu->gpr[0] - cpu->gpr[7]; @@ -153175,6 +186199,9 @@ label_BFC3AAB0: /* 0xBFC3AAB8: 30A5FFFF andi $a1, $a1, 0xFFFF */ cpu->gpr[5] = cpu->gpr[5] & 0xFFFFu; label_BFC3AABC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AABC: 03E00008 jr $ra */ /* 0xBFC3AAC0: 00A01021 addu $v0, $a1, $zero */ @@ -153185,6 +186212,9 @@ label_BFC3AABC: void func_1FC3AAC4(CPUState* cpu) { debug_server_log_call_entry(0x1FC3AAC4u); label_BFC3AAC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AAC4: 3C06800E lui $a2, 0x800E */ cpu->gpr[6] = 0x800E0000u; @@ -153203,6 +186233,9 @@ label_BFC3AAC4: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3AAD8) goto label_BFC3AB68; label_BFC3AAE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AAE0: 3C04800E lui $a0, 0x800E */ cpu->gpr[4] = 0x800E0000u; @@ -153215,6 +186248,9 @@ label_BFC3AAE0: /* 0xBFC3AAF0: 00042100 sll $a0, $a0, 4 */ cpu->gpr[4] = cpu->gpr[4] << 4u; label_BFC3AAF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AAF4: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -153241,6 +186277,9 @@ label_BFC3AAF4: /* nop */ if (psx_taken_BFC3AB18) goto label_BFC3AB50; label_BFC3AB20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AB20: 90AB0007 lbu $t3, 7($a1) */ cpu->gpr[11] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (7))); @@ -153255,6 +186294,9 @@ label_BFC3AB20: /* nop */ if (psx_taken_BFC3AB2C) goto label_BFC3AB50; label_BFC3AB34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AB34: 84AC0016 lh $t4, 22($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (22)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3AB34u); return; } cpu->gpr[12] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -153271,6 +186313,9 @@ label_BFC3AB34: /* 0xBFC3AB4C: 306300FF andi $v1, $v1, 0xFF */ cpu->gpr[3] = cpu->gpr[3] & 0xFFu; label_BFC3AB50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AB50: 24420001 addiu $v0, $v0, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (1)); @@ -153287,6 +186332,9 @@ label_BFC3AB50: /* nop */ if (psx_taken_BFC3AB60) goto label_BFC3AAF4; label_BFC3AB68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AB68: 03E00008 jr $ra */ /* 0xBFC3AB6C: 00601021 addu $v0, $v1, $zero */ @@ -153297,6 +186345,9 @@ label_BFC3AB68: void func_1FC3AB70(CPUState* cpu) { debug_server_log_call_entry(0x1FC3AB70u); label_BFC3AB70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AB70: 3C02800E lui $v0, 0x800E */ cpu->gpr[2] = 0x800E0000u; @@ -153335,6 +186386,9 @@ label_BFC3AB70: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4620)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3ABB0u); return; } g_debug_last_store_pc = 0xBFC3ABB0u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[3] & 0xFFFFu)); } if (psx_taken_BFC3ABAC) goto label_BFC3ABF4; label_BFC3ABB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ABB4: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -153357,10 +186411,16 @@ label_BFC3ABB4: cpu->gpr[1] = cpu->gpr[9] + cpu->gpr[0]; if (psx_taken_BFC3ABD0) goto label_BFC3ABDC; label_BFC3ABD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ABD8: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC3ABDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ABDC: 00015043 sra $t2, $at, 1 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -153377,6 +186437,9 @@ label_BFC3ABDC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[24] + (6)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3ABF0u); return; } g_debug_last_store_pc = 0xBFC3ABF0u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[13] & 0xFFFFu)); } if (psx_taken_BFC3ABEC) goto label_BFC3AC34; label_BFC3ABF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ABF4: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -153399,10 +186462,16 @@ label_BFC3ABF4: cpu->gpr[1] = cpu->gpr[9] + cpu->gpr[0]; if (psx_taken_BFC3AC10) goto label_BFC3AC1C; label_BFC3AC18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AC18: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC3AC1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AC1C: 00015043 sra $t2, $at, 1 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -153417,6 +186486,9 @@ label_BFC3AC1C: /* 0xBFC3AC30: A5AC0006 sh $t4, 6($t5) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[13] + (6)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3AC30u); return; } g_debug_last_store_pc = 0xBFC3AC30u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[12] & 0xFFFFu)); } label_BFC3AC34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(26u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AC34: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -153475,6 +186547,9 @@ label_BFC3AC34: void func_1FC3AC9C(CPUState* cpu) { debug_server_log_call_entry(0x1FC3AC9Cu); label_BFC3AC9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AC9C: 00042400 sll $a0, $a0, 16 */ cpu->gpr[4] = cpu->gpr[4] << 16u; @@ -153489,6 +186564,9 @@ label_BFC3AC9C: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] >> 16u); if (psx_taken_BFC3ACA8) goto label_BFC3ACE8; label_BFC3ACB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ACB0: 0480000D bltz $a0, 0xBFC3ACE8 */ uint32_t psx_brA_BFC3ACB0 = cpu->gpr[4]; @@ -153497,6 +186575,9 @@ label_BFC3ACB0: /* nop */ if (psx_taken_BFC3ACB0) goto label_BFC3ACE8; label_BFC3ACB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ACB8: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -153513,6 +186594,9 @@ label_BFC3ACB8: /* nop */ if (psx_taken_BFC3ACC8) goto label_BFC3ACE8; label_BFC3ACD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ACD0: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -153529,12 +186613,18 @@ label_BFC3ACD0: cpu->gpr[24] = cpu->gpr[4] << 2u; if (psx_taken_BFC3ACE0) goto label_BFC3ACF4; label_BFC3ACE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ACE8: 03E00008 jr $ra */ /* 0xBFC3ACEC: 2402FFFF addiu $v0, $zero, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); return; label_BFC3ACF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(29u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ACF4: 3C19800E lui $t9, 0x800E */ cpu->gpr[25] = 0x800E0000u; @@ -153613,6 +186703,9 @@ void func_1FC3AD68(CPUState* cpu) { } } label_BFC3AD68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AD68: 27BDFE90 addiu $sp, $sp, -368 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-368)); @@ -153644,6 +186737,9 @@ label_BFC3AD68: cpu->gpr[31] = 0x80052DA0u; psx_dispatch(cpu, 0x80052C9Cu); label_BFC3ADA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ADA0: 10400003 beq $v0, $zero, 0xBFC3ADB0 */ uint32_t psx_brA_BFC3ADA0 = cpu->gpr[2]; uint32_t psx_brB_BFC3ADA0 = cpu->gpr[0]; @@ -153652,6 +186748,9 @@ label_BFC3ADA0: /* nop */ if (psx_taken_BFC3ADA0) goto label_BFC3ADB0; label_BFC3ADA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ADA8: 100000A4 beq $zero, $zero, 0xBFC3B03C */ uint32_t psx_brA_BFC3ADA8 = cpu->gpr[0]; uint32_t psx_brB_BFC3ADA8 = cpu->gpr[0]; @@ -153660,6 +186759,9 @@ label_BFC3ADA8: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3ADA8) goto label_BFC3B03C; label_BFC3ADB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(33u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ADB0: AFB30050 sw $s3, 80($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (80)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3ADB0u); return; } g_debug_last_store_pc = 0xBFC3ADB0u; cpu->write_word(psx_addr, cpu->gpr[19]); } @@ -153730,6 +186832,9 @@ label_BFC3ADB0: /* nop */ if (psx_taken_BFC3AE2C) goto label_BFC3AE48; label_BFC3AE34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AE34: 8FB30050 lw $s3, 80($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (80)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3AE34u); return; } cpu->gpr[19] = cpu->read_word(psx_addr); } @@ -153744,6 +186849,9 @@ label_BFC3AE34: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3AE40) goto label_BFC3B03C; label_BFC3AE48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AE48: 14600008 bne $v1, $zero, 0xBFC3AE6C */ uint32_t psx_brA_BFC3AE48 = cpu->gpr[3]; uint32_t psx_brB_BFC3AE48 = cpu->gpr[0]; @@ -153752,6 +186860,9 @@ label_BFC3AE48: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (104)); if (psx_taken_BFC3AE48) goto label_BFC3AE6C; label_BFC3AE50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AE50: 02202021 addu $a0, $s1, $zero */ cpu->gpr[4] = cpu->gpr[17] + cpu->gpr[0]; @@ -153763,6 +186874,9 @@ label_BFC3AE50: cpu->gpr[31] = 0x80052E60u; psx_dispatch(cpu, 0x80053054u); label_BFC3AE60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AE60: 10000072 beq $zero, $zero, 0xBFC3B02C */ uint32_t psx_brA_BFC3AE60 = cpu->gpr[0]; uint32_t psx_brB_BFC3AE60 = cpu->gpr[0]; @@ -153771,10 +186885,16 @@ label_BFC3AE60: cpu->gpr[2] = cpu->gpr[23] + cpu->gpr[0]; if (psx_taken_BFC3AE60) goto label_BFC3B02C; label_BFC3AE68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AE68: 27A40068 addiu $a0, $sp, 104 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (104)); label_BFC3AE6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AE6C: 0C014AB1 jal 0xB0052AC4 */ /* 0xBFC3AE70: 27A500E8 addiu $a1, $sp, 232 */ @@ -153782,6 +186902,9 @@ label_BFC3AE6C: cpu->gpr[31] = 0x80052E74u; psx_dispatch(cpu, 0x80052AC4u); label_BFC3AE74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AE74: 304C00FF andi $t4, $v0, 0xFF */ cpu->gpr[12] = cpu->gpr[2] & 0xFFu; @@ -153794,6 +186917,9 @@ label_BFC3AE74: cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3AE7C) goto label_BFC3B028; label_BFC3AE84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AE84: AFB4003C sw $s4, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3AE84u); return; } g_debug_last_store_pc = 0xBFC3AE84u; cpu->write_word(psx_addr, cpu->gpr[20]); } @@ -153818,6 +186944,9 @@ label_BFC3AE84: /* 0xBFC3AEAC: 27AD0170 addiu $t5, $sp, 368 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[29] + (368)); label_BFC3AEB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(37u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AEB0: 020D7021 addu $t6, $s0, $t5 */ cpu->gpr[14] = cpu->gpr[16] + cpu->gpr[13]; @@ -153895,6 +187024,9 @@ label_BFC3AEB0: cpu->gpr[31] = 0x80052F44u; psx_dispatch(cpu, 0x8005244Cu); label_BFC3AF44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AF44: 3C0C800E lui $t4, 0x800E */ cpu->gpr[12] = 0x800E0000u; @@ -153917,6 +187049,9 @@ label_BFC3AF44: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3AF60) goto label_BFC3AF70; label_BFC3AF68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AF68: 10000026 beq $zero, $zero, 0xBFC3B004 */ uint32_t psx_brA_BFC3AF68 = cpu->gpr[0]; uint32_t psx_brB_BFC3AF68 = cpu->gpr[0]; @@ -153925,6 +187060,9 @@ label_BFC3AF68: g_debug_last_store_pc = 0xBFC3AF6Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[1] + (-4635)), (uint8_t)(cpu->gpr[17] & 0xFFu)); if (psx_taken_BFC3AF68) goto label_BFC3B004; label_BFC3AF70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(26u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AF70: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -153980,6 +187118,9 @@ label_BFC3AF70: cpu->gpr[31] = 0x80052FD8u; psx_dispatch(cpu, 0x80052B70u); label_BFC3AFD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AFD8: 0C014A7B jal 0xB00529EC */ /* 0xBFC3AFDC: 00000000 nop */ @@ -153987,6 +187128,9 @@ label_BFC3AFD8: cpu->gpr[31] = 0x80052FE0u; psx_dispatch(cpu, 0x800529ECu); label_BFC3AFE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AFE0: 02402021 addu $a0, $s2, $zero */ cpu->gpr[4] = cpu->gpr[18] + cpu->gpr[0]; @@ -153996,6 +187140,9 @@ label_BFC3AFE0: cpu->gpr[31] = 0x80052FECu; psx_dispatch(cpu, 0x80052638u); label_BFC3AFEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3AFEC: 3C19800E lui $t9, 0x800E */ cpu->gpr[25] = 0x800E0000u; @@ -154010,6 +187157,9 @@ label_BFC3AFEC: /* 0xBFC3B000: 0159B825 or $s7, $t2, $t9 */ cpu->gpr[23] = cpu->gpr[10] | cpu->gpr[25]; label_BFC3B004: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B004: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -154024,6 +187174,9 @@ label_BFC3B004: cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[29] + (368)); if (psx_taken_BFC3B010) goto label_BFC3AEB0; label_BFC3B018: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B018: 8FB4003C lw $s4, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B018u); return; } cpu->gpr[20] = cpu->read_word(psx_addr); } @@ -154034,10 +187187,16 @@ label_BFC3B018: /* 0xBFC3B024: 00000000 nop */ /* nop */ label_BFC3B028: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B028: 02E01021 addu $v0, $s7, $zero */ cpu->gpr[2] = cpu->gpr[23] + cpu->gpr[0]; label_BFC3B02C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B02C: 8FB7004C lw $s7, 76($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (76)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B02Cu); return; } cpu->gpr[23] = cpu->read_word(psx_addr); } @@ -154048,6 +187207,9 @@ label_BFC3B02C: /* 0xBFC3B038: 00000000 nop */ /* nop */ label_BFC3B03C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B03C: 8FBF002C lw $ra, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B03Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -154074,6 +187236,9 @@ void func_1FC3B054(CPUState* cpu) { } } label_BFC3B054: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(21u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B054: 27BDFFB0 addiu $sp, $sp, -80 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-80)); @@ -154120,6 +187285,9 @@ label_BFC3B054: cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3B0A0) goto label_BFC3B134; label_BFC3B0A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B0A8: AFB3003C sw $s3, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B0A8u); return; } g_debug_last_store_pc = 0xBFC3B0A8u; cpu->write_word(psx_addr, cpu->gpr[19]); } @@ -154130,6 +187298,9 @@ label_BFC3B0A8: /* 0xBFC3B0B4: 00107080 sll $t6, $s0, 2 */ cpu->gpr[14] = cpu->gpr[16] << 2u; label_BFC3B0B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B0B8: 01D07023 subu $t6, $t6, $s0 */ cpu->gpr[14] = cpu->gpr[14] - cpu->gpr[16]; @@ -154148,6 +187319,9 @@ label_BFC3B0B8: /* nop */ if (psx_taken_BFC3B0CC) goto label_BFC3B118; label_BFC3B0D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B0D4: 8458000E lh $t8, 14($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (14)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B0D4u); return; } cpu->gpr[24] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -154160,6 +187334,9 @@ label_BFC3B0D4: /* nop */ if (psx_taken_BFC3B0DC) goto label_BFC3B118; label_BFC3B0E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B0E4: 8459000A lh $t9, 10($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (10)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B0E4u); return; } cpu->gpr[25] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -154172,6 +187349,9 @@ label_BFC3B0E4: /* nop */ if (psx_taken_BFC3B0EC) goto label_BFC3B118; label_BFC3B0F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B0F4: 84480012 lh $t0, 18($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (18)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B0F4u); return; } cpu->gpr[8] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -154184,6 +187364,9 @@ label_BFC3B0F4: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3B0FC) goto label_BFC3B118; label_BFC3B104: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B104: A430EDF0 sh $s0, -4624($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4624)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B104u); return; } g_debug_last_store_pc = 0xBFC3B104u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[16] & 0xFFFFu)); } @@ -154193,12 +187376,18 @@ label_BFC3B104: cpu->gpr[31] = 0x80053110u; psx_dispatch(cpu, 0x8005295Cu); label_BFC3B110: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B110: 26310001 addiu $s1, $s1, 1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); /* 0xBFC3B114: 323100FF andi $s1, $s1, 0xFF */ cpu->gpr[17] = cpu->gpr[17] & 0xFFu; label_BFC3B118: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B118: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -154213,12 +187402,18 @@ label_BFC3B118: cpu->gpr[14] = cpu->gpr[16] << 2u; if (psx_taken_BFC3B124) goto label_BFC3B0B8; label_BFC3B12C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B12C: 8FB3003C lw $s3, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B12Cu); return; } cpu->gpr[19] = cpu->read_word(psx_addr); } /* 0xBFC3B130: 00000000 nop */ /* nop */ label_BFC3B134: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B134: 8FBF0034 lw $ra, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B134u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -154247,6 +187442,9 @@ label_BFC3B134: void func_1FC3B160(CPUState* cpu) { debug_server_log_call_entry(0x1FC3B160u); label_BFC3B160: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B160: 3C03800E lui $v1, 0x800E */ cpu->gpr[3] = 0x800E0000u; @@ -154261,12 +187459,18 @@ label_BFC3B160: /* nop */ if (psx_taken_BFC3B16C) goto label_BFC3B1B8; label_BFC3B174: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B174: 3C04800E lui $a0, 0x800E */ cpu->gpr[4] = 0x800E0000u; /* 0xBFC3B178: 2484EA68 addiu $a0, $a0, -5528 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (-5528)); label_BFC3B17C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B17C: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -154301,6 +187505,9 @@ label_BFC3B17C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[10] + (6)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B1B4u); return; } g_debug_last_store_pc = 0xBFC3B1B4u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[8] & 0xFFFFu)); } if (psx_taken_BFC3B1B0) goto label_BFC3B17C; label_BFC3B1B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(54u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B1B8: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -154424,6 +187631,9 @@ void func_1FC3B30C(CPUState* cpu) { } } label_BFC3B30C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B30C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -154437,6 +187647,9 @@ label_BFC3B30C: cpu->gpr[31] = 0x80053320u; psx_dispatch(cpu, 0x80053368u); label_BFC3B320: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B320: 00027400 sll $t6, $v0, 16 */ cpu->gpr[14] = cpu->gpr[2] << 16u; @@ -154453,6 +187666,9 @@ label_BFC3B320: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] >> 16u); if (psx_taken_BFC3B330) goto label_BFC3B358; label_BFC3B338: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B338: 0005C080 sll $t8, $a1, 2 */ cpu->gpr[24] = cpu->gpr[5] << 2u; @@ -154468,12 +187684,18 @@ label_BFC3B338: cpu->gpr[31] = 0x80053350u; psx_dispatch(cpu, 0x8005385Cu); label_BFC3B350: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B350: 00022C00 sll $a1, $v0, 16 */ cpu->gpr[5] = cpu->gpr[2] << 16u; /* 0xBFC3B354: 00052C03 sra $a1, $a1, 16 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] >> 16u); label_BFC3B358: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B358: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B358u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -154504,6 +187726,9 @@ void func_1FC3B368(CPUState* cpu) { } } label_BFC3B368: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B368: 27BDFBB8 addiu $sp, $sp, -1096 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-1096)); @@ -154523,6 +187748,9 @@ label_BFC3B368: cpu->gpr[31] = 0x80053388u; psx_dispatch(cpu, 0x800560E8u); label_BFC3B388: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B388: 24050001 addiu $a1, $zero, 1 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -154537,6 +187765,9 @@ label_BFC3B388: /* nop */ if (psx_taken_BFC3B394) goto label_BFC3B3A4; label_BFC3B39C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B39C: 1000012B beq $zero, $zero, 0xBFC3B84C */ uint32_t psx_brA_BFC3B39C = cpu->gpr[0]; uint32_t psx_brB_BFC3B39C = cpu->gpr[0]; @@ -154545,6 +187776,9 @@ label_BFC3B39C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3B39C) goto label_BFC3B84C; label_BFC3B3A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B3A4: AFA70448 sw $a3, 1096($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (1096)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B3A4u); return; } g_debug_last_store_pc = 0xBFC3B3A4u; cpu->write_word(psx_addr, cpu->gpr[7]); } @@ -154556,6 +187790,9 @@ label_BFC3B3A4: cpu->gpr[31] = 0x800533B4u; psx_dispatch(cpu, 0x800560C0u); label_BFC3B3B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B3B4: 87A9044C lh $t1, 1100($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (1100)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B3B4u); return; } cpu->gpr[9] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -154568,6 +187805,9 @@ label_BFC3B3B4: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC3B3BC) goto label_BFC3B3D4; label_BFC3B3C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B3C4: 0C015830 jal 0xB00560C0 */ /* 0xBFC3B3C8: 00002021 addu $a0, $zero, $zero */ @@ -154575,6 +187815,9 @@ label_BFC3B3C4: cpu->gpr[31] = 0x800533CCu; psx_dispatch(cpu, 0x800560C0u); label_BFC3B3CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B3CC: 1000011F beq $zero, $zero, 0xBFC3B84C */ uint32_t psx_brA_BFC3B3CC = cpu->gpr[0]; uint32_t psx_brB_BFC3B3CC = cpu->gpr[0]; @@ -154583,6 +187826,9 @@ label_BFC3B3CC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3B3CC) goto label_BFC3B84C; label_BFC3B3D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B3D4: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -154593,6 +187839,9 @@ label_BFC3B3D4: /* nop */ if (psx_taken_BFC3B3D8) goto label_BFC3B444; label_BFC3B3E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B3E0: 3C02800E lui $v0, 0x800E */ cpu->gpr[2] = 0x800E0000u; @@ -154601,6 +187850,9 @@ label_BFC3B3E0: /* 0xBFC3B3E8: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; label_BFC3B3EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B3EC: 904E0000 lbu $t6, 0($v0) */ cpu->gpr[14] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[2] + (0))); @@ -154613,6 +187865,9 @@ label_BFC3B3EC: /* nop */ if (psx_taken_BFC3B3F4) goto label_BFC3B424; label_BFC3B3FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B3FC: 240F0001 addiu $t7, $zero, 1 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -154637,6 +187892,9 @@ label_BFC3B3FC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4688)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B420u); return; } g_debug_last_store_pc = 0xBFC3B420u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[25] & 0xFFFFu)); } if (psx_taken_BFC3B41C) goto label_BFC3B438; label_BFC3B424: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B424: 24630001 addiu $v1, $v1, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1)); @@ -154647,12 +187905,18 @@ label_BFC3B424: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (1)); if (psx_taken_BFC3B428) goto label_BFC3B3EC; label_BFC3B430: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B430: 87AA0440 lh $t2, 1088($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (1088)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B430u); return; } cpu->gpr[10] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } /* 0xBFC3B434: 00000000 nop */ /* nop */ label_BFC3B438: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B438: 3C0B800E lui $t3, 0x800E */ cpu->gpr[11] = 0x800E0000u; @@ -154663,6 +187927,9 @@ label_BFC3B438: cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[11] + (-4686)); if (psx_taken_BFC3B43C) goto label_BFC3B490; label_BFC3B444: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B444: 3C0B800E lui $t3, 0x800E */ cpu->gpr[11] = 0x800E0000u; @@ -154681,6 +187948,9 @@ label_BFC3B444: cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC3B458) goto label_BFC3B470; label_BFC3B460: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B460: 87AA0440 lh $t2, 1088($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (1088)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B460u); return; } cpu->gpr[10] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -154691,10 +187961,16 @@ label_BFC3B460: /* nop */ if (psx_taken_BFC3B464) goto label_BFC3B490; label_BFC3B46C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B46C: 240D0001 addiu $t5, $zero, 1 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC3B470: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B470: A04D0000 sb $t5, 0($v0) */ g_debug_last_store_pc = 0xBFC3B470u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[2] + (0)), (uint8_t)(cpu->gpr[13] & 0xFFu)); @@ -154713,6 +187989,9 @@ label_BFC3B470: /* 0xBFC3B48C: 000A5403 sra $t2, $t2, 16 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[10] >> 16u); label_BFC3B490: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B490: 1940000D blez $t2, 0xBFC3B4C8 */ uint32_t psx_brA_BFC3B490 = cpu->gpr[10]; @@ -154721,6 +188000,9 @@ label_BFC3B490: cpu->gpr[13] = cpu->gpr[10] << 2u; if (psx_taken_BFC3B490) goto label_BFC3B4C8; label_BFC3B498: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B498: 0169C021 addu $t8, $t3, $t1 */ cpu->gpr[24] = cpu->gpr[11] + cpu->gpr[9]; @@ -154732,6 +188014,9 @@ label_BFC3B498: cpu->gpr[31] = 0x800534A8u; psx_dispatch(cpu, 0x800560C0u); label_BFC3B4A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B4A8: 3C19800E lui $t9, 0x800E */ cpu->gpr[25] = 0x800E0000u; @@ -154750,10 +188035,16 @@ label_BFC3B4A8: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3B4BC) goto label_BFC3B84C; label_BFC3B4C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B4C4: 000A6880 sll $t5, $t2, 2 */ cpu->gpr[13] = cpu->gpr[10] << 2u; label_BFC3B4C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B4C8: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -154778,6 +188069,9 @@ label_BFC3B4C8: cpu->gpr[1] = 0x56410000u; if (psx_taken_BFC3B4E8) goto label_BFC3B528; label_BFC3B4F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B4F0: 34214270 ori $at, $at, 0x4270 */ cpu->gpr[1] = cpu->gpr[1] | 0x4270u; @@ -154788,6 +188082,9 @@ label_BFC3B4F0: /* nop */ if (psx_taken_BFC3B4F4) goto label_BFC3B528; label_BFC3B4FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B4FC: 01697021 addu $t6, $t3, $t1 */ cpu->gpr[14] = cpu->gpr[11] + cpu->gpr[9]; @@ -154799,6 +188096,9 @@ label_BFC3B4FC: cpu->gpr[31] = 0x8005350Cu; psx_dispatch(cpu, 0x800560C0u); label_BFC3B50C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B50C: 3C0F800E lui $t7, 0x800E */ cpu->gpr[15] = 0x800E0000u; @@ -154817,6 +188117,9 @@ label_BFC3B50C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3B520) goto label_BFC3B84C; label_BFC3B528: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B528: 10430007 beq $v0, $v1, 0xBFC3B548 */ uint32_t psx_brA_BFC3B528 = cpu->gpr[2]; uint32_t psx_brB_BFC3B528 = cpu->gpr[3]; @@ -154825,6 +188128,9 @@ label_BFC3B528: cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[0] + (64)); if (psx_taken_BFC3B528) goto label_BFC3B548; label_BFC3B530: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B530: 8CF90004 lw $t9, 4($a3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[7] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B530u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -154839,10 +188145,16 @@ label_BFC3B530: cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (128)); if (psx_taken_BFC3B53C) goto label_BFC3B558; label_BFC3B544: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B544: 240C0040 addiu $t4, $zero, 64 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[0] + (64)); label_BFC3B548: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B548: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -154853,16 +188165,25 @@ label_BFC3B548: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-27152)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B550u); return; } g_debug_last_store_pc = 0xBFC3B550u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[12] & 0xFFFFu)); } if (psx_taken_BFC3B54C) goto label_BFC3B560; label_BFC3B554: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B554: 240D0080 addiu $t5, $zero, 128 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (128)); label_BFC3B558: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B558: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; /* 0xBFC3B55C: A42D95F0 sh $t5, -27152($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-27152)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B55Cu); return; } g_debug_last_store_pc = 0xBFC3B55Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[13] & 0xFFFFu)); } label_BFC3B560: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B560: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -154881,6 +188202,9 @@ label_BFC3B560: cpu->gpr[25] = cpu->gpr[10] << 2u; if (psx_taken_BFC3B574) goto label_BFC3B5AC; label_BFC3B57C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B57C: 01697021 addu $t6, $t3, $t1 */ cpu->gpr[14] = cpu->gpr[11] + cpu->gpr[9]; @@ -154892,6 +188216,9 @@ label_BFC3B57C: cpu->gpr[31] = 0x8005358Cu; psx_dispatch(cpu, 0x800560C0u); label_BFC3B58C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B58C: 3C0F800E lui $t7, 0x800E */ cpu->gpr[15] = 0x800E0000u; @@ -154910,10 +188237,16 @@ label_BFC3B58C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3B5A0) goto label_BFC3B84C; label_BFC3B5A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B5A8: 000AC880 sll $t9, $t2, 2 */ cpu->gpr[25] = cpu->gpr[10] << 2u; label_BFC3B5AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B5AC: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -154944,6 +188277,9 @@ label_BFC3B5AC: cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3B5D8) goto label_BFC3B634; label_BFC3B5E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B5E0: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -154952,6 +188288,9 @@ label_BFC3B5E0: /* 0xBFC3B5E8: 00000000 nop */ /* nop */ label_BFC3B5EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B5EC: AC450008 sw $a1, 8($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B5ECu); return; } g_debug_last_store_pc = 0xBFC3B5ECu; cpu->write_word(psx_addr, cpu->gpr[5]); } @@ -154974,10 +188313,16 @@ label_BFC3B5EC: /* nop */ if (psx_taken_BFC3B608) goto label_BFC3B614; label_BFC3B610: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B610: 24A50001 addiu $a1, $a1, 1 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (1)); label_BFC3B614: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B614: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -154994,12 +188339,18 @@ label_BFC3B614: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (16)); if (psx_taken_BFC3B624) goto label_BFC3B5EC; label_BFC3B62C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B62C: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; /* 0xBFC3B630: 00002821 addu $a1, $zero, $zero */ cpu->gpr[5] = cpu->gpr[0] + cpu->gpr[0]; label_BFC3B634: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B634: 000A6080 sll $t4, $t2, 2 */ cpu->gpr[12] = cpu->gpr[10] << 2u; @@ -155028,6 +188379,9 @@ label_BFC3B634: /* 0xBFC3B664: 24070100 addiu $a3, $zero, 256 */ cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[0] + (256)); label_BFC3B668: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B668: 0103082B sltu $at, $t0, $v1 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[8] < cpu->gpr[3] ? 1 : 0); @@ -155038,6 +188392,9 @@ label_BFC3B668: /* nop */ if (psx_taken_BFC3B66C) goto label_BFC3B6B8; label_BFC3B674: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B674: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -155060,6 +188417,9 @@ label_BFC3B674: cpu->gpr[4] = cpu->gpr[24] + cpu->gpr[25]; if (psx_taken_BFC3B690) goto label_BFC3B6A4; label_BFC3B698: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B698: 00027880 sll $t7, $v0, 2 */ cpu->gpr[15] = cpu->gpr[2] << 2u; @@ -155070,12 +188430,18 @@ label_BFC3B698: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (-1048)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B6A0u); return; } g_debug_last_store_pc = 0xBFC3B6A0u; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC3B69C) goto label_BFC3B6AC; label_BFC3B6A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B6A4: 000268C0 sll $t5, $v0, 3 */ cpu->gpr[13] = cpu->gpr[2] << 3u; /* 0xBFC3B6A8: AC8DFBE8 sw $t5, -1048($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (-1048)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B6A8u); return; } g_debug_last_store_pc = 0xBFC3B6A8u; cpu->write_word(psx_addr, cpu->gpr[13]); } label_BFC3B6AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B6AC: 8C98FBE8 lw $t8, -1048($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (-1048)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B6ACu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -155084,6 +188450,9 @@ label_BFC3B6AC: /* 0xBFC3B6B4: 00B82821 addu $a1, $a1, $t8 */ cpu->gpr[5] = cpu->gpr[5] + cpu->gpr[24]; label_BFC3B6B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B6B8: 24630001 addiu $v1, $v1, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1)); @@ -155094,6 +188463,9 @@ label_BFC3B6B8: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (2)); if (psx_taken_BFC3B6BC) goto label_BFC3B668; label_BFC3B6C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B6C4: AFA50028 sw $a1, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B6C4u); return; } g_debug_last_store_pc = 0xBFC3B6C4u; cpu->write_word(psx_addr, cpu->gpr[5]); } @@ -155117,6 +188489,9 @@ label_BFC3B6C4: cpu->gpr[31] = 0x800536ECu; psx_dispatch(cpu, 0x80056390u); label_BFC3B6EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B6EC: 8FA50028 lw $a1, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B6ECu); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -155137,6 +188512,9 @@ label_BFC3B6EC: cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[11] + (-4686)); if (psx_taken_BFC3B704) goto label_BFC3B738; label_BFC3B70C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B70C: 01696021 addu $t4, $t3, $t1 */ cpu->gpr[12] = cpu->gpr[11] + cpu->gpr[9]; @@ -155148,6 +188526,9 @@ label_BFC3B70C: cpu->gpr[31] = 0x8005371Cu; psx_dispatch(cpu, 0x800560C0u); label_BFC3B71C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B71C: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -155166,6 +188547,9 @@ label_BFC3B71C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3B730) goto label_BFC3B84C; label_BFC3B738: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B738: 3C010008 lui $at, 0x8 */ cpu->gpr[1] = 0x00080000u; @@ -155182,6 +188566,9 @@ label_BFC3B738: cpu->gpr[14] = cpu->gpr[10] << 2u; if (psx_taken_BFC3B748) goto label_BFC3B780; label_BFC3B750: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B750: 0169C021 addu $t8, $t3, $t1 */ cpu->gpr[24] = cpu->gpr[11] + cpu->gpr[9]; @@ -155193,6 +188580,9 @@ label_BFC3B750: cpu->gpr[31] = 0x80053760u; psx_dispatch(cpu, 0x800560C0u); label_BFC3B760: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B760: 3C19800E lui $t9, 0x800E */ cpu->gpr[25] = 0x800E0000u; @@ -155211,10 +188601,16 @@ label_BFC3B760: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3B774) goto label_BFC3B84C; label_BFC3B77C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B77C: 000A7080 sll $t6, $t2, 2 */ cpu->gpr[14] = cpu->gpr[10] << 2u; label_BFC3B780: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B780: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -155229,6 +188625,9 @@ label_BFC3B780: /* 0xBFC3B794: 27A40448 addiu $a0, $sp, 1096 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[29] + (1096)); label_BFC3B798: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B798: 8C8FFBE8 lw $t7, -1048($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (-1048)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B798u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -155243,6 +188642,9 @@ label_BFC3B798: cpu->gpr[13] = cpu->gpr[3] & 0x1u; if (psx_taken_BFC3B7A4) goto label_BFC3B7B8; label_BFC3B7AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B7AC: 11A00002 beq $t5, $zero, 0xBFC3B7B8 */ uint32_t psx_brA_BFC3B7AC = cpu->gpr[13]; uint32_t psx_brB_BFC3B7AC = cpu->gpr[0]; @@ -155251,10 +188653,16 @@ label_BFC3B7AC: /* nop */ if (psx_taken_BFC3B7AC) goto label_BFC3B7B8; label_BFC3B7B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B7B4: 25ADFFFE addiu $t5, $t5, -2 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[13] + (-2)); label_BFC3B7B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B7B8: 15A0000D bne $t5, $zero, 0xBFC3B7F0 */ uint32_t psx_brA_BFC3B7B8 = cpu->gpr[13]; uint32_t psx_brB_BFC3B7B8 = cpu->gpr[0]; @@ -155263,6 +188671,9 @@ label_BFC3B7B8: /* nop */ if (psx_taken_BFC3B7B8) goto label_BFC3B7F0; label_BFC3B7C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B7C0: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -155279,10 +188690,16 @@ label_BFC3B7C0: cpu->gpr[1] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC3B7D0) goto label_BFC3B7DC; label_BFC3B7D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B7D8: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC3B7DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B7DC: 00017043 sra $t6, $at, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -155297,6 +188714,9 @@ label_BFC3B7DC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[13] + (12)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B7ECu); return; } g_debug_last_store_pc = 0xBFC3B7ECu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[25] & 0xFFFFu)); } if (psx_taken_BFC3B7E8) goto label_BFC3B81C; label_BFC3B7F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B7F0: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -155313,10 +188733,16 @@ label_BFC3B7F0: cpu->gpr[1] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC3B800) goto label_BFC3B80C; label_BFC3B808: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B808: 24210001 addiu $at, $at, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[1] + (1)); label_BFC3B80C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B80C: 00017843 sra $t7, $at, 1 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[1] >> 1u); @@ -155327,6 +188753,9 @@ label_BFC3B80C: /* 0xBFC3B818: A5AE000E sh $t6, 14($t5) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[13] + (14)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B818u); return; } g_debug_last_store_pc = 0xBFC3B818u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[14] & 0xFFFFu)); } label_BFC3B81C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B81C: 24630001 addiu $v1, $v1, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (1)); @@ -155339,6 +188768,9 @@ label_BFC3B81C: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (4)); if (psx_taken_BFC3B824) goto label_BFC3B798; label_BFC3B82C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B82C: 000AC080 sll $t8, $t2, 2 */ cpu->gpr[24] = cpu->gpr[10] << 2u; @@ -155357,6 +188789,9 @@ label_BFC3B82C: /* 0xBFC3B848: 01401021 addu $v0, $t2, $zero */ cpu->gpr[2] = cpu->gpr[10] + cpu->gpr[0]; label_BFC3B84C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B84C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B84Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -155381,6 +188816,9 @@ void func_1FC3B85C(CPUState* cpu) { } } label_BFC3B85C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B85C: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -155401,6 +188839,9 @@ label_BFC3B85C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B878u); return; } g_debug_last_store_pc = 0xBFC3B878u; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC3B874) goto label_BFC3B884; label_BFC3B87C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B87C: 06010003 bgez $s0, 0xBFC3B88C */ uint32_t psx_brA_BFC3B87C = cpu->gpr[16]; @@ -155409,6 +188850,9 @@ label_BFC3B87C: /* nop */ if (psx_taken_BFC3B87C) goto label_BFC3B88C; label_BFC3B884: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B884: 10000029 beq $zero, $zero, 0xBFC3B92C */ uint32_t psx_brA_BFC3B884 = cpu->gpr[0]; uint32_t psx_brB_BFC3B884 = cpu->gpr[0]; @@ -155417,6 +188861,9 @@ label_BFC3B884: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3B884) goto label_BFC3B92C; label_BFC3B88C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B88C: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -155435,6 +188882,9 @@ label_BFC3B88C: cpu->gpr[24] = cpu->gpr[16] << 2u; if (psx_taken_BFC3B8A0) goto label_BFC3B8B4; label_BFC3B8A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B8A8: 10000020 beq $zero, $zero, 0xBFC3B92C */ uint32_t psx_brA_BFC3B8A8 = cpu->gpr[0]; uint32_t psx_brB_BFC3B8A8 = cpu->gpr[0]; @@ -155443,10 +188893,16 @@ label_BFC3B8A8: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3B8A8) goto label_BFC3B92C; label_BFC3B8B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B8B0: 0010C080 sll $t8, $s0, 2 */ cpu->gpr[24] = cpu->gpr[16] << 2u; label_BFC3B8B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B8B4: 3C19800E lui $t9, 0x800E */ cpu->gpr[25] = 0x800E0000u; @@ -155464,6 +188920,9 @@ label_BFC3B8B4: cpu->gpr[31] = 0x800538D0u; psx_dispatch(cpu, 0x80055F20u); label_BFC3B8D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B8D0: 8FA40034 lw $a0, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B8D0u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -155473,6 +188932,9 @@ label_BFC3B8D0: cpu->gpr[31] = 0x800538DCu; psx_dispatch(cpu, 0x80055F90u); label_BFC3B8DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B8DC: 3C09800E lui $t1, 0x800E */ cpu->gpr[9] = 0x800E0000u; @@ -155492,6 +188954,9 @@ label_BFC3B8DC: cpu->gpr[31] = 0x800538FCu; psx_dispatch(cpu, 0x80055ED0u); label_BFC3B8FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B8FC: 8FA30028 lw $v1, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B8FCu); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -155508,6 +188973,9 @@ label_BFC3B8FC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B910u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } if (psx_taken_BFC3B90C) goto label_BFC3B920; label_BFC3B914: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B914: 10000005 beq $zero, $zero, 0xBFC3B92C */ uint32_t psx_brA_BFC3B914 = cpu->gpr[0]; uint32_t psx_brB_BFC3B914 = cpu->gpr[0]; @@ -155516,10 +188984,16 @@ label_BFC3B914: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3B914) goto label_BFC3B92C; label_BFC3B91C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B91C: 8FAC002C lw $t4, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B91Cu); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } label_BFC3B920: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B920: 240B0001 addiu $t3, $zero, 1 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -155528,6 +189002,9 @@ label_BFC3B920: /* 0xBFC3B928: A18B0000 sb $t3, 0($t4) */ g_debug_last_store_pc = 0xBFC3B928u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[12] + (0)), (uint8_t)(cpu->gpr[11] & 0xFFu)); label_BFC3B92C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B92C: 8FBF0024 lw $ra, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B92Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -155550,6 +189027,9 @@ void func_1FC3B93C(CPUState* cpu) { } } label_BFC3B93C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B93C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -155563,6 +189043,9 @@ label_BFC3B93C: cpu->gpr[31] = 0x80053950u; psx_dispatch(cpu, 0x80056020u); label_BFC3B950: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B950: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3B950u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -155579,6 +189062,9 @@ label_BFC3B950: void func_1FC3B964(CPUState* cpu) { debug_server_log_call_entry(0x1FC3B964u); label_BFC3B964: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B964: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -155627,6 +189113,9 @@ label_BFC3B964: cpu->gpr[6] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3B9B4) goto label_BFC3B9CC; label_BFC3B9BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B9BC: 2442FFF0 addiu $v0, $v0, -16 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (-16)); @@ -155637,6 +189126,9 @@ label_BFC3B9BC: /* 0xBFC3B9C8: 00021403 sra $v0, $v0, 16 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] >> 16u); label_BFC3B9CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(32u); +#endif psx_check_interrupts(cpu); /* 0xBFC3B9CC: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -155705,6 +189197,9 @@ label_BFC3B9CC: /* nop */ if (psx_taken_BFC3BA44) goto label_BFC3BA58; label_BFC3BA4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BA4C: 00E52804 sllv $a1, $a1, $a3 */ cpu->gpr[5] = cpu->gpr[5] << (cpu->gpr[7] & 0x1Fu); @@ -155715,6 +189210,9 @@ label_BFC3BA4C: cpu->gpr[5] = cpu->gpr[5] & 0xFFFFu; if (psx_taken_BFC3BA50) goto label_BFC3BA6C; label_BFC3BA58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BA58: 04E10004 bgez $a3, 0xBFC3BA6C */ uint32_t psx_brA_BFC3BA58 = cpu->gpr[7]; @@ -155723,6 +189221,9 @@ label_BFC3BA58: /* nop */ if (psx_taken_BFC3BA58) goto label_BFC3BA6C; label_BFC3BA60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BA60: 0007C023 subu $t8, $zero, $a3 */ cpu->gpr[24] = cpu->gpr[0] - cpu->gpr[7]; @@ -155731,6 +189232,9 @@ label_BFC3BA60: /* 0xBFC3BA68: 30A5FFFF andi $a1, $a1, 0xFFFF */ cpu->gpr[5] = cpu->gpr[5] & 0xFFFFu; label_BFC3BA6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BA6C: 03E00008 jr $ra */ /* 0xBFC3BA70: 00A01021 addu $v0, $a1, $zero */ @@ -155753,6 +189257,9 @@ void func_1FC3BA74(CPUState* cpu) { } } label_BFC3BA74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BA74: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -155774,6 +189281,9 @@ label_BFC3BA74: cpu->gpr[31] = 0x80053A98u; psx_dispatch(cpu, 0x80052C9Cu); label_BFC3BA98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BA98: 87A50040 lh $a1, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3BA98u); return; } cpu->gpr[5] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -155784,6 +189294,9 @@ label_BFC3BA98: /* nop */ if (psx_taken_BFC3BA9C) goto label_BFC3BAAC; label_BFC3BAA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BAA4: 10000082 beq $zero, $zero, 0xBFC3BCB0 */ uint32_t psx_brA_BFC3BAA4 = cpu->gpr[0]; uint32_t psx_brB_BFC3BAA4 = cpu->gpr[0]; @@ -155792,6 +189305,9 @@ label_BFC3BAA4: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3BAA4) goto label_BFC3BCB0; label_BFC3BAAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BAAC: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -155820,6 +189336,9 @@ label_BFC3BAAC: g_debug_last_store_pc = 0xBFC3BAD8u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[1] + (-4635)), (uint8_t)(cpu->gpr[5] & 0xFFu)); if (psx_taken_BFC3BAD4) goto label_BFC3BAF0; label_BFC3BADC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BADC: 24190040 addiu $t9, $zero, 64 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (64)); @@ -155834,6 +189353,9 @@ label_BFC3BADC: g_debug_last_store_pc = 0xBFC3BAECu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[1] + (-4644)), (uint8_t)(cpu->gpr[2] & 0xFFu)); if (psx_taken_BFC3BAE8) goto label_BFC3BB88; label_BFC3BAF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BAF0: 0062082A slt $at, $v1, $v0 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[3] < (int32_t)cpu->gpr[2] ? 1 : 0); @@ -155844,6 +189366,9 @@ label_BFC3BAF0: cpu->gpr[10] = cpu->gpr[2] << 6u; if (psx_taken_BFC3BAF4) goto label_BFC3BB40; label_BFC3BAFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BAFC: 00034180 sll $t0, $v1, 6 */ cpu->gpr[8] = cpu->gpr[3] << 6u; @@ -155858,10 +189383,16 @@ label_BFC3BAFC: /* nop */ if (psx_taken_BFC3BB08) goto label_BFC3BB14; label_BFC3BB10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BB10: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC3BB10u); return; label_BFC3BB14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BB14: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -155872,6 +189403,9 @@ label_BFC3BB14: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC3BB18) goto label_BFC3BB2C; label_BFC3BB20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BB20: 15010002 bne $t0, $at, 0xBFC3BB2C */ uint32_t psx_brA_BFC3BB20 = cpu->gpr[8]; uint32_t psx_brB_BFC3BB20 = cpu->gpr[1]; @@ -155880,10 +189414,16 @@ label_BFC3BB20: /* nop */ if (psx_taken_BFC3BB20) goto label_BFC3BB2C; label_BFC3BB28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BB28: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC3BB28u); return; label_BFC3BB2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BB2C: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -155896,10 +189436,16 @@ label_BFC3BB2C: g_debug_last_store_pc = 0xBFC3BB38u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[1] + (-4644)), (uint8_t)(cpu->gpr[2] & 0xFFu)); if (psx_taken_BFC3BB34) goto label_BFC3BB88; label_BFC3BB3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BB3C: 00025180 sll $t2, $v0, 6 */ cpu->gpr[10] = cpu->gpr[2] << 6u; label_BFC3BB40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BB40: 0143001A div $t2, $v1 */ { int32_t psx_n = (int32_t)cpu->gpr[10]; int32_t psx_d = (int32_t)cpu->gpr[3]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -155920,10 +189466,16 @@ label_BFC3BB40: /* nop */ if (psx_taken_BFC3BB58) goto label_BFC3BB64; label_BFC3BB60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BB60: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC3BB60u); return; label_BFC3BB64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BB64: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -155934,6 +189486,9 @@ label_BFC3BB64: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC3BB68) goto label_BFC3BB7C; label_BFC3BB70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BB70: 15410002 bne $t2, $at, 0xBFC3BB7C */ uint32_t psx_brA_BFC3BB70 = cpu->gpr[10]; uint32_t psx_brB_BFC3BB70 = cpu->gpr[1]; @@ -155942,10 +189497,16 @@ label_BFC3BB70: /* nop */ if (psx_taken_BFC3BB70) goto label_BFC3BB7C; label_BFC3BB78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BB78: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC3BB78u); return; label_BFC3BB7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BB7C: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -155954,6 +189515,9 @@ label_BFC3BB7C: /* 0xBFC3BB84: A023EDDC sb $v1, -4644($at) */ g_debug_last_store_pc = 0xBFC3BB84u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[1] + (-4644)), (uint8_t)(cpu->gpr[3] & 0xFFu)); label_BFC3BB88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BB88: 3C18800E lui $t8, 0x800E */ cpu->gpr[24] = 0x800E0000u; @@ -155996,6 +189560,9 @@ label_BFC3BB88: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3BBCC) goto label_BFC3BBE0; label_BFC3BBD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BBD4: A424EDEE sh $a0, -4626($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4626)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3BBD4u); return; } g_debug_last_store_pc = 0xBFC3BBD4u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[4] & 0xFFFFu)); } @@ -156006,6 +189573,9 @@ label_BFC3BBD4: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3BBD8) goto label_BFC3BCB0; label_BFC3BBE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BBE0: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -156015,6 +189585,9 @@ label_BFC3BBE0: cpu->gpr[31] = 0x80053BECu; psx_dispatch(cpu, 0x8005244Cu); label_BFC3BBEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BBEC: 3C18800E lui $t8, 0x800E */ cpu->gpr[24] = 0x800E0000u; @@ -156035,6 +189608,9 @@ label_BFC3BBEC: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] >> 16u); if (psx_taken_BFC3BC04) goto label_BFC3BC14; label_BFC3BC0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BC0C: 10000028 beq $zero, $zero, 0xBFC3BCB0 */ uint32_t psx_brA_BFC3BC0C = cpu->gpr[0]; uint32_t psx_brB_BFC3BC0C = cpu->gpr[0]; @@ -156043,6 +189619,9 @@ label_BFC3BC0C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3BC0C) goto label_BFC3BCB0; label_BFC3BC14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(30u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BC14: 00034880 sll $t1, $v1, 2 */ cpu->gpr[9] = cpu->gpr[3] << 2u; @@ -156106,6 +189685,9 @@ label_BFC3BC14: cpu->gpr[31] = 0x80053C8Cu; psx_dispatch(cpu, 0x80052B70u); label_BFC3BC8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BC8C: 97A40044 lhu $a0, 68($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (68)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3BC8Cu); return; } cpu->gpr[4] = (uint32_t)cpu->read_half(psx_addr); } @@ -156117,6 +189699,9 @@ label_BFC3BC8C: cpu->gpr[31] = 0x80053C9Cu; psx_dispatch(cpu, 0x80053964u); label_BFC3BC9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BC9C: 24040001 addiu $a0, $zero, 1 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -156126,12 +189711,18 @@ label_BFC3BC9C: cpu->gpr[31] = 0x80053CA8u; psx_dispatch(cpu, 0x80052638u); label_BFC3BCA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BCA8: 87A20034 lh $v0, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3BCA8u); return; } cpu->gpr[2] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } /* 0xBFC3BCAC: 00000000 nop */ /* nop */ label_BFC3BCB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BCB0: 8FBF002C lw $ra, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3BCB0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -156154,6 +189745,9 @@ void func_1FC3BD78(CPUState* cpu) { } } label_BFC3BD78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BD78: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -156165,6 +189759,9 @@ label_BFC3BD78: cpu->gpr[31] = 0x80053D88u; psx_dispatch(cpu, 0x80055870u); label_BFC3BD88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BD88: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3BD88u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -156187,6 +189784,9 @@ void func_1FC3BD98(CPUState* cpu) { } } label_BFC3BD98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BD98: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -156198,6 +189798,9 @@ label_BFC3BD98: cpu->gpr[31] = 0x80053DA8u; psx_dispatch(cpu, 0x80055870u); label_BFC3BDA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BDA8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3BDA8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -156220,6 +189823,9 @@ void func_1FC3BDB8(CPUState* cpu) { } } label_BFC3BDB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BDB8: 00041C00 sll $v1, $a0, 16 */ cpu->gpr[3] = cpu->gpr[4] << 16u; @@ -156234,6 +189840,9 @@ label_BFC3BDB8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3BDC8u); return; } g_debug_last_store_pc = 0xBFC3BDC8u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC3BDC4) goto label_BFC3BE04; label_BFC3BDCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BDCC: 2861000A slti $at, $v1, 10 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[3] < (10) ? 1 : 0); @@ -156244,6 +189853,9 @@ label_BFC3BDCC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3BDD0) goto label_BFC3BE08; label_BFC3BDD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BDD8: 240E0001 addiu $t6, $zero, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -156263,6 +189875,9 @@ label_BFC3BDD8: cpu->gpr[31] = 0x80053DF8u; psx_dispatch(cpu, 0x800558C0u); label_BFC3BDF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BDF8: 87A30018 lh $v1, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3BDF8u); return; } cpu->gpr[3] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -156273,10 +189888,16 @@ label_BFC3BDF8: cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC3BDFC) goto label_BFC3BE08; label_BFC3BE04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BE04: 2402FFFF addiu $v0, $zero, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); label_BFC3BE08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BE08: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3BE08u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -156291,6 +189912,9 @@ label_BFC3BE08: void func_1FC3BE18(CPUState* cpu) { debug_server_log_call_entry(0x1FC3BE18u); label_BFC3BE18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(21u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BE18: 00042400 sll $a0, $a0, 16 */ cpu->gpr[4] = cpu->gpr[4] << 16u; @@ -156347,6 +189971,9 @@ void func_1FC3BE6C(CPUState* cpu) { } } label_BFC3BE6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BE6C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -156358,6 +189985,9 @@ label_BFC3BE6C: cpu->gpr[31] = 0x80053E7Cu; psx_dispatch(cpu, 0x80053160u); label_BFC3BE7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BE7C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3BE7Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -156380,6 +190010,9 @@ void func_1FC3BE90(CPUState* cpu) { } } label_BFC3BE90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(25u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BE90: 00041C00 sll $v1, $a0, 16 */ cpu->gpr[3] = cpu->gpr[4] << 16u; @@ -156433,6 +190066,9 @@ label_BFC3BE90: cpu->gpr[31] = 0x80053EF4u; psx_dispatch(cpu, 0x80054710u); label_BFC3BEF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BEF4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3BEF4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -156455,6 +190091,9 @@ void func_1FC3BF10(CPUState* cpu) { } } label_BFC3BF10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BF10: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -156474,6 +190113,9 @@ label_BFC3BF10: cpu->gpr[31] = 0x80053F30u; psx_dispatch(cpu, 0x80054710u); label_BFC3BF30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BF30: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3BF30u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -156496,6 +190138,9 @@ void func_1FC3BF40(CPUState* cpu) { } } label_BFC3BF40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BF40: 00042600 sll $a0, $a0, 24 */ cpu->gpr[4] = cpu->gpr[4] << 24u; @@ -156518,6 +190163,9 @@ label_BFC3BF40: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3BF60u); return; } g_debug_last_store_pc = 0xBFC3BF60u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC3BF5C) goto label_BFC3BF6C; label_BFC3BF64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BF64: 1000000C beq $zero, $zero, 0xBFC3BF98 */ uint32_t psx_brA_BFC3BF64 = cpu->gpr[0]; uint32_t psx_brB_BFC3BF64 = cpu->gpr[0]; @@ -156526,6 +190174,9 @@ label_BFC3BF64: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC3BF64) goto label_BFC3BF98; label_BFC3BF6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BF6C: 14A00005 bne $a1, $zero, 0xBFC3BF84 */ uint32_t psx_brA_BFC3BF6C = cpu->gpr[5]; uint32_t psx_brB_BFC3BF6C = cpu->gpr[0]; @@ -156534,6 +190185,9 @@ label_BFC3BF6C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC3BF6C) goto label_BFC3BF84; label_BFC3BF74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BF74: 240E0400 addiu $t6, $zero, 1024 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1024)); @@ -156544,6 +190198,9 @@ label_BFC3BF74: /* 0xBFC3BF80: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC3BF84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BF84: 14A20004 bne $a1, $v0, 0xBFC3BF98 */ uint32_t psx_brA_BFC3BF84 = cpu->gpr[5]; uint32_t psx_brB_BFC3BF84 = cpu->gpr[2]; @@ -156552,6 +190209,9 @@ label_BFC3BF84: /* nop */ if (psx_taken_BFC3BF84) goto label_BFC3BF98; label_BFC3BF8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BF8C: 240F0100 addiu $t7, $zero, 256 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (256)); @@ -156560,6 +190220,9 @@ label_BFC3BF8C: /* 0xBFC3BF94: AFA6002C sw $a2, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3BF94u); return; } g_debug_last_store_pc = 0xBFC3BF94u; cpu->write_word(psx_addr, cpu->gpr[6]); } label_BFC3BF98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BF98: 1482000C bne $a0, $v0, 0xBFC3BFCC */ uint32_t psx_brA_BFC3BF98 = cpu->gpr[4]; uint32_t psx_brB_BFC3BF98 = cpu->gpr[2]; @@ -156568,6 +190231,9 @@ label_BFC3BF98: cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3BF98) goto label_BFC3BFCC; label_BFC3BFA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BFA0: 14A00004 bne $a1, $zero, 0xBFC3BFB4 */ uint32_t psx_brA_BFC3BFA0 = cpu->gpr[5]; uint32_t psx_brB_BFC3BFA0 = cpu->gpr[0]; @@ -156576,6 +190242,9 @@ label_BFC3BFA0: /* nop */ if (psx_taken_BFC3BFA0) goto label_BFC3BFB4; label_BFC3BFA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BFA8: 24180800 addiu $t8, $zero, 2048 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (2048)); @@ -156584,6 +190253,9 @@ label_BFC3BFA8: /* 0xBFC3BFB0: AFA6003C sw $a2, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3BFB0u); return; } g_debug_last_store_pc = 0xBFC3BFB0u; cpu->write_word(psx_addr, cpu->gpr[6]); } label_BFC3BFB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BFB4: 14A20005 bne $a1, $v0, 0xBFC3BFCC */ uint32_t psx_brA_BFC3BFB4 = cpu->gpr[5]; uint32_t psx_brB_BFC3BFB4 = cpu->gpr[2]; @@ -156592,6 +190264,9 @@ label_BFC3BFB4: cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3BFB4) goto label_BFC3BFCC; label_BFC3BFBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BFBC: 24190200 addiu $t9, $zero, 512 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (512)); @@ -156602,6 +190277,9 @@ label_BFC3BFBC: /* 0xBFC3BFC8: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; label_BFC3BFCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BFCC: 24050100 addiu $a1, $zero, 256 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[0] + (256)); @@ -156611,6 +190289,9 @@ label_BFC3BFCC: cpu->gpr[31] = 0x80053FD8u; psx_dispatch(cpu, 0x80054710u); label_BFC3BFD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BFD8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3BFD8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -156633,6 +190314,9 @@ void func_1FC3BFF0(CPUState* cpu) { } } label_BFC3BFF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3BFF0: 00042600 sll $a0, $a0, 24 */ cpu->gpr[4] = cpu->gpr[4] << 24u; @@ -156655,6 +190339,9 @@ label_BFC3BFF0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C010u); return; } g_debug_last_store_pc = 0xBFC3C010u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC3C00C) goto label_BFC3C024; label_BFC3C014: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C014: A7A50028 sh $a1, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C014u); return; } g_debug_last_store_pc = 0xBFC3C014u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[5] & 0xFFFFu)); } @@ -156665,6 +190352,9 @@ label_BFC3C014: /* 0xBFC3C020: A7A6002A sh $a2, 42($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (42)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C020u); return; } g_debug_last_store_pc = 0xBFC3C020u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[6] & 0xFFFFu)); } label_BFC3C024: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C024: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -156675,6 +190365,9 @@ label_BFC3C024: cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3C028) goto label_BFC3C044; label_BFC3C030: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C030: A7A50034 sh $a1, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C030u); return; } g_debug_last_store_pc = 0xBFC3C030u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[5] & 0xFFFFu)); } @@ -156687,6 +190380,9 @@ label_BFC3C030: /* 0xBFC3C040: 00002021 addu $a0, $zero, $zero */ cpu->gpr[4] = cpu->gpr[0] + cpu->gpr[0]; label_BFC3C044: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C044: 24050100 addiu $a1, $zero, 256 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[0] + (256)); @@ -156696,6 +190392,9 @@ label_BFC3C044: cpu->gpr[31] = 0x80054050u; psx_dispatch(cpu, 0x80054710u); label_BFC3C050: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C050: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C050u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -156724,6 +190423,9 @@ void func_1FC3C060(CPUState* cpu) { } } label_BFC3C060: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C060: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -156735,6 +190437,9 @@ label_BFC3C060: cpu->gpr[31] = 0x80054070u; psx_dispatch(cpu, 0x8005419Cu); label_BFC3C070: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C070: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -156746,6 +190451,9 @@ label_BFC3C070: cpu->gpr[31] = 0x80054080u; psx_dispatch(cpu, 0x80054418u); label_BFC3C080: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C080: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -156793,6 +190501,9 @@ label_BFC3C080: cpu->gpr[31] = 0x800540D8u; psx_dispatch(cpu, 0x80054710u); label_BFC3C0D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C0D8: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -156809,6 +190520,9 @@ label_BFC3C0D8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24792)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C0ECu); return; } g_debug_last_store_pc = 0xBFC3C0ECu; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC3C0E8) goto label_BFC3C130; label_BFC3C0F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C0F0: 24190001 addiu $t9, $zero, 1 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -156820,6 +190534,9 @@ label_BFC3C0F0: cpu->gpr[31] = 0x80054100u; psx_dispatch(cpu, 0x8005AA90u); label_BFC3C100: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C100: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -156835,6 +190552,9 @@ label_BFC3C100: cpu->gpr[31] = 0x80054118u; psx_dispatch(cpu, 0x8005A9D0u); label_BFC3C118: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C118: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -156846,6 +190566,9 @@ label_BFC3C118: cpu->gpr[31] = 0x80054128u; psx_dispatch(cpu, 0x8005A9E0u); label_BFC3C128: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C128: 0C016A84 jal 0xB005AA10 */ /* 0xBFC3C12C: 00000000 nop */ @@ -156853,6 +190576,9 @@ label_BFC3C128: cpu->gpr[31] = 0x80054130u; psx_dispatch(cpu, 0x8005AA10u); label_BFC3C130: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C130: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C130u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -156867,6 +190593,9 @@ label_BFC3C130: void func_1FC3C140(CPUState* cpu) { debug_server_log_call_entry(0x1FC3C140u); label_BFC3C140: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C140: 27BDFFF8 addiu $sp, $sp, -8 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-8)); @@ -156885,10 +190614,16 @@ label_BFC3C140: /* nop */ if (psx_taken_BFC3C154) goto label_BFC3C194; label_BFC3C15C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C15C: 8FAF0000 lw $t7, 0($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C15Cu); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } label_BFC3C160: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C160: 00000000 nop */ /* nop */ @@ -156919,6 +190654,9 @@ label_BFC3C160: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C190u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } if (psx_taken_BFC3C18C) goto label_BFC3C160; label_BFC3C194: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C194: 03E00008 jr $ra */ /* 0xBFC3C198: 27BD0008 addiu $sp, $sp, 8 */ @@ -156947,6 +190685,9 @@ void func_1FC3C19C(CPUState* cpu) { } } label_BFC3C19C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C19C: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -156990,6 +190731,9 @@ label_BFC3C19C: cpu->gpr[31] = 0x800541ECu; psx_dispatch(cpu, 0x80054140u); label_BFC3C1EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C1EC: 961901AE lhu $t9, 430($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (430)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C1ECu); return; } cpu->gpr[25] = (uint32_t)cpu->read_half(psx_addr); } @@ -157004,6 +190748,9 @@ label_BFC3C1EC: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3C1F8) goto label_BFC3C208; label_BFC3C200: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C200: 10000015 beq $zero, $zero, 0xBFC3C258 */ uint32_t psx_brA_BFC3C200 = cpu->gpr[0]; uint32_t psx_brB_BFC3C200 = cpu->gpr[0]; @@ -157012,6 +190759,9 @@ label_BFC3C200: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4576)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C204u); return; } g_debug_last_store_pc = 0xBFC3C204u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC3C200) goto label_BFC3C258; label_BFC3C208: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C208: 24420001 addiu $v0, $v0, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (1)); @@ -157024,6 +190774,9 @@ label_BFC3C208: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3C210) goto label_BFC3C240; label_BFC3C218: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C218: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -157039,6 +190792,9 @@ label_BFC3C218: cpu->gpr[31] = 0x80054230u; psx_dispatch(cpu, 0x8005A910u); label_BFC3C230: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C230: 3C108008 lui $s0, 0x8008 */ cpu->gpr[16] = 0x80080000u; @@ -157051,6 +190807,9 @@ label_BFC3C230: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (384)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C23Cu); return; } g_debug_last_store_pc = 0xBFC3C23Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } if (psx_taken_BFC3C238) goto label_BFC3C25C; label_BFC3C240: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C240: 960B01AE lhu $t3, 430($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (430)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C240u); return; } cpu->gpr[11] = (uint32_t)cpu->read_half(psx_addr); } @@ -157065,14 +190824,23 @@ label_BFC3C240: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3C24C) goto label_BFC3C208; label_BFC3C254: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C254: AC22EE20 sw $v0, -4576($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4576)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C254u); return; } g_debug_last_store_pc = 0xBFC3C254u; cpu->write_word(psx_addr, cpu->gpr[2]); } label_BFC3C258: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C258: A6000180 sh $zero, 384($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (384)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C258u); return; } g_debug_last_store_pc = 0xBFC3C258u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } label_BFC3C25C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(25u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C25C: A6000182 sh $zero, 386($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (386)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C25Cu); return; } g_debug_last_store_pc = 0xBFC3C25Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } @@ -157126,6 +190894,9 @@ label_BFC3C25C: cpu->gpr[31] = 0x800542C0u; psx_dispatch(cpu, 0x800544E0u); label_BFC3C2C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C2C0: 3C108008 lui $s0, 0x8008 */ cpu->gpr[16] = 0x80080000u; @@ -157144,6 +190915,9 @@ label_BFC3C2C0: /* 0xBFC3C2DC: 24090018 addiu $t1, $zero, 24 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (24)); label_BFC3C2E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(41u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C2E0: 000878C0 sll $t7, $t0, 3 */ cpu->gpr[15] = cpu->gpr[8] << 3u; @@ -157230,6 +191004,9 @@ label_BFC3C2E0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (6)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C380u); return; } g_debug_last_store_pc = 0xBFC3C380u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[7] & 0xFFFFu)); } if (psx_taken_BFC3C37C) goto label_BFC3C2E0; label_BFC3C384: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C384: 960A0188 lhu $t2, 392($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (392)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C384u); return; } cpu->gpr[10] = (uint32_t)cpu->read_half(psx_addr); } @@ -157251,6 +191028,9 @@ label_BFC3C384: cpu->gpr[31] = 0x800543A8u; psx_dispatch(cpu, 0x80054140u); label_BFC3C3A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C3A8: 0C015050 jal 0xB0054140 */ /* 0xBFC3C3AC: 00000000 nop */ @@ -157258,6 +191038,9 @@ label_BFC3C3A8: cpu->gpr[31] = 0x800543B0u; psx_dispatch(cpu, 0x80054140u); label_BFC3C3B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C3B0: 0C015050 jal 0xB0054140 */ /* 0xBFC3C3B4: 00000000 nop */ @@ -157265,6 +191048,9 @@ label_BFC3C3B0: cpu->gpr[31] = 0x800543B8u; psx_dispatch(cpu, 0x80054140u); label_BFC3C3B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C3B8: 0C015050 jal 0xB0054140 */ /* 0xBFC3C3BC: 00000000 nop */ @@ -157272,6 +191058,9 @@ label_BFC3C3B8: cpu->gpr[31] = 0x800543C0u; psx_dispatch(cpu, 0x80054140u); label_BFC3C3C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C3C0: 960E018C lhu $t6, 396($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (396)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C3C0u); return; } cpu->gpr[14] = (uint32_t)cpu->read_half(psx_addr); } @@ -157293,6 +191082,9 @@ label_BFC3C3C0: cpu->gpr[31] = 0x800543E4u; psx_dispatch(cpu, 0x80054140u); label_BFC3C3E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C3E4: 0C015050 jal 0xB0054140 */ /* 0xBFC3C3E8: 00000000 nop */ @@ -157300,6 +191092,9 @@ label_BFC3C3E4: cpu->gpr[31] = 0x800543ECu; psx_dispatch(cpu, 0x80054140u); label_BFC3C3EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C3EC: 0C015050 jal 0xB0054140 */ /* 0xBFC3C3F0: 00000000 nop */ @@ -157307,6 +191102,9 @@ label_BFC3C3EC: cpu->gpr[31] = 0x800543F4u; psx_dispatch(cpu, 0x80054140u); label_BFC3C3F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C3F4: 0C015050 jal 0xB0054140 */ /* 0xBFC3C3F8: 00000000 nop */ @@ -157314,6 +191112,9 @@ label_BFC3C3F4: cpu->gpr[31] = 0x800543FCu; psx_dispatch(cpu, 0x80054140u); label_BFC3C3FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C3FC: 340AC000 ori $t2, $zero, 0xC000 */ cpu->gpr[10] = cpu->gpr[0] | 0xC000u; @@ -157334,6 +191135,9 @@ label_BFC3C3FC: void func_1FC3C418(CPUState* cpu) { debug_server_log_call_entry(0x1FC3C418u); label_BFC3C418: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C418: AFA40000 sw $a0, 0($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C418u); return; } g_debug_last_store_pc = 0xBFC3C418u; cpu->write_word(psx_addr, cpu->gpr[4]); } @@ -157357,6 +191161,9 @@ void func_1FC3C428(CPUState* cpu) { } } label_BFC3C428: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C428: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -157395,6 +191202,9 @@ label_BFC3C428: cpu->gpr[7] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3C464) goto label_BFC3C478; label_BFC3C46C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C46C: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -157405,6 +191215,9 @@ label_BFC3C46C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4576)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C474u); return; } g_debug_last_store_pc = 0xBFC3C474u; cpu->write_word(psx_addr, cpu->gpr[7]); } if (psx_taken_BFC3C470) goto label_BFC3C4C0; label_BFC3C478: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C478: 24E70001 addiu $a3, $a3, 1 */ cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[7] + (1)); @@ -157417,6 +191230,9 @@ label_BFC3C478: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3C480) goto label_BFC3C4A8; label_BFC3C488: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C488: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -157432,6 +191248,9 @@ label_BFC3C488: cpu->gpr[31] = 0x800544A0u; psx_dispatch(cpu, 0x8005A910u); label_BFC3C4A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C4A0: 10000008 beq $zero, $zero, 0xBFC3C4C4 */ uint32_t psx_brA_BFC3C4A0 = cpu->gpr[0]; uint32_t psx_brB_BFC3C4A0 = cpu->gpr[0]; @@ -157440,6 +191259,9 @@ label_BFC3C4A0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C4A4u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } if (psx_taken_BFC3C4A0) goto label_BFC3C4C4; label_BFC3C4A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C4A8: 947801AE lhu $t8, 430($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (430)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C4A8u); return; } cpu->gpr[24] = (uint32_t)cpu->read_half(psx_addr); } @@ -157454,14 +191276,23 @@ label_BFC3C4A8: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3C4B4) goto label_BFC3C478; label_BFC3C4BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C4BC: AC27EE20 sw $a3, -4576($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4576)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C4BCu); return; } g_debug_last_store_pc = 0xBFC3C4BCu; cpu->write_word(psx_addr, cpu->gpr[7]); } label_BFC3C4C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C4C0: 8FA40020 lw $a0, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C4C0u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } label_BFC3C4C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C4C4: 8FA50024 lw $a1, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C4C4u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -157471,6 +191302,9 @@ label_BFC3C4C4: cpu->gpr[31] = 0x800544D0u; psx_dispatch(cpu, 0x800544E0u); label_BFC3C4D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C4D0: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C4D0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -157499,6 +191333,9 @@ void func_1FC3C4E0(CPUState* cpu) { } } label_BFC3C4E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C4E0: 27BDFFA8 addiu $sp, $sp, -88 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-88)); @@ -157538,6 +191375,9 @@ label_BFC3C4E0: cpu->gpr[31] = 0x80054528u; psx_dispatch(cpu, 0x80054140u); label_BFC3C528: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C528: 962F01AE lhu $t7, 430($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (430)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C528u); return; } cpu->gpr[15] = (uint32_t)cpu->read_half(psx_addr); } @@ -157552,10 +191392,16 @@ label_BFC3C528: /* nop */ if (psx_taken_BFC3C534) goto label_BFC3C58C; label_BFC3C53C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C53C: 26520001 addiu $s2, $s2, 1 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (1)); label_BFC3C540: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C540: 2A411389 slti $at, $s2, 5001 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[18] < (5001) ? 1 : 0); @@ -157566,6 +191412,9 @@ label_BFC3C540: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3C544) goto label_BFC3C574; label_BFC3C54C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C54C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -157581,6 +191430,9 @@ label_BFC3C54C: cpu->gpr[31] = 0x80054564u; psx_dispatch(cpu, 0x8005A910u); label_BFC3C564: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C564: 3C118008 lui $s1, 0x8008 */ cpu->gpr[17] = 0x80080000u; @@ -157593,6 +191445,9 @@ label_BFC3C564: cpu->gpr[18] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3C56C) goto label_BFC3C58C; label_BFC3C574: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C574: 963901AE lhu $t9, 430($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (430)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C574u); return; } cpu->gpr[25] = (uint32_t)cpu->read_half(psx_addr); } @@ -157607,10 +191462,16 @@ label_BFC3C574: cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (1)); if (psx_taken_BFC3C580) goto label_BFC3C540; label_BFC3C588: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C588: 00009021 addu $s2, $zero, $zero */ cpu->gpr[18] = cpu->gpr[0] + cpu->gpr[0]; label_BFC3C58C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C58C: 1280003A beq $s4, $zero, 0xBFC3C678 */ uint32_t psx_brA_BFC3C58C = cpu->gpr[20]; uint32_t psx_brB_BFC3C58C = cpu->gpr[0]; @@ -157619,12 +191480,18 @@ label_BFC3C58C: /* nop */ if (psx_taken_BFC3C58C) goto label_BFC3C678; label_BFC3C594: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C594: AFB30030 sw $s3, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C594u); return; } g_debug_last_store_pc = 0xBFC3C594u; cpu->write_word(psx_addr, cpu->gpr[19]); } /* 0xBFC3C598: 2E810041 sltiu $at, $s4, 65 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[20] < 0x00000041u ? 1 : 0); label_BFC3C59C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C59C: 14200003 bne $at, $zero, 0xBFC3C5AC */ uint32_t psx_brA_BFC3C59C = cpu->gpr[1]; uint32_t psx_brB_BFC3C59C = cpu->gpr[0]; @@ -157633,6 +191500,9 @@ label_BFC3C59C: cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3C59C) goto label_BFC3C5AC; label_BFC3C5A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C5A4: 10000002 beq $zero, $zero, 0xBFC3C5B0 */ uint32_t psx_brA_BFC3C5A4 = cpu->gpr[0]; uint32_t psx_brB_BFC3C5A4 = cpu->gpr[0]; @@ -157641,10 +191511,16 @@ label_BFC3C5A4: cpu->gpr[19] = (uint32_t)((int32_t)cpu->gpr[0] + (64)); if (psx_taken_BFC3C5A4) goto label_BFC3C5B0; label_BFC3C5AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C5AC: 02809821 addu $s3, $s4, $zero */ cpu->gpr[19] = cpu->gpr[20] + cpu->gpr[0]; label_BFC3C5B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C5B0: 1A600007 blez $s3, 0xBFC3C5D0 */ uint32_t psx_brA_BFC3C5B0 = cpu->gpr[19]; @@ -157653,6 +191529,9 @@ label_BFC3C5B0: /* nop */ if (psx_taken_BFC3C5B0) goto label_BFC3C5D0; label_BFC3C5B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C5B8: 96020000 lhu $v0, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C5B8u); return; } cpu->gpr[2] = (uint32_t)cpu->read_half(psx_addr); } @@ -157669,6 +191548,9 @@ label_BFC3C5B8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (424)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C5CCu); return; } g_debug_last_store_pc = 0xBFC3C5CCu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[2] & 0xFFFFu)); } if (psx_taken_BFC3C5C8) goto label_BFC3C5B8; label_BFC3C5D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C5D0: 962201AA lhu $v0, 426($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C5D0u); return; } cpu->gpr[2] = (uint32_t)cpu->read_half(psx_addr); } @@ -157688,6 +191570,9 @@ label_BFC3C5D0: cpu->gpr[31] = 0x800545F0u; psx_dispatch(cpu, 0x80054140u); label_BFC3C5F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C5F0: 962901AE lhu $t1, 430($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (430)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C5F0u); return; } cpu->gpr[9] = (uint32_t)cpu->read_half(psx_addr); } @@ -157702,10 +191587,16 @@ label_BFC3C5F0: /* nop */ if (psx_taken_BFC3C5FC) goto label_BFC3C654; label_BFC3C604: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C604: 26520001 addiu $s2, $s2, 1 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (1)); label_BFC3C608: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C608: 2A411389 slti $at, $s2, 5001 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[18] < (5001) ? 1 : 0); @@ -157716,6 +191607,9 @@ label_BFC3C608: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3C60C) goto label_BFC3C63C; label_BFC3C614: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C614: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -157731,6 +191625,9 @@ label_BFC3C614: cpu->gpr[31] = 0x8005462Cu; psx_dispatch(cpu, 0x8005A910u); label_BFC3C62C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C62C: 3C118008 lui $s1, 0x8008 */ cpu->gpr[17] = 0x80080000u; @@ -157743,6 +191640,9 @@ label_BFC3C62C: cpu->gpr[18] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3C634) goto label_BFC3C654; label_BFC3C63C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C63C: 962B01AE lhu $t3, 430($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (430)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C63Cu); return; } cpu->gpr[11] = (uint32_t)cpu->read_half(psx_addr); } @@ -157757,10 +191657,16 @@ label_BFC3C63C: cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (1)); if (psx_taken_BFC3C648) goto label_BFC3C608; label_BFC3C650: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C650: 00009021 addu $s2, $zero, $zero */ cpu->gpr[18] = cpu->gpr[0] + cpu->gpr[0]; label_BFC3C654: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C654: 0C015050 jal 0xB0054140 */ /* 0xBFC3C658: 00000000 nop */ @@ -157768,6 +191674,9 @@ label_BFC3C654: cpu->gpr[31] = 0x8005465Cu; psx_dispatch(cpu, 0x80054140u); label_BFC3C65C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C65C: 0C015050 jal 0xB0054140 */ /* 0xBFC3C660: 00000000 nop */ @@ -157775,6 +191684,9 @@ label_BFC3C65C: cpu->gpr[31] = 0x80054664u; psx_dispatch(cpu, 0x80054140u); label_BFC3C664: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C664: 0293A023 subu $s4, $s4, $s3 */ cpu->gpr[20] = cpu->gpr[20] - cpu->gpr[19]; @@ -157785,12 +191697,18 @@ label_BFC3C664: cpu->gpr[1] = (uint32_t)(cpu->gpr[20] < 0x00000041u ? 1 : 0); if (psx_taken_BFC3C668) goto label_BFC3C59C; label_BFC3C670: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C670: 8FB30030 lw $s3, 48($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (48)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C670u); return; } cpu->gpr[19] = cpu->read_word(psx_addr); } /* 0xBFC3C674: 00000000 nop */ /* nop */ label_BFC3C678: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C678: 962201AA lhu $v0, 426($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C678u); return; } cpu->gpr[2] = (uint32_t)cpu->read_half(psx_addr); } @@ -157815,6 +191733,9 @@ label_BFC3C678: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3C698) goto label_BFC3C6A8; label_BFC3C6A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C6A0: 10000013 beq $zero, $zero, 0xBFC3C6F0 */ uint32_t psx_brA_BFC3C6A0 = cpu->gpr[0]; uint32_t psx_brB_BFC3C6A0 = cpu->gpr[0]; @@ -157823,6 +191744,9 @@ label_BFC3C6A0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4576)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C6A4u); return; } g_debug_last_store_pc = 0xBFC3C6A4u; cpu->write_word(psx_addr, cpu->gpr[18]); } if (psx_taken_BFC3C6A0) goto label_BFC3C6F0; label_BFC3C6A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C6A8: 26520001 addiu $s2, $s2, 1 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (1)); @@ -157835,6 +191759,9 @@ label_BFC3C6A8: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3C6B0) goto label_BFC3C6D8; label_BFC3C6B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C6B8: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -157850,6 +191777,9 @@ label_BFC3C6B8: cpu->gpr[31] = 0x800546D0u; psx_dispatch(cpu, 0x8005A910u); label_BFC3C6D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C6D0: 10000008 beq $zero, $zero, 0xBFC3C6F4 */ uint32_t psx_brA_BFC3C6D0 = cpu->gpr[0]; uint32_t psx_brB_BFC3C6D0 = cpu->gpr[0]; @@ -157858,6 +191788,9 @@ label_BFC3C6D0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C6D4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC3C6D0) goto label_BFC3C6F4; label_BFC3C6D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C6D8: 962F01AE lhu $t7, 430($s1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[17] + (430)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C6D8u); return; } cpu->gpr[15] = (uint32_t)cpu->read_half(psx_addr); } @@ -157872,14 +191805,23 @@ label_BFC3C6D8: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3C6E4) goto label_BFC3C6A8; label_BFC3C6EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C6EC: AC32EE20 sw $s2, -4576($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4576)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C6ECu); return; } g_debug_last_store_pc = 0xBFC3C6ECu; cpu->write_word(psx_addr, cpu->gpr[18]); } label_BFC3C6F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C6F0: 8FBF002C lw $ra, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C6F0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC3C6F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C6F4: 8FB00018 lw $s0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C6F4u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -157920,6 +191862,9 @@ void func_1FC3C710(CPUState* cpu) { } } label_BFC3C710: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C710: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -157948,6 +191893,9 @@ label_BFC3C710: cpu->gpr[8] = cpu->gpr[8] >> 1u; if (psx_taken_BFC3C738) goto label_BFC3CC90; label_BFC3C740: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C740: 0C015067 jal 0xB005419C */ /* 0xBFC3C744: 00000000 nop */ @@ -157955,6 +191903,9 @@ label_BFC3C740: cpu->gpr[31] = 0x80054748u; psx_dispatch(cpu, 0x8005419Cu); label_BFC3C748: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C748: 100001DC beq $zero, $zero, 0xBFC3CEBC */ uint32_t psx_brA_BFC3C748 = cpu->gpr[0]; uint32_t psx_brB_BFC3C748 = cpu->gpr[0]; @@ -157963,6 +191914,9 @@ label_BFC3C748: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C74Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC3C748) goto label_BFC3CEBC; label_BFC3C750: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C750: 14C00006 bne $a2, $zero, 0xBFC3C76C */ uint32_t psx_brA_BFC3C750 = cpu->gpr[6]; uint32_t psx_brB_BFC3C750 = cpu->gpr[0]; @@ -157971,6 +191925,9 @@ label_BFC3C750: /* nop */ if (psx_taken_BFC3C750) goto label_BFC3C76C; label_BFC3C758: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C758: 948E01AA lhu $t6, 426($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C758u); return; } cpu->gpr[14] = (uint32_t)cpu->read_half(psx_addr); } @@ -157985,6 +191942,9 @@ label_BFC3C758: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C768u); return; } g_debug_last_store_pc = 0xBFC3C768u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[15] & 0xFFFFu)); } if (psx_taken_BFC3C764) goto label_BFC3CEB8; label_BFC3C76C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C76C: 949801AA lhu $t8, 426($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C76Cu); return; } cpu->gpr[24] = (uint32_t)cpu->read_half(psx_addr); } @@ -157999,6 +191959,9 @@ label_BFC3C76C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C77Cu); return; } g_debug_last_store_pc = 0xBFC3C77Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[25] & 0xFFFFu)); } if (psx_taken_BFC3C778) goto label_BFC3CEB8; label_BFC3C780: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C780: 948901AA lhu $t1, 426($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C780u); return; } cpu->gpr[9] = (uint32_t)cpu->read_half(psx_addr); } @@ -158013,6 +191976,9 @@ label_BFC3C780: cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC3C78C) goto label_BFC3C7A0; label_BFC3C794: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C794: 100001C8 beq $zero, $zero, 0xBFC3CEB8 */ uint32_t psx_brA_BFC3C794 = cpu->gpr[0]; uint32_t psx_brB_BFC3C794 = cpu->gpr[0]; @@ -158021,10 +191987,16 @@ label_BFC3C794: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C798u); return; } g_debug_last_store_pc = 0xBFC3C798u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC3C794) goto label_BFC3CEB8; label_BFC3C79C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C79C: 240B0001 addiu $t3, $zero, 1 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC3C7A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C7A0: 100001C5 beq $zero, $zero, 0xBFC3CEB8 */ uint32_t psx_brA_BFC3C7A0 = cpu->gpr[0]; uint32_t psx_brB_BFC3C7A0 = cpu->gpr[0]; @@ -158033,6 +192005,9 @@ label_BFC3C7A0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C7A4u); return; } g_debug_last_store_pc = 0xBFC3C7A4u; cpu->write_word(psx_addr, cpu->gpr[11]); } if (psx_taken_BFC3C7A0) goto label_BFC3CEB8; label_BFC3C7A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C7A8: 14C00007 bne $a2, $zero, 0xBFC3C7C8 */ uint32_t psx_brA_BFC3C7A8 = cpu->gpr[6]; uint32_t psx_brB_BFC3C7A8 = cpu->gpr[0]; @@ -158041,6 +192016,9 @@ label_BFC3C7A8: /* nop */ if (psx_taken_BFC3C7A8) goto label_BFC3C7C8; label_BFC3C7B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C7B0: 948201AA lhu $v0, 426($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C7B0u); return; } cpu->gpr[2] = (uint32_t)cpu->read_half(psx_addr); } @@ -158057,6 +192035,9 @@ label_BFC3C7B0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C7C4u); return; } g_debug_last_store_pc = 0xBFC3C7C4u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[2] & 0xFFFFu)); } if (psx_taken_BFC3C7C0) goto label_BFC3CEB8; label_BFC3C7C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C7C8: 948201AA lhu $v0, 426($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C7C8u); return; } cpu->gpr[2] = (uint32_t)cpu->read_half(psx_addr); } @@ -158073,6 +192054,9 @@ label_BFC3C7C8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C7DCu); return; } g_debug_last_store_pc = 0xBFC3C7DCu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[2] & 0xFFFFu)); } if (psx_taken_BFC3C7D8) goto label_BFC3CEB8; label_BFC3C7E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C7E0: 948C01AA lhu $t4, 426($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C7E0u); return; } cpu->gpr[12] = (uint32_t)cpu->read_half(psx_addr); } @@ -158087,6 +192071,9 @@ label_BFC3C7E0: /* nop */ if (psx_taken_BFC3C7EC) goto label_BFC3C800; label_BFC3C7F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C7F4: 240E0001 addiu $t6, $zero, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -158097,6 +192084,9 @@ label_BFC3C7F4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C7FCu); return; } g_debug_last_store_pc = 0xBFC3C7FCu; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC3C7F8) goto label_BFC3CEB8; label_BFC3C800: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C800: 100001AD beq $zero, $zero, 0xBFC3CEB8 */ uint32_t psx_brA_BFC3C800 = cpu->gpr[0]; uint32_t psx_brB_BFC3C800 = cpu->gpr[0]; @@ -158105,6 +192095,9 @@ label_BFC3C800: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C804u); return; } g_debug_last_store_pc = 0xBFC3C804u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC3C800) goto label_BFC3CEB8; label_BFC3C808: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C808: 94C50000 lhu $a1, 0($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C808u); return; } cpu->gpr[5] = (uint32_t)cpu->read_half(psx_addr); } @@ -158124,6 +192117,9 @@ label_BFC3C808: cpu->gpr[31] = 0x80054828u; psx_dispatch(cpu, 0x80054140u); label_BFC3C828: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C828: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -158137,6 +192133,9 @@ label_BFC3C828: cpu->gpr[31] = 0x8005483Cu; psx_dispatch(cpu, 0x80054140u); label_BFC3C83C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C83C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -158157,6 +192156,9 @@ label_BFC3C83C: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3C854) goto label_BFC3C864; label_BFC3C85C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C85C: 10000196 beq $zero, $zero, 0xBFC3CEB8 */ uint32_t psx_brA_BFC3C85C = cpu->gpr[0]; uint32_t psx_brB_BFC3C85C = cpu->gpr[0]; @@ -158165,6 +192167,9 @@ label_BFC3C85C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4576)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C860u); return; } g_debug_last_store_pc = 0xBFC3C860u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC3C85C) goto label_BFC3CEB8; label_BFC3C864: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C864: 24420001 addiu $v0, $v0, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (1)); @@ -158177,6 +192182,9 @@ label_BFC3C864: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3C86C) goto label_BFC3C894; label_BFC3C874: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C874: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -158192,6 +192200,9 @@ label_BFC3C874: cpu->gpr[31] = 0x8005488Cu; psx_dispatch(cpu, 0x8005A910u); label_BFC3C88C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C88C: 1000018B beq $zero, $zero, 0xBFC3CEBC */ uint32_t psx_brA_BFC3C88C = cpu->gpr[0]; uint32_t psx_brB_BFC3C88C = cpu->gpr[0]; @@ -158200,6 +192211,9 @@ label_BFC3C88C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C890u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC3C88C) goto label_BFC3CEBC; label_BFC3C894: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C894: 949901AE lhu $t9, 430($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (430)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C894u); return; } cpu->gpr[25] = (uint32_t)cpu->read_half(psx_addr); } @@ -158214,6 +192228,9 @@ label_BFC3C894: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3C8A0) goto label_BFC3C864; label_BFC3C8A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C8A8: 10000183 beq $zero, $zero, 0xBFC3CEB8 */ uint32_t psx_brA_BFC3C8A8 = cpu->gpr[0]; uint32_t psx_brB_BFC3C8A8 = cpu->gpr[0]; @@ -158222,6 +192239,9 @@ label_BFC3C8A8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4576)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C8ACu); return; } g_debug_last_store_pc = 0xBFC3C8ACu; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC3C8A8) goto label_BFC3CEB8; label_BFC3C8B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C8B0: 8CC30000 lw $v1, 0($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C8B0u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -158232,6 +192252,9 @@ label_BFC3C8B0: cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[8] + (1)); if (psx_taken_BFC3C8B4) goto label_BFC3C8F8; label_BFC3C8BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C8BC: 0068001A div $v1, $t0 */ { int32_t psx_n = (int32_t)cpu->gpr[3]; int32_t psx_d = (int32_t)cpu->gpr[8]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -158244,10 +192267,16 @@ label_BFC3C8BC: /* nop */ if (psx_taken_BFC3C8C4) goto label_BFC3C8D0; label_BFC3C8CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C8CC: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC3C8CCu); return; label_BFC3C8D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C8D0: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -158258,6 +192287,9 @@ label_BFC3C8D0: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC3C8D4) goto label_BFC3C8E8; label_BFC3C8DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C8DC: 14610002 bne $v1, $at, 0xBFC3C8E8 */ uint32_t psx_brA_BFC3C8DC = cpu->gpr[3]; uint32_t psx_brB_BFC3C8DC = cpu->gpr[1]; @@ -158266,10 +192298,16 @@ label_BFC3C8DC: /* nop */ if (psx_taken_BFC3C8DC) goto label_BFC3C8E8; label_BFC3C8E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C8E4: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC3C8E4u); return; label_BFC3C8E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C8E8: 11400003 beq $t2, $zero, 0xBFC3C8F8 */ uint32_t psx_brA_BFC3C8E8 = cpu->gpr[10]; uint32_t psx_brB_BFC3C8E8 = cpu->gpr[0]; @@ -158278,12 +192316,18 @@ label_BFC3C8E8: cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[8] + (1)); if (psx_taken_BFC3C8E8) goto label_BFC3C8F8; label_BFC3C8F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C8F0: 00681821 addu $v1, $v1, $t0 */ cpu->gpr[3] = cpu->gpr[3] + cpu->gpr[8]; /* 0xBFC3C8F4: 250B0001 addiu $t3, $t0, 1 */ cpu->gpr[11] = (uint32_t)((int32_t)cpu->gpr[8] + (1)); label_BFC3C8F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C8F8: 01631007 srav $v0, $v1, $t3 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[3] >> (cpu->gpr[11] & 0x1Fu)); @@ -158303,6 +192347,9 @@ label_BFC3C8F8: cpu->gpr[31] = 0x80054918u; psx_dispatch(cpu, 0x80054140u); label_BFC3C918: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C918: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -158316,6 +192363,9 @@ label_BFC3C918: cpu->gpr[31] = 0x8005492Cu; psx_dispatch(cpu, 0x80054140u); label_BFC3C92C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C92C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -158329,6 +192379,9 @@ label_BFC3C92C: cpu->gpr[31] = 0x80054940u; psx_dispatch(cpu, 0x80054140u); label_BFC3C940: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C940: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -158349,6 +192402,9 @@ label_BFC3C940: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3C958) goto label_BFC3C968; label_BFC3C960: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C960: 10000155 beq $zero, $zero, 0xBFC3CEB8 */ uint32_t psx_brA_BFC3C960 = cpu->gpr[0]; uint32_t psx_brB_BFC3C960 = cpu->gpr[0]; @@ -158357,6 +192413,9 @@ label_BFC3C960: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4576)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C964u); return; } g_debug_last_store_pc = 0xBFC3C964u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC3C960) goto label_BFC3CEB8; label_BFC3C968: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C968: 24420001 addiu $v0, $v0, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (1)); @@ -158369,6 +192428,9 @@ label_BFC3C968: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3C970) goto label_BFC3C998; label_BFC3C978: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C978: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -158384,6 +192446,9 @@ label_BFC3C978: cpu->gpr[31] = 0x80054990u; psx_dispatch(cpu, 0x8005A910u); label_BFC3C990: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C990: 1000014A beq $zero, $zero, 0xBFC3CEBC */ uint32_t psx_brA_BFC3C990 = cpu->gpr[0]; uint32_t psx_brB_BFC3C990 = cpu->gpr[0]; @@ -158392,6 +192457,9 @@ label_BFC3C990: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C994u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC3C990) goto label_BFC3CEBC; label_BFC3C998: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C998: 948E01AE lhu $t6, 430($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (430)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C998u); return; } cpu->gpr[14] = (uint32_t)cpu->read_half(psx_addr); } @@ -158406,6 +192474,9 @@ label_BFC3C998: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3C9A4) goto label_BFC3C968; label_BFC3C9AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C9AC: 10000142 beq $zero, $zero, 0xBFC3CEB8 */ uint32_t psx_brA_BFC3C9AC = cpu->gpr[0]; uint32_t psx_brB_BFC3C9AC = cpu->gpr[0]; @@ -158414,6 +192485,9 @@ label_BFC3C9AC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4576)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C9B0u); return; } g_debug_last_store_pc = 0xBFC3C9B0u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC3C9AC) goto label_BFC3CEB8; label_BFC3C9B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C9B4: 8CC30000 lw $v1, 0($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3C9B4u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -158424,6 +192498,9 @@ label_BFC3C9B4: cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[8] + (1)); if (psx_taken_BFC3C9B8) goto label_BFC3C9FC; label_BFC3C9C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C9C0: 0068001A div $v1, $t0 */ { int32_t psx_n = (int32_t)cpu->gpr[3]; int32_t psx_d = (int32_t)cpu->gpr[8]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -158436,10 +192513,16 @@ label_BFC3C9C0: /* nop */ if (psx_taken_BFC3C9C8) goto label_BFC3C9D4; label_BFC3C9D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C9D0: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC3C9D0u); return; label_BFC3C9D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C9D4: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -158450,6 +192533,9 @@ label_BFC3C9D4: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC3C9D8) goto label_BFC3C9EC; label_BFC3C9E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C9E0: 14610002 bne $v1, $at, 0xBFC3C9EC */ uint32_t psx_brA_BFC3C9E0 = cpu->gpr[3]; uint32_t psx_brB_BFC3C9E0 = cpu->gpr[1]; @@ -158458,10 +192544,16 @@ label_BFC3C9E0: /* nop */ if (psx_taken_BFC3C9E0) goto label_BFC3C9EC; label_BFC3C9E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C9E8: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC3C9E8u); return; label_BFC3C9EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C9EC: 13000003 beq $t8, $zero, 0xBFC3C9FC */ uint32_t psx_brA_BFC3C9EC = cpu->gpr[24]; uint32_t psx_brB_BFC3C9EC = cpu->gpr[0]; @@ -158470,12 +192562,18 @@ label_BFC3C9EC: cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[8] + (1)); if (psx_taken_BFC3C9EC) goto label_BFC3C9FC; label_BFC3C9F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C9F4: 00681821 addu $v1, $v1, $t0 */ cpu->gpr[3] = cpu->gpr[3] + cpu->gpr[8]; /* 0xBFC3C9F8: 25190001 addiu $t9, $t0, 1 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[8] + (1)); label_BFC3C9FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3C9FC: 03232807 srav $a1, $v1, $t9 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[3] >> (cpu->gpr[25] & 0x1Fu)); @@ -158492,6 +192590,9 @@ label_BFC3C9FC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4572)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CA10u); return; } g_debug_last_store_pc = 0xBFC3CA10u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[5] & 0xFFFFu)); } if (psx_taken_BFC3CA0C) goto label_BFC3CEB8; label_BFC3CA14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CA14: 3C05800E lui $a1, 0x800E */ cpu->gpr[5] = 0x800E0000u; @@ -158504,6 +192605,9 @@ label_BFC3CA14: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CA20u); return; } g_debug_last_store_pc = 0xBFC3CA20u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[5] & 0xFFFFu)); } if (psx_taken_BFC3CA1C) goto label_BFC3CEB8; label_BFC3CA24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CA24: 3C05800E lui $a1, 0x800E */ cpu->gpr[5] = 0x800E0000u; @@ -158520,6 +192624,9 @@ label_BFC3CA24: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CA38u); return; } g_debug_last_store_pc = 0xBFC3CA38u; cpu->write_word(psx_addr, cpu->gpr[10]); } if (psx_taken_BFC3CA34) goto label_BFC3CEB8; label_BFC3CA3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CA3C: 8CCB0000 lw $t3, 0($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CA3Cu); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } @@ -158532,6 +192639,9 @@ label_BFC3CA3C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4568)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CA48u); return; } g_debug_last_store_pc = 0xBFC3CA48u; cpu->write_word(psx_addr, cpu->gpr[11]); } if (psx_taken_BFC3CA44) goto label_BFC3CEB8; label_BFC3CA4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CA4C: 3C0C800E lui $t4, 0x800E */ cpu->gpr[12] = 0x800E0000u; @@ -158544,6 +192654,9 @@ label_BFC3CA4C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CA58u); return; } g_debug_last_store_pc = 0xBFC3CA58u; cpu->write_word(psx_addr, cpu->gpr[12]); } if (psx_taken_BFC3CA54) goto label_BFC3CEB8; label_BFC3CA5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CA5C: 948201AA lhu $v0, 426($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CA5Cu); return; } cpu->gpr[2] = (uint32_t)cpu->read_half(psx_addr); } @@ -158559,6 +192672,9 @@ label_BFC3CA5C: cpu->gpr[31] = 0x80054A74u; psx_dispatch(cpu, 0x80054140u); label_BFC3CA74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CA74: 10000111 beq $zero, $zero, 0xBFC3CEBC */ uint32_t psx_brA_BFC3CA74 = cpu->gpr[0]; uint32_t psx_brB_BFC3CA74 = cpu->gpr[0]; @@ -158567,6 +192683,9 @@ label_BFC3CA74: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CA78u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC3CA74) goto label_BFC3CEBC; label_BFC3CA7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CA7C: 948201AC lhu $v0, 428($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (428)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CA7Cu); return; } cpu->gpr[2] = (uint32_t)cpu->read_half(psx_addr); } @@ -158585,6 +192704,9 @@ label_BFC3CA7C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CA94u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC3CA90) goto label_BFC3CEBC; label_BFC3CA98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CA98: 948201AC lhu $v0, 428($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (428)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CA98u); return; } cpu->gpr[2] = (uint32_t)cpu->read_half(psx_addr); } @@ -158603,6 +192725,9 @@ label_BFC3CA98: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (428)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CAB0u); return; } g_debug_last_store_pc = 0xBFC3CAB0u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[14] & 0xFFFFu)); } if (psx_taken_BFC3CAAC) goto label_BFC3CEB8; label_BFC3CAB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CAB4: 948F01AC lhu $t7, 428($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (428)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CAB4u); return; } cpu->gpr[15] = (uint32_t)cpu->read_half(psx_addr); } @@ -158619,6 +192744,9 @@ label_BFC3CAB4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CAC8u); return; } g_debug_last_store_pc = 0xBFC3CAC8u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[25] & 0xFFFFu)); } if (psx_taken_BFC3CAC4) goto label_BFC3CEB8; label_BFC3CACC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CACC: 948201AA lhu $v0, 426($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CACCu); return; } cpu->gpr[2] = (uint32_t)cpu->read_half(psx_addr); } @@ -158643,6 +192771,9 @@ label_BFC3CACC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CAF0u); return; } g_debug_last_store_pc = 0xBFC3CAF0u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[2] & 0xFFFFu)); } if (psx_taken_BFC3CAEC) goto label_BFC3CEB8; label_BFC3CAF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CAF4: 948201AA lhu $v0, 426($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CAF4u); return; } cpu->gpr[2] = (uint32_t)cpu->read_half(psx_addr); } @@ -158657,6 +192788,9 @@ label_BFC3CAF4: /* nop */ if (psx_taken_BFC3CB00) goto label_BFC3CB14; label_BFC3CB08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CB08: 240D0001 addiu $t5, $zero, 1 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -158667,6 +192801,9 @@ label_BFC3CB08: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CB10u); return; } g_debug_last_store_pc = 0xBFC3CB10u; cpu->write_word(psx_addr, cpu->gpr[13]); } if (psx_taken_BFC3CB0C) goto label_BFC3CEB8; label_BFC3CB14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CB14: 100000E8 beq $zero, $zero, 0xBFC3CEB8 */ uint32_t psx_brA_BFC3CB14 = cpu->gpr[0]; uint32_t psx_brB_BFC3CB14 = cpu->gpr[0]; @@ -158675,6 +192812,9 @@ label_BFC3CB14: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CB18u); return; } g_debug_last_store_pc = 0xBFC3CB18u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC3CB14) goto label_BFC3CEB8; label_BFC3CB1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CB1C: 94CE0000 lhu $t6, 0($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CB1Cu); return; } cpu->gpr[14] = (uint32_t)cpu->read_half(psx_addr); } @@ -158689,6 +192829,9 @@ label_BFC3CB1C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (418)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CB2Cu); return; } g_debug_last_store_pc = 0xBFC3CB2Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[15] & 0xFFFFu)); } if (psx_taken_BFC3CB28) goto label_BFC3CEB8; label_BFC3CB30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CB30: 8CC30000 lw $v1, 0($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CB30u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -158699,6 +192842,9 @@ label_BFC3CB30: cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[8] + (1)); if (psx_taken_BFC3CB34) goto label_BFC3CB78; label_BFC3CB3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CB3C: 0068001A div $v1, $t0 */ { int32_t psx_n = (int32_t)cpu->gpr[3]; int32_t psx_d = (int32_t)cpu->gpr[8]; if (psx_d == 0) { cpu->lo = (psx_n >= 0) ? 0xFFFFFFFFu : 0x00000001u; cpu->hi = (uint32_t)psx_n; } else if (psx_n == INT32_MIN && psx_d == -1) { cpu->lo = 0x80000000u; cpu->hi = 0u; } else { int32_t psx_q = psx_n / psx_d; int32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = (uint32_t)psx_q; cpu->hi = (uint32_t)psx_r; } } @@ -158711,10 +192857,16 @@ label_BFC3CB3C: /* nop */ if (psx_taken_BFC3CB44) goto label_BFC3CB50; label_BFC3CB4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CB4C: 0007000D break 0x1C00 */ psx_break(cpu, 0x01C00u, 0xBFC3CB4Cu); return; label_BFC3CB50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CB50: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); @@ -158725,6 +192877,9 @@ label_BFC3CB50: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC3CB54) goto label_BFC3CB68; label_BFC3CB5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CB5C: 14610002 bne $v1, $at, 0xBFC3CB68 */ uint32_t psx_brA_BFC3CB5C = cpu->gpr[3]; uint32_t psx_brB_BFC3CB5C = cpu->gpr[1]; @@ -158733,10 +192888,16 @@ label_BFC3CB5C: /* nop */ if (psx_taken_BFC3CB5C) goto label_BFC3CB68; label_BFC3CB64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CB64: 0006000D break 0x1800 */ psx_break(cpu, 0x01800u, 0xBFC3CB64u); return; label_BFC3CB68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CB68: 13000003 beq $t8, $zero, 0xBFC3CB78 */ uint32_t psx_brA_BFC3CB68 = cpu->gpr[24]; uint32_t psx_brB_BFC3CB68 = cpu->gpr[0]; @@ -158745,12 +192906,18 @@ label_BFC3CB68: cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[8] + (1)); if (psx_taken_BFC3CB68) goto label_BFC3CB78; label_BFC3CB70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CB70: 00681821 addu $v1, $v1, $t0 */ cpu->gpr[3] = cpu->gpr[3] + cpu->gpr[8]; /* 0xBFC3CB74: 25190001 addiu $t9, $t0, 1 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[8] + (1)); label_BFC3CB78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CB78: 03234807 srav $t1, $v1, $t9 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[3] >> (cpu->gpr[25] & 0x1Fu)); @@ -158763,6 +192930,9 @@ label_BFC3CB78: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (418)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CB84u); return; } g_debug_last_store_pc = 0xBFC3CB84u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[10] & 0xFFFFu)); } if (psx_taken_BFC3CB80) goto label_BFC3CEB8; label_BFC3CB88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CB88: 948B01A2 lhu $t3, 418($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (418)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CB88u); return; } cpu->gpr[11] = (uint32_t)cpu->read_half(psx_addr); } @@ -158777,6 +192947,9 @@ label_BFC3CB88: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CB98u); return; } g_debug_last_store_pc = 0xBFC3CB98u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[12] & 0xFFFFu)); } if (psx_taken_BFC3CB94) goto label_BFC3CEB8; label_BFC3CB9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CB9C: 948201A2 lhu $v0, 418($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (418)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CB9Cu); return; } cpu->gpr[2] = (uint32_t)cpu->read_half(psx_addr); } @@ -158795,6 +192968,9 @@ label_BFC3CB9C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CBB4u); return; } g_debug_last_store_pc = 0xBFC3CBB4u; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC3CBB0) goto label_BFC3CEB8; label_BFC3CBB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CBB8: 0C0153B2 jal 0xB0054EC8 */ /* 0xBFC3CBBC: 00C02021 addu $a0, $a2, $zero */ @@ -158802,6 +192978,9 @@ label_BFC3CBB8: cpu->gpr[31] = 0x80054BC0u; psx_dispatch(cpu, 0x80054EC8u); label_BFC3CBC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CBC0: 100000BE beq $zero, $zero, 0xBFC3CEBC */ uint32_t psx_brA_BFC3CBC0 = cpu->gpr[0]; uint32_t psx_brB_BFC3CBC0 = cpu->gpr[0]; @@ -158810,6 +192989,9 @@ label_BFC3CBC0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CBC4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC3CBC0) goto label_BFC3CEBC; label_BFC3CBC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CBC8: 8CCF0000 lw $t7, 0($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CBC8u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -158846,6 +193028,9 @@ label_BFC3CBC8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (410)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CC04u); return; } g_debug_last_store_pc = 0xBFC3CC04u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[2] & 0xFFFFu)); } if (psx_taken_BFC3CC00) goto label_BFC3CEB8; label_BFC3CC08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CC08: 948D019A lhu $t5, 410($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (410)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CC08u); return; } cpu->gpr[13] = (uint32_t)cpu->read_half(psx_addr); } @@ -158866,6 +193051,9 @@ label_BFC3CC08: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CC24u); return; } g_debug_last_store_pc = 0xBFC3CC24u; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC3CC20) goto label_BFC3CEB8; label_BFC3CC28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CC28: 8CCA0000 lw $t2, 0($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CC28u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -158906,6 +193094,9 @@ label_BFC3CC28: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (410)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CC6Cu); return; } g_debug_last_store_pc = 0xBFC3CC6Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[2] & 0xFFFFu)); } if (psx_taken_BFC3CC68) goto label_BFC3CEB8; label_BFC3CC70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CC70: 0C0154C1 jal 0xB0055304 */ /* 0xBFC3CC74: 00C02021 addu $a0, $a2, $zero */ @@ -158913,6 +193104,9 @@ label_BFC3CC70: cpu->gpr[31] = 0x80054C78u; psx_dispatch(cpu, 0x80055304u); label_BFC3CC78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CC78: 10000090 beq $zero, $zero, 0xBFC3CEBC */ uint32_t psx_brA_BFC3CC78 = cpu->gpr[0]; uint32_t psx_brB_BFC3CC78 = cpu->gpr[0]; @@ -158921,6 +193115,9 @@ label_BFC3CC78: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CC7Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC3CC78) goto label_BFC3CEBC; label_BFC3CC80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CC80: 0C015597 jal 0xB005565C */ /* 0xBFC3CC84: 00C02021 addu $a0, $a2, $zero */ @@ -158928,6 +193125,9 @@ label_BFC3CC80: cpu->gpr[31] = 0x80054C88u; psx_dispatch(cpu, 0x8005565Cu); label_BFC3CC88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CC88: 1000008C beq $zero, $zero, 0xBFC3CEBC */ uint32_t psx_brA_BFC3CC88 = cpu->gpr[0]; uint32_t psx_brB_BFC3CC88 = cpu->gpr[0]; @@ -158936,6 +193136,9 @@ label_BFC3CC88: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CC8Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC3CC88) goto label_BFC3CEBC; label_BFC3CC90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CC90: 2401002D addiu $at, $zero, 45 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (45)); @@ -158946,6 +193149,9 @@ label_BFC3CC90: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x0000002Eu ? 1 : 0); if (psx_taken_BFC3CC94) goto label_BFC3CA24; label_BFC3CC9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CC9C: 10200047 beq $at, $zero, 0xBFC3CDBC */ uint32_t psx_brA_BFC3CC9C = cpu->gpr[1]; uint32_t psx_brB_BFC3CC9C = cpu->gpr[0]; @@ -158954,6 +193160,9 @@ label_BFC3CC9C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (34)); if (psx_taken_BFC3CC9C) goto label_BFC3CDBC; label_BFC3CCA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CCA4: 10A1FF6D beq $a1, $at, 0xBFC3CA5C */ uint32_t psx_brA_BFC3CCA4 = cpu->gpr[5]; uint32_t psx_brB_BFC3CCA4 = cpu->gpr[1]; @@ -158962,6 +193171,9 @@ label_BFC3CCA4: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x00000023u ? 1 : 0); if (psx_taken_BFC3CCA4) goto label_BFC3CA5C; label_BFC3CCAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CCAC: 10200023 beq $at, $zero, 0xBFC3CD3C */ uint32_t psx_brA_BFC3CCAC = cpu->gpr[1]; uint32_t psx_brB_BFC3CCAC = cpu->gpr[0]; @@ -158970,6 +193182,9 @@ label_BFC3CCAC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (16)); if (psx_taken_BFC3CCAC) goto label_BFC3CD3C; label_BFC3CCB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CCB4: 10A1FEBC beq $a1, $at, 0xBFC3C7A8 */ uint32_t psx_brA_BFC3CCB4 = cpu->gpr[5]; uint32_t psx_brB_BFC3CCB4 = cpu->gpr[1]; @@ -158978,6 +193193,9 @@ label_BFC3CCB4: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x00000011u ? 1 : 0); if (psx_taken_BFC3CCB4) goto label_BFC3C7A8; label_BFC3CCBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CCBC: 10200011 beq $at, $zero, 0xBFC3CD04 */ uint32_t psx_brA_BFC3CCBC = cpu->gpr[1]; uint32_t psx_brB_BFC3CCBC = cpu->gpr[0]; @@ -158986,6 +193204,9 @@ label_BFC3CCBC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC3CCBC) goto label_BFC3CD04; label_BFC3CCC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CCC4: 10A1FEA2 beq $a1, $at, 0xBFC3C750 */ uint32_t psx_brA_BFC3CCC4 = cpu->gpr[5]; uint32_t psx_brB_BFC3CCC4 = cpu->gpr[1]; @@ -158994,6 +193215,9 @@ label_BFC3CCC4: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x00000002u ? 1 : 0); if (psx_taken_BFC3CCC4) goto label_BFC3C750; label_BFC3CCCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CCCC: 10200006 beq $at, $zero, 0xBFC3CCE8 */ uint32_t psx_brA_BFC3CCCC = cpu->gpr[1]; uint32_t psx_brB_BFC3CCCC = cpu->gpr[0]; @@ -159002,6 +193226,9 @@ label_BFC3CCCC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC3CCCC) goto label_BFC3CCE8; label_BFC3CCD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CCD4: 10A0FE9A beq $a1, $zero, 0xBFC3C740 */ uint32_t psx_brA_BFC3CCD4 = cpu->gpr[5]; uint32_t psx_brB_BFC3CCD4 = cpu->gpr[0]; @@ -159010,6 +193237,9 @@ label_BFC3CCD4: /* nop */ if (psx_taken_BFC3CCD4) goto label_BFC3C740; label_BFC3CCDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CCDC: 10000004 beq $zero, $zero, 0xBFC3CCF0 */ uint32_t psx_brA_BFC3CCDC = cpu->gpr[0]; uint32_t psx_brB_BFC3CCDC = cpu->gpr[0]; @@ -159018,10 +193248,16 @@ label_BFC3CCDC: /* nop */ if (psx_taken_BFC3CCDC) goto label_BFC3CCF0; label_BFC3CCE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CCE4: 24010002 addiu $at, $zero, 2 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); label_BFC3CCE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CCE8: 10A1FEA5 beq $a1, $at, 0xBFC3C780 */ uint32_t psx_brA_BFC3CCE8 = cpu->gpr[5]; uint32_t psx_brB_BFC3CCE8 = cpu->gpr[1]; @@ -159030,6 +193266,9 @@ label_BFC3CCE8: /* nop */ if (psx_taken_BFC3CCE8) goto label_BFC3C780; label_BFC3CCF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CCF0: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -159039,6 +193278,9 @@ label_BFC3CCF0: cpu->gpr[31] = 0x80054CFCu; psx_dispatch(cpu, 0x8005A910u); label_BFC3CCFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CCFC: 1000006F beq $zero, $zero, 0xBFC3CEBC */ uint32_t psx_brA_BFC3CCFC = cpu->gpr[0]; uint32_t psx_brB_BFC3CCFC = cpu->gpr[0]; @@ -159047,6 +193289,9 @@ label_BFC3CCFC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CD00u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC3CCFC) goto label_BFC3CEBC; label_BFC3CD04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CD04: 24010020 addiu $at, $zero, 32 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (32)); @@ -159057,6 +193302,9 @@ label_BFC3CD04: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x00000021u ? 1 : 0); if (psx_taken_BFC3CD08) goto label_BFC3C808; label_BFC3CD10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CD10: 10200005 beq $at, $zero, 0xBFC3CD28 */ uint32_t psx_brA_BFC3CD10 = cpu->gpr[1]; uint32_t psx_brB_BFC3CD10 = cpu->gpr[0]; @@ -159065,6 +193313,9 @@ label_BFC3CD10: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (22)); if (psx_taken_BFC3CD10) goto label_BFC3CD28; label_BFC3CD18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CD18: 10A1FEB1 beq $a1, $at, 0xBFC3C7E0 */ uint32_t psx_brA_BFC3CD18 = cpu->gpr[5]; uint32_t psx_brB_BFC3CD18 = cpu->gpr[1]; @@ -159073,6 +193324,9 @@ label_BFC3CD18: /* nop */ if (psx_taken_BFC3CD18) goto label_BFC3C7E0; label_BFC3CD20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CD20: 1000FFF3 beq $zero, $zero, 0xBFC3CCF0 */ uint32_t psx_brA_BFC3CD20 = cpu->gpr[0]; uint32_t psx_brB_BFC3CD20 = cpu->gpr[0]; @@ -159081,6 +193335,9 @@ label_BFC3CD20: /* nop */ if (psx_taken_BFC3CD20) goto label_BFC3CCF0; label_BFC3CD28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CD28: 24010021 addiu $at, $zero, 33 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (33)); @@ -159091,6 +193348,9 @@ label_BFC3CD28: /* nop */ if (psx_taken_BFC3CD2C) goto label_BFC3CA3C; label_BFC3CD34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CD34: 1000FFEE beq $zero, $zero, 0xBFC3CCF0 */ uint32_t psx_brA_BFC3CD34 = cpu->gpr[0]; uint32_t psx_brB_BFC3CD34 = cpu->gpr[0]; @@ -159099,6 +193359,9 @@ label_BFC3CD34: /* nop */ if (psx_taken_BFC3CD34) goto label_BFC3CCF0; label_BFC3CD3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CD3C: 24010029 addiu $at, $zero, 41 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (41)); @@ -159109,6 +193372,9 @@ label_BFC3CD3C: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x0000002Au ? 1 : 0); if (psx_taken_BFC3CD40) goto label_BFC3C808; label_BFC3CD48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CD48: 1020000E beq $at, $zero, 0xBFC3CD84 */ uint32_t psx_brA_BFC3CD48 = cpu->gpr[1]; uint32_t psx_brB_BFC3CD48 = cpu->gpr[0]; @@ -159117,6 +193383,9 @@ label_BFC3CD48: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (37)); if (psx_taken_BFC3CD48) goto label_BFC3CD84; label_BFC3CD50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CD50: 10A1FF58 beq $a1, $at, 0xBFC3CAB4 */ uint32_t psx_brA_BFC3CD50 = cpu->gpr[5]; uint32_t psx_brB_BFC3CD50 = cpu->gpr[1]; @@ -159125,6 +193394,9 @@ label_BFC3CD50: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x00000026u ? 1 : 0); if (psx_taken_BFC3CD50) goto label_BFC3CAB4; label_BFC3CD58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CD58: 10200005 beq $at, $zero, 0xBFC3CD70 */ uint32_t psx_brA_BFC3CD58 = cpu->gpr[1]; uint32_t psx_brB_BFC3CD58 = cpu->gpr[0]; @@ -159133,6 +193405,9 @@ label_BFC3CD58: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (36)); if (psx_taken_BFC3CD58) goto label_BFC3CD70; label_BFC3CD60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CD60: 10A1FF46 beq $a1, $at, 0xBFC3CA7C */ uint32_t psx_brA_BFC3CD60 = cpu->gpr[5]; uint32_t psx_brB_BFC3CD60 = cpu->gpr[1]; @@ -159141,6 +193416,9 @@ label_BFC3CD60: /* nop */ if (psx_taken_BFC3CD60) goto label_BFC3CA7C; label_BFC3CD68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CD68: 1000FFE1 beq $zero, $zero, 0xBFC3CCF0 */ uint32_t psx_brA_BFC3CD68 = cpu->gpr[0]; uint32_t psx_brB_BFC3CD68 = cpu->gpr[0]; @@ -159149,6 +193427,9 @@ label_BFC3CD68: /* nop */ if (psx_taken_BFC3CD68) goto label_BFC3CCF0; label_BFC3CD70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CD70: 24010028 addiu $at, $zero, 40 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (40)); @@ -159159,6 +193440,9 @@ label_BFC3CD70: /* nop */ if (psx_taken_BFC3CD74) goto label_BFC3C8B0; label_BFC3CD7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CD7C: 1000FFDC beq $zero, $zero, 0xBFC3CCF0 */ uint32_t psx_brA_BFC3CD7C = cpu->gpr[0]; uint32_t psx_brB_BFC3CD7C = cpu->gpr[0]; @@ -159167,6 +193451,9 @@ label_BFC3CD7C: /* nop */ if (psx_taken_BFC3CD7C) goto label_BFC3CCF0; label_BFC3CD84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CD84: 2401002B addiu $at, $zero, 43 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (43)); @@ -159177,6 +193464,9 @@ label_BFC3CD84: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x0000002Cu ? 1 : 0); if (psx_taken_BFC3CD88) goto label_BFC3C9B4; label_BFC3CD90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CD90: 10200005 beq $at, $zero, 0xBFC3CDA8 */ uint32_t psx_brA_BFC3CD90 = cpu->gpr[1]; uint32_t psx_brB_BFC3CD90 = cpu->gpr[0]; @@ -159185,6 +193475,9 @@ label_BFC3CD90: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (42)); if (psx_taken_BFC3CD90) goto label_BFC3CDA8; label_BFC3CD98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CD98: 10A1FEC5 beq $a1, $at, 0xBFC3C8B0 */ uint32_t psx_brA_BFC3CD98 = cpu->gpr[5]; uint32_t psx_brB_BFC3CD98 = cpu->gpr[1]; @@ -159193,6 +193486,9 @@ label_BFC3CD98: /* nop */ if (psx_taken_BFC3CD98) goto label_BFC3C8B0; label_BFC3CDA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CDA0: 1000FFD3 beq $zero, $zero, 0xBFC3CCF0 */ uint32_t psx_brA_BFC3CDA0 = cpu->gpr[0]; uint32_t psx_brB_BFC3CDA0 = cpu->gpr[0]; @@ -159201,6 +193497,9 @@ label_BFC3CDA0: /* nop */ if (psx_taken_BFC3CDA0) goto label_BFC3CCF0; label_BFC3CDA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CDA8: 2401002C addiu $at, $zero, 44 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (44)); @@ -159211,6 +193510,9 @@ label_BFC3CDA8: /* nop */ if (psx_taken_BFC3CDAC) goto label_BFC3CA14; label_BFC3CDB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CDB4: 1000FFCE beq $zero, $zero, 0xBFC3CCF0 */ uint32_t psx_brA_BFC3CDB4 = cpu->gpr[0]; uint32_t psx_brB_BFC3CDB4 = cpu->gpr[0]; @@ -159219,6 +193521,9 @@ label_BFC3CDB4: /* nop */ if (psx_taken_BFC3CDB4) goto label_BFC3CCF0; label_BFC3CDBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CDBC: 24010066 addiu $at, $zero, 102 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (102)); @@ -159229,6 +193534,9 @@ label_BFC3CDBC: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x00000067u ? 1 : 0); if (psx_taken_BFC3CDC0) goto label_BFC3CC08; label_BFC3CDC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CDC8: 10200020 beq $at, $zero, 0xBFC3CE4C */ uint32_t psx_brA_BFC3CDC8 = cpu->gpr[1]; uint32_t psx_brB_BFC3CDC8 = cpu->gpr[0]; @@ -159237,6 +193545,9 @@ label_BFC3CDC8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (97)); if (psx_taken_BFC3CDC8) goto label_BFC3CE4C; label_BFC3CDD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CDD0: 10A1FF52 beq $a1, $at, 0xBFC3CB1C */ uint32_t psx_brA_BFC3CDD0 = cpu->gpr[5]; uint32_t psx_brB_BFC3CDD0 = cpu->gpr[1]; @@ -159245,6 +193556,9 @@ label_BFC3CDD0: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x00000062u ? 1 : 0); if (psx_taken_BFC3CDD0) goto label_BFC3CB1C; label_BFC3CDD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CDD8: 1020000E beq $at, $zero, 0xBFC3CE14 */ uint32_t psx_brA_BFC3CDD8 = cpu->gpr[1]; uint32_t psx_brB_BFC3CDD8 = cpu->gpr[0]; @@ -159253,6 +193567,9 @@ label_BFC3CDD8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (47)); if (psx_taken_BFC3CDD8) goto label_BFC3CE14; label_BFC3CDE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CDE0: 10A1FF1A beq $a1, $at, 0xBFC3CA4C */ uint32_t psx_brA_BFC3CDE0 = cpu->gpr[5]; uint32_t psx_brB_BFC3CDE0 = cpu->gpr[1]; @@ -159261,6 +193578,9 @@ label_BFC3CDE0: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x00000030u ? 1 : 0); if (psx_taken_BFC3CDE0) goto label_BFC3CA4C; label_BFC3CDE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CDE8: 10200005 beq $at, $zero, 0xBFC3CE00 */ uint32_t psx_brA_BFC3CDE8 = cpu->gpr[1]; uint32_t psx_brB_BFC3CDE8 = cpu->gpr[0]; @@ -159269,6 +193589,9 @@ label_BFC3CDE8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (46)); if (psx_taken_BFC3CDE8) goto label_BFC3CE00; label_BFC3CDF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CDF0: 10A1FF12 beq $a1, $at, 0xBFC3CA3C */ uint32_t psx_brA_BFC3CDF0 = cpu->gpr[5]; uint32_t psx_brB_BFC3CDF0 = cpu->gpr[1]; @@ -159277,6 +193600,9 @@ label_BFC3CDF0: /* nop */ if (psx_taken_BFC3CDF0) goto label_BFC3CA3C; label_BFC3CDF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CDF8: 1000FFBD beq $zero, $zero, 0xBFC3CCF0 */ uint32_t psx_brA_BFC3CDF8 = cpu->gpr[0]; uint32_t psx_brB_BFC3CDF8 = cpu->gpr[0]; @@ -159285,6 +193611,9 @@ label_BFC3CDF8: /* nop */ if (psx_taken_BFC3CDF8) goto label_BFC3CCF0; label_BFC3CE00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CE00: 24010060 addiu $at, $zero, 96 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (96)); @@ -159295,6 +193624,9 @@ label_BFC3CE00: /* nop */ if (psx_taken_BFC3CE04) goto label_BFC3CACC; label_BFC3CE0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CE0C: 1000FFB8 beq $zero, $zero, 0xBFC3CCF0 */ uint32_t psx_brA_BFC3CE0C = cpu->gpr[0]; uint32_t psx_brB_BFC3CE0C = cpu->gpr[0]; @@ -159303,6 +193635,9 @@ label_BFC3CE0C: /* nop */ if (psx_taken_BFC3CE0C) goto label_BFC3CCF0; label_BFC3CE14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CE14: 24010063 addiu $at, $zero, 99 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (99)); @@ -159313,6 +193648,9 @@ label_BFC3CE14: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x00000064u ? 1 : 0); if (psx_taken_BFC3CE18) goto label_BFC3CBB8; label_BFC3CE20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CE20: 10200005 beq $at, $zero, 0xBFC3CE38 */ uint32_t psx_brA_BFC3CE20 = cpu->gpr[1]; uint32_t psx_brB_BFC3CE20 = cpu->gpr[0]; @@ -159321,6 +193659,9 @@ label_BFC3CE20: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (98)); if (psx_taken_BFC3CE20) goto label_BFC3CE38; label_BFC3CE28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CE28: 10A1FF57 beq $a1, $at, 0xBFC3CB88 */ uint32_t psx_brA_BFC3CE28 = cpu->gpr[5]; uint32_t psx_brB_BFC3CE28 = cpu->gpr[1]; @@ -159329,6 +193670,9 @@ label_BFC3CE28: /* nop */ if (psx_taken_BFC3CE28) goto label_BFC3CB88; label_BFC3CE30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CE30: 1000FFAF beq $zero, $zero, 0xBFC3CCF0 */ uint32_t psx_brA_BFC3CE30 = cpu->gpr[0]; uint32_t psx_brB_BFC3CE30 = cpu->gpr[0]; @@ -159337,6 +193681,9 @@ label_BFC3CE30: /* nop */ if (psx_taken_BFC3CE30) goto label_BFC3CCF0; label_BFC3CE38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CE38: 24010065 addiu $at, $zero, 101 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (101)); @@ -159347,6 +193694,9 @@ label_BFC3CE38: /* nop */ if (psx_taken_BFC3CE3C) goto label_BFC3CBC8; label_BFC3CE44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CE44: 1000FFAA beq $zero, $zero, 0xBFC3CCF0 */ uint32_t psx_brA_BFC3CE44 = cpu->gpr[0]; uint32_t psx_brB_BFC3CE44 = cpu->gpr[0]; @@ -159355,6 +193705,9 @@ label_BFC3CE44: /* nop */ if (psx_taken_BFC3CE44) goto label_BFC3CCF0; label_BFC3CE4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CE4C: 2401006A addiu $at, $zero, 106 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (106)); @@ -159365,6 +193718,9 @@ label_BFC3CE4C: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x0000006Bu ? 1 : 0); if (psx_taken_BFC3CE50) goto label_BFC3CAF4; label_BFC3CE58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CE58: 1020000E beq $at, $zero, 0xBFC3CE94 */ uint32_t psx_brA_BFC3CE58 = cpu->gpr[1]; uint32_t psx_brB_BFC3CE58 = cpu->gpr[0]; @@ -159373,6 +193729,9 @@ label_BFC3CE58: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (104)); if (psx_taken_BFC3CE58) goto label_BFC3CE94; label_BFC3CE60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CE60: 10A1FF33 beq $a1, $at, 0xBFC3CB30 */ uint32_t psx_brA_BFC3CE60 = cpu->gpr[5]; uint32_t psx_brB_BFC3CE60 = cpu->gpr[1]; @@ -159381,6 +193740,9 @@ label_BFC3CE60: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x00000069u ? 1 : 0); if (psx_taken_BFC3CE60) goto label_BFC3CB30; label_BFC3CE68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CE68: 10200005 beq $at, $zero, 0xBFC3CE80 */ uint32_t psx_brA_BFC3CE68 = cpu->gpr[1]; uint32_t psx_brB_BFC3CE68 = cpu->gpr[0]; @@ -159389,6 +193751,9 @@ label_BFC3CE68: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (103)); if (psx_taken_BFC3CE68) goto label_BFC3CE80; label_BFC3CE70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CE70: 10A1FF6D beq $a1, $at, 0xBFC3CC28 */ uint32_t psx_brA_BFC3CE70 = cpu->gpr[5]; uint32_t psx_brB_BFC3CE70 = cpu->gpr[1]; @@ -159397,6 +193762,9 @@ label_BFC3CE70: /* nop */ if (psx_taken_BFC3CE70) goto label_BFC3CC28; label_BFC3CE78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CE78: 1000FF9D beq $zero, $zero, 0xBFC3CCF0 */ uint32_t psx_brA_BFC3CE78 = cpu->gpr[0]; uint32_t psx_brB_BFC3CE78 = cpu->gpr[0]; @@ -159405,6 +193773,9 @@ label_BFC3CE78: /* nop */ if (psx_taken_BFC3CE78) goto label_BFC3CCF0; label_BFC3CE80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CE80: 24010069 addiu $at, $zero, 105 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (105)); @@ -159415,6 +193786,9 @@ label_BFC3CE80: /* nop */ if (psx_taken_BFC3CE84) goto label_BFC3CB9C; label_BFC3CE8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CE8C: 1000FF98 beq $zero, $zero, 0xBFC3CCF0 */ uint32_t psx_brA_BFC3CE8C = cpu->gpr[0]; uint32_t psx_brB_BFC3CE8C = cpu->gpr[0]; @@ -159423,6 +193797,9 @@ label_BFC3CE8C: /* nop */ if (psx_taken_BFC3CE8C) goto label_BFC3CCF0; label_BFC3CE94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CE94: 24010101 addiu $at, $zero, 257 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (257)); @@ -159433,6 +193810,9 @@ label_BFC3CE94: cpu->gpr[1] = (uint32_t)(cpu->gpr[5] < 0x00000102u ? 1 : 0); if (psx_taken_BFC3CE98) goto label_BFC3CC80; label_BFC3CEA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CEA0: 1020FF93 beq $at, $zero, 0xBFC3CCF0 */ uint32_t psx_brA_BFC3CEA0 = cpu->gpr[1]; uint32_t psx_brB_BFC3CEA0 = cpu->gpr[0]; @@ -159441,6 +193821,9 @@ label_BFC3CEA0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (256)); if (psx_taken_BFC3CEA0) goto label_BFC3CCF0; label_BFC3CEA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CEA8: 10A1FF71 beq $a1, $at, 0xBFC3CC70 */ uint32_t psx_brA_BFC3CEA8 = cpu->gpr[5]; uint32_t psx_brB_BFC3CEA8 = cpu->gpr[1]; @@ -159449,6 +193832,9 @@ label_BFC3CEA8: /* nop */ if (psx_taken_BFC3CEA8) goto label_BFC3CC70; label_BFC3CEB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CEB0: 1000FF8F beq $zero, $zero, 0xBFC3CCF0 */ uint32_t psx_brA_BFC3CEB0 = cpu->gpr[0]; uint32_t psx_brB_BFC3CEB0 = cpu->gpr[0]; @@ -159457,10 +193843,16 @@ label_BFC3CEB0: /* nop */ if (psx_taken_BFC3CEB0) goto label_BFC3CCF0; label_BFC3CEB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CEB8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CEB8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC3CEBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CEBC: 27BD0028 addiu $sp, $sp, 40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (40)); @@ -159473,6 +193865,9 @@ label_BFC3CEBC: void func_1FC3CEC8(CPUState* cpu) { debug_server_log_call_entry(0x1FC3CEC8u); label_BFC3CEC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CEC8: 8C820000 lw $v0, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CEC8u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -159485,6 +193880,9 @@ label_BFC3CEC8: cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3CED0) goto label_BFC3CEE4; label_BFC3CED8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CED8: 10000002 beq $zero, $zero, 0xBFC3CEE4 */ uint32_t psx_brA_BFC3CED8 = cpu->gpr[0]; uint32_t psx_brB_BFC3CED8 = cpu->gpr[0]; @@ -159493,10 +193891,16 @@ label_BFC3CED8: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC3CED8) goto label_BFC3CEE4; label_BFC3CEE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CEE0: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; label_BFC3CEE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CEE4: 14600008 bne $v1, $zero, 0xBFC3CF08 */ uint32_t psx_brA_BFC3CEE4 = cpu->gpr[3]; uint32_t psx_brB_BFC3CEE4 = cpu->gpr[0]; @@ -159505,6 +193909,9 @@ label_BFC3CEE4: /* nop */ if (psx_taken_BFC3CEE4) goto label_BFC3CF08; label_BFC3CEEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CEEC: 304E0001 andi $t6, $v0, 0x1 */ cpu->gpr[14] = cpu->gpr[2] & 0x1u; @@ -159515,6 +193922,9 @@ label_BFC3CEEC: /* nop */ if (psx_taken_BFC3CEF0) goto label_BFC3CF08; label_BFC3CEF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CEF8: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -159527,6 +193937,9 @@ label_BFC3CEF8: /* nop */ if (psx_taken_BFC3CF00) goto label_BFC3CF1C; label_BFC3CF08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CF08: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -159539,6 +193952,9 @@ label_BFC3CF08: /* 0xBFC3CF18: A4AF01C0 sh $t7, 448($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (448)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CF18u); return; } g_debug_last_store_pc = 0xBFC3CF18u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[15] & 0xFFFFu)); } label_BFC3CF1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CF1C: 14600004 bne $v1, $zero, 0xBFC3CF30 */ uint32_t psx_brA_BFC3CF1C = cpu->gpr[3]; uint32_t psx_brB_BFC3CF1C = cpu->gpr[0]; @@ -159547,6 +193963,9 @@ label_BFC3CF1C: /* nop */ if (psx_taken_BFC3CF1C) goto label_BFC3CF30; label_BFC3CF24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CF24: 30580002 andi $t8, $v0, 0x2 */ cpu->gpr[24] = cpu->gpr[2] & 0x2u; @@ -159557,6 +193976,9 @@ label_BFC3CF24: /* nop */ if (psx_taken_BFC3CF28) goto label_BFC3CF3C; label_BFC3CF30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CF30: 94990006 lhu $t9, 6($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (6)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CF30u); return; } cpu->gpr[25] = (uint32_t)cpu->read_half(psx_addr); } @@ -159565,6 +193987,9 @@ label_BFC3CF30: /* 0xBFC3CF38: A4B901C2 sh $t9, 450($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (450)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CF38u); return; } g_debug_last_store_pc = 0xBFC3CF38u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[25] & 0xFFFFu)); } label_BFC3CF3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CF3C: 14600004 bne $v1, $zero, 0xBFC3CF50 */ uint32_t psx_brA_BFC3CF3C = cpu->gpr[3]; uint32_t psx_brB_BFC3CF3C = cpu->gpr[0]; @@ -159573,6 +193998,9 @@ label_BFC3CF3C: /* nop */ if (psx_taken_BFC3CF3C) goto label_BFC3CF50; label_BFC3CF44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CF44: 30480004 andi $t0, $v0, 0x4 */ cpu->gpr[8] = cpu->gpr[2] & 0x4u; @@ -159583,6 +194011,9 @@ label_BFC3CF44: /* nop */ if (psx_taken_BFC3CF48) goto label_BFC3CF5C; label_BFC3CF50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CF50: 94890008 lhu $t1, 8($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (8)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CF50u); return; } cpu->gpr[9] = (uint32_t)cpu->read_half(psx_addr); } @@ -159591,6 +194022,9 @@ label_BFC3CF50: /* 0xBFC3CF58: A4A901C4 sh $t1, 452($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (452)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CF58u); return; } g_debug_last_store_pc = 0xBFC3CF58u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[9] & 0xFFFFu)); } label_BFC3CF5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CF5C: 14600004 bne $v1, $zero, 0xBFC3CF70 */ uint32_t psx_brA_BFC3CF5C = cpu->gpr[3]; uint32_t psx_brB_BFC3CF5C = cpu->gpr[0]; @@ -159599,6 +194033,9 @@ label_BFC3CF5C: /* nop */ if (psx_taken_BFC3CF5C) goto label_BFC3CF70; label_BFC3CF64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CF64: 304A0008 andi $t2, $v0, 0x8 */ cpu->gpr[10] = cpu->gpr[2] & 0x8u; @@ -159609,6 +194046,9 @@ label_BFC3CF64: /* nop */ if (psx_taken_BFC3CF68) goto label_BFC3CF7C; label_BFC3CF70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CF70: 948B000A lhu $t3, 10($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (10)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CF70u); return; } cpu->gpr[11] = (uint32_t)cpu->read_half(psx_addr); } @@ -159617,6 +194057,9 @@ label_BFC3CF70: /* 0xBFC3CF78: A4AB01C6 sh $t3, 454($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (454)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CF78u); return; } g_debug_last_store_pc = 0xBFC3CF78u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[11] & 0xFFFFu)); } label_BFC3CF7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CF7C: 14600004 bne $v1, $zero, 0xBFC3CF90 */ uint32_t psx_brA_BFC3CF7C = cpu->gpr[3]; uint32_t psx_brB_BFC3CF7C = cpu->gpr[0]; @@ -159625,6 +194068,9 @@ label_BFC3CF7C: /* nop */ if (psx_taken_BFC3CF7C) goto label_BFC3CF90; label_BFC3CF84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CF84: 304C0010 andi $t4, $v0, 0x10 */ cpu->gpr[12] = cpu->gpr[2] & 0x10u; @@ -159635,6 +194081,9 @@ label_BFC3CF84: /* nop */ if (psx_taken_BFC3CF88) goto label_BFC3CF9C; label_BFC3CF90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CF90: 948D000C lhu $t5, 12($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (12)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CF90u); return; } cpu->gpr[13] = (uint32_t)cpu->read_half(psx_addr); } @@ -159643,6 +194092,9 @@ label_BFC3CF90: /* 0xBFC3CF98: A4AD01C8 sh $t5, 456($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (456)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CF98u); return; } g_debug_last_store_pc = 0xBFC3CF98u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[13] & 0xFFFFu)); } label_BFC3CF9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CF9C: 14600004 bne $v1, $zero, 0xBFC3CFB0 */ uint32_t psx_brA_BFC3CF9C = cpu->gpr[3]; uint32_t psx_brB_BFC3CF9C = cpu->gpr[0]; @@ -159651,6 +194103,9 @@ label_BFC3CF9C: /* nop */ if (psx_taken_BFC3CF9C) goto label_BFC3CFB0; label_BFC3CFA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CFA4: 304E0020 andi $t6, $v0, 0x20 */ cpu->gpr[14] = cpu->gpr[2] & 0x20u; @@ -159661,6 +194116,9 @@ label_BFC3CFA4: /* nop */ if (psx_taken_BFC3CFA8) goto label_BFC3CFBC; label_BFC3CFB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CFB0: 948F000E lhu $t7, 14($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (14)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CFB0u); return; } cpu->gpr[15] = (uint32_t)cpu->read_half(psx_addr); } @@ -159669,6 +194127,9 @@ label_BFC3CFB0: /* 0xBFC3CFB8: A4AF01CA sh $t7, 458($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (458)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CFB8u); return; } g_debug_last_store_pc = 0xBFC3CFB8u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[15] & 0xFFFFu)); } label_BFC3CFBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CFBC: 14600004 bne $v1, $zero, 0xBFC3CFD0 */ uint32_t psx_brA_BFC3CFBC = cpu->gpr[3]; uint32_t psx_brB_BFC3CFBC = cpu->gpr[0]; @@ -159677,6 +194138,9 @@ label_BFC3CFBC: /* nop */ if (psx_taken_BFC3CFBC) goto label_BFC3CFD0; label_BFC3CFC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CFC4: 30580040 andi $t8, $v0, 0x40 */ cpu->gpr[24] = cpu->gpr[2] & 0x40u; @@ -159687,6 +194151,9 @@ label_BFC3CFC4: /* nop */ if (psx_taken_BFC3CFC8) goto label_BFC3CFDC; label_BFC3CFD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CFD0: 94990010 lhu $t9, 16($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (16)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CFD0u); return; } cpu->gpr[25] = (uint32_t)cpu->read_half(psx_addr); } @@ -159695,6 +194162,9 @@ label_BFC3CFD0: /* 0xBFC3CFD8: A4B901CC sh $t9, 460($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (460)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CFD8u); return; } g_debug_last_store_pc = 0xBFC3CFD8u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[25] & 0xFFFFu)); } label_BFC3CFDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CFDC: 14600004 bne $v1, $zero, 0xBFC3CFF0 */ uint32_t psx_brA_BFC3CFDC = cpu->gpr[3]; uint32_t psx_brB_BFC3CFDC = cpu->gpr[0]; @@ -159703,6 +194173,9 @@ label_BFC3CFDC: /* nop */ if (psx_taken_BFC3CFDC) goto label_BFC3CFF0; label_BFC3CFE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CFE4: 30480080 andi $t0, $v0, 0x80 */ cpu->gpr[8] = cpu->gpr[2] & 0x80u; @@ -159713,6 +194186,9 @@ label_BFC3CFE4: /* nop */ if (psx_taken_BFC3CFE8) goto label_BFC3CFFC; label_BFC3CFF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CFF0: 94890012 lhu $t1, 18($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (18)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CFF0u); return; } cpu->gpr[9] = (uint32_t)cpu->read_half(psx_addr); } @@ -159721,6 +194197,9 @@ label_BFC3CFF0: /* 0xBFC3CFF8: A4A901CE sh $t1, 462($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (462)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3CFF8u); return; } g_debug_last_store_pc = 0xBFC3CFF8u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[9] & 0xFFFFu)); } label_BFC3CFFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3CFFC: 14600004 bne $v1, $zero, 0xBFC3D010 */ uint32_t psx_brA_BFC3CFFC = cpu->gpr[3]; uint32_t psx_brB_BFC3CFFC = cpu->gpr[0]; @@ -159729,6 +194208,9 @@ label_BFC3CFFC: /* nop */ if (psx_taken_BFC3CFFC) goto label_BFC3D010; label_BFC3D004: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D004: 304A0100 andi $t2, $v0, 0x100 */ cpu->gpr[10] = cpu->gpr[2] & 0x100u; @@ -159739,6 +194221,9 @@ label_BFC3D004: /* nop */ if (psx_taken_BFC3D008) goto label_BFC3D01C; label_BFC3D010: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D010: 948B0014 lhu $t3, 20($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (20)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D010u); return; } cpu->gpr[11] = (uint32_t)cpu->read_half(psx_addr); } @@ -159747,6 +194232,9 @@ label_BFC3D010: /* 0xBFC3D018: A4AB01D0 sh $t3, 464($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (464)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D018u); return; } g_debug_last_store_pc = 0xBFC3D018u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[11] & 0xFFFFu)); } label_BFC3D01C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D01C: 14600004 bne $v1, $zero, 0xBFC3D030 */ uint32_t psx_brA_BFC3D01C = cpu->gpr[3]; uint32_t psx_brB_BFC3D01C = cpu->gpr[0]; @@ -159755,6 +194243,9 @@ label_BFC3D01C: /* nop */ if (psx_taken_BFC3D01C) goto label_BFC3D030; label_BFC3D024: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D024: 304C0200 andi $t4, $v0, 0x200 */ cpu->gpr[12] = cpu->gpr[2] & 0x200u; @@ -159765,6 +194256,9 @@ label_BFC3D024: /* nop */ if (psx_taken_BFC3D028) goto label_BFC3D03C; label_BFC3D030: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D030: 948D0016 lhu $t5, 22($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (22)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D030u); return; } cpu->gpr[13] = (uint32_t)cpu->read_half(psx_addr); } @@ -159773,6 +194267,9 @@ label_BFC3D030: /* 0xBFC3D038: A4AD01D2 sh $t5, 466($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (466)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D038u); return; } g_debug_last_store_pc = 0xBFC3D038u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[13] & 0xFFFFu)); } label_BFC3D03C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D03C: 14600004 bne $v1, $zero, 0xBFC3D050 */ uint32_t psx_brA_BFC3D03C = cpu->gpr[3]; uint32_t psx_brB_BFC3D03C = cpu->gpr[0]; @@ -159781,6 +194278,9 @@ label_BFC3D03C: /* nop */ if (psx_taken_BFC3D03C) goto label_BFC3D050; label_BFC3D044: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D044: 304E0400 andi $t6, $v0, 0x400 */ cpu->gpr[14] = cpu->gpr[2] & 0x400u; @@ -159791,6 +194291,9 @@ label_BFC3D044: /* nop */ if (psx_taken_BFC3D048) goto label_BFC3D05C; label_BFC3D050: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D050: 948F0018 lhu $t7, 24($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (24)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D050u); return; } cpu->gpr[15] = (uint32_t)cpu->read_half(psx_addr); } @@ -159799,6 +194302,9 @@ label_BFC3D050: /* 0xBFC3D058: A4AF01D4 sh $t7, 468($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (468)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D058u); return; } g_debug_last_store_pc = 0xBFC3D058u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[15] & 0xFFFFu)); } label_BFC3D05C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D05C: 14600004 bne $v1, $zero, 0xBFC3D070 */ uint32_t psx_brA_BFC3D05C = cpu->gpr[3]; uint32_t psx_brB_BFC3D05C = cpu->gpr[0]; @@ -159807,6 +194313,9 @@ label_BFC3D05C: /* nop */ if (psx_taken_BFC3D05C) goto label_BFC3D070; label_BFC3D064: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D064: 30580800 andi $t8, $v0, 0x800 */ cpu->gpr[24] = cpu->gpr[2] & 0x800u; @@ -159817,6 +194326,9 @@ label_BFC3D064: /* nop */ if (psx_taken_BFC3D068) goto label_BFC3D07C; label_BFC3D070: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D070: 9499001A lhu $t9, 26($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (26)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D070u); return; } cpu->gpr[25] = (uint32_t)cpu->read_half(psx_addr); } @@ -159825,6 +194337,9 @@ label_BFC3D070: /* 0xBFC3D078: A4B901D6 sh $t9, 470($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (470)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D078u); return; } g_debug_last_store_pc = 0xBFC3D078u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[25] & 0xFFFFu)); } label_BFC3D07C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D07C: 14600004 bne $v1, $zero, 0xBFC3D090 */ uint32_t psx_brA_BFC3D07C = cpu->gpr[3]; uint32_t psx_brB_BFC3D07C = cpu->gpr[0]; @@ -159833,6 +194348,9 @@ label_BFC3D07C: /* nop */ if (psx_taken_BFC3D07C) goto label_BFC3D090; label_BFC3D084: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D084: 30481000 andi $t0, $v0, 0x1000 */ cpu->gpr[8] = cpu->gpr[2] & 0x1000u; @@ -159843,6 +194361,9 @@ label_BFC3D084: /* nop */ if (psx_taken_BFC3D088) goto label_BFC3D09C; label_BFC3D090: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D090: 9489001C lhu $t1, 28($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (28)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D090u); return; } cpu->gpr[9] = (uint32_t)cpu->read_half(psx_addr); } @@ -159851,6 +194372,9 @@ label_BFC3D090: /* 0xBFC3D098: A4A901D8 sh $t1, 472($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (472)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D098u); return; } g_debug_last_store_pc = 0xBFC3D098u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[9] & 0xFFFFu)); } label_BFC3D09C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D09C: 14600004 bne $v1, $zero, 0xBFC3D0B0 */ uint32_t psx_brA_BFC3D09C = cpu->gpr[3]; uint32_t psx_brB_BFC3D09C = cpu->gpr[0]; @@ -159859,6 +194383,9 @@ label_BFC3D09C: /* nop */ if (psx_taken_BFC3D09C) goto label_BFC3D0B0; label_BFC3D0A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D0A4: 304A2000 andi $t2, $v0, 0x2000 */ cpu->gpr[10] = cpu->gpr[2] & 0x2000u; @@ -159869,6 +194396,9 @@ label_BFC3D0A4: /* nop */ if (psx_taken_BFC3D0A8) goto label_BFC3D0BC; label_BFC3D0B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D0B0: 948B001E lhu $t3, 30($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (30)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D0B0u); return; } cpu->gpr[11] = (uint32_t)cpu->read_half(psx_addr); } @@ -159877,6 +194407,9 @@ label_BFC3D0B0: /* 0xBFC3D0B8: A4AB01DA sh $t3, 474($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (474)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D0B8u); return; } g_debug_last_store_pc = 0xBFC3D0B8u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[11] & 0xFFFFu)); } label_BFC3D0BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D0BC: 14600004 bne $v1, $zero, 0xBFC3D0D0 */ uint32_t psx_brA_BFC3D0BC = cpu->gpr[3]; uint32_t psx_brB_BFC3D0BC = cpu->gpr[0]; @@ -159885,6 +194418,9 @@ label_BFC3D0BC: /* nop */ if (psx_taken_BFC3D0BC) goto label_BFC3D0D0; label_BFC3D0C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D0C4: 304C4000 andi $t4, $v0, 0x4000 */ cpu->gpr[12] = cpu->gpr[2] & 0x4000u; @@ -159895,6 +194431,9 @@ label_BFC3D0C4: /* nop */ if (psx_taken_BFC3D0C8) goto label_BFC3D0DC; label_BFC3D0D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D0D0: 948D0020 lhu $t5, 32($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (32)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D0D0u); return; } cpu->gpr[13] = (uint32_t)cpu->read_half(psx_addr); } @@ -159903,6 +194442,9 @@ label_BFC3D0D0: /* 0xBFC3D0D8: A4AD01DC sh $t5, 476($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (476)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D0D8u); return; } g_debug_last_store_pc = 0xBFC3D0D8u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[13] & 0xFFFFu)); } label_BFC3D0DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D0DC: 14600004 bne $v1, $zero, 0xBFC3D0F0 */ uint32_t psx_brA_BFC3D0DC = cpu->gpr[3]; uint32_t psx_brB_BFC3D0DC = cpu->gpr[0]; @@ -159911,6 +194453,9 @@ label_BFC3D0DC: /* nop */ if (psx_taken_BFC3D0DC) goto label_BFC3D0F0; label_BFC3D0E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D0E4: 304E8000 andi $t6, $v0, 0x8000 */ cpu->gpr[14] = cpu->gpr[2] & 0x8000u; @@ -159921,6 +194466,9 @@ label_BFC3D0E4: /* nop */ if (psx_taken_BFC3D0E8) goto label_BFC3D0FC; label_BFC3D0F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D0F0: 948F0022 lhu $t7, 34($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (34)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D0F0u); return; } cpu->gpr[15] = (uint32_t)cpu->read_half(psx_addr); } @@ -159929,6 +194477,9 @@ label_BFC3D0F0: /* 0xBFC3D0F8: A4AF01DE sh $t7, 478($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (478)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D0F8u); return; } g_debug_last_store_pc = 0xBFC3D0F8u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[15] & 0xFFFFu)); } label_BFC3D0FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D0FC: 14600004 bne $v1, $zero, 0xBFC3D110 */ uint32_t psx_brA_BFC3D0FC = cpu->gpr[3]; uint32_t psx_brB_BFC3D0FC = cpu->gpr[0]; @@ -159937,6 +194488,9 @@ label_BFC3D0FC: cpu->gpr[1] = 0x00010000u; if (psx_taken_BFC3D0FC) goto label_BFC3D110; label_BFC3D104: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D104: 0041C024 and $t8, $v0, $at */ cpu->gpr[24] = cpu->gpr[2] & cpu->gpr[1]; @@ -159947,6 +194501,9 @@ label_BFC3D104: /* nop */ if (psx_taken_BFC3D108) goto label_BFC3D11C; label_BFC3D110: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D110: 94990024 lhu $t9, 36($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (36)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D110u); return; } cpu->gpr[25] = (uint32_t)cpu->read_half(psx_addr); } @@ -159955,6 +194512,9 @@ label_BFC3D110: /* 0xBFC3D118: A4B901E0 sh $t9, 480($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (480)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D118u); return; } g_debug_last_store_pc = 0xBFC3D118u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[25] & 0xFFFFu)); } label_BFC3D11C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D11C: 14600004 bne $v1, $zero, 0xBFC3D130 */ uint32_t psx_brA_BFC3D11C = cpu->gpr[3]; uint32_t psx_brB_BFC3D11C = cpu->gpr[0]; @@ -159963,6 +194523,9 @@ label_BFC3D11C: cpu->gpr[1] = 0x00020000u; if (psx_taken_BFC3D11C) goto label_BFC3D130; label_BFC3D124: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D124: 00414024 and $t0, $v0, $at */ cpu->gpr[8] = cpu->gpr[2] & cpu->gpr[1]; @@ -159973,6 +194536,9 @@ label_BFC3D124: /* nop */ if (psx_taken_BFC3D128) goto label_BFC3D13C; label_BFC3D130: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D130: 94890026 lhu $t1, 38($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (38)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D130u); return; } cpu->gpr[9] = (uint32_t)cpu->read_half(psx_addr); } @@ -159981,6 +194547,9 @@ label_BFC3D130: /* 0xBFC3D138: A4A901E2 sh $t1, 482($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (482)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D138u); return; } g_debug_last_store_pc = 0xBFC3D138u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[9] & 0xFFFFu)); } label_BFC3D13C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D13C: 14600004 bne $v1, $zero, 0xBFC3D150 */ uint32_t psx_brA_BFC3D13C = cpu->gpr[3]; uint32_t psx_brB_BFC3D13C = cpu->gpr[0]; @@ -159989,6 +194558,9 @@ label_BFC3D13C: cpu->gpr[1] = 0x00040000u; if (psx_taken_BFC3D13C) goto label_BFC3D150; label_BFC3D144: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D144: 00415024 and $t2, $v0, $at */ cpu->gpr[10] = cpu->gpr[2] & cpu->gpr[1]; @@ -159999,6 +194571,9 @@ label_BFC3D144: /* nop */ if (psx_taken_BFC3D148) goto label_BFC3D15C; label_BFC3D150: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D150: 948B0028 lhu $t3, 40($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (40)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D150u); return; } cpu->gpr[11] = (uint32_t)cpu->read_half(psx_addr); } @@ -160007,6 +194582,9 @@ label_BFC3D150: /* 0xBFC3D158: A4AB01E4 sh $t3, 484($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (484)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D158u); return; } g_debug_last_store_pc = 0xBFC3D158u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[11] & 0xFFFFu)); } label_BFC3D15C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D15C: 14600004 bne $v1, $zero, 0xBFC3D170 */ uint32_t psx_brA_BFC3D15C = cpu->gpr[3]; uint32_t psx_brB_BFC3D15C = cpu->gpr[0]; @@ -160015,6 +194593,9 @@ label_BFC3D15C: cpu->gpr[1] = 0x00080000u; if (psx_taken_BFC3D15C) goto label_BFC3D170; label_BFC3D164: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D164: 00416024 and $t4, $v0, $at */ cpu->gpr[12] = cpu->gpr[2] & cpu->gpr[1]; @@ -160025,6 +194606,9 @@ label_BFC3D164: /* nop */ if (psx_taken_BFC3D168) goto label_BFC3D17C; label_BFC3D170: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D170: 948D002A lhu $t5, 42($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (42)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D170u); return; } cpu->gpr[13] = (uint32_t)cpu->read_half(psx_addr); } @@ -160033,6 +194617,9 @@ label_BFC3D170: /* 0xBFC3D178: A4AD01E6 sh $t5, 486($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (486)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D178u); return; } g_debug_last_store_pc = 0xBFC3D178u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[13] & 0xFFFFu)); } label_BFC3D17C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D17C: 14600004 bne $v1, $zero, 0xBFC3D190 */ uint32_t psx_brA_BFC3D17C = cpu->gpr[3]; uint32_t psx_brB_BFC3D17C = cpu->gpr[0]; @@ -160041,6 +194628,9 @@ label_BFC3D17C: cpu->gpr[1] = 0x00100000u; if (psx_taken_BFC3D17C) goto label_BFC3D190; label_BFC3D184: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D184: 00417024 and $t6, $v0, $at */ cpu->gpr[14] = cpu->gpr[2] & cpu->gpr[1]; @@ -160051,6 +194641,9 @@ label_BFC3D184: /* nop */ if (psx_taken_BFC3D188) goto label_BFC3D19C; label_BFC3D190: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D190: 948F002C lhu $t7, 44($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (44)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D190u); return; } cpu->gpr[15] = (uint32_t)cpu->read_half(psx_addr); } @@ -160059,6 +194652,9 @@ label_BFC3D190: /* 0xBFC3D198: A4AF01E8 sh $t7, 488($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (488)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D198u); return; } g_debug_last_store_pc = 0xBFC3D198u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[15] & 0xFFFFu)); } label_BFC3D19C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D19C: 14600004 bne $v1, $zero, 0xBFC3D1B0 */ uint32_t psx_brA_BFC3D19C = cpu->gpr[3]; uint32_t psx_brB_BFC3D19C = cpu->gpr[0]; @@ -160067,6 +194663,9 @@ label_BFC3D19C: cpu->gpr[1] = 0x00200000u; if (psx_taken_BFC3D19C) goto label_BFC3D1B0; label_BFC3D1A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D1A4: 0041C024 and $t8, $v0, $at */ cpu->gpr[24] = cpu->gpr[2] & cpu->gpr[1]; @@ -160077,6 +194676,9 @@ label_BFC3D1A4: /* nop */ if (psx_taken_BFC3D1A8) goto label_BFC3D1BC; label_BFC3D1B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D1B0: 9499002E lhu $t9, 46($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (46)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D1B0u); return; } cpu->gpr[25] = (uint32_t)cpu->read_half(psx_addr); } @@ -160085,6 +194687,9 @@ label_BFC3D1B0: /* 0xBFC3D1B8: A4B901EA sh $t9, 490($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (490)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D1B8u); return; } g_debug_last_store_pc = 0xBFC3D1B8u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[25] & 0xFFFFu)); } label_BFC3D1BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D1BC: 14600004 bne $v1, $zero, 0xBFC3D1D0 */ uint32_t psx_brA_BFC3D1BC = cpu->gpr[3]; uint32_t psx_brB_BFC3D1BC = cpu->gpr[0]; @@ -160093,6 +194698,9 @@ label_BFC3D1BC: cpu->gpr[1] = 0x00400000u; if (psx_taken_BFC3D1BC) goto label_BFC3D1D0; label_BFC3D1C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D1C4: 00414024 and $t0, $v0, $at */ cpu->gpr[8] = cpu->gpr[2] & cpu->gpr[1]; @@ -160103,6 +194711,9 @@ label_BFC3D1C4: /* nop */ if (psx_taken_BFC3D1C8) goto label_BFC3D1DC; label_BFC3D1D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D1D0: 94890030 lhu $t1, 48($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (48)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D1D0u); return; } cpu->gpr[9] = (uint32_t)cpu->read_half(psx_addr); } @@ -160111,6 +194722,9 @@ label_BFC3D1D0: /* 0xBFC3D1D8: A4A901EC sh $t1, 492($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (492)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D1D8u); return; } g_debug_last_store_pc = 0xBFC3D1D8u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[9] & 0xFFFFu)); } label_BFC3D1DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D1DC: 14600004 bne $v1, $zero, 0xBFC3D1F0 */ uint32_t psx_brA_BFC3D1DC = cpu->gpr[3]; uint32_t psx_brB_BFC3D1DC = cpu->gpr[0]; @@ -160119,6 +194733,9 @@ label_BFC3D1DC: cpu->gpr[1] = 0x00800000u; if (psx_taken_BFC3D1DC) goto label_BFC3D1F0; label_BFC3D1E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D1E4: 00415024 and $t2, $v0, $at */ cpu->gpr[10] = cpu->gpr[2] & cpu->gpr[1]; @@ -160129,6 +194746,9 @@ label_BFC3D1E4: /* nop */ if (psx_taken_BFC3D1E8) goto label_BFC3D1FC; label_BFC3D1F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D1F0: 948B0032 lhu $t3, 50($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (50)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D1F0u); return; } cpu->gpr[11] = (uint32_t)cpu->read_half(psx_addr); } @@ -160137,6 +194757,9 @@ label_BFC3D1F0: /* 0xBFC3D1F8: A4AB01EE sh $t3, 494($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (494)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D1F8u); return; } g_debug_last_store_pc = 0xBFC3D1F8u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[11] & 0xFFFFu)); } label_BFC3D1FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D1FC: 14600004 bne $v1, $zero, 0xBFC3D210 */ uint32_t psx_brA_BFC3D1FC = cpu->gpr[3]; uint32_t psx_brB_BFC3D1FC = cpu->gpr[0]; @@ -160145,6 +194768,9 @@ label_BFC3D1FC: cpu->gpr[1] = 0x01000000u; if (psx_taken_BFC3D1FC) goto label_BFC3D210; label_BFC3D204: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D204: 00416024 and $t4, $v0, $at */ cpu->gpr[12] = cpu->gpr[2] & cpu->gpr[1]; @@ -160155,6 +194781,9 @@ label_BFC3D204: /* nop */ if (psx_taken_BFC3D208) goto label_BFC3D21C; label_BFC3D210: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D210: 948D0034 lhu $t5, 52($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (52)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D210u); return; } cpu->gpr[13] = (uint32_t)cpu->read_half(psx_addr); } @@ -160163,6 +194792,9 @@ label_BFC3D210: /* 0xBFC3D218: A4AD01F0 sh $t5, 496($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (496)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D218u); return; } g_debug_last_store_pc = 0xBFC3D218u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[13] & 0xFFFFu)); } label_BFC3D21C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D21C: 14600004 bne $v1, $zero, 0xBFC3D230 */ uint32_t psx_brA_BFC3D21C = cpu->gpr[3]; uint32_t psx_brB_BFC3D21C = cpu->gpr[0]; @@ -160171,6 +194803,9 @@ label_BFC3D21C: cpu->gpr[1] = 0x02000000u; if (psx_taken_BFC3D21C) goto label_BFC3D230; label_BFC3D224: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D224: 00417024 and $t6, $v0, $at */ cpu->gpr[14] = cpu->gpr[2] & cpu->gpr[1]; @@ -160181,6 +194816,9 @@ label_BFC3D224: /* nop */ if (psx_taken_BFC3D228) goto label_BFC3D23C; label_BFC3D230: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D230: 948F0036 lhu $t7, 54($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (54)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D230u); return; } cpu->gpr[15] = (uint32_t)cpu->read_half(psx_addr); } @@ -160189,6 +194827,9 @@ label_BFC3D230: /* 0xBFC3D238: A4AF01F2 sh $t7, 498($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (498)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D238u); return; } g_debug_last_store_pc = 0xBFC3D238u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[15] & 0xFFFFu)); } label_BFC3D23C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D23C: 14600004 bne $v1, $zero, 0xBFC3D250 */ uint32_t psx_brA_BFC3D23C = cpu->gpr[3]; uint32_t psx_brB_BFC3D23C = cpu->gpr[0]; @@ -160197,6 +194838,9 @@ label_BFC3D23C: cpu->gpr[1] = 0x04000000u; if (psx_taken_BFC3D23C) goto label_BFC3D250; label_BFC3D244: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D244: 0041C024 and $t8, $v0, $at */ cpu->gpr[24] = cpu->gpr[2] & cpu->gpr[1]; @@ -160207,6 +194851,9 @@ label_BFC3D244: /* nop */ if (psx_taken_BFC3D248) goto label_BFC3D25C; label_BFC3D250: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D250: 94990038 lhu $t9, 56($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (56)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D250u); return; } cpu->gpr[25] = (uint32_t)cpu->read_half(psx_addr); } @@ -160215,6 +194862,9 @@ label_BFC3D250: /* 0xBFC3D258: A4B901F4 sh $t9, 500($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (500)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D258u); return; } g_debug_last_store_pc = 0xBFC3D258u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[25] & 0xFFFFu)); } label_BFC3D25C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D25C: 14600004 bne $v1, $zero, 0xBFC3D270 */ uint32_t psx_brA_BFC3D25C = cpu->gpr[3]; uint32_t psx_brB_BFC3D25C = cpu->gpr[0]; @@ -160223,6 +194873,9 @@ label_BFC3D25C: cpu->gpr[1] = 0x08000000u; if (psx_taken_BFC3D25C) goto label_BFC3D270; label_BFC3D264: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D264: 00414024 and $t0, $v0, $at */ cpu->gpr[8] = cpu->gpr[2] & cpu->gpr[1]; @@ -160233,6 +194886,9 @@ label_BFC3D264: /* nop */ if (psx_taken_BFC3D268) goto label_BFC3D27C; label_BFC3D270: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D270: 9489003A lhu $t1, 58($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (58)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D270u); return; } cpu->gpr[9] = (uint32_t)cpu->read_half(psx_addr); } @@ -160241,6 +194897,9 @@ label_BFC3D270: /* 0xBFC3D278: A4A901F6 sh $t1, 502($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (502)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D278u); return; } g_debug_last_store_pc = 0xBFC3D278u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[9] & 0xFFFFu)); } label_BFC3D27C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D27C: 14600004 bne $v1, $zero, 0xBFC3D290 */ uint32_t psx_brA_BFC3D27C = cpu->gpr[3]; uint32_t psx_brB_BFC3D27C = cpu->gpr[0]; @@ -160249,6 +194908,9 @@ label_BFC3D27C: cpu->gpr[1] = 0x10000000u; if (psx_taken_BFC3D27C) goto label_BFC3D290; label_BFC3D284: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D284: 00415024 and $t2, $v0, $at */ cpu->gpr[10] = cpu->gpr[2] & cpu->gpr[1]; @@ -160259,6 +194921,9 @@ label_BFC3D284: /* nop */ if (psx_taken_BFC3D288) goto label_BFC3D29C; label_BFC3D290: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D290: 948B003C lhu $t3, 60($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (60)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D290u); return; } cpu->gpr[11] = (uint32_t)cpu->read_half(psx_addr); } @@ -160267,6 +194932,9 @@ label_BFC3D290: /* 0xBFC3D298: A4AB01F8 sh $t3, 504($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (504)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D298u); return; } g_debug_last_store_pc = 0xBFC3D298u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[11] & 0xFFFFu)); } label_BFC3D29C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D29C: 14600004 bne $v1, $zero, 0xBFC3D2B0 */ uint32_t psx_brA_BFC3D29C = cpu->gpr[3]; uint32_t psx_brB_BFC3D29C = cpu->gpr[0]; @@ -160275,6 +194943,9 @@ label_BFC3D29C: cpu->gpr[1] = 0x20000000u; if (psx_taken_BFC3D29C) goto label_BFC3D2B0; label_BFC3D2A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D2A4: 00416024 and $t4, $v0, $at */ cpu->gpr[12] = cpu->gpr[2] & cpu->gpr[1]; @@ -160285,6 +194956,9 @@ label_BFC3D2A4: /* nop */ if (psx_taken_BFC3D2A8) goto label_BFC3D2BC; label_BFC3D2B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D2B0: 948D003E lhu $t5, 62($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (62)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D2B0u); return; } cpu->gpr[13] = (uint32_t)cpu->read_half(psx_addr); } @@ -160293,6 +194967,9 @@ label_BFC3D2B0: /* 0xBFC3D2B8: A4AD01FA sh $t5, 506($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (506)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D2B8u); return; } g_debug_last_store_pc = 0xBFC3D2B8u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[13] & 0xFFFFu)); } label_BFC3D2BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D2BC: 14600004 bne $v1, $zero, 0xBFC3D2D0 */ uint32_t psx_brA_BFC3D2BC = cpu->gpr[3]; uint32_t psx_brB_BFC3D2BC = cpu->gpr[0]; @@ -160301,6 +194978,9 @@ label_BFC3D2BC: cpu->gpr[1] = 0x40000000u; if (psx_taken_BFC3D2BC) goto label_BFC3D2D0; label_BFC3D2C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D2C4: 00417024 and $t6, $v0, $at */ cpu->gpr[14] = cpu->gpr[2] & cpu->gpr[1]; @@ -160311,6 +194991,9 @@ label_BFC3D2C4: /* nop */ if (psx_taken_BFC3D2C8) goto label_BFC3D2DC; label_BFC3D2D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D2D0: 948F0040 lhu $t7, 64($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (64)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D2D0u); return; } cpu->gpr[15] = (uint32_t)cpu->read_half(psx_addr); } @@ -160319,6 +195002,9 @@ label_BFC3D2D0: /* 0xBFC3D2D8: A4AF01FC sh $t7, 508($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (508)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D2D8u); return; } g_debug_last_store_pc = 0xBFC3D2D8u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[15] & 0xFFFFu)); } label_BFC3D2DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D2DC: 14600004 bne $v1, $zero, 0xBFC3D2F0 */ uint32_t psx_brA_BFC3D2DC = cpu->gpr[3]; uint32_t psx_brB_BFC3D2DC = cpu->gpr[0]; @@ -160327,6 +195013,9 @@ label_BFC3D2DC: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC3D2DC) goto label_BFC3D2F0; label_BFC3D2E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D2E4: 0041C024 and $t8, $v0, $at */ cpu->gpr[24] = cpu->gpr[2] & cpu->gpr[1]; @@ -160337,6 +195026,9 @@ label_BFC3D2E4: /* nop */ if (psx_taken_BFC3D2E8) goto label_BFC3D2FC; label_BFC3D2F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D2F0: 94990042 lhu $t9, 66($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (66)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D2F0u); return; } cpu->gpr[25] = (uint32_t)cpu->read_half(psx_addr); } @@ -160345,6 +195037,9 @@ label_BFC3D2F0: /* 0xBFC3D2F8: A4B901FE sh $t9, 510($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (510)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D2F8u); return; } g_debug_last_store_pc = 0xBFC3D2F8u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[25] & 0xFFFFu)); } label_BFC3D2FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D2FC: 03E00008 jr $ra */ /* 0xBFC3D300: 00001021 addu $v0, $zero, $zero */ @@ -160355,6 +195050,9 @@ label_BFC3D2FC: void func_1FC3D304(CPUState* cpu) { debug_server_log_call_entry(0x1FC3D304u); label_BFC3D304: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D304: 8C820000 lw $v0, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D304u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -160367,6 +195065,9 @@ label_BFC3D304: cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3D30C) goto label_BFC3D320; label_BFC3D314: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D314: 10000002 beq $zero, $zero, 0xBFC3D320 */ uint32_t psx_brA_BFC3D314 = cpu->gpr[0]; uint32_t psx_brB_BFC3D314 = cpu->gpr[0]; @@ -160375,10 +195076,16 @@ label_BFC3D314: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC3D314) goto label_BFC3D320; label_BFC3D31C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D31C: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; label_BFC3D320: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D320: 14600008 bne $v1, $zero, 0xBFC3D344 */ uint32_t psx_brA_BFC3D320 = cpu->gpr[3]; uint32_t psx_brB_BFC3D320 = cpu->gpr[0]; @@ -160387,6 +195094,9 @@ label_BFC3D320: /* nop */ if (psx_taken_BFC3D320) goto label_BFC3D344; label_BFC3D328: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D328: 304E0001 andi $t6, $v0, 0x1 */ cpu->gpr[14] = cpu->gpr[2] & 0x1u; @@ -160397,6 +195107,9 @@ label_BFC3D328: /* nop */ if (psx_taken_BFC3D32C) goto label_BFC3D344; label_BFC3D334: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D334: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -160409,6 +195122,9 @@ label_BFC3D334: /* nop */ if (psx_taken_BFC3D33C) goto label_BFC3D358; label_BFC3D344: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D344: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -160421,6 +195137,9 @@ label_BFC3D344: /* 0xBFC3D354: A4AF0180 sh $t7, 384($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (384)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D354u); return; } g_debug_last_store_pc = 0xBFC3D354u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[15] & 0xFFFFu)); } label_BFC3D358: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D358: 14600004 bne $v1, $zero, 0xBFC3D36C */ uint32_t psx_brA_BFC3D358 = cpu->gpr[3]; uint32_t psx_brB_BFC3D358 = cpu->gpr[0]; @@ -160429,6 +195148,9 @@ label_BFC3D358: /* nop */ if (psx_taken_BFC3D358) goto label_BFC3D36C; label_BFC3D360: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D360: 30580002 andi $t8, $v0, 0x2 */ cpu->gpr[24] = cpu->gpr[2] & 0x2u; @@ -160439,6 +195161,9 @@ label_BFC3D360: /* nop */ if (psx_taken_BFC3D364) goto label_BFC3D378; label_BFC3D36C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D36C: 94990006 lhu $t9, 6($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (6)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D36Cu); return; } cpu->gpr[25] = (uint32_t)cpu->read_half(psx_addr); } @@ -160447,6 +195172,9 @@ label_BFC3D36C: /* 0xBFC3D374: A4B90182 sh $t9, 386($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (386)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D374u); return; } g_debug_last_store_pc = 0xBFC3D374u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[25] & 0xFFFFu)); } label_BFC3D378: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D378: 14600004 bne $v1, $zero, 0xBFC3D38C */ uint32_t psx_brA_BFC3D378 = cpu->gpr[3]; uint32_t psx_brB_BFC3D378 = cpu->gpr[0]; @@ -160455,6 +195183,9 @@ label_BFC3D378: /* nop */ if (psx_taken_BFC3D378) goto label_BFC3D38C; label_BFC3D380: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D380: 30480004 andi $t0, $v0, 0x4 */ cpu->gpr[8] = cpu->gpr[2] & 0x4u; @@ -160465,6 +195196,9 @@ label_BFC3D380: /* nop */ if (psx_taken_BFC3D384) goto label_BFC3D398; label_BFC3D38C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D38C: 84890008 lh $t1, 8($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (8)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D38Cu); return; } cpu->gpr[9] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -160473,6 +195207,9 @@ label_BFC3D38C: /* 0xBFC3D394: A4A90184 sh $t1, 388($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (388)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D394u); return; } g_debug_last_store_pc = 0xBFC3D394u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[9] & 0xFFFFu)); } label_BFC3D398: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D398: 14600004 bne $v1, $zero, 0xBFC3D3AC */ uint32_t psx_brA_BFC3D398 = cpu->gpr[3]; uint32_t psx_brB_BFC3D398 = cpu->gpr[0]; @@ -160481,6 +195218,9 @@ label_BFC3D398: /* nop */ if (psx_taken_BFC3D398) goto label_BFC3D3AC; label_BFC3D3A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D3A0: 304A0008 andi $t2, $v0, 0x8 */ cpu->gpr[10] = cpu->gpr[2] & 0x8u; @@ -160491,6 +195231,9 @@ label_BFC3D3A0: /* nop */ if (psx_taken_BFC3D3A4) goto label_BFC3D3B8; label_BFC3D3AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D3AC: 848B000A lh $t3, 10($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (10)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D3ACu); return; } cpu->gpr[11] = (uint32_t)(int32_t)(int16_t)cpu->read_half(psx_addr); } @@ -160499,6 +195242,9 @@ label_BFC3D3AC: /* 0xBFC3D3B4: A4AB0186 sh $t3, 390($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (390)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D3B4u); return; } g_debug_last_store_pc = 0xBFC3D3B4u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[11] & 0xFFFFu)); } label_BFC3D3B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D3B8: 14600004 bne $v1, $zero, 0xBFC3D3CC */ uint32_t psx_brA_BFC3D3B8 = cpu->gpr[3]; uint32_t psx_brB_BFC3D3B8 = cpu->gpr[0]; @@ -160507,6 +195253,9 @@ label_BFC3D3B8: /* nop */ if (psx_taken_BFC3D3B8) goto label_BFC3D3CC; label_BFC3D3C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D3C0: 304C0010 andi $t4, $v0, 0x10 */ cpu->gpr[12] = cpu->gpr[2] & 0x10u; @@ -160517,6 +195266,9 @@ label_BFC3D3C0: /* nop */ if (psx_taken_BFC3D3C4) goto label_BFC3D3D8; label_BFC3D3CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D3CC: 948D000C lhu $t5, 12($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (12)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D3CCu); return; } cpu->gpr[13] = (uint32_t)cpu->read_half(psx_addr); } @@ -160525,6 +195277,9 @@ label_BFC3D3CC: /* 0xBFC3D3D4: A4AD01B0 sh $t5, 432($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (432)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D3D4u); return; } g_debug_last_store_pc = 0xBFC3D3D4u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[13] & 0xFFFFu)); } label_BFC3D3D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D3D8: 14600004 bne $v1, $zero, 0xBFC3D3EC */ uint32_t psx_brA_BFC3D3D8 = cpu->gpr[3]; uint32_t psx_brB_BFC3D3D8 = cpu->gpr[0]; @@ -160533,6 +195288,9 @@ label_BFC3D3D8: /* nop */ if (psx_taken_BFC3D3D8) goto label_BFC3D3EC; label_BFC3D3E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D3E0: 304E0020 andi $t6, $v0, 0x20 */ cpu->gpr[14] = cpu->gpr[2] & 0x20u; @@ -160543,6 +195301,9 @@ label_BFC3D3E0: /* nop */ if (psx_taken_BFC3D3E4) goto label_BFC3D3F8; label_BFC3D3EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D3EC: 948F000E lhu $t7, 14($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (14)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D3ECu); return; } cpu->gpr[15] = (uint32_t)cpu->read_half(psx_addr); } @@ -160551,6 +195312,9 @@ label_BFC3D3EC: /* 0xBFC3D3F4: A4AF01B2 sh $t7, 434($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (434)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D3F4u); return; } g_debug_last_store_pc = 0xBFC3D3F4u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[15] & 0xFFFFu)); } label_BFC3D3F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D3F8: 14600004 bne $v1, $zero, 0xBFC3D40C */ uint32_t psx_brA_BFC3D3F8 = cpu->gpr[3]; uint32_t psx_brB_BFC3D3F8 = cpu->gpr[0]; @@ -160559,6 +195323,9 @@ label_BFC3D3F8: /* nop */ if (psx_taken_BFC3D3F8) goto label_BFC3D40C; label_BFC3D400: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D400: 30580100 andi $t8, $v0, 0x100 */ cpu->gpr[24] = cpu->gpr[2] & 0x100u; @@ -160569,6 +195336,9 @@ label_BFC3D400: /* nop */ if (psx_taken_BFC3D404) goto label_BFC3D440; label_BFC3D40C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D40C: 8C990010 lw $t9, 16($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D40Cu); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -160581,6 +195351,9 @@ label_BFC3D40C: /* nop */ if (psx_taken_BFC3D414) goto label_BFC3D430; label_BFC3D41C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D41C: 94A801AA lhu $t0, 426($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D41Cu); return; } cpu->gpr[8] = (uint32_t)cpu->read_half(psx_addr); } @@ -160595,6 +195368,9 @@ label_BFC3D41C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D42Cu); return; } g_debug_last_store_pc = 0xBFC3D42Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[9] & 0xFFFFu)); } if (psx_taken_BFC3D428) goto label_BFC3D440; label_BFC3D430: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D430: 94AA01AA lhu $t2, 426($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D430u); return; } cpu->gpr[10] = (uint32_t)cpu->read_half(psx_addr); } @@ -160605,6 +195381,9 @@ label_BFC3D430: /* 0xBFC3D43C: A4AB01AA sh $t3, 426($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D43Cu); return; } g_debug_last_store_pc = 0xBFC3D43Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[11] & 0xFFFFu)); } label_BFC3D440: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D440: 14600004 bne $v1, $zero, 0xBFC3D454 */ uint32_t psx_brA_BFC3D440 = cpu->gpr[3]; uint32_t psx_brB_BFC3D440 = cpu->gpr[0]; @@ -160613,6 +195392,9 @@ label_BFC3D440: /* nop */ if (psx_taken_BFC3D440) goto label_BFC3D454; label_BFC3D448: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D448: 304C0400 andi $t4, $v0, 0x400 */ cpu->gpr[12] = cpu->gpr[2] & 0x400u; @@ -160623,6 +195405,9 @@ label_BFC3D448: /* nop */ if (psx_taken_BFC3D44C) goto label_BFC3D488; label_BFC3D454: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D454: 8C8D0014 lw $t5, 20($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D454u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -160635,6 +195420,9 @@ label_BFC3D454: /* nop */ if (psx_taken_BFC3D45C) goto label_BFC3D478; label_BFC3D464: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D464: 94AE01AA lhu $t6, 426($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D464u); return; } cpu->gpr[14] = (uint32_t)cpu->read_half(psx_addr); } @@ -160649,6 +195437,9 @@ label_BFC3D464: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D474u); return; } g_debug_last_store_pc = 0xBFC3D474u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[15] & 0xFFFFu)); } if (psx_taken_BFC3D470) goto label_BFC3D488; label_BFC3D478: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D478: 94B801AA lhu $t8, 426($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D478u); return; } cpu->gpr[24] = (uint32_t)cpu->read_half(psx_addr); } @@ -160659,6 +195450,9 @@ label_BFC3D478: /* 0xBFC3D484: A4B901AA sh $t9, 426($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D484u); return; } g_debug_last_store_pc = 0xBFC3D484u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[25] & 0xFFFFu)); } label_BFC3D488: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D488: 14600004 bne $v1, $zero, 0xBFC3D49C */ uint32_t psx_brA_BFC3D488 = cpu->gpr[3]; uint32_t psx_brB_BFC3D488 = cpu->gpr[0]; @@ -160667,6 +195461,9 @@ label_BFC3D488: /* nop */ if (psx_taken_BFC3D488) goto label_BFC3D49C; label_BFC3D490: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D490: 30480040 andi $t0, $v0, 0x40 */ cpu->gpr[8] = cpu->gpr[2] & 0x40u; @@ -160677,6 +195474,9 @@ label_BFC3D490: /* nop */ if (psx_taken_BFC3D494) goto label_BFC3D4A8; label_BFC3D49C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D49C: 94890018 lhu $t1, 24($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (24)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D49Cu); return; } cpu->gpr[9] = (uint32_t)cpu->read_half(psx_addr); } @@ -160685,6 +195485,9 @@ label_BFC3D49C: /* 0xBFC3D4A4: A4A901B4 sh $t1, 436($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (436)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D4A4u); return; } g_debug_last_store_pc = 0xBFC3D4A4u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[9] & 0xFFFFu)); } label_BFC3D4A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D4A8: 14600004 bne $v1, $zero, 0xBFC3D4BC */ uint32_t psx_brA_BFC3D4A8 = cpu->gpr[3]; uint32_t psx_brB_BFC3D4A8 = cpu->gpr[0]; @@ -160693,6 +195496,9 @@ label_BFC3D4A8: /* nop */ if (psx_taken_BFC3D4A8) goto label_BFC3D4BC; label_BFC3D4B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D4B0: 304A0080 andi $t2, $v0, 0x80 */ cpu->gpr[10] = cpu->gpr[2] & 0x80u; @@ -160703,6 +195509,9 @@ label_BFC3D4B0: /* nop */ if (psx_taken_BFC3D4B4) goto label_BFC3D4C8; label_BFC3D4BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D4BC: 948B001A lhu $t3, 26($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (26)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D4BCu); return; } cpu->gpr[11] = (uint32_t)cpu->read_half(psx_addr); } @@ -160711,6 +195520,9 @@ label_BFC3D4BC: /* 0xBFC3D4C4: A4AB01B6 sh $t3, 438($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (438)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D4C4u); return; } g_debug_last_store_pc = 0xBFC3D4C4u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[11] & 0xFFFFu)); } label_BFC3D4C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D4C8: 14600004 bne $v1, $zero, 0xBFC3D4DC */ uint32_t psx_brA_BFC3D4C8 = cpu->gpr[3]; uint32_t psx_brB_BFC3D4C8 = cpu->gpr[0]; @@ -160719,6 +195531,9 @@ label_BFC3D4C8: /* nop */ if (psx_taken_BFC3D4C8) goto label_BFC3D4DC; label_BFC3D4D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D4D0: 304C0200 andi $t4, $v0, 0x200 */ cpu->gpr[12] = cpu->gpr[2] & 0x200u; @@ -160729,6 +195544,9 @@ label_BFC3D4D0: /* nop */ if (psx_taken_BFC3D4D4) goto label_BFC3D510; label_BFC3D4DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D4DC: 8C8D001C lw $t5, 28($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D4DCu); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -160741,6 +195559,9 @@ label_BFC3D4DC: /* nop */ if (psx_taken_BFC3D4E4) goto label_BFC3D500; label_BFC3D4EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D4EC: 94AE01AA lhu $t6, 426($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D4ECu); return; } cpu->gpr[14] = (uint32_t)cpu->read_half(psx_addr); } @@ -160755,6 +195576,9 @@ label_BFC3D4EC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D4FCu); return; } g_debug_last_store_pc = 0xBFC3D4FCu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[15] & 0xFFFFu)); } if (psx_taken_BFC3D4F8) goto label_BFC3D510; label_BFC3D500: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D500: 94B801AA lhu $t8, 426($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D500u); return; } cpu->gpr[24] = (uint32_t)cpu->read_half(psx_addr); } @@ -160765,6 +195589,9 @@ label_BFC3D500: /* 0xBFC3D50C: A4B901AA sh $t9, 426($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D50Cu); return; } g_debug_last_store_pc = 0xBFC3D50Cu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[25] & 0xFFFFu)); } label_BFC3D510: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D510: 14600004 bne $v1, $zero, 0xBFC3D524 */ uint32_t psx_brA_BFC3D510 = cpu->gpr[3]; uint32_t psx_brB_BFC3D510 = cpu->gpr[0]; @@ -160773,6 +195600,9 @@ label_BFC3D510: /* nop */ if (psx_taken_BFC3D510) goto label_BFC3D524; label_BFC3D518: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D518: 30480800 andi $t0, $v0, 0x800 */ cpu->gpr[8] = cpu->gpr[2] & 0x800u; @@ -160783,6 +195613,9 @@ label_BFC3D518: /* nop */ if (psx_taken_BFC3D51C) goto label_BFC3D558; label_BFC3D524: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D524: 8C890020 lw $t1, 32($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D524u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -160795,6 +195628,9 @@ label_BFC3D524: /* nop */ if (psx_taken_BFC3D52C) goto label_BFC3D548; label_BFC3D534: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D534: 94AA01AA lhu $t2, 426($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D534u); return; } cpu->gpr[10] = (uint32_t)cpu->read_half(psx_addr); } @@ -160809,6 +195645,9 @@ label_BFC3D534: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D544u); return; } g_debug_last_store_pc = 0xBFC3D544u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[11] & 0xFFFFu)); } if (psx_taken_BFC3D540) goto label_BFC3D558; label_BFC3D548: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D548: 94AC01AA lhu $t4, 426($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D548u); return; } cpu->gpr[12] = (uint32_t)cpu->read_half(psx_addr); } @@ -160819,6 +195658,9 @@ label_BFC3D548: /* 0xBFC3D554: A4AD01AA sh $t5, 426($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D554u); return; } g_debug_last_store_pc = 0xBFC3D554u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[13] & 0xFFFFu)); } label_BFC3D558: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D558: 14600004 bne $v1, $zero, 0xBFC3D56C */ uint32_t psx_brA_BFC3D558 = cpu->gpr[3]; uint32_t psx_brB_BFC3D558 = cpu->gpr[0]; @@ -160827,6 +195669,9 @@ label_BFC3D558: /* nop */ if (psx_taken_BFC3D558) goto label_BFC3D56C; label_BFC3D560: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D560: 304E1000 andi $t6, $v0, 0x1000 */ cpu->gpr[14] = cpu->gpr[2] & 0x1000u; @@ -160837,6 +195682,9 @@ label_BFC3D560: /* nop */ if (psx_taken_BFC3D564) goto label_BFC3D598; label_BFC3D56C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D56C: 94AF01AA lhu $t7, 426($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D56Cu); return; } cpu->gpr[15] = (uint32_t)cpu->read_half(psx_addr); } @@ -160861,6 +195709,9 @@ label_BFC3D56C: /* 0xBFC3D594: A4AC01AA sh $t4, 426($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D594u); return; } g_debug_last_store_pc = 0xBFC3D594u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[12] & 0xFFFFu)); } label_BFC3D598: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D598: 14600004 bne $v1, $zero, 0xBFC3D5AC */ uint32_t psx_brA_BFC3D598 = cpu->gpr[3]; uint32_t psx_brB_BFC3D598 = cpu->gpr[0]; @@ -160869,6 +195720,9 @@ label_BFC3D598: /* nop */ if (psx_taken_BFC3D598) goto label_BFC3D5AC; label_BFC3D5A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D5A0: 304D2000 andi $t5, $v0, 0x2000 */ cpu->gpr[13] = cpu->gpr[2] & 0x2000u; @@ -160879,6 +195733,9 @@ label_BFC3D5A0: /* nop */ if (psx_taken_BFC3D5A4) goto label_BFC3D5D8; label_BFC3D5AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D5AC: 94AE01AA lhu $t6, 426($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D5ACu); return; } cpu->gpr[14] = (uint32_t)cpu->read_half(psx_addr); } @@ -160903,6 +195760,9 @@ label_BFC3D5AC: /* 0xBFC3D5D4: A4AB01AA sh $t3, 426($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D5D4u); return; } g_debug_last_store_pc = 0xBFC3D5D4u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[11] & 0xFFFFu)); } label_BFC3D5D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D5D8: 14600004 bne $v1, $zero, 0xBFC3D5EC */ uint32_t psx_brA_BFC3D5D8 = cpu->gpr[3]; uint32_t psx_brB_BFC3D5D8 = cpu->gpr[0]; @@ -160911,6 +195771,9 @@ label_BFC3D5D8: /* nop */ if (psx_taken_BFC3D5D8) goto label_BFC3D5EC; label_BFC3D5E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D5E0: 304C4000 andi $t4, $v0, 0x4000 */ cpu->gpr[12] = cpu->gpr[2] & 0x4000u; @@ -160921,6 +195784,9 @@ label_BFC3D5E0: /* nop */ if (psx_taken_BFC3D5E4) goto label_BFC3D618; label_BFC3D5EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D5EC: 94AD01AC lhu $t5, 428($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (428)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D5ECu); return; } cpu->gpr[13] = (uint32_t)cpu->read_half(psx_addr); } @@ -160945,6 +195811,9 @@ label_BFC3D5EC: /* 0xBFC3D614: A4B901AC sh $t9, 428($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (428)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D614u); return; } g_debug_last_store_pc = 0xBFC3D614u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[25] & 0xFFFFu)); } label_BFC3D618: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D618: 14600004 bne $v1, $zero, 0xBFC3D62C */ uint32_t psx_brA_BFC3D618 = cpu->gpr[3]; uint32_t psx_brB_BFC3D618 = cpu->gpr[0]; @@ -160953,6 +195822,9 @@ label_BFC3D618: /* nop */ if (psx_taken_BFC3D618) goto label_BFC3D62C; label_BFC3D620: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D620: 304B8000 andi $t3, $v0, 0x8000 */ cpu->gpr[11] = cpu->gpr[2] & 0x8000u; @@ -160963,6 +195835,9 @@ label_BFC3D620: /* nop */ if (psx_taken_BFC3D624) goto label_BFC3D654; label_BFC3D62C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D62C: 94AC01AC lhu $t4, 428($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (428)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D62Cu); return; } cpu->gpr[12] = (uint32_t)cpu->read_half(psx_addr); } @@ -160985,6 +195860,9 @@ label_BFC3D62C: /* 0xBFC3D650: A4AF01AC sh $t7, 428($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (428)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D650u); return; } g_debug_last_store_pc = 0xBFC3D650u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[15] & 0xFFFFu)); } label_BFC3D654: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D654: 03E00008 jr $ra */ /* 0xBFC3D658: 00001021 addu $v0, $zero, $zero */ @@ -160995,6 +195873,9 @@ label_BFC3D654: void func_1FC3D65C(CPUState* cpu) { debug_server_log_call_entry(0x1FC3D65Cu); label_BFC3D65C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(32u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D65C: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -161063,6 +195944,9 @@ label_BFC3D65C: /* nop */ if (psx_taken_BFC3D6D4) goto label_BFC3D6E8; label_BFC3D6DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D6DC: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -161073,12 +195957,18 @@ label_BFC3D6DC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D6E4u); return; } g_debug_last_store_pc = 0xBFC3D6E4u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC3D6E0) goto label_BFC3D6F0; label_BFC3D6E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D6E8: AC800010 sw $zero, 16($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D6E8u); return; } g_debug_last_store_pc = 0xBFC3D6E8u; cpu->write_word(psx_addr, cpu->gpr[0]); } /* 0xBFC3D6EC: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC3D6F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D6F0: 946801AA lhu $t0, 426($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D6F0u); return; } cpu->gpr[8] = (uint32_t)cpu->read_half(psx_addr); } @@ -161093,6 +195983,9 @@ label_BFC3D6F0: /* nop */ if (psx_taken_BFC3D6FC) goto label_BFC3D70C; label_BFC3D704: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D704: 10000002 beq $zero, $zero, 0xBFC3D710 */ uint32_t psx_brA_BFC3D704 = cpu->gpr[0]; uint32_t psx_brB_BFC3D704 = cpu->gpr[0]; @@ -161101,10 +195994,16 @@ label_BFC3D704: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D708u); return; } g_debug_last_store_pc = 0xBFC3D708u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC3D704) goto label_BFC3D710; label_BFC3D70C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D70C: AC800014 sw $zero, 20($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D70Cu); return; } g_debug_last_store_pc = 0xBFC3D70Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC3D710: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D710: 946A01B4 lhu $t2, 436($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (436)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D710u); return; } cpu->gpr[10] = (uint32_t)cpu->read_half(psx_addr); } @@ -161135,6 +196034,9 @@ label_BFC3D710: /* nop */ if (psx_taken_BFC3D73C) goto label_BFC3D74C; label_BFC3D744: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D744: 10000002 beq $zero, $zero, 0xBFC3D750 */ uint32_t psx_brA_BFC3D744 = cpu->gpr[0]; uint32_t psx_brB_BFC3D744 = cpu->gpr[0]; @@ -161143,10 +196045,16 @@ label_BFC3D744: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D748u); return; } g_debug_last_store_pc = 0xBFC3D748u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC3D744) goto label_BFC3D750; label_BFC3D74C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D74C: AC80001C sw $zero, 28($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D74Cu); return; } g_debug_last_store_pc = 0xBFC3D74Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC3D750: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D750: 947801AA lhu $t8, 426($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D750u); return; } cpu->gpr[24] = (uint32_t)cpu->read_half(psx_addr); } @@ -161161,6 +196069,9 @@ label_BFC3D750: /* nop */ if (psx_taken_BFC3D75C) goto label_BFC3D76C; label_BFC3D764: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D764: 10000002 beq $zero, $zero, 0xBFC3D770 */ uint32_t psx_brA_BFC3D764 = cpu->gpr[0]; uint32_t psx_brB_BFC3D764 = cpu->gpr[0]; @@ -161169,10 +196080,16 @@ label_BFC3D764: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D768u); return; } g_debug_last_store_pc = 0xBFC3D768u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC3D764) goto label_BFC3D770; label_BFC3D76C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D76C: AC800020 sw $zero, 32($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D76Cu); return; } g_debug_last_store_pc = 0xBFC3D76Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC3D770: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D770: 946801AA lhu $t0, 426($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (426)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D770u); return; } cpu->gpr[8] = (uint32_t)cpu->read_half(psx_addr); } @@ -161197,6 +196114,9 @@ label_BFC3D770: /* nop */ if (psx_taken_BFC3D790) goto label_BFC3D7A4; label_BFC3D798: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D798: 240D0001 addiu $t5, $zero, 1 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -161207,10 +196127,16 @@ label_BFC3D798: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (38)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D7A0u); return; } g_debug_last_store_pc = 0xBFC3D7A0u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[13] & 0xFFFFu)); } if (psx_taken_BFC3D79C) goto label_BFC3D7A8; label_BFC3D7A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D7A4: A4800026 sh $zero, 38($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (38)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D7A4u); return; } g_debug_last_store_pc = 0xBFC3D7A4u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } label_BFC3D7A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D7A8: 946E01AC lhu $t6, 428($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (428)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D7A8u); return; } cpu->gpr[14] = (uint32_t)cpu->read_half(psx_addr); } @@ -161235,6 +196161,9 @@ label_BFC3D7A8: /* nop */ if (psx_taken_BFC3D7C8) goto label_BFC3D7DC; label_BFC3D7D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D7D0: 24090001 addiu $t1, $zero, 1 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -161245,10 +196174,16 @@ label_BFC3D7D0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (42)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D7D8u); return; } g_debug_last_store_pc = 0xBFC3D7D8u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[9] & 0xFFFFu)); } if (psx_taken_BFC3D7D4) goto label_BFC3D7E0; label_BFC3D7DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D7DC: A480002A sh $zero, 42($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (42)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D7DCu); return; } g_debug_last_store_pc = 0xBFC3D7DCu; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[0] & 0xFFFFu)); } label_BFC3D7E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D7E0: 946A019E lhu $t2, 414($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (414)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D7E0u); return; } cpu->gpr[10] = (uint32_t)cpu->read_half(psx_addr); } @@ -161287,6 +196222,9 @@ void func_1FC3D810(CPUState* cpu) { } } label_BFC3D810: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D810: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -161301,6 +196239,9 @@ label_BFC3D810: /* 0xBFC3D824: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; label_BFC3D828: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D828: 904E0001 lbu $t6, 1($v0) */ cpu->gpr[14] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[2] + (1))); @@ -161315,6 +196256,9 @@ label_BFC3D828: cpu->gpr[5] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC3D834) goto label_BFC3D848; label_BFC3D83C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D83C: 1000FFFA beq $zero, $zero, 0xBFC3D828 */ uint32_t psx_brA_BFC3D83C = cpu->gpr[0]; uint32_t psx_brB_BFC3D83C = cpu->gpr[0]; @@ -161323,10 +196267,16 @@ label_BFC3D83C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (16)); if (psx_taken_BFC3D83C) goto label_BFC3D828; label_BFC3D844: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D844: 00602821 addu $a1, $v1, $zero */ cpu->gpr[5] = cpu->gpr[3] + cpu->gpr[0]; label_BFC3D848: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D848: 0C01510A jal 0xB0054428 */ /* 0xBFC3D84C: AFA30018 sw $v1, 24($sp) */ @@ -161334,6 +196284,9 @@ label_BFC3D848: cpu->gpr[31] = 0x80055850u; psx_dispatch(cpu, 0x80054428u); label_BFC3D850: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D850: 8FA30018 lw $v1, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D850u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -161358,6 +196311,9 @@ void func_1FC3D870(CPUState* cpu) { } } label_BFC3D870: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D870: 00801821 addu $v1, $a0, $zero */ cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[0]; @@ -161387,6 +196343,9 @@ label_BFC3D870: cpu->gpr[31] = 0x800558A4u; psx_dispatch(cpu, 0x80054710u); label_BFC3D8A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D8A4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D8A4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -161419,6 +196378,9 @@ void func_1FC3D8C0(CPUState* cpu) { } } label_BFC3D8C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D8C0: 27BDFF50 addiu $sp, $sp, -176 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-176)); @@ -161437,6 +196399,9 @@ label_BFC3D8C0: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3D8D4) goto label_BFC3D8E8; label_BFC3D8DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D8DC: 10000002 beq $zero, $zero, 0xBFC3D8E8 */ uint32_t psx_brA_BFC3D8DC = cpu->gpr[0]; uint32_t psx_brB_BFC3D8DC = cpu->gpr[0]; @@ -161445,10 +196410,16 @@ label_BFC3D8DC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC3D8DC) goto label_BFC3D8E8; label_BFC3D8E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D8E4: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC3D8E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D8E8: AFA20064 sw $v0, 100($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D8E8u); return; } g_debug_last_store_pc = 0xBFC3D8E8u; cpu->write_word(psx_addr, cpu->gpr[2]); } @@ -161492,6 +196463,9 @@ label_BFC3D8E8: cpu->gpr[31] = 0x80055938u; psx_dispatch(cpu, 0x80054710u); label_BFC3D938: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D938: 8FAF0050 lw $t7, 80($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (80)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D938u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -161508,6 +196482,9 @@ label_BFC3D938: /* nop */ if (psx_taken_BFC3D948) goto label_BFC3D984; label_BFC3D950: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D950: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -161529,6 +196506,9 @@ label_BFC3D950: cpu->gpr[31] = 0x80055974u; psx_dispatch(cpu, 0x80054710u); label_BFC3D974: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D974: 8FA20060 lw $v0, 96($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (96)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D974u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -161539,6 +196519,9 @@ label_BFC3D974: /* 0xBFC3D980: 00000000 nop */ /* nop */ label_BFC3D984: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D984: 14400007 bne $v0, $zero, 0xBFC3D9A4 */ uint32_t psx_brA_BFC3D984 = cpu->gpr[2]; uint32_t psx_brB_BFC3D984 = cpu->gpr[0]; @@ -161547,6 +196530,9 @@ label_BFC3D984: cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC3D984) goto label_BFC3D9A4; label_BFC3D98C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D98C: 8FB80068 lw $t8, 104($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (104)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D98Cu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -161561,10 +196547,16 @@ label_BFC3D98C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D99Cu); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } if (psx_taken_BFC3D998) goto label_BFC3DB14; label_BFC3D9A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D9A0: 24090001 addiu $t1, $zero, 1 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC3D9A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D9A4: AFA90040 sw $t1, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D9A4u); return; } g_debug_last_store_pc = 0xBFC3D9A4u; cpu->write_word(psx_addr, cpu->gpr[9]); } @@ -161581,6 +196573,9 @@ label_BFC3D9A4: /* nop */ if (psx_taken_BFC3D9B4) goto label_BFC3D9EC; label_BFC3D9BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D9BC: 0440000B bltz $v0, 0xBFC3D9EC */ uint32_t psx_brA_BFC3D9BC = cpu->gpr[2]; @@ -161589,6 +196584,9 @@ label_BFC3D9BC: /* nop */ if (psx_taken_BFC3D9BC) goto label_BFC3D9EC; label_BFC3D9C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D9C4: 00025080 sll $t2, $v0, 2 */ cpu->gpr[10] = cpu->gpr[2] << 2u; @@ -161606,6 +196604,9 @@ label_BFC3D9C4: cpu->gpr[31] = 0x800559E0u; psx_dispatch(cpu, 0x80056CB8u); label_BFC3D9E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D9E0: 8FA700B0 lw $a3, 176($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (176)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D9E0u); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } @@ -161616,6 +196617,9 @@ label_BFC3D9E0: /* nop */ if (psx_taken_BFC3D9E4) goto label_BFC3DA0C; label_BFC3D9EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3D9EC: AFA00050 sw $zero, 80($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (80)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3D9ECu); return; } g_debug_last_store_pc = 0xBFC3D9ECu; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -161636,6 +196640,9 @@ label_BFC3D9EC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DA08u); return; } g_debug_last_store_pc = 0xBFC3DA08u; cpu->write_word(psx_addr, cpu->gpr[13]); } if (psx_taken_BFC3DA04) goto label_BFC3DA1C; label_BFC3DA0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DA0C: 8CEE0004 lw $t6, 4($a3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[7] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DA0Cu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -161646,6 +196653,9 @@ label_BFC3DA0C: /* 0xBFC3DA18: AC2EE40C sw $t6, -7156($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-7156)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DA18u); return; } g_debug_last_store_pc = 0xBFC3DA18u; cpu->write_word(psx_addr, cpu->gpr[14]); } label_BFC3DA1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DA1C: 3C018014 lui $at, 0x8014 */ cpu->gpr[1] = 0x80140000u; @@ -161679,6 +196689,9 @@ label_BFC3DA1C: cpu->gpr[31] = 0x80055A58u; psx_dispatch(cpu, 0x80054710u); label_BFC3DA58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DA58: 3C098014 lui $t1, 0x8014 */ cpu->gpr[9] = 0x80140000u; @@ -161706,6 +196719,9 @@ label_BFC3DA58: cpu->gpr[31] = 0x80055A88u; psx_dispatch(cpu, 0x8005A950u); label_BFC3DA88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DA88: 8FA700B0 lw $a3, 176($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (176)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DA88u); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } @@ -161716,6 +196732,9 @@ label_BFC3DA88: /* nop */ if (psx_taken_BFC3DA8C) goto label_BFC3DAD0; label_BFC3DA94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DA94: 10000017 beq $zero, $zero, 0xBFC3DAF4 */ uint32_t psx_brA_BFC3DA94 = cpu->gpr[0]; uint32_t psx_brB_BFC3DA94 = cpu->gpr[0]; @@ -161724,6 +196743,9 @@ label_BFC3DA94: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (80)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DA98u); return; } g_debug_last_store_pc = 0xBFC3DA98u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC3DA94) goto label_BFC3DAF4; label_BFC3DA9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DA9C: 240C00FF addiu $t4, $zero, 255 */ cpu->gpr[12] = (uint32_t)((int32_t)cpu->gpr[0] + (255)); @@ -161742,6 +196764,9 @@ label_BFC3DA9C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-7148)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DAB4u); return; } g_debug_last_store_pc = 0xBFC3DAB4u; cpu->write_word(psx_addr, cpu->gpr[13]); } if (psx_taken_BFC3DAB0) goto label_BFC3DAF4; label_BFC3DAB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DAB8: 3C018014 lui $at, 0x8014 */ cpu->gpr[1] = 0x80140000u; @@ -161758,6 +196783,9 @@ label_BFC3DAB8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-7148)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DACCu); return; } g_debug_last_store_pc = 0xBFC3DACCu; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC3DAC8) goto label_BFC3DAF4; label_BFC3DAD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DAD0: 3C0F8014 lui $t7, 0x8014 */ cpu->gpr[15] = 0x80140000u; @@ -161772,6 +196800,9 @@ label_BFC3DAD0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (7)); if (psx_taken_BFC3DADC) goto label_BFC3DA94; label_BFC3DAE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DAE4: 11E1FFED beq $t7, $at, 0xBFC3DA9C */ uint32_t psx_brA_BFC3DAE4 = cpu->gpr[15]; uint32_t psx_brB_BFC3DAE4 = cpu->gpr[1]; @@ -161780,6 +196811,9 @@ label_BFC3DAE4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (8)); if (psx_taken_BFC3DAE4) goto label_BFC3DA9C; label_BFC3DAEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DAEC: 11E1FFF2 beq $t7, $at, 0xBFC3DAB8 */ uint32_t psx_brA_BFC3DAEC = cpu->gpr[15]; uint32_t psx_brB_BFC3DAEC = cpu->gpr[1]; @@ -161788,6 +196822,9 @@ label_BFC3DAEC: /* nop */ if (psx_taken_BFC3DAEC) goto label_BFC3DAB8; label_BFC3DAF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DAF4: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -161806,6 +196843,9 @@ label_BFC3DAF4: /* 0xBFC3DB10: 8FA90064 lw $t1, 100($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DB10u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } label_BFC3DB14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DB14: 00000000 nop */ /* nop */ @@ -161816,6 +196856,9 @@ label_BFC3DB14: /* nop */ if (psx_taken_BFC3DB18) goto label_BFC3DC08; label_BFC3DB20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DB20: 8FAA0068 lw $t2, 104($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (104)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DB20u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -161830,6 +196873,9 @@ label_BFC3DB20: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DB30u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } if (psx_taken_BFC3DB2C) goto label_BFC3DC2C; label_BFC3DB34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DB34: 10000034 beq $zero, $zero, 0xBFC3DC08 */ uint32_t psx_brA_BFC3DB34 = cpu->gpr[0]; uint32_t psx_brB_BFC3DB34 = cpu->gpr[0]; @@ -161838,6 +196884,9 @@ label_BFC3DB34: /* nop */ if (psx_taken_BFC3DB34) goto label_BFC3DC08; label_BFC3DB3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DB3C: 8FAD0040 lw $t5, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DB3Cu); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -161850,6 +196899,9 @@ label_BFC3DB3C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DB48u); return; } g_debug_last_store_pc = 0xBFC3DB48u; cpu->write_word(psx_addr, cpu->gpr[12]); } if (psx_taken_BFC3DB44) goto label_BFC3DB8C; label_BFC3DB4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DB4C: 3C0E8014 lui $t6, 0x8014 */ cpu->gpr[14] = 0x80140000u; @@ -161877,6 +196929,9 @@ label_BFC3DB4C: cpu->gpr[31] = 0x80055B7Cu; psx_dispatch(cpu, 0x8005A950u); label_BFC3DB7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DB7C: 3C190C01 lui $t9, 0xC01 */ cpu->gpr[25] = 0x0C010000u; @@ -161887,6 +196942,9 @@ label_BFC3DB7C: /* 0xBFC3DB88: AFB9006C sw $t9, 108($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (108)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DB88u); return; } g_debug_last_store_pc = 0xBFC3DB88u; cpu->write_word(psx_addr, cpu->gpr[25]); } label_BFC3DB8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(31u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DB8C: 8CE9000C lw $t1, 12($a3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[7] + (12)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DB8Cu); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -161953,6 +197011,9 @@ label_BFC3DB8C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (166)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DC04u); return; } g_debug_last_store_pc = 0xBFC3DC04u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[15] & 0xFFFFu)); } if (psx_taken_BFC3DC00) goto label_BFC3DC28; label_BFC3DC08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DC08: 3C188014 lui $t8, 0x8014 */ cpu->gpr[24] = 0x80140000u; @@ -161967,6 +197028,9 @@ label_BFC3DC08: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (8)); if (psx_taken_BFC3DC14) goto label_BFC3DB3C; label_BFC3DC1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DC1C: 1301FFC7 beq $t8, $at, 0xBFC3DB3C */ uint32_t psx_brA_BFC3DC1C = cpu->gpr[24]; uint32_t psx_brB_BFC3DC1C = cpu->gpr[1]; @@ -161975,14 +197039,23 @@ label_BFC3DC1C: cpu->gpr[1] = 0x80140000u; if (psx_taken_BFC3DC1C) goto label_BFC3DB3C; label_BFC3DC24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DC24: AC20E414 sw $zero, -7148($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-7148)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DC24u); return; } g_debug_last_store_pc = 0xBFC3DC24u; cpu->write_word(psx_addr, cpu->gpr[0]); } label_BFC3DC28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DC28: 8FB90064 lw $t9, 100($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DC28u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } label_BFC3DC2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DC2C: 00000000 nop */ /* nop */ @@ -161993,6 +197066,9 @@ label_BFC3DC2C: /* nop */ if (psx_taken_BFC3DC30) goto label_BFC3DCFC; label_BFC3DC38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DC38: 8FA90068 lw $t1, 104($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (104)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DC38u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -162007,6 +197083,9 @@ label_BFC3DC38: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DC48u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } if (psx_taken_BFC3DC44) goto label_BFC3DD20; label_BFC3DC4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DC4C: 1000002B beq $zero, $zero, 0xBFC3DCFC */ uint32_t psx_brA_BFC3DC4C = cpu->gpr[0]; uint32_t psx_brB_BFC3DC4C = cpu->gpr[0]; @@ -162015,6 +197094,9 @@ label_BFC3DC4C: /* nop */ if (psx_taken_BFC3DC4C) goto label_BFC3DCFC; label_BFC3DC54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DC54: 8FAD0040 lw $t5, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DC54u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -162027,6 +197109,9 @@ label_BFC3DC54: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DC60u); return; } g_debug_last_store_pc = 0xBFC3DC60u; cpu->write_word(psx_addr, cpu->gpr[12]); } if (psx_taken_BFC3DC5C) goto label_BFC3DCC4; label_BFC3DC64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DC64: 8FAE003C lw $t6, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DC64u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -162039,6 +197124,9 @@ label_BFC3DC64: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (108)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DC70u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } if (psx_taken_BFC3DC6C) goto label_BFC3DCB8; label_BFC3DC74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DC74: 3C0A8014 lui $t2, 0x8014 */ cpu->gpr[10] = 0x80140000u; @@ -162066,6 +197154,9 @@ label_BFC3DC74: cpu->gpr[31] = 0x80055CA4u; psx_dispatch(cpu, 0x8005A950u); label_BFC3DCA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DCA4: 8FA700B0 lw $a3, 176($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (176)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DCA4u); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } @@ -162078,10 +197169,16 @@ label_BFC3DCA4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (108)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DCB0u); return; } g_debug_last_store_pc = 0xBFC3DCB0u; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC3DCAC) goto label_BFC3DCC4; label_BFC3DCB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DCB4: 8FA9006C lw $t1, 108($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (108)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DCB4u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } label_BFC3DCB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DCB8: 00000000 nop */ /* nop */ @@ -162090,6 +197187,9 @@ label_BFC3DCB8: /* 0xBFC3DCC0: AFAB006C sw $t3, 108($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (108)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DCC0u); return; } g_debug_last_store_pc = 0xBFC3DCC0u; cpu->write_word(psx_addr, cpu->gpr[11]); } label_BFC3DCC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DCC4: 8CEC0010 lw $t4, 16($a3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[7] + (16)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DCC4u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -162122,6 +197222,9 @@ label_BFC3DCC4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DCF8u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } if (psx_taken_BFC3DCF4) goto label_BFC3DD20; label_BFC3DCFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DCFC: 3C0F8014 lui $t7, 0x8014 */ cpu->gpr[15] = 0x80140000u; @@ -162136,6 +197239,9 @@ label_BFC3DCFC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (8)); if (psx_taken_BFC3DD08) goto label_BFC3DC54; label_BFC3DD10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DD10: 11E1FFD0 beq $t7, $at, 0xBFC3DC54 */ uint32_t psx_brA_BFC3DD10 = cpu->gpr[15]; uint32_t psx_brB_BFC3DD10 = cpu->gpr[1]; @@ -162144,12 +197250,18 @@ label_BFC3DD10: cpu->gpr[1] = 0x80140000u; if (psx_taken_BFC3DD10) goto label_BFC3DC54; label_BFC3DD18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DD18: AC20E418 sw $zero, -7144($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-7144)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DD18u); return; } g_debug_last_store_pc = 0xBFC3DD18u; cpu->write_word(psx_addr, cpu->gpr[0]); } /* 0xBFC3DD1C: 8FB80040 lw $t8, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DD1Cu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } label_BFC3DD20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DD20: 00000000 nop */ /* nop */ @@ -162160,6 +197272,9 @@ label_BFC3DD20: /* nop */ if (psx_taken_BFC3DD24) goto label_BFC3DD4C; label_BFC3DD2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DD2C: 8FB9003C lw $t9, 60($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (60)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DD2Cu); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -162172,6 +197287,9 @@ label_BFC3DD2C: /* nop */ if (psx_taken_BFC3DD34) goto label_BFC3DD4C; label_BFC3DD3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DD3C: 8FA90038 lw $t1, 56($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (56)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DD3Cu); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -162184,6 +197302,9 @@ label_BFC3DD3C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DD48u); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } if (psx_taken_BFC3DD44) goto label_BFC3DD70; label_BFC3DD4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DD4C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -162199,6 +197320,9 @@ label_BFC3DD4C: cpu->gpr[31] = 0x80055D64u; psx_dispatch(cpu, 0x80054710u); label_BFC3DD64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DD64: 8FA700B0 lw $a3, 176($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (176)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DD64u); return; } cpu->gpr[7] = cpu->read_word(psx_addr); } @@ -162207,6 +197331,9 @@ label_BFC3DD64: /* 0xBFC3DD6C: 8FAB0040 lw $t3, 64($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (64)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DD6Cu); return; } cpu->gpr[11] = cpu->read_word(psx_addr); } label_BFC3DD70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DD70: 00000000 nop */ /* nop */ @@ -162217,6 +197344,9 @@ label_BFC3DD70: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (80)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DD78u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } if (psx_taken_BFC3DD74) goto label_BFC3DE08; label_BFC3DD7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DD7C: 8FAC0064 lw $t4, 100($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DD7Cu); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -162229,6 +197359,9 @@ label_BFC3DD7C: /* nop */ if (psx_taken_BFC3DD84) goto label_BFC3DDA0; label_BFC3DD8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DD8C: 8FAD0068 lw $t5, 104($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (104)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DD8Cu); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -162243,6 +197376,9 @@ label_BFC3DD8C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DD9Cu); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } if (psx_taken_BFC3DD98) goto label_BFC3DDC4; label_BFC3DDA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DDA0: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -162263,6 +197399,9 @@ label_BFC3DDA0: /* 0xBFC3DDC0: 8FB90064 lw $t9, 100($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (100)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DDC0u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } label_BFC3DDC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DDC4: 00000000 nop */ /* nop */ @@ -162273,6 +197412,9 @@ label_BFC3DDC4: /* nop */ if (psx_taken_BFC3DDC8) goto label_BFC3DDE4; label_BFC3DDD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DDD0: 8FA90068 lw $t1, 104($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (104)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DDD0u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } @@ -162287,6 +197429,9 @@ label_BFC3DDD0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (80)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DDE0u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } if (psx_taken_BFC3DDDC) goto label_BFC3DE08; label_BFC3DDE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DDE4: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -162307,6 +197452,9 @@ label_BFC3DDE4: /* 0xBFC3DE04: 8FAA0050 lw $t2, 80($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (80)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DE04u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } label_BFC3DE08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DE08: 00000000 nop */ /* nop */ @@ -162317,6 +197465,9 @@ label_BFC3DE08: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DE10u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC3DE0C) goto label_BFC3DE2C; label_BFC3DE14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DE14: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -162330,10 +197481,16 @@ label_BFC3DE14: cpu->gpr[31] = 0x80055E28u; psx_dispatch(cpu, 0x80054710u); label_BFC3DE28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DE28: 8FBF002C lw $ra, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DE28u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC3DE2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DE2C: 8FA20054 lw $v0, 84($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (84)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DE2Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -162354,6 +197511,9 @@ void func_1FC3DED0(CPUState* cpu) { } } label_BFC3DED0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DED0: 3C010007 lui $at, 0x7 */ cpu->gpr[1] = 0x00070000u; @@ -162370,12 +197530,18 @@ label_BFC3DED0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DEE4u); return; } g_debug_last_store_pc = 0xBFC3DEE4u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC3DEE0) goto label_BFC3DEF0; label_BFC3DEE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DEE8: 3C050007 lui $a1, 0x7 */ cpu->gpr[5] = 0x00070000u; /* 0xBFC3DEEC: 34A5F000 ori $a1, $a1, 0xF000 */ cpu->gpr[5] = cpu->gpr[5] | 0xF000u; label_BFC3DEF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DEF0: 0C01510A jal 0xB0054428 */ /* 0xBFC3DEF4: AFA5001C sw $a1, 28($sp) */ @@ -162383,6 +197549,9 @@ label_BFC3DEF0: cpu->gpr[31] = 0x80055EF8u; psx_dispatch(cpu, 0x80054428u); label_BFC3DEF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DEF8: 8FA5001C lw $a1, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DEF8u); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -162411,6 +197580,9 @@ void func_1FC3DF20(CPUState* cpu) { } } label_BFC3DF20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DF20: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -162423,6 +197595,9 @@ label_BFC3DF20: cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC3DF28) goto label_BFC3DF44; label_BFC3DF30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DF30: 240E0001 addiu $t6, $zero, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -162433,6 +197608,9 @@ label_BFC3DF30: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DF38u); return; } g_debug_last_store_pc = 0xBFC3DF38u; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC3DF34) goto label_BFC3DF5C; label_BFC3DF3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DF3C: 10000007 beq $zero, $zero, 0xBFC3DF5C */ uint32_t psx_brA_BFC3DF3C = cpu->gpr[0]; uint32_t psx_brB_BFC3DF3C = cpu->gpr[0]; @@ -162441,6 +197619,9 @@ label_BFC3DF3C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DF40u); return; } g_debug_last_store_pc = 0xBFC3DF40u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC3DF3C) goto label_BFC3DF5C; label_BFC3DF44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DF44: 1060FFFA beq $v1, $zero, 0xBFC3DF30 */ uint32_t psx_brA_BFC3DF44 = cpu->gpr[3]; uint32_t psx_brB_BFC3DF44 = cpu->gpr[0]; @@ -162449,6 +197630,9 @@ label_BFC3DF44: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC3DF44) goto label_BFC3DF30; label_BFC3DF4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DF4C: 1061FFFB beq $v1, $at, 0xBFC3DF3C */ uint32_t psx_brA_BFC3DF4C = cpu->gpr[3]; uint32_t psx_brB_BFC3DF4C = cpu->gpr[1]; @@ -162457,12 +197641,18 @@ label_BFC3DF4C: /* nop */ if (psx_taken_BFC3DF4C) goto label_BFC3DF3C; label_BFC3DF54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DF54: 240F0001 addiu $t7, $zero, 1 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); /* 0xBFC3DF58: AFAF001C sw $t7, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DF58u); return; } g_debug_last_store_pc = 0xBFC3DF58u; cpu->write_word(psx_addr, cpu->gpr[15]); } label_BFC3DF5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DF5C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -162480,6 +197670,9 @@ label_BFC3DF5C: cpu->gpr[31] = 0x80055F78u; psx_dispatch(cpu, 0x80054710u); label_BFC3DF78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DF78: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DF78u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -162502,6 +197695,9 @@ void func_1FC3DF90(CPUState* cpu) { } } label_BFC3DF90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DF90: 3C010007 lui $at, 0x7 */ cpu->gpr[1] = 0x00070000u; @@ -162518,6 +197714,9 @@ label_BFC3DF90: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DFA4u); return; } g_debug_last_store_pc = 0xBFC3DFA4u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC3DFA0) goto label_BFC3DFB0; label_BFC3DFA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DFA8: 10000017 beq $zero, $zero, 0xBFC3E008 */ uint32_t psx_brA_BFC3DFA8 = cpu->gpr[0]; uint32_t psx_brB_BFC3DFA8 = cpu->gpr[0]; @@ -162526,6 +197725,9 @@ label_BFC3DFA8: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3DFA8) goto label_BFC3E008; label_BFC3DFB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DFB0: 2C811000 sltiu $at, $a0, 4096 */ cpu->gpr[1] = (uint32_t)(cpu->gpr[4] < 0x00001000u ? 1 : 0); @@ -162536,6 +197738,9 @@ label_BFC3DFB0: cpu->gpr[14] = cpu->gpr[4] & 0x7u; if (psx_taken_BFC3DFB4) goto label_BFC3DFC8; label_BFC3DFBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DFBC: 10000012 beq $zero, $zero, 0xBFC3E008 */ uint32_t psx_brA_BFC3DFBC = cpu->gpr[0]; uint32_t psx_brB_BFC3DFBC = cpu->gpr[0]; @@ -162544,10 +197749,16 @@ label_BFC3DFBC: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3DFBC) goto label_BFC3E008; label_BFC3DFC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DFC4: 308E0007 andi $t6, $a0, 0x7 */ cpu->gpr[14] = cpu->gpr[4] & 0x7u; label_BFC3DFC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DFC8: 15C00003 bne $t6, $zero, 0xBFC3DFD8 */ uint32_t psx_brA_BFC3DFC8 = cpu->gpr[14]; uint32_t psx_brB_BFC3DFC8 = cpu->gpr[0]; @@ -162556,6 +197767,9 @@ label_BFC3DFC8: /* nop */ if (psx_taken_BFC3DFC8) goto label_BFC3DFD8; label_BFC3DFD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DFD0: 10000005 beq $zero, $zero, 0xBFC3DFE8 */ uint32_t psx_brA_BFC3DFD0 = cpu->gpr[0]; uint32_t psx_brB_BFC3DFD0 = cpu->gpr[0]; @@ -162564,6 +197778,9 @@ label_BFC3DFD0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DFD4u); return; } g_debug_last_store_pc = 0xBFC3DFD4u; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC3DFD0) goto label_BFC3DFE8; label_BFC3DFD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DFD8: 24840008 addiu $a0, $a0, 8 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (8)); @@ -162574,6 +197791,9 @@ label_BFC3DFD8: /* 0xBFC3DFE4: AFA40018 sw $a0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DFE4u); return; } g_debug_last_store_pc = 0xBFC3DFE4u; cpu->write_word(psx_addr, cpu->gpr[4]); } label_BFC3DFE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DFE8: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -162587,6 +197807,9 @@ label_BFC3DFE8: cpu->gpr[31] = 0x80055FFCu; psx_dispatch(cpu, 0x80054710u); label_BFC3DFFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3DFFC: 8FA40018 lw $a0, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3DFFCu); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -162595,6 +197818,9 @@ label_BFC3DFFC: /* 0xBFC3E004: 00801021 addu $v0, $a0, $zero */ cpu->gpr[2] = cpu->gpr[4] + cpu->gpr[0]; label_BFC3E008: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E008: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E008u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -162618,6 +197844,9 @@ void func_1FC3E020(CPUState* cpu) { } } label_BFC3E020: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E020: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -162636,6 +197865,9 @@ label_BFC3E020: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E038u); return; } g_debug_last_store_pc = 0xBFC3E038u; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC3E034) goto label_BFC3E044; label_BFC3E03C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E03C: 1000001C beq $zero, $zero, 0xBFC3E0B0 */ uint32_t psx_brA_BFC3E03C = cpu->gpr[0]; uint32_t psx_brB_BFC3E03C = cpu->gpr[0]; @@ -162644,6 +197876,9 @@ label_BFC3E03C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC3E03C) goto label_BFC3E0B0; label_BFC3E044: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E044: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -162655,6 +197890,9 @@ label_BFC3E044: cpu->gpr[31] = 0x80056054u; psx_dispatch(cpu, 0x8005AA00u); label_BFC3E054: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E054: 8FAF0020 lw $t7, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E054u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -162667,6 +197905,9 @@ label_BFC3E054: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC3E05C) goto label_BFC3E098; label_BFC3E064: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E064: 14400008 bne $v0, $zero, 0xBFC3E088 */ uint32_t psx_brA_BFC3E064 = cpu->gpr[2]; uint32_t psx_brB_BFC3E064 = cpu->gpr[0]; @@ -162675,6 +197916,9 @@ label_BFC3E064: cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC3E064) goto label_BFC3E088; label_BFC3E06C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E06C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -162686,6 +197930,9 @@ label_BFC3E06C: cpu->gpr[31] = 0x8005607Cu; psx_dispatch(cpu, 0x8005AA00u); label_BFC3E07C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E07C: 1040FFFB beq $v0, $zero, 0xBFC3E06C */ uint32_t psx_brA_BFC3E07C = cpu->gpr[2]; uint32_t psx_brB_BFC3E07C = cpu->gpr[0]; @@ -162694,10 +197941,16 @@ label_BFC3E07C: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC3E07C) goto label_BFC3E06C; label_BFC3E084: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E084: 24180001 addiu $t8, $zero, 1 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC3E088: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E088: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -162710,6 +197963,9 @@ label_BFC3E088: cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC3E090) goto label_BFC3E0B0; label_BFC3E098: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E098: 14450005 bne $v0, $a1, 0xBFC3E0B0 */ uint32_t psx_brA_BFC3E098 = cpu->gpr[2]; uint32_t psx_brB_BFC3E098 = cpu->gpr[5]; @@ -162718,6 +197974,9 @@ label_BFC3E098: cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC3E098) goto label_BFC3E0B0; label_BFC3E0A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E0A0: 24190001 addiu $t9, $zero, 1 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -162728,6 +197987,9 @@ label_BFC3E0A0: /* 0xBFC3E0AC: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; label_BFC3E0B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E0B0: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E0B0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -162742,6 +198004,9 @@ label_BFC3E0B0: void func_1FC3E0C0(CPUState* cpu) { debug_server_log_call_entry(0x1FC3E0C0u); label_BFC3E0C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E0C0: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -162752,12 +198017,18 @@ label_BFC3E0C0: cpu->gpr[1] = 0x80080000u; if (psx_taken_BFC3E0C4) goto label_BFC3E0D4; label_BFC3E0CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E0CC: 03E00008 jr $ra */ /* 0xBFC3E0D0: AC209F28 sw $zero, -24792($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-24792)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E0D0u); return; } g_debug_last_store_pc = 0xBFC3E0D0u; cpu->write_word(psx_addr, cpu->gpr[0]); } return; label_BFC3E0D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E0D4: 240E0001 addiu $t6, $zero, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -162774,6 +198045,9 @@ label_BFC3E0D4: void func_1FC3E0E8(CPUState* cpu) { debug_server_log_call_entry(0x1FC3E0E8u); label_BFC3E0E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E0E8: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -162788,12 +198062,18 @@ label_BFC3E0E8: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3E0F4) goto label_BFC3E108; label_BFC3E0FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E0FC: 03E00008 jr $ra */ /* 0xBFC3E100: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); return; label_BFC3E108: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E108: 03E00008 jr $ra */ /* 0xBFC3E10C: 00000000 nop */ @@ -162804,6 +198084,9 @@ label_BFC3E108: void func_1FC3E110(CPUState* cpu) { debug_server_log_call_entry(0x1FC3E110u); label_BFC3E110: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E110: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -162820,6 +198103,9 @@ label_BFC3E110: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3E120) goto label_BFC3E144; label_BFC3E128: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E128: 3C04800E lui $a0, 0x800E */ cpu->gpr[4] = 0x800E0000u; @@ -162838,6 +198124,9 @@ label_BFC3E128: cpu->gpr[13] = cpu->gpr[13] | 0xFFFFu; if (psx_taken_BFC3E13C) goto label_BFC3E1F4; label_BFC3E144: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E144: 3C04800E lui $a0, 0x800E */ cpu->gpr[4] = 0x800E0000u; @@ -162856,6 +198145,9 @@ label_BFC3E144: /* 0xBFC3E160: 00802821 addu $a1, $a0, $zero */ cpu->gpr[5] = cpu->gpr[4] + cpu->gpr[0]; label_BFC3E164: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E164: 8CA60000 lw $a2, 0($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E164u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -162870,6 +198162,9 @@ label_BFC3E164: /* nop */ if (psx_taken_BFC3E170) goto label_BFC3E1DC; label_BFC3E178: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E178: 01003821 addu $a3, $t0, $zero */ cpu->gpr[7] = cpu->gpr[8] + cpu->gpr[0]; @@ -162878,6 +198173,9 @@ label_BFC3E178: /* 0xBFC3E180: 008F4821 addu $t1, $a0, $t7 */ cpu->gpr[9] = cpu->gpr[4] + cpu->gpr[15]; label_BFC3E184: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E184: 8D2A0000 lw $t2, 0($t1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E184u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -162890,6 +198188,9 @@ label_BFC3E184: cpu->gpr[24] = cpu->gpr[10] & cpu->gpr[11]; if (psx_taken_BFC3E18C) goto label_BFC3E1A0; label_BFC3E194: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E194: 1000FFFB beq $zero, $zero, 0xBFC3E184 */ uint32_t psx_brA_BFC3E194 = cpu->gpr[0]; uint32_t psx_brB_BFC3E194 = cpu->gpr[0]; @@ -162898,10 +198199,16 @@ label_BFC3E194: cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[9] + (8)); if (psx_taken_BFC3E194) goto label_BFC3E184; label_BFC3E19C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E19C: 014BC024 and $t8, $t2, $t3 */ cpu->gpr[24] = cpu->gpr[10] & cpu->gpr[11]; label_BFC3E1A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E1A0: 1300000E beq $t8, $zero, 0xBFC3E1DC */ uint32_t psx_brA_BFC3E1A0 = cpu->gpr[24]; uint32_t psx_brB_BFC3E1A0 = cpu->gpr[0]; @@ -162910,6 +198217,9 @@ label_BFC3E1A0: /* nop */ if (psx_taken_BFC3E1A0) goto label_BFC3E1DC; label_BFC3E1A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E1A8: 8CAE0004 lw $t6, 4($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E1A8u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -162926,6 +198236,9 @@ label_BFC3E1A8: /* nop */ if (psx_taken_BFC3E1B8) goto label_BFC3E1DC; label_BFC3E1C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E1C0: AD2C0000 sw $t4, 0($t1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E1C0u); return; } g_debug_last_store_pc = 0xBFC3E1C0u; cpu->write_word(psx_addr, cpu->gpr[12]); } @@ -162944,12 +198257,18 @@ label_BFC3E1C0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E1D8u); return; } g_debug_last_store_pc = 0xBFC3E1D8u; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC3E1D4) goto label_BFC3E1E4; label_BFC3E1DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E1DC: 01001021 addu $v0, $t0, $zero */ cpu->gpr[2] = cpu->gpr[8] + cpu->gpr[0]; /* 0xBFC3E1E0: 24A50008 addiu $a1, $a1, 8 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (8)); label_BFC3E1E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E1E4: 0043082A slt $at, $v0, $v1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (int32_t)cpu->gpr[3] ? 1 : 0); @@ -162960,10 +198279,16 @@ label_BFC3E1E4: /* nop */ if (psx_taken_BFC3E1E8) goto label_BFC3E164; label_BFC3E1F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E1F0: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC3E1F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E1F4: 1C600004 bgtz $v1, 0xBFC3E208 */ uint32_t psx_brA_BFC3E1F4 = cpu->gpr[3]; @@ -162972,6 +198297,9 @@ label_BFC3E1F4: cpu->gpr[5] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC3E1F4) goto label_BFC3E208; label_BFC3E1FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E1FC: 1000002C beq $zero, $zero, 0xBFC3E2B0 */ uint32_t psx_brA_BFC3E1FC = cpu->gpr[0]; uint32_t psx_brB_BFC3E1FC = cpu->gpr[0]; @@ -162980,14 +198308,23 @@ label_BFC3E1FC: cpu->gpr[16] = 0x40000000u; if (psx_taken_BFC3E1FC) goto label_BFC3E2B0; label_BFC3E204: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E204: 00802821 addu $a1, $a0, $zero */ cpu->gpr[5] = cpu->gpr[4] + cpu->gpr[0]; label_BFC3E208: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E208: 3C104000 lui $s0, 0x4000 */ cpu->gpr[16] = 0x40000000u; label_BFC3E20C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E20C: 8CB80000 lw $t8, 0($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E20Cu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -163002,6 +198339,9 @@ label_BFC3E20C: cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[3] + (-1)); if (psx_taken_BFC3E218) goto label_BFC3E22C; label_BFC3E220: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E220: 10000023 beq $zero, $zero, 0xBFC3E2B0 */ uint32_t psx_brA_BFC3E220 = cpu->gpr[0]; uint32_t psx_brB_BFC3E220 = cpu->gpr[0]; @@ -163010,10 +198350,16 @@ label_BFC3E220: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3E220) goto label_BFC3E2B0; label_BFC3E228: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E228: 246EFFFF addiu $t6, $v1, -1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[3] + (-1)); label_BFC3E22C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E22C: 004E082A slt $at, $v0, $t6 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (int32_t)cpu->gpr[14] ? 1 : 0); @@ -163026,12 +198372,18 @@ label_BFC3E22C: cpu->gpr[7] = cpu->gpr[8] + cpu->gpr[0]; if (psx_taken_BFC3E234) goto label_BFC3E29C; label_BFC3E23C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E23C: 000778C0 sll $t7, $a3, 3 */ cpu->gpr[15] = cpu->gpr[7] << 3u; /* 0xBFC3E240: 008F4821 addu $t1, $a0, $t7 */ cpu->gpr[9] = cpu->gpr[4] + cpu->gpr[15]; label_BFC3E244: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E244: 8D2A0000 lw $t2, 0($t1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E244u); return; } cpu->gpr[10] = cpu->read_word(psx_addr); } @@ -163046,6 +198398,9 @@ label_BFC3E244: cpu->gpr[2] = cpu->gpr[8] + cpu->gpr[0]; if (psx_taken_BFC3E250) goto label_BFC3E2A0; label_BFC3E258: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E258: 8CA60000 lw $a2, 0($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E258u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -163062,6 +198417,9 @@ label_BFC3E258: /* nop */ if (psx_taken_BFC3E268) goto label_BFC3E28C; label_BFC3E270: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E270: ACAA0000 sw $t2, 0($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E270u); return; } g_debug_last_store_pc = 0xBFC3E270u; cpu->write_word(psx_addr, cpu->gpr[10]); } @@ -163078,6 +198436,9 @@ label_BFC3E270: /* 0xBFC3E288: AD2B0004 sw $t3, 4($t1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[9] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E288u); return; } g_debug_last_store_pc = 0xBFC3E288u; cpu->write_word(psx_addr, cpu->gpr[11]); } label_BFC3E28C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E28C: 24E70001 addiu $a3, $a3, 1 */ cpu->gpr[7] = (uint32_t)((int32_t)cpu->gpr[7] + (1)); @@ -163090,10 +198451,16 @@ label_BFC3E28C: cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[9] + (8)); if (psx_taken_BFC3E294) goto label_BFC3E244; label_BFC3E29C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E29C: 01001021 addu $v0, $t0, $zero */ cpu->gpr[2] = cpu->gpr[8] + cpu->gpr[0]; label_BFC3E2A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E2A0: 0043082A slt $at, $v0, $v1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (int32_t)cpu->gpr[3] ? 1 : 0); @@ -163104,10 +198471,16 @@ label_BFC3E2A0: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (8)); if (psx_taken_BFC3E2A4) goto label_BFC3E20C; label_BFC3E2AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E2AC: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC3E2B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E2B0: 18600019 blez $v1, 0xBFC3E318 */ uint32_t psx_brA_BFC3E2B0 = cpu->gpr[3]; @@ -163116,10 +198489,16 @@ label_BFC3E2B0: /* nop */ if (psx_taken_BFC3E2B0) goto label_BFC3E318; label_BFC3E2B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E2B8: 00802821 addu $a1, $a0, $zero */ cpu->gpr[5] = cpu->gpr[4] + cpu->gpr[0]; label_BFC3E2BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E2BC: 8CA60000 lw $a2, 0($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E2BCu); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -163134,6 +198513,9 @@ label_BFC3E2BC: /* nop */ if (psx_taken_BFC3E2C8) goto label_BFC3E318; label_BFC3E2D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E2D0: 1586000E bne $t4, $a2, 0xBFC3E30C */ uint32_t psx_brA_BFC3E2D0 = cpu->gpr[12]; uint32_t psx_brB_BFC3E2D0 = cpu->gpr[6]; @@ -163142,6 +198524,9 @@ label_BFC3E2D0: /* nop */ if (psx_taken_BFC3E2D0) goto label_BFC3E30C; label_BFC3E2D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E2D8: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -163172,6 +198557,9 @@ label_BFC3E2D8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25608)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E308u); return; } g_debug_last_store_pc = 0xBFC3E308u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC3E304) goto label_BFC3E318; label_BFC3E30C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E30C: 24420001 addiu $v0, $v0, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (1)); @@ -163182,6 +198570,9 @@ label_BFC3E30C: cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (8)); if (psx_taken_BFC3E310) goto label_BFC3E2BC; label_BFC3E318: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E318: 8FB00004 lw $s0, 4($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E318u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -163194,6 +198585,9 @@ label_BFC3E318: void func_1FC3E324(CPUState* cpu) { debug_server_log_call_entry(0x1FC3E324u); label_BFC3E324: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E324: 18800017 blez $a0, 0xBFC3E384 */ uint32_t psx_brA_BFC3E324 = cpu->gpr[4]; @@ -163202,6 +198596,9 @@ label_BFC3E324: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3E324) goto label_BFC3E384; label_BFC3E32C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(22u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E32C: AC25EE44 sw $a1, -4540($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4540)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E32Cu); return; } g_debug_last_store_pc = 0xBFC3E32Cu; cpu->write_word(psx_addr, cpu->gpr[5]); } @@ -163248,6 +198645,9 @@ label_BFC3E32C: cpu->gpr[2] = cpu->gpr[4] + cpu->gpr[0]; return; label_BFC3E384: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E384: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; @@ -163268,6 +198668,9 @@ void func_1FC3E390(CPUState* cpu) { } } label_BFC3E390: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E390: 3C07800E lui $a3, 0x800E */ cpu->gpr[7] = 0x800E0000u; @@ -163298,6 +198701,9 @@ label_BFC3E390: cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC3E3BC) goto label_BFC3E3CC; label_BFC3E3C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E3C4: 1000000A beq $zero, $zero, 0xBFC3E3F0 */ uint32_t psx_brA_BFC3E3C4 = cpu->gpr[0]; uint32_t psx_brB_BFC3E3C4 = cpu->gpr[0]; @@ -163306,6 +198712,9 @@ label_BFC3E3C4: cpu->gpr[12] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3E3C4) goto label_BFC3E3F0; label_BFC3E3CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E3CC: 3C188014 lui $t8, 0x8014 */ cpu->gpr[24] = 0x80140000u; @@ -163326,6 +198735,9 @@ label_BFC3E3CC: /* 0xBFC3E3EC: 00F86004 sllv $t4, $t8, $a3 */ cpu->gpr[12] = cpu->gpr[24] << (cpu->gpr[7] & 0x1Fu); label_BFC3E3F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E3F0: 2462FFFF addiu $v0, $v1, -1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[3] + (-1)); @@ -163340,6 +198752,9 @@ label_BFC3E3F0: cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3E3FC) goto label_BFC3E410; label_BFC3E404: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E404: 10000002 beq $zero, $zero, 0xBFC3E410 */ uint32_t psx_brA_BFC3E404 = cpu->gpr[0]; uint32_t psx_brB_BFC3E404 = cpu->gpr[0]; @@ -163348,10 +198763,16 @@ label_BFC3E404: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC3E404) goto label_BFC3E410; label_BFC3E40C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E40C: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; label_BFC3E410: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E410: 3C0D800E lui $t5, 0x800E */ cpu->gpr[13] = 0x800E0000u; @@ -163374,6 +198795,9 @@ label_BFC3E410: cpu->gpr[8] = cpu->gpr[8] << (cpu->gpr[7] & 0x1Fu); if (psx_taken_BFC3E42C) goto label_BFC3E444; label_BFC3E434: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E434: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -163386,6 +198810,9 @@ label_BFC3E434: cpu->gpr[11] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3E43C) goto label_BFC3E4F0; label_BFC3E444: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E444: AFA5002C sw $a1, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E444u); return; } g_debug_last_store_pc = 0xBFC3E444u; cpu->write_word(psx_addr, cpu->gpr[5]); } @@ -163399,6 +198826,9 @@ label_BFC3E444: cpu->gpr[31] = 0x80056458u; psx_dispatch(cpu, 0x80056110u); label_BFC3E458: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E458: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -163419,6 +198849,9 @@ label_BFC3E458: cpu->gpr[6] = 0x40000000u; if (psx_taken_BFC3E470) goto label_BFC3E488; label_BFC3E478: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E478: 3C0D800E lui $t5, 0x800E */ cpu->gpr[13] = 0x800E0000u; @@ -163431,6 +198864,9 @@ label_BFC3E478: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3E480) goto label_BFC3E4F4; label_BFC3E488: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E488: 3C0D800E lui $t5, 0x800E */ cpu->gpr[13] = 0x800E0000u; @@ -163443,6 +198879,9 @@ label_BFC3E488: /* 0xBFC3E498: 01B91821 addu $v1, $t5, $t9 */ cpu->gpr[3] = cpu->gpr[13] + cpu->gpr[25]; label_BFC3E49C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E49C: 8C620000 lw $v0, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E49Cu); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -163457,6 +198896,9 @@ label_BFC3E49C: /* nop */ if (psx_taken_BFC3E4A8) goto label_BFC3E4D8; label_BFC3E4B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E4B0: 00447024 and $t6, $v0, $a0 */ cpu->gpr[14] = cpu->gpr[2] & cpu->gpr[4]; @@ -163467,6 +198909,9 @@ label_BFC3E4B0: /* nop */ if (psx_taken_BFC3E4B4) goto label_BFC3E4E0; label_BFC3E4BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E4BC: 8C780004 lw $t8, 4($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E4BCu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -163481,6 +198926,9 @@ label_BFC3E4BC: /* nop */ if (psx_taken_BFC3E4C8) goto label_BFC3E4E0; label_BFC3E4D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E4D0: 10000007 beq $zero, $zero, 0xBFC3E4F0 */ uint32_t psx_brA_BFC3E4D0 = cpu->gpr[0]; uint32_t psx_brB_BFC3E4D0 = cpu->gpr[0]; @@ -163489,6 +198937,9 @@ label_BFC3E4D0: cpu->gpr[11] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC3E4D0) goto label_BFC3E4F0; label_BFC3E4D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E4D8: 10000005 beq $zero, $zero, 0xBFC3E4F0 */ uint32_t psx_brA_BFC3E4D8 = cpu->gpr[0]; uint32_t psx_brB_BFC3E4D8 = cpu->gpr[0]; @@ -163497,6 +198948,9 @@ label_BFC3E4D8: cpu->gpr[11] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC3E4D8) goto label_BFC3E4F0; label_BFC3E4E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E4E0: 24A50001 addiu $a1, $a1, 1 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (1)); @@ -163509,10 +198963,16 @@ label_BFC3E4E0: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (8)); if (psx_taken_BFC3E4E8) goto label_BFC3E49C; label_BFC3E4F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E4F0: 2401FFFF addiu $at, $zero, -1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); label_BFC3E4F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E4F4: 15610004 bne $t3, $at, 0xBFC3E508 */ uint32_t psx_brA_BFC3E4F4 = cpu->gpr[11]; uint32_t psx_brB_BFC3E4F4 = cpu->gpr[1]; @@ -163521,6 +198981,9 @@ label_BFC3E4F4: cpu->gpr[25] = cpu->gpr[11] << 3u; if (psx_taken_BFC3E4F4) goto label_BFC3E508; label_BFC3E4FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E4FC: 10000049 beq $zero, $zero, 0xBFC3E624 */ uint32_t psx_brA_BFC3E4FC = cpu->gpr[0]; uint32_t psx_brB_BFC3E4FC = cpu->gpr[0]; @@ -163529,10 +198992,16 @@ label_BFC3E4FC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3E4FC) goto label_BFC3E624; label_BFC3E504: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E504: 000BC8C0 sll $t9, $t3, 3 */ cpu->gpr[25] = cpu->gpr[11] << 3u; label_BFC3E508: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E508: 01B92821 addu $a1, $t5, $t9 */ cpu->gpr[5] = cpu->gpr[13] + cpu->gpr[25]; @@ -163549,6 +199018,9 @@ label_BFC3E508: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[11] < (int32_t)cpu->gpr[10] ? 1 : 0); if (psx_taken_BFC3E518) goto label_BFC3E5A0; label_BFC3E520: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E520: 1020001D beq $at, $zero, 0xBFC3E598 */ uint32_t psx_brA_BFC3E520 = cpu->gpr[1]; uint32_t psx_brB_BFC3E520 = cpu->gpr[0]; @@ -163557,6 +199029,9 @@ label_BFC3E520: /* nop */ if (psx_taken_BFC3E520) goto label_BFC3E598; label_BFC3E528: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E528: 8CAE0004 lw $t6, 4($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E528u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -163573,6 +199048,9 @@ label_BFC3E528: /* nop */ if (psx_taken_BFC3E538) goto label_BFC3E590; label_BFC3E540: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E540: 3C040FFF lui $a0, 0xFFF */ cpu->gpr[4] = 0x0FFF0000u; @@ -163617,6 +199095,9 @@ label_BFC3E540: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25608)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E58Cu); return; } g_debug_last_store_pc = 0xBFC3E58Cu; cpu->write_word(psx_addr, cpu->gpr[7]); } if (psx_taken_BFC3E588) goto label_BFC3E624; label_BFC3E590: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E590: 10000024 beq $zero, $zero, 0xBFC3E624 */ uint32_t psx_brA_BFC3E590 = cpu->gpr[0]; uint32_t psx_brB_BFC3E590 = cpu->gpr[0]; @@ -163625,6 +199106,9 @@ label_BFC3E590: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3E590) goto label_BFC3E624; label_BFC3E598: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E598: 10000022 beq $zero, $zero, 0xBFC3E624 */ uint32_t psx_brA_BFC3E598 = cpu->gpr[0]; uint32_t psx_brB_BFC3E598 = cpu->gpr[0]; @@ -163633,6 +199117,9 @@ label_BFC3E598: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3E598) goto label_BFC3E624; label_BFC3E5A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E5A0: 8CA60004 lw $a2, 4($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E5A0u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -163647,6 +199134,9 @@ label_BFC3E5A0: cpu->gpr[4] = 0x0FFF0000u; if (psx_taken_BFC3E5AC) goto label_BFC3E610; label_BFC3E5B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E5B4: 3C078008 lui $a3, 0x8008 */ cpu->gpr[7] = 0x80080000u; @@ -163663,6 +199153,9 @@ label_BFC3E5B4: cpu->gpr[4] = 0x0FFF0000u; if (psx_taken_BFC3E5C4) goto label_BFC3E610; label_BFC3E5CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E5CC: 0007C8C0 sll $t9, $a3, 3 */ cpu->gpr[25] = cpu->gpr[7] << 3u; @@ -163699,6 +199192,9 @@ label_BFC3E5CC: /* 0xBFC3E60C: 3C040FFF lui $a0, 0xFFF */ cpu->gpr[4] = 0x0FFF0000u; label_BFC3E610: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E610: 3484FFFF ori $a0, $a0, 0xFFFF */ cpu->gpr[4] = cpu->gpr[4] | 0xFFFFu; @@ -163711,6 +199207,9 @@ label_BFC3E610: /* 0xBFC3E620: ACA80004 sw $t0, 4($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E620u); return; } g_debug_last_store_pc = 0xBFC3E620u; cpu->write_word(psx_addr, cpu->gpr[8]); } label_BFC3E624: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E624: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E624u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -163725,6 +199224,9 @@ label_BFC3E624: void func_1FC3E634(CPUState* cpu) { debug_server_log_call_entry(0x1FC3E634u); label_BFC3E634: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E634: 3C08800E lui $t0, 0x800E */ cpu->gpr[8] = 0x800E0000u; @@ -163751,6 +199253,9 @@ label_BFC3E634: cpu->gpr[3] = cpu->gpr[7] + cpu->gpr[0]; if (psx_taken_BFC3E658) goto label_BFC3E668; label_BFC3E660: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E660: 1000000C beq $zero, $zero, 0xBFC3E694 */ uint32_t psx_brA_BFC3E660 = cpu->gpr[0]; uint32_t psx_brB_BFC3E660 = cpu->gpr[0]; @@ -163759,6 +199264,9 @@ label_BFC3E660: cpu->gpr[11] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3E660) goto label_BFC3E694; label_BFC3E668: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E668: 3C188014 lui $t8, 0x8014 */ cpu->gpr[24] = 0x80140000u; @@ -163783,6 +199291,9 @@ label_BFC3E668: /* 0xBFC3E690: 03385804 sllv $t3, $t8, $t9 */ cpu->gpr[11] = cpu->gpr[24] << (cpu->gpr[25] & 0x1Fu); label_BFC3E694: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E694: 3C014000 lui $at, 0x4000 */ cpu->gpr[1] = 0x40000000u; @@ -163795,6 +199306,9 @@ label_BFC3E694: cpu->gpr[1] = 0x0FFF0000u; if (psx_taken_BFC3E69C) goto label_BFC3E6C4; label_BFC3E6A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E6A4: 3421FFFF ori $at, $at, 0xFFFF */ cpu->gpr[1] = cpu->gpr[1] | 0xFFFFu; @@ -163815,6 +199329,9 @@ label_BFC3E6A4: cpu->gpr[13] = cpu->gpr[14] - cpu->gpr[11]; if (psx_taken_BFC3E6BC) goto label_BFC3E6E4; label_BFC3E6C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E6C4: 3C010FFF lui $at, 0xFFF */ cpu->gpr[1] = 0x0FFF0000u; @@ -163833,6 +199350,9 @@ label_BFC3E6C4: /* 0xBFC3E6E0: 00000000 nop */ /* nop */ label_BFC3E6E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E6E4: 01A6082A slt $at, $t5, $a2 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[13] < (int32_t)cpu->gpr[6] ? 1 : 0); @@ -163843,6 +199363,9 @@ label_BFC3E6E4: /* nop */ if (psx_taken_BFC3E6E8) goto label_BFC3E6F8; label_BFC3E6F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E6F0: 100000A1 beq $zero, $zero, 0xBFC3E978 */ uint32_t psx_brA_BFC3E6F0 = cpu->gpr[0]; uint32_t psx_brB_BFC3E6F0 = cpu->gpr[0]; @@ -163851,6 +199374,9 @@ label_BFC3E6F0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3E6F0) goto label_BFC3E978; label_BFC3E6F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E6F8: 1180003F beq $t4, $zero, 0xBFC3E7F8 */ uint32_t psx_brA_BFC3E6F8 = cpu->gpr[12]; uint32_t psx_brB_BFC3E6F8 = cpu->gpr[0]; @@ -163859,6 +199385,9 @@ label_BFC3E6F8: /* nop */ if (psx_taken_BFC3E6F8) goto label_BFC3E7F8; label_BFC3E700: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E700: 1940001E blez $t2, 0xBFC3E77C */ uint32_t psx_brA_BFC3E700 = cpu->gpr[10]; @@ -163867,6 +199396,9 @@ label_BFC3E700: /* nop */ if (psx_taken_BFC3E700) goto label_BFC3E77C; label_BFC3E708: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E708: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -163887,6 +199419,9 @@ label_BFC3E708: cpu->gpr[14] = cpu->gpr[9] << 3u; if (psx_taken_BFC3E720) goto label_BFC3E734; label_BFC3E728: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E728: 10000093 beq $zero, $zero, 0xBFC3E978 */ uint32_t psx_brA_BFC3E728 = cpu->gpr[0]; uint32_t psx_brB_BFC3E728 = cpu->gpr[0]; @@ -163895,10 +199430,16 @@ label_BFC3E728: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3E728) goto label_BFC3E978; label_BFC3E730: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E730: 000970C0 sll $t6, $t1, 3 */ cpu->gpr[14] = cpu->gpr[9] << 3u; label_BFC3E734: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E734: 010E3821 addu $a3, $t0, $t6 */ cpu->gpr[7] = cpu->gpr[8] + cpu->gpr[14]; @@ -163939,6 +199480,9 @@ label_BFC3E734: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[7] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E778u); return; } g_debug_last_store_pc = 0xBFC3E778u; cpu->write_word(psx_addr, cpu->gpr[6]); } if (psx_taken_BFC3E774) goto label_BFC3E7C4; label_BFC3E77C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E77C: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -163959,6 +199503,9 @@ label_BFC3E77C: cpu->gpr[15] = cpu->gpr[9] << 3u; if (psx_taken_BFC3E794) goto label_BFC3E7A8; label_BFC3E79C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E79C: 10000076 beq $zero, $zero, 0xBFC3E978 */ uint32_t psx_brA_BFC3E79C = cpu->gpr[0]; uint32_t psx_brB_BFC3E79C = cpu->gpr[0]; @@ -163967,10 +199514,16 @@ label_BFC3E79C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3E79C) goto label_BFC3E978; label_BFC3E7A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E7A4: 000978C0 sll $t7, $t1, 3 */ cpu->gpr[15] = cpu->gpr[9] << 3u; label_BFC3E7A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E7A8: 010F3821 addu $a3, $t0, $t7 */ cpu->gpr[7] = cpu->gpr[8] + cpu->gpr[15]; @@ -163987,6 +199540,9 @@ label_BFC3E7A8: /* 0xBFC3E7C0: ACE60004 sw $a2, 4($a3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[7] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E7C0u); return; } g_debug_last_store_pc = 0xBFC3E7C0u; cpu->write_word(psx_addr, cpu->gpr[6]); } label_BFC3E7C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E7C4: 008AC821 addu $t9, $a0, $t2 */ cpu->gpr[25] = cpu->gpr[4] + cpu->gpr[10]; @@ -164017,6 +199573,9 @@ label_BFC3E7C4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25608)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E7F4u); return; } g_debug_last_store_pc = 0xBFC3E7F4u; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC3E7F0) goto label_BFC3E974; label_BFC3E7F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E7F8: 19400038 blez $t2, 0xBFC3E8DC */ uint32_t psx_brA_BFC3E7F8 = cpu->gpr[10]; @@ -164025,6 +199584,9 @@ label_BFC3E7F8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[6] < (int32_t)cpu->gpr[13] ? 1 : 0); if (psx_taken_BFC3E7F8) goto label_BFC3E8DC; label_BFC3E800: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E800: 15A6000B bne $t5, $a2, 0xBFC3E830 */ uint32_t psx_brA_BFC3E800 = cpu->gpr[13]; uint32_t psx_brB_BFC3E800 = cpu->gpr[6]; @@ -164033,6 +199595,9 @@ label_BFC3E800: /* nop */ if (psx_taken_BFC3E800) goto label_BFC3E830; label_BFC3E808: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E808: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -164053,6 +199618,9 @@ label_BFC3E808: cpu->gpr[25] = cpu->gpr[9] << 3u; if (psx_taken_BFC3E820) goto label_BFC3E85C; label_BFC3E828: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E828: 10000053 beq $zero, $zero, 0xBFC3E978 */ uint32_t psx_brA_BFC3E828 = cpu->gpr[0]; uint32_t psx_brB_BFC3E828 = cpu->gpr[0]; @@ -164061,6 +199629,9 @@ label_BFC3E828: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3E828) goto label_BFC3E978; label_BFC3E830: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E830: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -164081,6 +199652,9 @@ label_BFC3E830: cpu->gpr[25] = cpu->gpr[9] << 3u; if (psx_taken_BFC3E848) goto label_BFC3E85C; label_BFC3E850: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E850: 10000049 beq $zero, $zero, 0xBFC3E978 */ uint32_t psx_brA_BFC3E850 = cpu->gpr[0]; uint32_t psx_brB_BFC3E850 = cpu->gpr[0]; @@ -164089,10 +199663,16 @@ label_BFC3E850: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3E850) goto label_BFC3E978; label_BFC3E858: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E858: 0009C8C0 sll $t9, $t1, 3 */ cpu->gpr[25] = cpu->gpr[9] << 3u; label_BFC3E85C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E85C: 01193821 addu $a3, $t0, $t9 */ cpu->gpr[7] = cpu->gpr[8] + cpu->gpr[25]; @@ -164121,6 +199701,9 @@ label_BFC3E85C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[7] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E888u); return; } g_debug_last_store_pc = 0xBFC3E888u; cpu->write_word(psx_addr, cpu->gpr[14]); } if (psx_taken_BFC3E884) goto label_BFC3E898; label_BFC3E88C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E88C: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -164131,6 +199714,9 @@ label_BFC3E88C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25608)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E894u); return; } g_debug_last_store_pc = 0xBFC3E894u; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC3E890) goto label_BFC3E974; label_BFC3E898: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E898: 8CF80000 lw $t8, 0($a3) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[7] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E898u); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -164167,10 +199753,16 @@ label_BFC3E898: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25608)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E8D4u); return; } g_debug_last_store_pc = 0xBFC3E8D4u; cpu->write_word(psx_addr, cpu->gpr[9]); } if (psx_taken_BFC3E8D0) goto label_BFC3E974; label_BFC3E8D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E8D8: 00CD082A slt $at, $a2, $t5 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[6] < (int32_t)cpu->gpr[13] ? 1 : 0); label_BFC3E8DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E8DC: 14200005 bne $at, $zero, 0xBFC3E8F4 */ uint32_t psx_brA_BFC3E8DC = cpu->gpr[1]; uint32_t psx_brB_BFC3E8DC = cpu->gpr[0]; @@ -164179,6 +199771,9 @@ label_BFC3E8DC: /* nop */ if (psx_taken_BFC3E8DC) goto label_BFC3E8F4; label_BFC3E8E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E8E4: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -164191,6 +199786,9 @@ label_BFC3E8E4: cpu->gpr[1] = 0x0FFF0000u; if (psx_taken_BFC3E8EC) goto label_BFC3E920; label_BFC3E8F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E8F4: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -164211,6 +199809,9 @@ label_BFC3E8F4: cpu->gpr[1] = 0x0FFF0000u; if (psx_taken_BFC3E90C) goto label_BFC3E920; label_BFC3E914: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E914: 10000018 beq $zero, $zero, 0xBFC3E978 */ uint32_t psx_brA_BFC3E914 = cpu->gpr[0]; uint32_t psx_brB_BFC3E914 = cpu->gpr[0]; @@ -164219,10 +199820,16 @@ label_BFC3E914: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3E914) goto label_BFC3E978; label_BFC3E91C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E91C: 3C010FFF lui $at, 0xFFF */ cpu->gpr[1] = 0x0FFF0000u; label_BFC3E920: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E920: 3421FFFF ori $at, $at, 0xFFFF */ cpu->gpr[1] = cpu->gpr[1] | 0xFFFFu; @@ -164239,6 +199846,9 @@ label_BFC3E920: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E934u); return; } g_debug_last_store_pc = 0xBFC3E934u; cpu->write_word(psx_addr, cpu->gpr[6]); } if (psx_taken_BFC3E930) goto label_BFC3E974; label_BFC3E938: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E938: 0009C0C0 sll $t8, $t1, 3 */ cpu->gpr[24] = cpu->gpr[9] << 3u; @@ -164271,10 +199881,16 @@ label_BFC3E938: /* 0xBFC3E970: AC299BF8 sw $t1, -25608($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25608)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3E970u); return; } g_debug_last_store_pc = 0xBFC3E970u; cpu->write_word(psx_addr, cpu->gpr[9]); } label_BFC3E974: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E974: 00A01021 addu $v0, $a1, $zero */ cpu->gpr[2] = cpu->gpr[5] + cpu->gpr[0]; label_BFC3E978: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E978: 03E00008 jr $ra */ /* 0xBFC3E97C: 27BD0030 addiu $sp, $sp, 48 */ @@ -164296,6 +199912,9 @@ void func_1FC3E980(CPUState* cpu) { } } label_BFC3E980: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E980: 3C06800E lui $a2, 0x800E */ cpu->gpr[6] = 0x800E0000u; @@ -164324,6 +199943,9 @@ label_BFC3E980: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC3E9A8) goto label_BFC3E9B8; label_BFC3E9B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E9B0: 1000000A beq $zero, $zero, 0xBFC3E9DC */ uint32_t psx_brA_BFC3E9B0 = cpu->gpr[0]; uint32_t psx_brB_BFC3E9B0 = cpu->gpr[0]; @@ -164332,6 +199954,9 @@ label_BFC3E9B0: cpu->gpr[12] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3E9B0) goto label_BFC3E9DC; label_BFC3E9B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E9B8: 3C188014 lui $t8, 0x8014 */ cpu->gpr[24] = 0x80140000u; @@ -164352,6 +199977,9 @@ label_BFC3E9B8: /* 0xBFC3E9D8: 00CF6004 sllv $t4, $t7, $a2 */ cpu->gpr[12] = cpu->gpr[15] << (cpu->gpr[6] & 0x1Fu); label_BFC3E9DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E9DC: 2443FFFF addiu $v1, $v0, -1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[2] + (-1)); @@ -164366,6 +199994,9 @@ label_BFC3E9DC: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3E9E8) goto label_BFC3E9FC; label_BFC3E9F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E9F0: 10000002 beq $zero, $zero, 0xBFC3E9FC */ uint32_t psx_brA_BFC3E9F0 = cpu->gpr[0]; uint32_t psx_brB_BFC3E9F0 = cpu->gpr[0]; @@ -164374,10 +200005,16 @@ label_BFC3E9F0: cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC3E9F0) goto label_BFC3E9FC; label_BFC3E9F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E9F8: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC3E9FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3E9FC: 01224821 addu $t1, $t1, $v0 */ cpu->gpr[9] = cpu->gpr[9] + cpu->gpr[2]; @@ -164394,6 +200031,9 @@ label_BFC3E9FC: cpu->gpr[5] = cpu->gpr[7] + cpu->gpr[0]; if (psx_taken_BFC3EA0C) goto label_BFC3EA1C; label_BFC3EA14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EA14: 10000002 beq $zero, $zero, 0xBFC3EA20 */ uint32_t psx_brA_BFC3EA14 = cpu->gpr[0]; uint32_t psx_brB_BFC3EA14 = cpu->gpr[0]; @@ -164402,10 +200042,16 @@ label_BFC3EA14: cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; if (psx_taken_BFC3EA14) goto label_BFC3EA20; label_BFC3EA1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EA1C: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC3EA20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EA20: 00E22821 addu $a1, $a3, $v0 */ cpu->gpr[5] = cpu->gpr[7] + cpu->gpr[2]; @@ -164422,6 +200068,9 @@ label_BFC3EA20: cpu->gpr[14] = 0x00010000u; if (psx_taken_BFC3EA30) goto label_BFC3EA44; label_BFC3EA38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EA38: 1000009B beq $zero, $zero, 0xBFC3ECA8 */ uint32_t psx_brA_BFC3EA38 = cpu->gpr[0]; uint32_t psx_brB_BFC3EA38 = cpu->gpr[0]; @@ -164430,10 +200079,16 @@ label_BFC3EA38: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3EA38) goto label_BFC3ECA8; label_BFC3EA40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EA40: 3C0E0001 lui $t6, 0x1 */ cpu->gpr[14] = 0x00010000u; label_BFC3EA44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EA44: 00CE6804 sllv $t5, $t6, $a2 */ cpu->gpr[13] = cpu->gpr[14] << (cpu->gpr[6] & 0x1Fu); @@ -164450,6 +200105,9 @@ label_BFC3EA44: /* nop */ if (psx_taken_BFC3EA54) goto label_BFC3EA64; label_BFC3EA5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EA5C: 10000092 beq $zero, $zero, 0xBFC3ECA8 */ uint32_t psx_brA_BFC3EA5C = cpu->gpr[0]; uint32_t psx_brB_BFC3EA5C = cpu->gpr[0]; @@ -164458,6 +200116,9 @@ label_BFC3EA5C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3EA5C) goto label_BFC3ECA8; label_BFC3EA64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EA64: 3C03800E lui $v1, 0x800E */ cpu->gpr[3] = 0x800E0000u; @@ -164478,6 +200139,9 @@ label_BFC3EA64: /* nop */ if (psx_taken_BFC3EA7C) goto label_BFC3EB54; label_BFC3EA84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EA84: 8C6E0004 lw $t6, 4($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3EA84u); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -164494,6 +200158,9 @@ label_BFC3EA84: cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (4096)); if (psx_taken_BFC3EA94) goto label_BFC3EB00; label_BFC3EA9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EA9C: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -164514,6 +200181,9 @@ label_BFC3EA9C: /* nop */ if (psx_taken_BFC3EAB4) goto label_BFC3EAC4; label_BFC3EABC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EABC: 1000007A beq $zero, $zero, 0xBFC3ECA8 */ uint32_t psx_brA_BFC3EABC = cpu->gpr[0]; uint32_t psx_brB_BFC3EABC = cpu->gpr[0]; @@ -164522,6 +200192,9 @@ label_BFC3EABC: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3EABC) goto label_BFC3ECA8; label_BFC3EAC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EAC4: AC650008 sw $a1, 8($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3EAC4u); return; } g_debug_last_store_pc = 0xBFC3EAC4u; cpu->write_word(psx_addr, cpu->gpr[5]); } @@ -164556,6 +200229,9 @@ label_BFC3EAC4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25608)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3EAFCu); return; } g_debug_last_store_pc = 0xBFC3EAFCu; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC3EAF8) goto label_BFC3EB4C; label_BFC3EB00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EB00: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -164576,6 +200252,9 @@ label_BFC3EB00: cpu->gpr[1] = 0x40000000u; if (psx_taken_BFC3EB18) goto label_BFC3EB2C; label_BFC3EB20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EB20: 10000061 beq $zero, $zero, 0xBFC3ECA8 */ uint32_t psx_brA_BFC3EB20 = cpu->gpr[0]; uint32_t psx_brB_BFC3EB20 = cpu->gpr[0]; @@ -164584,10 +200263,16 @@ label_BFC3EB20: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3EB20) goto label_BFC3ECA8; label_BFC3EB28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EB28: 3C014000 lui $at, 0x4000 */ cpu->gpr[1] = 0x40000000u; label_BFC3EB2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EB2C: AC650000 sw $a1, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3EB2Cu); return; } g_debug_last_store_pc = 0xBFC3EB2Cu; cpu->write_word(psx_addr, cpu->gpr[5]); } @@ -164606,6 +200291,9 @@ label_BFC3EB2C: /* 0xBFC3EB48: AC389BF8 sw $t8, -25608($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25608)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3EB48u); return; } g_debug_last_store_pc = 0xBFC3EB48u; cpu->write_word(psx_addr, cpu->gpr[24]); } label_BFC3EB4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EB4C: 10000056 beq $zero, $zero, 0xBFC3ECA8 */ uint32_t psx_brA_BFC3EB4C = cpu->gpr[0]; uint32_t psx_brB_BFC3EB4C = cpu->gpr[0]; @@ -164614,6 +200302,9 @@ label_BFC3EB4C: cpu->gpr[2] = cpu->gpr[5] + cpu->gpr[0]; if (psx_taken_BFC3EB4C) goto label_BFC3ECA8; label_BFC3EB54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EB54: AFA50028 sw $a1, 40($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (40)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3EB54u); return; } g_debug_last_store_pc = 0xBFC3EB54u; cpu->write_word(psx_addr, cpu->gpr[5]); } @@ -164625,6 +200316,9 @@ label_BFC3EB54: cpu->gpr[31] = 0x80056B64u; psx_dispatch(cpu, 0x80056110u); label_BFC3EB64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EB64: 3C03800E lui $v1, 0x800E */ cpu->gpr[3] = 0x800E0000u; @@ -164649,6 +200343,9 @@ label_BFC3EB64: /* 0xBFC3EB8C: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; label_BFC3EB90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EB90: 8C430000 lw $v1, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3EB90u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -164663,6 +200360,9 @@ label_BFC3EB90: cpu->gpr[15] = cpu->gpr[3] & cpu->gpr[6]; if (psx_taken_BFC3EB9C) goto label_BFC3EC5C; label_BFC3EBA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EBA4: 006B3824 and $a3, $v1, $t3 */ cpu->gpr[7] = cpu->gpr[3] & cpu->gpr[11]; @@ -164675,6 +200375,9 @@ label_BFC3EBA4: /* nop */ if (psx_taken_BFC3EBAC) goto label_BFC3EC20; label_BFC3EBB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EBB4: 8C430004 lw $v1, 4($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3EBB4u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -164691,6 +200394,9 @@ label_BFC3EBB4: cpu->gpr[24] = cpu->gpr[3] - cpu->gpr[5]; if (psx_taken_BFC3EBC4) goto label_BFC3EBF0; label_BFC3EBCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EBCC: 8C4E0008 lw $t6, 8($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (8)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3EBCCu); return; } cpu->gpr[14] = cpu->read_word(psx_addr); } @@ -164705,6 +200411,9 @@ label_BFC3EBCC: cpu->gpr[24] = cpu->gpr[3] - cpu->gpr[5]; if (psx_taken_BFC3EBD8) goto label_BFC3EBF0; label_BFC3EBE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EBE0: 25080001 addiu $t0, $t0, 1 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[8] + (1)); @@ -164715,10 +200424,16 @@ label_BFC3EBE0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (8)); if (psx_taken_BFC3EBE4) goto label_BFC3EB90; label_BFC3EBEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EBEC: 0065C023 subu $t8, $v1, $a1 */ cpu->gpr[24] = cpu->gpr[3] - cpu->gpr[5]; label_BFC3EBF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EBF0: 03072021 addu $a0, $t8, $a3 */ cpu->gpr[4] = cpu->gpr[24] + cpu->gpr[7]; @@ -164731,6 +200446,9 @@ label_BFC3EBF0: cpu->gpr[4] = cpu->gpr[8] + cpu->gpr[0]; if (psx_taken_BFC3EBF8) goto label_BFC3EC10; label_BFC3EC00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EC00: 25080001 addiu $t0, $t0, 1 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[8] + (1)); @@ -164741,10 +200459,16 @@ label_BFC3EC00: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (8)); if (psx_taken_BFC3EC04) goto label_BFC3EB90; label_BFC3EC0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EC0C: 01002021 addu $a0, $t0, $zero */ cpu->gpr[4] = cpu->gpr[8] + cpu->gpr[0]; label_BFC3EC10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EC10: 0C01598D jal 0xB0056634 */ /* 0xBFC3EC14: 01203021 addu $a2, $t1, $zero */ @@ -164752,6 +200476,9 @@ label_BFC3EC10: cpu->gpr[31] = 0x80056C18u; psx_dispatch(cpu, 0x80056634u); label_BFC3EC18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EC18: 10000022 beq $zero, $zero, 0xBFC3ECA4 */ uint32_t psx_brA_BFC3EC18 = cpu->gpr[0]; uint32_t psx_brB_BFC3EC18 = cpu->gpr[0]; @@ -164760,6 +200487,9 @@ label_BFC3EC18: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC3EC18) goto label_BFC3ECA4; label_BFC3EC20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EC20: 8C440004 lw $a0, 4($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3EC20u); return; } cpu->gpr[4] = cpu->read_word(psx_addr); } @@ -164774,6 +200504,9 @@ label_BFC3EC20: cpu->gpr[4] = cpu->gpr[8] + cpu->gpr[0]; if (psx_taken_BFC3EC2C) goto label_BFC3EC44; label_BFC3EC34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EC34: 25080001 addiu $t0, $t0, 1 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[8] + (1)); @@ -164784,10 +200517,16 @@ label_BFC3EC34: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (8)); if (psx_taken_BFC3EC38) goto label_BFC3EB90; label_BFC3EC40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EC40: 01002021 addu $a0, $t0, $zero */ cpu->gpr[4] = cpu->gpr[8] + cpu->gpr[0]; label_BFC3EC44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EC44: 00E02821 addu $a1, $a3, $zero */ cpu->gpr[5] = cpu->gpr[7] + cpu->gpr[0]; @@ -164797,6 +200536,9 @@ label_BFC3EC44: cpu->gpr[31] = 0x80056C50u; psx_dispatch(cpu, 0x80056634u); label_BFC3EC50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EC50: 10000014 beq $zero, $zero, 0xBFC3ECA4 */ uint32_t psx_brA_BFC3EC50 = cpu->gpr[0]; uint32_t psx_brB_BFC3EC50 = cpu->gpr[0]; @@ -164805,10 +200547,16 @@ label_BFC3EC50: cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; if (psx_taken_BFC3EC50) goto label_BFC3ECA4; label_BFC3EC58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EC58: 00667824 and $t7, $v1, $a2 */ cpu->gpr[15] = cpu->gpr[3] & cpu->gpr[6]; label_BFC3EC5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EC5C: 15E00004 bne $t7, $zero, 0xBFC3EC70 */ uint32_t psx_brA_BFC3EC5C = cpu->gpr[15]; uint32_t psx_brB_BFC3EC5C = cpu->gpr[0]; @@ -164817,6 +200565,9 @@ label_BFC3EC5C: /* nop */ if (psx_taken_BFC3EC5C) goto label_BFC3EC70; label_BFC3EC64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EC64: 25080001 addiu $t0, $t0, 1 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[8] + (1)); @@ -164827,6 +200578,9 @@ label_BFC3EC64: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (8)); if (psx_taken_BFC3EC68) goto label_BFC3EB90; label_BFC3EC70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EC70: 8C590004 lw $t9, 4($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3EC70u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -164843,6 +200597,9 @@ label_BFC3EC70: cpu->gpr[4] = cpu->gpr[8] + cpu->gpr[0]; if (psx_taken_BFC3EC80) goto label_BFC3EC94; label_BFC3EC88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EC88: 10000007 beq $zero, $zero, 0xBFC3ECA8 */ uint32_t psx_brA_BFC3EC88 = cpu->gpr[0]; uint32_t psx_brB_BFC3EC88 = cpu->gpr[0]; @@ -164851,10 +200608,16 @@ label_BFC3EC88: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3EC88) goto label_BFC3ECA8; label_BFC3EC90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EC90: 01002021 addu $a0, $t0, $zero */ cpu->gpr[4] = cpu->gpr[8] + cpu->gpr[0]; label_BFC3EC94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EC94: 006B2824 and $a1, $v1, $t3 */ cpu->gpr[5] = cpu->gpr[3] & cpu->gpr[11]; @@ -164864,14 +200627,23 @@ label_BFC3EC94: cpu->gpr[31] = 0x80056CA0u; psx_dispatch(cpu, 0x80056634u); label_BFC3ECA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ECA0: 00401821 addu $v1, $v0, $zero */ cpu->gpr[3] = cpu->gpr[2] + cpu->gpr[0]; label_BFC3ECA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ECA4: 00601021 addu $v0, $v1, $zero */ cpu->gpr[2] = cpu->gpr[3] + cpu->gpr[0]; label_BFC3ECA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ECA8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3ECA8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -164886,6 +200658,9 @@ label_BFC3ECA8: void func_1FC3ECB8(CPUState* cpu) { debug_server_log_call_entry(0x1FC3ECB8u); label_BFC3ECB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ECB8: 3C03800E lui $v1, 0x800E */ cpu->gpr[3] = 0x800E0000u; @@ -164902,6 +200677,9 @@ label_BFC3ECB8: /* 0xBFC3ECD0: 3C074000 lui $a3, 0x4000 */ cpu->gpr[7] = 0x40000000u; label_BFC3ECD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ECD4: 8C620000 lw $v0, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3ECD4u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -164916,6 +200694,9 @@ label_BFC3ECD4: /* nop */ if (psx_taken_BFC3ECE0) goto label_BFC3ED2C; label_BFC3ECE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ECE8: 00477824 and $t7, $v0, $a3 */ cpu->gpr[15] = cpu->gpr[2] & cpu->gpr[7]; @@ -164926,6 +200707,9 @@ label_BFC3ECE8: /* nop */ if (psx_taken_BFC3ECEC) goto label_BFC3ED34; label_BFC3ECF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ECF4: 00482824 and $a1, $v0, $t0 */ cpu->gpr[5] = cpu->gpr[2] & cpu->gpr[8]; @@ -164938,12 +200722,18 @@ label_BFC3ECF4: /* nop */ if (psx_taken_BFC3ECFC) goto label_BFC3ED0C; label_BFC3ED04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ED04: 03E00008 jr $ra */ /* 0xBFC3ED08: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); return; label_BFC3ED0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ED0C: 8C780004 lw $t8, 4($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3ED0Cu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -164960,12 +200750,18 @@ label_BFC3ED0C: /* nop */ if (psx_taken_BFC3ED1C) goto label_BFC3ED2C; label_BFC3ED24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ED24: 03E00008 jr $ra */ /* 0xBFC3ED28: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); return; label_BFC3ED2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ED2C: 1000FFE9 beq $zero, $zero, 0xBFC3ECD4 */ uint32_t psx_brA_BFC3ED2C = cpu->gpr[0]; uint32_t psx_brB_BFC3ED2C = cpu->gpr[0]; @@ -164974,6 +200770,9 @@ label_BFC3ED2C: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (8)); if (psx_taken_BFC3ED2C) goto label_BFC3ECD4; label_BFC3ED34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ED34: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; @@ -164994,6 +200793,9 @@ void func_1FC3ED40(CPUState* cpu) { } } label_BFC3ED40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ED40: 3C078008 lui $a3, 0x8008 */ cpu->gpr[7] = 0x80080000u; @@ -165012,6 +200814,9 @@ label_BFC3ED40: cpu->gpr[5] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3ED54) goto label_BFC3ED9C; label_BFC3ED5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ED5C: 3C03800E lui $v1, 0x800E */ cpu->gpr[3] = 0x800E0000u; @@ -165020,6 +200825,9 @@ label_BFC3ED5C: /* 0xBFC3ED64: 3C044000 lui $a0, 0x4000 */ cpu->gpr[4] = 0x40000000u; label_BFC3ED68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ED68: 8C620000 lw $v0, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3ED68u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -165034,6 +200842,9 @@ label_BFC3ED68: /* nop */ if (psx_taken_BFC3ED74) goto label_BFC3ED9C; label_BFC3ED7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ED7C: 14C20004 bne $a2, $v0, 0xBFC3ED90 */ uint32_t psx_brA_BFC3ED7C = cpu->gpr[6]; uint32_t psx_brB_BFC3ED7C = cpu->gpr[2]; @@ -165042,6 +200853,9 @@ label_BFC3ED7C: cpu->gpr[1] = 0x80000000u; if (psx_taken_BFC3ED7C) goto label_BFC3ED90; label_BFC3ED84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ED84: 00417825 or $t7, $v0, $at */ cpu->gpr[15] = cpu->gpr[2] | cpu->gpr[1]; @@ -165052,6 +200866,9 @@ label_BFC3ED84: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3ED8Cu); return; } g_debug_last_store_pc = 0xBFC3ED8Cu; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC3ED88) goto label_BFC3ED9C; label_BFC3ED90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ED90: 24A50001 addiu $a1, $a1, 1 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[5] + (1)); @@ -165062,6 +200879,9 @@ label_BFC3ED90: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (8)); if (psx_taken_BFC3ED94) goto label_BFC3ED68; label_BFC3ED9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3ED9C: 0C015844 jal 0xB0056110 */ /* 0xBFC3EDA0: 00000000 nop */ @@ -165069,6 +200889,9 @@ label_BFC3ED9C: cpu->gpr[31] = 0x80056DA4u; psx_dispatch(cpu, 0x80056110u); label_BFC3EDA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EDA4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3EDA4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -165092,6 +200915,9 @@ void func_1FC3EDB4(CPUState* cpu) { } } label_BFC3EDB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EDB4: 27BDFFC8 addiu $sp, $sp, -56 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-56)); @@ -165103,6 +200929,9 @@ label_BFC3EDB4: cpu->gpr[31] = 0x80056DC4u; psx_dispatch(cpu, 0x80056110u); label_BFC3EDC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EDC4: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -165117,6 +200946,9 @@ label_BFC3EDC4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3EDD4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC3EDD0) goto label_BFC3EE70; label_BFC3EDD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EDD8: AFB0002C sw $s0, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3EDD8u); return; } g_debug_last_store_pc = 0xBFC3EDD8u; cpu->write_word(psx_addr, cpu->gpr[16]); } @@ -165135,6 +200967,9 @@ label_BFC3EDD8: /* 0xBFC3EDF4: 26529BFC addiu $s2, $s2, -25604 */ cpu->gpr[18] = (uint32_t)((int32_t)cpu->gpr[18] + (-25604)); label_BFC3EDF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EDF8: 8E060000 lw $a2, 0($s0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[16] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3EDF8u); return; } cpu->gpr[6] = cpu->read_word(psx_addr); } @@ -165148,6 +200983,9 @@ label_BFC3EDF8: cpu->gpr[31] = 0x80056E0Cu; psx_dispatch(cpu, 0x8005A910u); label_BFC3EE0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EE0C: 3C0F800E lui $t7, 0x800E */ cpu->gpr[15] = 0x800E0000u; @@ -165170,6 +201008,9 @@ label_BFC3EE0C: /* nop */ if (psx_taken_BFC3EE28) goto label_BFC3EE44; label_BFC3EE30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EE30: 8FB0002C lw $s0, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3EE30u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -165184,6 +201025,9 @@ label_BFC3EE30: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3EE40u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC3EE3C) goto label_BFC3EE70; label_BFC3EE44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EE44: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -165200,6 +201044,9 @@ label_BFC3EE44: cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (8)); if (psx_taken_BFC3EE54) goto label_BFC3EDF8; label_BFC3EE5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EE5C: 8FB0002C lw $s0, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3EE5Cu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -165212,6 +201059,9 @@ label_BFC3EE5C: /* 0xBFC3EE6C: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3EE6Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC3EE70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EE70: 8FB10018 lw $s1, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3EE70u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -165224,6 +201074,9 @@ label_BFC3EE70: void func_1FC3EE80(CPUState* cpu) { debug_server_log_call_entry(0x1FC3EE80u); label_BFC3EE80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EE80: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -165246,6 +201099,9 @@ label_BFC3EE80: /* 0xBFC3EEA4: A3380000 sb $t8, 0($t9) */ g_debug_last_store_pc = 0xBFC3EEA4u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[25] + (0)), (uint8_t)(cpu->gpr[24] & 0xFFu)); label_BFC3EEA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EEA8: 24480003 addiu $t0, $v0, 3 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[2] + (3)); @@ -165258,6 +201114,9 @@ label_BFC3EEA8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[0] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3EEB4u); return; } g_debug_last_store_pc = 0xBFC3EEB4u; cpu->write_word(psx_addr, cpu->gpr[8]); } if (psx_taken_BFC3EEB0) goto label_BFC3EEA8; label_BFC3EEB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EEB8: 03E00008 jr $ra */ /* 0xBFC3EEBC: 00000000 nop */ @@ -165268,6 +201127,9 @@ label_BFC3EEB8: void func_1FC3EEC0(CPUState* cpu) { debug_server_log_call_entry(0x1FC3EEC0u); label_BFC3EEC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EEC0: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -165292,6 +201154,9 @@ label_BFC3EEC0: void func_1FC3EEE4(CPUState* cpu) { debug_server_log_call_entry(0x1FC3EEE4u); label_BFC3EEE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EEE4: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -165324,6 +201189,9 @@ void func_1FC3EF08(CPUState* cpu) { } } label_BFC3EF08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EF08: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -165340,6 +201208,9 @@ label_BFC3EF08: /* 0xBFC3EF20: 24060001 addiu $a2, $zero, 1 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC3EF24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EF24: A0860000 sb $a2, 0($a0) */ g_debug_last_store_pc = 0xBFC3EF24u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (0)), (uint8_t)(cpu->gpr[6] & 0xFFu)); @@ -165356,6 +201227,9 @@ label_BFC3EF24: /* nop */ if (psx_taken_BFC3EF34) goto label_BFC3EF24; label_BFC3EF3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EF3C: 0C015BA0 jal 0xB0056E80 */ /* 0xBFC3EF40: AFA3001C sw $v1, 28($sp) */ @@ -165363,6 +201237,9 @@ label_BFC3EF3C: cpu->gpr[31] = 0x80056F44u; psx_dispatch(cpu, 0x80056E80u); label_BFC3EF44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EF44: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -165381,6 +201258,9 @@ label_BFC3EF44: cpu->gpr[2] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC3EF58) goto label_BFC3EF6C; label_BFC3EF60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EF60: 10000002 beq $zero, $zero, 0xBFC3EF6C */ uint32_t psx_brA_BFC3EF60 = cpu->gpr[0]; uint32_t psx_brB_BFC3EF60 = cpu->gpr[0]; @@ -165389,10 +201269,16 @@ label_BFC3EF60: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3EF60) goto label_BFC3EF6C; label_BFC3EF68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EF68: 00801021 addu $v0, $a0, $zero */ cpu->gpr[2] = cpu->gpr[4] + cpu->gpr[0]; label_BFC3EF6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EF6C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3EF6Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -165415,6 +201301,9 @@ void func_1FC3EF7C(CPUState* cpu) { } } label_BFC3EF7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EF7C: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -165431,6 +201320,9 @@ label_BFC3EF7C: /* 0xBFC3EF94: 24060001 addiu $a2, $zero, 1 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC3EF98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EF98: A0860000 sb $a2, 0($a0) */ g_debug_last_store_pc = 0xBFC3EF98u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (0)), (uint8_t)(cpu->gpr[6] & 0xFFu)); @@ -165447,6 +201339,9 @@ label_BFC3EF98: /* nop */ if (psx_taken_BFC3EFA8) goto label_BFC3EF98; label_BFC3EFB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EFB0: 0C015BA0 jal 0xB0056E80 */ /* 0xBFC3EFB4: AFA3001C sw $v1, 28($sp) */ @@ -165454,6 +201349,9 @@ label_BFC3EFB0: cpu->gpr[31] = 0x80056FB8u; psx_dispatch(cpu, 0x80056E80u); label_BFC3EFB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EFB8: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -165472,6 +201370,9 @@ label_BFC3EFB8: cpu->gpr[2] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC3EFCC) goto label_BFC3EFE0; label_BFC3EFD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EFD4: 10000002 beq $zero, $zero, 0xBFC3EFE0 */ uint32_t psx_brA_BFC3EFD4 = cpu->gpr[0]; uint32_t psx_brB_BFC3EFD4 = cpu->gpr[0]; @@ -165480,10 +201381,16 @@ label_BFC3EFD4: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3EFD4) goto label_BFC3EFE0; label_BFC3EFDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EFDC: 00801021 addu $v0, $a0, $zero */ cpu->gpr[2] = cpu->gpr[4] + cpu->gpr[0]; label_BFC3EFE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EFE0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3EFE0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -165512,6 +201419,9 @@ void func_1FC3EFF0(CPUState* cpu) { } } label_BFC3EFF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3EFF0: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -165523,6 +201433,9 @@ label_BFC3EFF0: cpu->gpr[31] = 0x80057000u; psx_dispatch(cpu, 0x80056EE4u); label_BFC3F000: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F000: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -165542,6 +201455,9 @@ label_BFC3F000: cpu->gpr[31] = 0x80057020u; psx_dispatch(cpu, 0x80056F08u); label_BFC3F020: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F020: 04410005 bgez $v0, 0xBFC3F038 */ uint32_t psx_brA_BFC3F020 = cpu->gpr[2]; @@ -165550,6 +201466,9 @@ label_BFC3F020: /* nop */ if (psx_taken_BFC3F020) goto label_BFC3F038; label_BFC3F028: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F028: 0C015BB0 jal 0xB0056EC0 */ /* 0xBFC3F02C: 00000000 nop */ @@ -165557,6 +201476,9 @@ label_BFC3F028: cpu->gpr[31] = 0x80057030u; psx_dispatch(cpu, 0x80056EC0u); label_BFC3F030: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F030: 10000013 beq $zero, $zero, 0xBFC3F080 */ uint32_t psx_brA_BFC3F030 = cpu->gpr[0]; uint32_t psx_brB_BFC3F030 = cpu->gpr[0]; @@ -165565,6 +201487,9 @@ label_BFC3F030: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3F030) goto label_BFC3F080; label_BFC3F038: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F038: 0C015BDF jal 0xB0056F7C */ /* 0xBFC3F03C: 00000000 nop */ @@ -165572,6 +201497,9 @@ label_BFC3F038: cpu->gpr[31] = 0x80057040u; psx_dispatch(cpu, 0x80056F7Cu); label_BFC3F040: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F040: 04410006 bgez $v0, 0xBFC3F05C */ uint32_t psx_brA_BFC3F040 = cpu->gpr[2]; @@ -165580,6 +201508,9 @@ label_BFC3F040: cpu->gpr[25] = cpu->gpr[2] & 0x1Du; if (psx_taken_BFC3F040) goto label_BFC3F05C; label_BFC3F048: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F048: 0C015BB0 jal 0xB0056EC0 */ /* 0xBFC3F04C: 00000000 nop */ @@ -165587,6 +201518,9 @@ label_BFC3F048: cpu->gpr[31] = 0x80057050u; psx_dispatch(cpu, 0x80056EC0u); label_BFC3F050: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F050: 1000000B beq $zero, $zero, 0xBFC3F080 */ uint32_t psx_brA_BFC3F050 = cpu->gpr[0]; uint32_t psx_brB_BFC3F050 = cpu->gpr[0]; @@ -165595,10 +201529,16 @@ label_BFC3F050: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3F050) goto label_BFC3F080; label_BFC3F058: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F058: 3059001D andi $t9, $v0, 0x1D */ cpu->gpr[25] = cpu->gpr[2] & 0x1Du; label_BFC3F05C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F05C: 13200005 beq $t9, $zero, 0xBFC3F074 */ uint32_t psx_brA_BFC3F05C = cpu->gpr[25]; uint32_t psx_brB_BFC3F05C = cpu->gpr[0]; @@ -165607,6 +201547,9 @@ label_BFC3F05C: /* nop */ if (psx_taken_BFC3F05C) goto label_BFC3F074; label_BFC3F064: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F064: 0C015BB0 jal 0xB0056EC0 */ /* 0xBFC3F068: 00000000 nop */ @@ -165614,6 +201557,9 @@ label_BFC3F064: cpu->gpr[31] = 0x8005706Cu; psx_dispatch(cpu, 0x80056EC0u); label_BFC3F06C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F06C: 10000004 beq $zero, $zero, 0xBFC3F080 */ uint32_t psx_brA_BFC3F06C = cpu->gpr[0]; uint32_t psx_brB_BFC3F06C = cpu->gpr[0]; @@ -165622,6 +201568,9 @@ label_BFC3F06C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (-1)); if (psx_taken_BFC3F06C) goto label_BFC3F080; label_BFC3F074: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F074: 0C015BB0 jal 0xB0056EC0 */ /* 0xBFC3F078: 00000000 nop */ @@ -165629,10 +201578,16 @@ label_BFC3F074: cpu->gpr[31] = 0x8005707Cu; psx_dispatch(cpu, 0x80056EC0u); label_BFC3F07C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F07C: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC3F080: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F080: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F080u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -165657,6 +201612,9 @@ void func_1FC3F090(CPUState* cpu) { } } label_BFC3F090: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(44u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F090: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -165748,6 +201706,9 @@ label_BFC3F090: cpu->gpr[31] = 0x80057140u; psx_dispatch(cpu, 0x80058744u); label_BFC3F140: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F140: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -165759,6 +201720,9 @@ label_BFC3F140: cpu->gpr[31] = 0x80057150u; psx_dispatch(cpu, 0x80058720u); label_BFC3F150: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F150: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -165788,6 +201752,9 @@ label_BFC3F150: cpu->gpr[31] = 0x80057184u; psx_dispatch(cpu, 0x8005AA10u); label_BFC3F184: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F184: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F184u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -165806,6 +201773,9 @@ label_BFC3F184: void func_1FC3F19C(CPUState* cpu) { debug_server_log_call_entry(0x1FC3F19Cu); label_BFC3F19C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F19C: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -165834,6 +201804,9 @@ void func_1FC3F1B8(CPUState* cpu) { } } label_BFC3F1B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F1B8: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -165846,6 +201819,9 @@ label_BFC3F1B8: cpu->gpr[5] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC3F1C0) goto label_BFC3F1EC; label_BFC3F1C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F1C8: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -165860,6 +201836,9 @@ label_BFC3F1C8: /* nop */ if (psx_taken_BFC3F1D4) goto label_BFC3F210; label_BFC3F1DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F1DC: 10000031 beq $zero, $zero, 0xBFC3F2A4 */ uint32_t psx_brA_BFC3F1DC = cpu->gpr[0]; uint32_t psx_brB_BFC3F1DC = cpu->gpr[0]; @@ -165868,6 +201847,9 @@ label_BFC3F1DC: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3F1DC) goto label_BFC3F2A4; label_BFC3F1E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F1E4: 1000002F beq $zero, $zero, 0xBFC3F2A4 */ uint32_t psx_brA_BFC3F1E4 = cpu->gpr[0]; uint32_t psx_brB_BFC3F1E4 = cpu->gpr[0]; @@ -165876,6 +201858,9 @@ label_BFC3F1E4: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3F1E4) goto label_BFC3F2A4; label_BFC3F1EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F1EC: 3C04800E lui $a0, 0x800E */ cpu->gpr[4] = 0x800E0000u; @@ -165890,6 +201875,9 @@ label_BFC3F1EC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); if (psx_taken_BFC3F1F8) goto label_BFC3F1C8; label_BFC3F200: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F200: 1081FFF1 beq $a0, $at, 0xBFC3F1C8 */ uint32_t psx_brA_BFC3F200 = cpu->gpr[4]; uint32_t psx_brB_BFC3F200 = cpu->gpr[1]; @@ -165898,6 +201886,9 @@ label_BFC3F200: cpu->gpr[1] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC3F200) goto label_BFC3F1C8; label_BFC3F208: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F208: 1481FFF6 bne $a0, $at, 0xBFC3F1E4 */ uint32_t psx_brA_BFC3F208 = cpu->gpr[4]; uint32_t psx_brB_BFC3F208 = cpu->gpr[1]; @@ -165906,6 +201897,9 @@ label_BFC3F208: /* nop */ if (psx_taken_BFC3F208) goto label_BFC3F1E4; label_BFC3F210: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F210: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -165926,6 +201920,9 @@ label_BFC3F210: /* nop */ if (psx_taken_BFC3F228) goto label_BFC3F238; label_BFC3F230: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F230: 1000001C beq $zero, $zero, 0xBFC3F2A4 */ uint32_t psx_brA_BFC3F230 = cpu->gpr[0]; uint32_t psx_brB_BFC3F230 = cpu->gpr[0]; @@ -165934,6 +201931,9 @@ label_BFC3F230: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3F230) goto label_BFC3F2A4; label_BFC3F238: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F238: 10830002 beq $a0, $v1, 0xBFC3F244 */ uint32_t psx_brA_BFC3F238 = cpu->gpr[4]; uint32_t psx_brB_BFC3F238 = cpu->gpr[3]; @@ -165942,20 +201942,32 @@ label_BFC3F238: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); if (psx_taken_BFC3F238) goto label_BFC3F244; label_BFC3F240: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F240: 14810002 bne $a0, $at, 0xBFC3F24C */ uint32_t psx_brA_BFC3F240 = cpu->gpr[4]; uint32_t psx_brB_BFC3F240 = cpu->gpr[1]; int psx_taken_BFC3F240 = (psx_brA_BFC3F240 != psx_brB_BFC3F240); label_BFC3F244: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F244: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3F240) goto label_BFC3F24C; label_BFC3F248: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F248: AC24EE58 sw $a0, -4520($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4520)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F248u); return; } g_debug_last_store_pc = 0xBFC3F248u; cpu->write_word(psx_addr, cpu->gpr[4]); } label_BFC3F24C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F24C: 0C016703 jal 0xB0059C0C */ /* 0xBFC3F250: AFA50018 sw $a1, 24($sp) */ @@ -165963,6 +201975,9 @@ label_BFC3F24C: cpu->gpr[31] = 0x80057254u; psx_dispatch(cpu, 0x80059C0Cu); label_BFC3F254: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F254: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -166005,6 +202020,9 @@ label_BFC3F254: /* 0xBFC3F2A0: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC3F2A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F2A4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F2A4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -166027,6 +202045,9 @@ void func_1FC3F2B4(CPUState* cpu) { } } label_BFC3F2B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F2B4: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -166039,6 +202060,9 @@ label_BFC3F2B4: cpu->gpr[5] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC3F2BC) goto label_BFC3F2E8; label_BFC3F2C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F2C4: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -166053,6 +202077,9 @@ label_BFC3F2C4: /* nop */ if (psx_taken_BFC3F2D0) goto label_BFC3F324; label_BFC3F2D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F2D8: 1000003E beq $zero, $zero, 0xBFC3F3D4 */ uint32_t psx_brA_BFC3F2D8 = cpu->gpr[0]; uint32_t psx_brB_BFC3F2D8 = cpu->gpr[0]; @@ -166061,6 +202088,9 @@ label_BFC3F2D8: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3F2D8) goto label_BFC3F3D4; label_BFC3F2E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F2E0: 1000003C beq $zero, $zero, 0xBFC3F3D4 */ uint32_t psx_brA_BFC3F2E0 = cpu->gpr[0]; uint32_t psx_brB_BFC3F2E0 = cpu->gpr[0]; @@ -166069,6 +202099,9 @@ label_BFC3F2E0: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3F2E0) goto label_BFC3F3D4; label_BFC3F2E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F2E8: 3C04800E lui $a0, 0x800E */ cpu->gpr[4] = 0x800E0000u; @@ -166083,6 +202116,9 @@ label_BFC3F2E8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); if (psx_taken_BFC3F2F4) goto label_BFC3F2C4; label_BFC3F2FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F2FC: 1081FFF1 beq $a0, $at, 0xBFC3F2C4 */ uint32_t psx_brA_BFC3F2FC = cpu->gpr[4]; uint32_t psx_brB_BFC3F2FC = cpu->gpr[1]; @@ -166091,6 +202127,9 @@ label_BFC3F2FC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); if (psx_taken_BFC3F2FC) goto label_BFC3F2C4; label_BFC3F304: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F304: 1081FFEF beq $a0, $at, 0xBFC3F2C4 */ uint32_t psx_brA_BFC3F304 = cpu->gpr[4]; uint32_t psx_brB_BFC3F304 = cpu->gpr[1]; @@ -166099,6 +202138,9 @@ label_BFC3F304: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); if (psx_taken_BFC3F304) goto label_BFC3F2C4; label_BFC3F30C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F30C: 1081FFED beq $a0, $at, 0xBFC3F2C4 */ uint32_t psx_brA_BFC3F30C = cpu->gpr[4]; uint32_t psx_brB_BFC3F30C = cpu->gpr[1]; @@ -166107,6 +202149,9 @@ label_BFC3F30C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); if (psx_taken_BFC3F30C) goto label_BFC3F2C4; label_BFC3F314: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F314: 1081FFEB beq $a0, $at, 0xBFC3F2C4 */ uint32_t psx_brA_BFC3F314 = cpu->gpr[4]; uint32_t psx_brB_BFC3F314 = cpu->gpr[1]; @@ -166115,6 +202160,9 @@ label_BFC3F314: cpu->gpr[1] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC3F314) goto label_BFC3F2C4; label_BFC3F31C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F31C: 1481FFF0 bne $a0, $at, 0xBFC3F2E0 */ uint32_t psx_brA_BFC3F31C = cpu->gpr[4]; uint32_t psx_brB_BFC3F31C = cpu->gpr[1]; @@ -166123,6 +202171,9 @@ label_BFC3F31C: /* nop */ if (psx_taken_BFC3F31C) goto label_BFC3F2E0; label_BFC3F324: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F324: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -166143,6 +202194,9 @@ label_BFC3F324: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); if (psx_taken_BFC3F33C) goto label_BFC3F350; label_BFC3F344: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F344: 10000023 beq $zero, $zero, 0xBFC3F3D4 */ uint32_t psx_brA_BFC3F344 = cpu->gpr[0]; uint32_t psx_brB_BFC3F344 = cpu->gpr[0]; @@ -166151,10 +202205,16 @@ label_BFC3F344: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3F344) goto label_BFC3F3D4; label_BFC3F34C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F34C: 240100E6 addiu $at, $zero, 230 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); label_BFC3F350: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F350: 10810008 beq $a0, $at, 0xBFC3F374 */ uint32_t psx_brA_BFC3F350 = cpu->gpr[4]; uint32_t psx_brB_BFC3F350 = cpu->gpr[1]; @@ -166163,6 +202223,9 @@ label_BFC3F350: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); if (psx_taken_BFC3F350) goto label_BFC3F374; label_BFC3F358: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F358: 10810006 beq $a0, $at, 0xBFC3F374 */ uint32_t psx_brA_BFC3F358 = cpu->gpr[4]; uint32_t psx_brB_BFC3F358 = cpu->gpr[1]; @@ -166171,6 +202234,9 @@ label_BFC3F358: /* nop */ if (psx_taken_BFC3F358) goto label_BFC3F374; label_BFC3F360: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F360: 10830004 beq $a0, $v1, 0xBFC3F374 */ uint32_t psx_brA_BFC3F360 = cpu->gpr[4]; uint32_t psx_brB_BFC3F360 = cpu->gpr[3]; @@ -166179,6 +202245,9 @@ label_BFC3F360: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); if (psx_taken_BFC3F360) goto label_BFC3F374; label_BFC3F368: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F368: 10810002 beq $a0, $at, 0xBFC3F374 */ uint32_t psx_brA_BFC3F368 = cpu->gpr[4]; uint32_t psx_brB_BFC3F368 = cpu->gpr[1]; @@ -166187,20 +202256,32 @@ label_BFC3F368: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); if (psx_taken_BFC3F368) goto label_BFC3F374; label_BFC3F370: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F370: 14810002 bne $a0, $at, 0xBFC3F37C */ uint32_t psx_brA_BFC3F370 = cpu->gpr[4]; uint32_t psx_brB_BFC3F370 = cpu->gpr[1]; int psx_taken_BFC3F370 = (psx_brA_BFC3F370 != psx_brB_BFC3F370); label_BFC3F374: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F374: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3F370) goto label_BFC3F37C; label_BFC3F378: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F378: AC24EE58 sw $a0, -4520($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4520)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F378u); return; } g_debug_last_store_pc = 0xBFC3F378u; cpu->write_word(psx_addr, cpu->gpr[4]); } label_BFC3F37C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F37C: 0C016703 jal 0xB0059C0C */ /* 0xBFC3F380: AFA50018 sw $a1, 24($sp) */ @@ -166208,6 +202289,9 @@ label_BFC3F37C: cpu->gpr[31] = 0x80057384u; psx_dispatch(cpu, 0x80059C0Cu); label_BFC3F384: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F384: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -166250,6 +202334,9 @@ label_BFC3F384: /* 0xBFC3F3D0: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC3F3D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F3D4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F3D4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -166272,6 +202359,9 @@ void func_1FC3F484(CPUState* cpu) { } } label_BFC3F484: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F484: 3C03800E lui $v1, 0x800E */ cpu->gpr[3] = 0x800E0000u; @@ -166288,6 +202378,9 @@ label_BFC3F484: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F498u); return; } g_debug_last_store_pc = 0xBFC3F498u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC3F494) goto label_BFC3F4A4; label_BFC3F49C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F49C: 240100EB addiu $at, $zero, 235 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); @@ -166295,15 +202388,24 @@ label_BFC3F49C: uint32_t psx_brA_BFC3F4A0 = cpu->gpr[3]; uint32_t psx_brB_BFC3F4A0 = cpu->gpr[1]; int psx_taken_BFC3F4A0 = (psx_brA_BFC3F4A0 != psx_brB_BFC3F4A0); label_BFC3F4A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F4A4: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3F4A0) goto label_BFC3F4AC; label_BFC3F4A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F4A8: AC23EE58 sw $v1, -4520($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4520)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F4A8u); return; } g_debug_last_store_pc = 0xBFC3F4A8u; cpu->write_word(psx_addr, cpu->gpr[3]); } label_BFC3F4AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F4AC: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -166313,6 +202415,9 @@ label_BFC3F4AC: cpu->gpr[31] = 0x800574B8u; psx_dispatch(cpu, 0x80059C0Cu); label_BFC3F4B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F4B8: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -166355,6 +202460,9 @@ void func_1FC3F4F0(CPUState* cpu) { } } label_BFC3F4F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F4F0: 3C03800E lui $v1, 0x800E */ cpu->gpr[3] = 0x800E0000u; @@ -166371,6 +202479,9 @@ label_BFC3F4F0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F504u); return; } g_debug_last_store_pc = 0xBFC3F504u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC3F500) goto label_BFC3F528; label_BFC3F508: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F508: 24010003 addiu $at, $zero, 3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); @@ -166381,6 +202492,9 @@ label_BFC3F508: /* nop */ if (psx_taken_BFC3F50C) goto label_BFC3F528; label_BFC3F514: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F514: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -166395,6 +202509,9 @@ label_BFC3F514: g_debug_last_store_pc = 0xBFC3F524u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (0)), (uint8_t)(cpu->gpr[14] & 0xFFu)); if (psx_taken_BFC3F520) goto label_BFC3F560; label_BFC3F528: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F528: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -166404,6 +202521,9 @@ label_BFC3F528: cpu->gpr[31] = 0x80057534u; psx_dispatch(cpu, 0x80059C0Cu); label_BFC3F534: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F534: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -166428,6 +202548,9 @@ label_BFC3F534: /* 0xBFC3F55C: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC3F560: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F560: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F560u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -166450,6 +202573,9 @@ void func_1FC3F570(CPUState* cpu) { } } label_BFC3F570: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F570: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -166466,6 +202592,9 @@ label_BFC3F570: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F584u); return; } g_debug_last_store_pc = 0xBFC3F584u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC3F580) goto label_BFC3F590; label_BFC3F588: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F588: 1000000F beq $zero, $zero, 0xBFC3F5C8 */ uint32_t psx_brA_BFC3F588 = cpu->gpr[0]; uint32_t psx_brB_BFC3F588 = cpu->gpr[0]; @@ -166474,6 +202603,9 @@ label_BFC3F588: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3F588) goto label_BFC3F5C8; label_BFC3F590: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F590: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -166483,6 +202615,9 @@ label_BFC3F590: cpu->gpr[31] = 0x8005759Cu; psx_dispatch(cpu, 0x80059C0Cu); label_BFC3F59C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F59C: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -166507,6 +202642,9 @@ label_BFC3F59C: /* 0xBFC3F5C4: A1190000 sb $t9, 0($t0) */ g_debug_last_store_pc = 0xBFC3F5C4u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[8] + (0)), (uint8_t)(cpu->gpr[25] & 0xFFu)); label_BFC3F5C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F5C8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F5C8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -166529,6 +202667,9 @@ void func_1FC3F5D8(CPUState* cpu) { } } label_BFC3F5D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F5D8: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -166547,6 +202688,9 @@ label_BFC3F5D8: cpu->gpr[4] = cpu->gpr[4] & 0xFFu; if (psx_taken_BFC3F5EC) goto label_BFC3F5FC; label_BFC3F5F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F5F4: 14800004 bne $a0, $zero, 0xBFC3F608 */ uint32_t psx_brA_BFC3F5F4 = cpu->gpr[4]; uint32_t psx_brB_BFC3F5F4 = cpu->gpr[0]; @@ -166555,6 +202699,9 @@ label_BFC3F5F4: cpu->gpr[2] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC3F5F4) goto label_BFC3F608; label_BFC3F5FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F5FC: 10000038 beq $zero, $zero, 0xBFC3F6E0 */ uint32_t psx_brA_BFC3F5FC = cpu->gpr[0]; uint32_t psx_brB_BFC3F5FC = cpu->gpr[0]; @@ -166563,10 +202710,16 @@ label_BFC3F5FC: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3F5FC) goto label_BFC3F6E0; label_BFC3F604: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F604: 00801021 addu $v0, $a0, $zero */ cpu->gpr[2] = cpu->gpr[4] + cpu->gpr[0]; label_BFC3F608: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F608: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -166595,6 +202748,9 @@ label_BFC3F608: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4488)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F634u); return; } g_debug_last_store_pc = 0xBFC3F634u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC3F630) goto label_BFC3F648; label_BFC3F638: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F638: 24180246 addiu $t8, $zero, 582 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (582)); @@ -166607,6 +202763,9 @@ label_BFC3F638: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4472)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F644u); return; } g_debug_last_store_pc = 0xBFC3F644u; cpu->write_word(psx_addr, cpu->gpr[24]); } if (psx_taken_BFC3F640) goto label_BFC3F670; label_BFC3F648: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F648: 30D90020 andi $t9, $a2, 0x20 */ cpu->gpr[25] = cpu->gpr[6] & 0x20u; @@ -166617,6 +202776,9 @@ label_BFC3F648: cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (512)); if (psx_taken_BFC3F64C) goto label_BFC3F668; label_BFC3F654: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F654: 24080249 addiu $t0, $zero, 585 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (585)); @@ -166629,16 +202791,25 @@ label_BFC3F654: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4472)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F660u); return; } g_debug_last_store_pc = 0xBFC3F660u; cpu->write_word(psx_addr, cpu->gpr[8]); } if (psx_taken_BFC3F65C) goto label_BFC3F670; label_BFC3F664: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F664: 24090200 addiu $t1, $zero, 512 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (512)); label_BFC3F668: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F668: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; /* 0xBFC3F66C: AC29EE88 sw $t1, -4472($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4472)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F66Cu); return; } g_debug_last_store_pc = 0xBFC3F66Cu; cpu->write_word(psx_addr, cpu->gpr[9]); } label_BFC3F670: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F670: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -166659,6 +202830,9 @@ label_BFC3F670: /* nop */ if (psx_taken_BFC3F688) goto label_BFC3F698; label_BFC3F690: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F690: 10000013 beq $zero, $zero, 0xBFC3F6E0 */ uint32_t psx_brA_BFC3F690 = cpu->gpr[0]; uint32_t psx_brB_BFC3F690 = cpu->gpr[0]; @@ -166667,6 +202841,9 @@ label_BFC3F690: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3F690) goto label_BFC3F6E0; label_BFC3F698: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F698: 0C016703 jal 0xB0059C0C */ /* 0xBFC3F69C: AFA60020 sw $a2, 32($sp) */ @@ -166674,6 +202851,9 @@ label_BFC3F698: cpu->gpr[31] = 0x800576A0u; psx_dispatch(cpu, 0x80059C0Cu); label_BFC3F6A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F6A0: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -166708,6 +202888,9 @@ label_BFC3F6A0: /* 0xBFC3F6DC: A3380000 sb $t8, 0($t9) */ g_debug_last_store_pc = 0xBFC3F6DCu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[25] + (0)), (uint8_t)(cpu->gpr[24] & 0xFFu)); label_BFC3F6E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F6E0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F6E0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -166730,6 +202913,9 @@ void func_1FC3F6F0(CPUState* cpu) { } } label_BFC3F6F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F6F0: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -166746,6 +202932,9 @@ label_BFC3F6F0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F704u); return; } g_debug_last_store_pc = 0xBFC3F704u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC3F700) goto label_BFC3F710; label_BFC3F708: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F708: 10000033 beq $zero, $zero, 0xBFC3F7D8 */ uint32_t psx_brA_BFC3F708 = cpu->gpr[0]; uint32_t psx_brB_BFC3F708 = cpu->gpr[0]; @@ -166754,6 +202943,9 @@ label_BFC3F708: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3F708) goto label_BFC3F7D8; label_BFC3F710: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F710: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -166774,6 +202966,9 @@ label_BFC3F710: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4516)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F72Cu); return; } g_debug_last_store_pc = 0xBFC3F72Cu; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC3F728) goto label_BFC3F740; label_BFC3F730: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F730: 24180246 addiu $t8, $zero, 582 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (582)); @@ -166786,6 +202981,9 @@ label_BFC3F730: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4472)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F73Cu); return; } g_debug_last_store_pc = 0xBFC3F73Cu; cpu->write_word(psx_addr, cpu->gpr[24]); } if (psx_taken_BFC3F738) goto label_BFC3F768; label_BFC3F740: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F740: 30990020 andi $t9, $a0, 0x20 */ cpu->gpr[25] = cpu->gpr[4] & 0x20u; @@ -166796,6 +202994,9 @@ label_BFC3F740: cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (512)); if (psx_taken_BFC3F744) goto label_BFC3F760; label_BFC3F74C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F74C: 24080249 addiu $t0, $zero, 585 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (585)); @@ -166808,16 +203009,25 @@ label_BFC3F74C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4472)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F758u); return; } g_debug_last_store_pc = 0xBFC3F758u; cpu->write_word(psx_addr, cpu->gpr[8]); } if (psx_taken_BFC3F754) goto label_BFC3F768; label_BFC3F75C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F75C: 24090200 addiu $t1, $zero, 512 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (512)); label_BFC3F760: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F760: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; /* 0xBFC3F764: AC29EE88 sw $t1, -4472($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4472)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F764u); return; } g_debug_last_store_pc = 0xBFC3F764u; cpu->write_word(psx_addr, cpu->gpr[9]); } label_BFC3F768: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F768: 3C0A8008 lui $t2, 0x8008 */ cpu->gpr[10] = 0x80080000u; @@ -166838,6 +203048,9 @@ label_BFC3F768: /* nop */ if (psx_taken_BFC3F780) goto label_BFC3F790; label_BFC3F788: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F788: 10000013 beq $zero, $zero, 0xBFC3F7D8 */ uint32_t psx_brA_BFC3F788 = cpu->gpr[0]; uint32_t psx_brB_BFC3F788 = cpu->gpr[0]; @@ -166846,6 +203059,9 @@ label_BFC3F788: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3F788) goto label_BFC3F7D8; label_BFC3F790: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F790: 0C016703 jal 0xB0059C0C */ /* 0xBFC3F794: AFA40018 sw $a0, 24($sp) */ @@ -166853,6 +203069,9 @@ label_BFC3F790: cpu->gpr[31] = 0x80057798u; psx_dispatch(cpu, 0x80059C0Cu); label_BFC3F798: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F798: 3C0C8008 lui $t4, 0x8008 */ cpu->gpr[12] = 0x80080000u; @@ -166887,6 +203106,9 @@ label_BFC3F798: /* 0xBFC3F7D4: A3380000 sb $t8, 0($t9) */ g_debug_last_store_pc = 0xBFC3F7D4u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[25] + (0)), (uint8_t)(cpu->gpr[24] & 0xFFu)); label_BFC3F7D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F7D8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F7D8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -166910,6 +203132,9 @@ void func_1FC3F7E8(CPUState* cpu) { } } label_BFC3F7E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F7E8: 3C02800E lui $v0, 0x800E */ cpu->gpr[2] = 0x800E0000u; @@ -166928,6 +203153,9 @@ label_BFC3F7E8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F800u); return; } g_debug_last_store_pc = 0xBFC3F800u; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC3F7FC) goto label_BFC3F834; label_BFC3F804: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F804: 240400E6 addiu $a0, $zero, 230 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); @@ -166938,6 +203166,9 @@ label_BFC3F804: /* nop */ if (psx_taken_BFC3F808) goto label_BFC3F834; label_BFC3F810: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F810: 3C02800E lui $v0, 0x800E */ cpu->gpr[2] = 0x800E0000u; @@ -166952,6 +203183,9 @@ label_BFC3F810: /* nop */ if (psx_taken_BFC3F81C) goto label_BFC3F834; label_BFC3F824: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F824: 10440003 beq $v0, $a0, 0xBFC3F834 */ uint32_t psx_brA_BFC3F824 = cpu->gpr[2]; uint32_t psx_brB_BFC3F824 = cpu->gpr[4]; @@ -166960,6 +203194,9 @@ label_BFC3F824: /* nop */ if (psx_taken_BFC3F824) goto label_BFC3F834; label_BFC3F82C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F82C: 10000029 beq $zero, $zero, 0xBFC3F8D4 */ uint32_t psx_brA_BFC3F82C = cpu->gpr[0]; uint32_t psx_brB_BFC3F82C = cpu->gpr[0]; @@ -166968,6 +203205,9 @@ label_BFC3F82C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3F82C) goto label_BFC3F8D4; label_BFC3F834: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F834: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -166982,6 +203222,9 @@ label_BFC3F834: cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC3F840) goto label_BFC3F854; label_BFC3F848: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F848: 10000022 beq $zero, $zero, 0xBFC3F8D4 */ uint32_t psx_brA_BFC3F848 = cpu->gpr[0]; uint32_t psx_brB_BFC3F848 = cpu->gpr[0]; @@ -166990,10 +203233,16 @@ label_BFC3F848: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3F848) goto label_BFC3F8D4; label_BFC3F850: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F850: 240F0001 addiu $t7, $zero, 1 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC3F854: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F854: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -167009,6 +203258,9 @@ label_BFC3F854: cpu->gpr[31] = 0x8005786Cu; psx_dispatch(cpu, 0x80059C0Cu); label_BFC3F86C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(25u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F86C: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -167062,10 +203314,16 @@ label_BFC3F86C: cpu->gpr[31] = 0x800578D0u; psx_dispatch(cpu, 0x80059BA8u); label_BFC3F8D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F8D0: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC3F8D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F8D4: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F8D4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -167088,6 +203346,9 @@ void func_1FC3F8E4(CPUState* cpu) { } } label_BFC3F8E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F8E4: 3C03800E lui $v1, 0x800E */ cpu->gpr[3] = 0x800E0000u; @@ -167104,6 +203365,9 @@ label_BFC3F8E4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F8F8u); return; } g_debug_last_store_pc = 0xBFC3F8F8u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC3F8F4) goto label_BFC3F910; label_BFC3F8FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F8FC: 24010003 addiu $at, $zero, 3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); @@ -167114,6 +203378,9 @@ label_BFC3F8FC: /* nop */ if (psx_taken_BFC3F900) goto label_BFC3F910; label_BFC3F908: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F908: 10000024 beq $zero, $zero, 0xBFC3F99C */ uint32_t psx_brA_BFC3F908 = cpu->gpr[0]; uint32_t psx_brB_BFC3F908 = cpu->gpr[0]; @@ -167122,6 +203389,9 @@ label_BFC3F908: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3F908) goto label_BFC3F99C; label_BFC3F910: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F910: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -167144,6 +203414,9 @@ label_BFC3F910: /* nop */ if (psx_taken_BFC3F92C) goto label_BFC3F93C; label_BFC3F934: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F934: 10000019 beq $zero, $zero, 0xBFC3F99C */ uint32_t psx_brA_BFC3F934 = cpu->gpr[0]; uint32_t psx_brB_BFC3F934 = cpu->gpr[0]; @@ -167152,6 +203425,9 @@ label_BFC3F934: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3F934) goto label_BFC3F99C; label_BFC3F93C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F93C: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -167163,6 +203439,9 @@ label_BFC3F93C: cpu->gpr[31] = 0x8005794Cu; psx_dispatch(cpu, 0x80059C0Cu); label_BFC3F94C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(20u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F94C: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -167205,6 +203484,9 @@ label_BFC3F94C: /* 0xBFC3F998: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC3F99C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F99C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F99Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -167227,6 +203509,9 @@ void func_1FC3F9AC(CPUState* cpu) { } } label_BFC3F9AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F9AC: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -167243,6 +203528,9 @@ label_BFC3F9AC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3F9C0u); return; } g_debug_last_store_pc = 0xBFC3F9C0u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC3F9BC) goto label_BFC3F9CC; label_BFC3F9C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F9C4: 1000000E beq $zero, $zero, 0xBFC3FA00 */ uint32_t psx_brA_BFC3F9C4 = cpu->gpr[0]; uint32_t psx_brB_BFC3F9C4 = cpu->gpr[0]; @@ -167251,6 +203539,9 @@ label_BFC3F9C4: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3F9C4) goto label_BFC3FA00; label_BFC3F9CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F9CC: 0C016703 jal 0xB0059C0C */ /* 0xBFC3F9D0: 00000000 nop */ @@ -167258,6 +203549,9 @@ label_BFC3F9CC: cpu->gpr[31] = 0x800579D4u; psx_dispatch(cpu, 0x80059C0Cu); label_BFC3F9D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC3F9D4: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -167282,6 +203576,9 @@ label_BFC3F9D4: /* 0xBFC3F9FC: A1190000 sb $t9, 0($t0) */ g_debug_last_store_pc = 0xBFC3F9FCu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[8] + (0)), (uint8_t)(cpu->gpr[25] & 0xFFu)); label_BFC3FA00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FA00: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3FA00u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -167304,6 +203601,9 @@ void func_1FC3FA10(CPUState* cpu) { } } label_BFC3FA10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FA10: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -167314,6 +203614,9 @@ label_BFC3FA10: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3FA18u); return; } g_debug_last_store_pc = 0xBFC3FA18u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC3FA14) goto label_BFC3FA40; label_BFC3FA1C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FA1C: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -167328,6 +203631,9 @@ label_BFC3FA1C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); if (psx_taken_BFC3FA28) goto label_BFC3FA7C; label_BFC3FA30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FA30: 1000002A beq $zero, $zero, 0xBFC3FADC */ uint32_t psx_brA_BFC3FA30 = cpu->gpr[0]; uint32_t psx_brB_BFC3FA30 = cpu->gpr[0]; @@ -167336,6 +203642,9 @@ label_BFC3FA30: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3FA30) goto label_BFC3FADC; label_BFC3FA38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FA38: 10000028 beq $zero, $zero, 0xBFC3FADC */ uint32_t psx_brA_BFC3FA38 = cpu->gpr[0]; uint32_t psx_brB_BFC3FA38 = cpu->gpr[0]; @@ -167344,6 +203653,9 @@ label_BFC3FA38: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3FA38) goto label_BFC3FADC; label_BFC3FA40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FA40: 3C03800E lui $v1, 0x800E */ cpu->gpr[3] = 0x800E0000u; @@ -167358,6 +203670,9 @@ label_BFC3FA40: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); if (psx_taken_BFC3FA4C) goto label_BFC3FA1C; label_BFC3FA54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FA54: 1061FFF1 beq $v1, $at, 0xBFC3FA1C */ uint32_t psx_brA_BFC3FA54 = cpu->gpr[3]; uint32_t psx_brB_BFC3FA54 = cpu->gpr[1]; @@ -167366,6 +203681,9 @@ label_BFC3FA54: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); if (psx_taken_BFC3FA54) goto label_BFC3FA1C; label_BFC3FA5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FA5C: 1061FFEF beq $v1, $at, 0xBFC3FA1C */ uint32_t psx_brA_BFC3FA5C = cpu->gpr[3]; uint32_t psx_brB_BFC3FA5C = cpu->gpr[1]; @@ -167374,6 +203692,9 @@ label_BFC3FA5C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); if (psx_taken_BFC3FA5C) goto label_BFC3FA1C; label_BFC3FA64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FA64: 1061FFED beq $v1, $at, 0xBFC3FA1C */ uint32_t psx_brA_BFC3FA64 = cpu->gpr[3]; uint32_t psx_brB_BFC3FA64 = cpu->gpr[1]; @@ -167382,6 +203703,9 @@ label_BFC3FA64: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); if (psx_taken_BFC3FA64) goto label_BFC3FA1C; label_BFC3FA6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FA6C: 1061FFEB beq $v1, $at, 0xBFC3FA1C */ uint32_t psx_brA_BFC3FA6C = cpu->gpr[3]; uint32_t psx_brB_BFC3FA6C = cpu->gpr[1]; @@ -167390,6 +203714,9 @@ label_BFC3FA6C: cpu->gpr[1] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC3FA6C) goto label_BFC3FA1C; label_BFC3FA74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FA74: 1461FFF0 bne $v1, $at, 0xBFC3FA38 */ uint32_t psx_brA_BFC3FA74 = cpu->gpr[3]; uint32_t psx_brB_BFC3FA74 = cpu->gpr[1]; @@ -167398,6 +203725,9 @@ label_BFC3FA74: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); if (psx_taken_BFC3FA74) goto label_BFC3FA38; label_BFC3FA7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FA7C: 10610008 beq $v1, $at, 0xBFC3FAA0 */ uint32_t psx_brA_BFC3FA7C = cpu->gpr[3]; uint32_t psx_brB_BFC3FA7C = cpu->gpr[1]; @@ -167406,6 +203736,9 @@ label_BFC3FA7C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); if (psx_taken_BFC3FA7C) goto label_BFC3FAA0; label_BFC3FA84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FA84: 10610006 beq $v1, $at, 0xBFC3FAA0 */ uint32_t psx_brA_BFC3FA84 = cpu->gpr[3]; uint32_t psx_brB_BFC3FA84 = cpu->gpr[1]; @@ -167414,6 +203747,9 @@ label_BFC3FA84: /* nop */ if (psx_taken_BFC3FA84) goto label_BFC3FAA0; label_BFC3FA8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FA8C: 10620004 beq $v1, $v0, 0xBFC3FAA0 */ uint32_t psx_brA_BFC3FA8C = cpu->gpr[3]; uint32_t psx_brB_BFC3FA8C = cpu->gpr[2]; @@ -167422,6 +203758,9 @@ label_BFC3FA8C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); if (psx_taken_BFC3FA8C) goto label_BFC3FAA0; label_BFC3FA94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FA94: 10610002 beq $v1, $at, 0xBFC3FAA0 */ uint32_t psx_brA_BFC3FA94 = cpu->gpr[3]; uint32_t psx_brB_BFC3FA94 = cpu->gpr[1]; @@ -167430,20 +203769,32 @@ label_BFC3FA94: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); if (psx_taken_BFC3FA94) goto label_BFC3FAA0; label_BFC3FA9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FA9C: 14610002 bne $v1, $at, 0xBFC3FAA8 */ uint32_t psx_brA_BFC3FA9C = cpu->gpr[3]; uint32_t psx_brB_BFC3FA9C = cpu->gpr[1]; int psx_taken_BFC3FA9C = (psx_brA_BFC3FA9C != psx_brB_BFC3FA9C); label_BFC3FAA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FAA0: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3FA9C) goto label_BFC3FAA8; label_BFC3FAA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FAA4: AC23EE58 sw $v1, -4520($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4520)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3FAA4u); return; } g_debug_last_store_pc = 0xBFC3FAA4u; cpu->write_word(psx_addr, cpu->gpr[3]); } label_BFC3FAA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FAA8: 0C016703 jal 0xB0059C0C */ /* 0xBFC3FAAC: 00000000 nop */ @@ -167451,6 +203802,9 @@ label_BFC3FAA8: cpu->gpr[31] = 0x80057AB0u; psx_dispatch(cpu, 0x80059C0Cu); label_BFC3FAB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FAB0: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -167475,6 +203829,9 @@ label_BFC3FAB0: /* 0xBFC3FAD8: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC3FADC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FADC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3FADCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -167497,6 +203854,9 @@ void func_1FC3FAEC(CPUState* cpu) { } } label_BFC3FAEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FAEC: 3C02800E lui $v0, 0x800E */ cpu->gpr[2] = 0x800E0000u; @@ -167513,6 +203873,9 @@ label_BFC3FAEC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3FB00u); return; } g_debug_last_store_pc = 0xBFC3FB00u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC3FAFC) goto label_BFC3FB18; label_BFC3FB04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FB04: 240100EB addiu $at, $zero, 235 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); @@ -167523,6 +203886,9 @@ label_BFC3FB04: /* nop */ if (psx_taken_BFC3FB08) goto label_BFC3FB20; label_BFC3FB10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FB10: 10000005 beq $zero, $zero, 0xBFC3FB28 */ uint32_t psx_brA_BFC3FB10 = cpu->gpr[0]; uint32_t psx_brB_BFC3FB10 = cpu->gpr[0]; @@ -167531,6 +203897,9 @@ label_BFC3FB10: /* nop */ if (psx_taken_BFC3FB10) goto label_BFC3FB28; label_BFC3FB18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FB18: 10000005 beq $zero, $zero, 0xBFC3FB30 */ uint32_t psx_brA_BFC3FB18 = cpu->gpr[0]; uint32_t psx_brB_BFC3FB18 = cpu->gpr[0]; @@ -167539,6 +203908,9 @@ label_BFC3FB18: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (6)); if (psx_taken_BFC3FB18) goto label_BFC3FB30; label_BFC3FB20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FB20: 10000003 beq $zero, $zero, 0xBFC3FB30 */ uint32_t psx_brA_BFC3FB20 = cpu->gpr[0]; uint32_t psx_brB_BFC3FB20 = cpu->gpr[0]; @@ -167547,6 +203919,9 @@ label_BFC3FB20: cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[0] + (27)); if (psx_taken_BFC3FB20) goto label_BFC3FB30; label_BFC3FB28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FB28: 1000000E beq $zero, $zero, 0xBFC3FB64 */ uint32_t psx_brA_BFC3FB28 = cpu->gpr[0]; uint32_t psx_brB_BFC3FB28 = cpu->gpr[0]; @@ -167555,6 +203930,9 @@ label_BFC3FB28: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3FB28) goto label_BFC3FB64; label_BFC3FB30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FB30: 240E0050 addiu $t6, $zero, 80 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (80)); @@ -167568,6 +203946,9 @@ label_BFC3FB30: cpu->gpr[31] = 0x80057B44u; psx_dispatch(cpu, 0x80059C0Cu); label_BFC3FB44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FB44: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -167586,6 +203967,9 @@ label_BFC3FB44: /* 0xBFC3FB60: A3030000 sb $v1, 0($t8) */ g_debug_last_store_pc = 0xBFC3FB60u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[24] + (0)), (uint8_t)(cpu->gpr[3] & 0xFFu)); label_BFC3FB64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FB64: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3FB64u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -167608,6 +203992,9 @@ void func_1FC3FB74(CPUState* cpu) { } } label_BFC3FB74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FB74: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -167618,6 +204005,9 @@ label_BFC3FB74: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3FB7Cu); return; } g_debug_last_store_pc = 0xBFC3FB7Cu; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC3FB78) goto label_BFC3FBA4; label_BFC3FB80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FB80: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -167632,6 +204022,9 @@ label_BFC3FB80: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); if (psx_taken_BFC3FB8C) goto label_BFC3FBE0; label_BFC3FB94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FB94: 1000002A beq $zero, $zero, 0xBFC3FC40 */ uint32_t psx_brA_BFC3FB94 = cpu->gpr[0]; uint32_t psx_brB_BFC3FB94 = cpu->gpr[0]; @@ -167640,6 +204033,9 @@ label_BFC3FB94: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3FB94) goto label_BFC3FC40; label_BFC3FB9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FB9C: 10000028 beq $zero, $zero, 0xBFC3FC40 */ uint32_t psx_brA_BFC3FB9C = cpu->gpr[0]; uint32_t psx_brB_BFC3FB9C = cpu->gpr[0]; @@ -167648,6 +204044,9 @@ label_BFC3FB9C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3FB9C) goto label_BFC3FC40; label_BFC3FBA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FBA4: 3C03800E lui $v1, 0x800E */ cpu->gpr[3] = 0x800E0000u; @@ -167662,6 +204061,9 @@ label_BFC3FBA4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); if (psx_taken_BFC3FBB0) goto label_BFC3FB80; label_BFC3FBB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FBB8: 1061FFF1 beq $v1, $at, 0xBFC3FB80 */ uint32_t psx_brA_BFC3FBB8 = cpu->gpr[3]; uint32_t psx_brB_BFC3FBB8 = cpu->gpr[1]; @@ -167670,6 +204072,9 @@ label_BFC3FBB8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); if (psx_taken_BFC3FBB8) goto label_BFC3FB80; label_BFC3FBC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FBC0: 1061FFEF beq $v1, $at, 0xBFC3FB80 */ uint32_t psx_brA_BFC3FBC0 = cpu->gpr[3]; uint32_t psx_brB_BFC3FBC0 = cpu->gpr[1]; @@ -167678,6 +204083,9 @@ label_BFC3FBC0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); if (psx_taken_BFC3FBC0) goto label_BFC3FB80; label_BFC3FBC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FBC8: 1061FFED beq $v1, $at, 0xBFC3FB80 */ uint32_t psx_brA_BFC3FBC8 = cpu->gpr[3]; uint32_t psx_brB_BFC3FBC8 = cpu->gpr[1]; @@ -167686,6 +204094,9 @@ label_BFC3FBC8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); if (psx_taken_BFC3FBC8) goto label_BFC3FB80; label_BFC3FBD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FBD0: 1061FFEB beq $v1, $at, 0xBFC3FB80 */ uint32_t psx_brA_BFC3FBD0 = cpu->gpr[3]; uint32_t psx_brB_BFC3FBD0 = cpu->gpr[1]; @@ -167694,6 +204105,9 @@ label_BFC3FBD0: cpu->gpr[1] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC3FBD0) goto label_BFC3FB80; label_BFC3FBD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FBD8: 1461FFF0 bne $v1, $at, 0xBFC3FB9C */ uint32_t psx_brA_BFC3FBD8 = cpu->gpr[3]; uint32_t psx_brB_BFC3FBD8 = cpu->gpr[1]; @@ -167702,6 +204116,9 @@ label_BFC3FBD8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); if (psx_taken_BFC3FBD8) goto label_BFC3FB9C; label_BFC3FBE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FBE0: 10610008 beq $v1, $at, 0xBFC3FC04 */ uint32_t psx_brA_BFC3FBE0 = cpu->gpr[3]; uint32_t psx_brB_BFC3FBE0 = cpu->gpr[1]; @@ -167710,6 +204127,9 @@ label_BFC3FBE0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); if (psx_taken_BFC3FBE0) goto label_BFC3FC04; label_BFC3FBE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FBE8: 10610006 beq $v1, $at, 0xBFC3FC04 */ uint32_t psx_brA_BFC3FBE8 = cpu->gpr[3]; uint32_t psx_brB_BFC3FBE8 = cpu->gpr[1]; @@ -167718,6 +204138,9 @@ label_BFC3FBE8: /* nop */ if (psx_taken_BFC3FBE8) goto label_BFC3FC04; label_BFC3FBF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FBF0: 10620004 beq $v1, $v0, 0xBFC3FC04 */ uint32_t psx_brA_BFC3FBF0 = cpu->gpr[3]; uint32_t psx_brB_BFC3FBF0 = cpu->gpr[2]; @@ -167726,6 +204149,9 @@ label_BFC3FBF0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); if (psx_taken_BFC3FBF0) goto label_BFC3FC04; label_BFC3FBF8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FBF8: 10610002 beq $v1, $at, 0xBFC3FC04 */ uint32_t psx_brA_BFC3FBF8 = cpu->gpr[3]; uint32_t psx_brB_BFC3FBF8 = cpu->gpr[1]; @@ -167734,20 +204160,32 @@ label_BFC3FBF8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); if (psx_taken_BFC3FBF8) goto label_BFC3FC04; label_BFC3FC00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FC00: 14610002 bne $v1, $at, 0xBFC3FC0C */ uint32_t psx_brA_BFC3FC00 = cpu->gpr[3]; uint32_t psx_brB_BFC3FC00 = cpu->gpr[1]; int psx_taken_BFC3FC00 = (psx_brA_BFC3FC00 != psx_brB_BFC3FC00); label_BFC3FC04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FC04: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3FC00) goto label_BFC3FC0C; label_BFC3FC08: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FC08: AC23EE58 sw $v1, -4520($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4520)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3FC08u); return; } g_debug_last_store_pc = 0xBFC3FC08u; cpu->write_word(psx_addr, cpu->gpr[3]); } label_BFC3FC0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FC0C: 0C016703 jal 0xB0059C0C */ /* 0xBFC3FC10: 00000000 nop */ @@ -167755,6 +204193,9 @@ label_BFC3FC0C: cpu->gpr[31] = 0x80057C14u; psx_dispatch(cpu, 0x80059C0Cu); label_BFC3FC14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FC14: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -167779,6 +204220,9 @@ label_BFC3FC14: /* 0xBFC3FC3C: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC3FC40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FC40: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3FC40u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -167801,6 +204245,9 @@ void func_1FC3FC50(CPUState* cpu) { } } label_BFC3FC50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FC50: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -167811,6 +204258,9 @@ label_BFC3FC50: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3FC58u); return; } g_debug_last_store_pc = 0xBFC3FC58u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC3FC54) goto label_BFC3FC80; label_BFC3FC5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FC5C: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -167825,6 +204275,9 @@ label_BFC3FC5C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); if (psx_taken_BFC3FC68) goto label_BFC3FCAC; label_BFC3FC70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FC70: 10000022 beq $zero, $zero, 0xBFC3FCFC */ uint32_t psx_brA_BFC3FC70 = cpu->gpr[0]; uint32_t psx_brB_BFC3FC70 = cpu->gpr[0]; @@ -167833,6 +204286,9 @@ label_BFC3FC70: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3FC70) goto label_BFC3FCFC; label_BFC3FC78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FC78: 10000020 beq $zero, $zero, 0xBFC3FCFC */ uint32_t psx_brA_BFC3FC78 = cpu->gpr[0]; uint32_t psx_brB_BFC3FC78 = cpu->gpr[0]; @@ -167841,6 +204297,9 @@ label_BFC3FC78: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3FC78) goto label_BFC3FCFC; label_BFC3FC80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FC80: 3C03800E lui $v1, 0x800E */ cpu->gpr[3] = 0x800E0000u; @@ -167855,6 +204314,9 @@ label_BFC3FC80: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); if (psx_taken_BFC3FC8C) goto label_BFC3FC5C; label_BFC3FC94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FC94: 1061FFF1 beq $v1, $at, 0xBFC3FC5C */ uint32_t psx_brA_BFC3FC94 = cpu->gpr[3]; uint32_t psx_brB_BFC3FC94 = cpu->gpr[1]; @@ -167863,6 +204325,9 @@ label_BFC3FC94: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); if (psx_taken_BFC3FC94) goto label_BFC3FC5C; label_BFC3FC9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FC9C: 1061FFEF beq $v1, $at, 0xBFC3FC5C */ uint32_t psx_brA_BFC3FC9C = cpu->gpr[3]; uint32_t psx_brB_BFC3FC9C = cpu->gpr[1]; @@ -167871,6 +204336,9 @@ label_BFC3FC9C: cpu->gpr[1] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC3FC9C) goto label_BFC3FC5C; label_BFC3FCA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FCA4: 1461FFF4 bne $v1, $at, 0xBFC3FC78 */ uint32_t psx_brA_BFC3FCA4 = cpu->gpr[3]; uint32_t psx_brB_BFC3FCA4 = cpu->gpr[1]; @@ -167879,6 +204347,9 @@ label_BFC3FCA4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); if (psx_taken_BFC3FCA4) goto label_BFC3FC78; label_BFC3FCAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FCAC: 10610004 beq $v1, $at, 0xBFC3FCC0 */ uint32_t psx_brA_BFC3FCAC = cpu->gpr[3]; uint32_t psx_brB_BFC3FCAC = cpu->gpr[1]; @@ -167887,6 +204358,9 @@ label_BFC3FCAC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); if (psx_taken_BFC3FCAC) goto label_BFC3FCC0; label_BFC3FCB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FCB4: 10610002 beq $v1, $at, 0xBFC3FCC0 */ uint32_t psx_brA_BFC3FCB4 = cpu->gpr[3]; uint32_t psx_brB_BFC3FCB4 = cpu->gpr[1]; @@ -167895,20 +204369,32 @@ label_BFC3FCB4: /* nop */ if (psx_taken_BFC3FCB4) goto label_BFC3FCC0; label_BFC3FCBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FCBC: 14620002 bne $v1, $v0, 0xBFC3FCC8 */ uint32_t psx_brA_BFC3FCBC = cpu->gpr[3]; uint32_t psx_brB_BFC3FCBC = cpu->gpr[2]; int psx_taken_BFC3FCBC = (psx_brA_BFC3FCBC != psx_brB_BFC3FCBC); label_BFC3FCC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FCC0: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3FCBC) goto label_BFC3FCC8; label_BFC3FCC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FCC4: AC23EE58 sw $v1, -4520($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4520)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3FCC4u); return; } g_debug_last_store_pc = 0xBFC3FCC4u; cpu->write_word(psx_addr, cpu->gpr[3]); } label_BFC3FCC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FCC8: 0C016703 jal 0xB0059C0C */ /* 0xBFC3FCCC: 00000000 nop */ @@ -167916,6 +204402,9 @@ label_BFC3FCC8: cpu->gpr[31] = 0x80057CD0u; psx_dispatch(cpu, 0x80059C0Cu); label_BFC3FCD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FCD0: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -167940,6 +204429,9 @@ label_BFC3FCD0: /* 0xBFC3FCF8: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC3FCFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FCFC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3FCFCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -167962,6 +204454,9 @@ void func_1FC3FD0C(CPUState* cpu) { } } label_BFC3FD0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FD0C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -167972,6 +204467,9 @@ label_BFC3FD0C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3FD14u); return; } g_debug_last_store_pc = 0xBFC3FD14u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC3FD10) goto label_BFC3FD3C; label_BFC3FD18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FD18: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -167986,6 +204484,9 @@ label_BFC3FD18: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); if (psx_taken_BFC3FD24) goto label_BFC3FD68; label_BFC3FD2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FD2C: 10000022 beq $zero, $zero, 0xBFC3FDB8 */ uint32_t psx_brA_BFC3FD2C = cpu->gpr[0]; uint32_t psx_brB_BFC3FD2C = cpu->gpr[0]; @@ -167994,6 +204495,9 @@ label_BFC3FD2C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3FD2C) goto label_BFC3FDB8; label_BFC3FD34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FD34: 10000020 beq $zero, $zero, 0xBFC3FDB8 */ uint32_t psx_brA_BFC3FD34 = cpu->gpr[0]; uint32_t psx_brB_BFC3FD34 = cpu->gpr[0]; @@ -168002,6 +204506,9 @@ label_BFC3FD34: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3FD34) goto label_BFC3FDB8; label_BFC3FD3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FD3C: 3C03800E lui $v1, 0x800E */ cpu->gpr[3] = 0x800E0000u; @@ -168016,6 +204523,9 @@ label_BFC3FD3C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); if (psx_taken_BFC3FD48) goto label_BFC3FD18; label_BFC3FD50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FD50: 1061FFF1 beq $v1, $at, 0xBFC3FD18 */ uint32_t psx_brA_BFC3FD50 = cpu->gpr[3]; uint32_t psx_brB_BFC3FD50 = cpu->gpr[1]; @@ -168024,6 +204534,9 @@ label_BFC3FD50: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); if (psx_taken_BFC3FD50) goto label_BFC3FD18; label_BFC3FD58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FD58: 1061FFEF beq $v1, $at, 0xBFC3FD18 */ uint32_t psx_brA_BFC3FD58 = cpu->gpr[3]; uint32_t psx_brB_BFC3FD58 = cpu->gpr[1]; @@ -168032,6 +204545,9 @@ label_BFC3FD58: cpu->gpr[1] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC3FD58) goto label_BFC3FD18; label_BFC3FD60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FD60: 1461FFF4 bne $v1, $at, 0xBFC3FD34 */ uint32_t psx_brA_BFC3FD60 = cpu->gpr[3]; uint32_t psx_brB_BFC3FD60 = cpu->gpr[1]; @@ -168040,6 +204556,9 @@ label_BFC3FD60: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); if (psx_taken_BFC3FD60) goto label_BFC3FD34; label_BFC3FD68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FD68: 10610004 beq $v1, $at, 0xBFC3FD7C */ uint32_t psx_brA_BFC3FD68 = cpu->gpr[3]; uint32_t psx_brB_BFC3FD68 = cpu->gpr[1]; @@ -168048,6 +204567,9 @@ label_BFC3FD68: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); if (psx_taken_BFC3FD68) goto label_BFC3FD7C; label_BFC3FD70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FD70: 10610002 beq $v1, $at, 0xBFC3FD7C */ uint32_t psx_brA_BFC3FD70 = cpu->gpr[3]; uint32_t psx_brB_BFC3FD70 = cpu->gpr[1]; @@ -168056,20 +204578,32 @@ label_BFC3FD70: /* nop */ if (psx_taken_BFC3FD70) goto label_BFC3FD7C; label_BFC3FD78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FD78: 14620002 bne $v1, $v0, 0xBFC3FD84 */ uint32_t psx_brA_BFC3FD78 = cpu->gpr[3]; uint32_t psx_brB_BFC3FD78 = cpu->gpr[2]; int psx_taken_BFC3FD78 = (psx_brA_BFC3FD78 != psx_brB_BFC3FD78); label_BFC3FD7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FD7C: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC3FD78) goto label_BFC3FD84; label_BFC3FD80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FD80: AC23EE58 sw $v1, -4520($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4520)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3FD80u); return; } g_debug_last_store_pc = 0xBFC3FD80u; cpu->write_word(psx_addr, cpu->gpr[3]); } label_BFC3FD84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FD84: 0C016703 jal 0xB0059C0C */ /* 0xBFC3FD88: 00000000 nop */ @@ -168077,6 +204611,9 @@ label_BFC3FD84: cpu->gpr[31] = 0x80057D8Cu; psx_dispatch(cpu, 0x80059C0Cu); label_BFC3FD8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FD8C: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -168101,6 +204638,9 @@ label_BFC3FD8C: /* 0xBFC3FDB4: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC3FDB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FDB8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3FDB8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -168123,6 +204663,9 @@ void func_1FC3FDC8(CPUState* cpu) { } } label_BFC3FDC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FDC8: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -168139,6 +204682,9 @@ label_BFC3FDC8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3FDDCu); return; } g_debug_last_store_pc = 0xBFC3FDDCu; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC3FDD8) goto label_BFC3FDE8; label_BFC3FDE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FDE0: 1000001B beq $zero, $zero, 0xBFC3FE50 */ uint32_t psx_brA_BFC3FDE0 = cpu->gpr[0]; uint32_t psx_brB_BFC3FDE0 = cpu->gpr[0]; @@ -168147,6 +204693,9 @@ label_BFC3FDE0: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3FDE0) goto label_BFC3FE50; label_BFC3FDE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FDE8: 0C016703 jal 0xB0059C0C */ /* 0xBFC3FDEC: AFA40018 sw $a0, 24($sp) */ @@ -168154,6 +204703,9 @@ label_BFC3FDE8: cpu->gpr[31] = 0x80057DF0u; psx_dispatch(cpu, 0x80059C0Cu); label_BFC3FDF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(24u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FDF0: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -168204,6 +204756,9 @@ label_BFC3FDF0: /* 0xBFC3FE4C: A0CC0000 sb $t4, 0($a2) */ g_debug_last_store_pc = 0xBFC3FE4Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[6] + (0)), (uint8_t)(cpu->gpr[12] & 0xFFu)); label_BFC3FE50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FE50: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3FE50u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -168226,6 +204781,9 @@ void func_1FC3FE60(CPUState* cpu) { } } label_BFC3FE60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FE60: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -168244,6 +204802,9 @@ label_BFC3FE60: cpu->gpr[5] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC3FE74) goto label_BFC3FE84; label_BFC3FE7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FE7C: 1000002C beq $zero, $zero, 0xBFC3FF30 */ uint32_t psx_brA_BFC3FE7C = cpu->gpr[0]; uint32_t psx_brB_BFC3FE7C = cpu->gpr[0]; @@ -168252,6 +204813,9 @@ label_BFC3FE7C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3FE7C) goto label_BFC3FF30; label_BFC3FE84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FE84: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -168272,6 +204836,9 @@ label_BFC3FE84: /* nop */ if (psx_taken_BFC3FE9C) goto label_BFC3FEAC; label_BFC3FEA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FEA4: 10000022 beq $zero, $zero, 0xBFC3FF30 */ uint32_t psx_brA_BFC3FEA4 = cpu->gpr[0]; uint32_t psx_brB_BFC3FEA4 = cpu->gpr[0]; @@ -168280,6 +204847,9 @@ label_BFC3FEA4: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3FEA4) goto label_BFC3FF30; label_BFC3FEAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FEAC: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -168292,6 +204862,9 @@ label_BFC3FEAC: /* 0xBFC3FEBC: 24040064 addiu $a0, $zero, 100 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (100)); label_BFC3FEC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FEC0: A0400000 sb $zero, 0($v0) */ g_debug_last_store_pc = 0xBFC3FEC0u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[2] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -168326,6 +204899,9 @@ label_BFC3FEC0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (12)); if (psx_taken_BFC3FEF4) goto label_BFC3FEC0; label_BFC3FEFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FEFC: 0C016703 jal 0xB0059C0C */ /* 0xBFC3FF00: 00000000 nop */ @@ -168333,6 +204909,9 @@ label_BFC3FEFC: cpu->gpr[31] = 0x80057F04u; psx_dispatch(cpu, 0x80059C0Cu); label_BFC3FF04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FF04: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -168357,6 +204936,9 @@ label_BFC3FF04: /* 0xBFC3FF2C: A1490000 sb $t1, 0($t2) */ g_debug_last_store_pc = 0xBFC3FF2Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[10] + (0)), (uint8_t)(cpu->gpr[9] & 0xFFu)); label_BFC3FF30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FF30: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3FF30u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -168379,6 +204961,9 @@ void func_1FC3FF40(CPUState* cpu) { } } label_BFC3FF40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FF40: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -168397,6 +204982,9 @@ label_BFC3FF40: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC3FF58u); return; } g_debug_last_store_pc = 0xBFC3FF58u; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC3FF54) goto label_BFC3FF64; label_BFC3FF5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FF5C: 10000031 beq $zero, $zero, 0xBFC40024 */ uint32_t psx_brA_BFC3FF5C = cpu->gpr[0]; uint32_t psx_brB_BFC3FF5C = cpu->gpr[0]; @@ -168405,6 +204993,9 @@ label_BFC3FF5C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3FF5C) goto label_BFC40024; label_BFC3FF64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FF64: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -168425,6 +205016,9 @@ label_BFC3FF64: /* nop */ if (psx_taken_BFC3FF7C) goto label_BFC3FF8C; label_BFC3FF84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FF84: 10000027 beq $zero, $zero, 0xBFC40024 */ uint32_t psx_brA_BFC3FF84 = cpu->gpr[0]; uint32_t psx_brB_BFC3FF84 = cpu->gpr[0]; @@ -168433,6 +205027,9 @@ label_BFC3FF84: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC3FF84) goto label_BFC40024; label_BFC3FF8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FF8C: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -168445,6 +205042,9 @@ label_BFC3FF8C: /* 0xBFC3FF9C: 24040064 addiu $a0, $zero, 100 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (100)); label_BFC3FFA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FFA0: A0400000 sb $zero, 0($v0) */ g_debug_last_store_pc = 0xBFC3FFA0u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[2] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); @@ -168479,6 +205079,9 @@ label_BFC3FFA0: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[2] + (12)); if (psx_taken_BFC3FFD4) goto label_BFC3FFA0; label_BFC3FFDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FFDC: 0C016703 jal 0xB0059C0C */ /* 0xBFC3FFE0: 00000000 nop */ @@ -168486,6 +205089,9 @@ label_BFC3FFDC: cpu->gpr[31] = 0x80057FE4u; psx_dispatch(cpu, 0x80059C0Cu); label_BFC3FFE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC3FFE4: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -168520,6 +205126,9 @@ label_BFC3FFE4: /* 0xBFC40020: A1AC0000 sb $t4, 0($t5) */ g_debug_last_store_pc = 0xBFC40020u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[13] + (0)), (uint8_t)(cpu->gpr[12] & 0xFFu)); label_BFC40024: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC40024: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40024u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -168542,6 +205151,9 @@ void func_1FC40034(CPUState* cpu) { } } label_BFC40034: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40034: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -168552,6 +205164,9 @@ label_BFC40034: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC4003Cu); return; } g_debug_last_store_pc = 0xBFC4003Cu; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC40038) goto label_BFC40064; label_BFC40040: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC40040: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -168566,6 +205181,9 @@ label_BFC40040: /* nop */ if (psx_taken_BFC4004C) goto label_BFC40098; label_BFC40054: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40054: 1000001D beq $zero, $zero, 0xBFC400CC */ uint32_t psx_brA_BFC40054 = cpu->gpr[0]; uint32_t psx_brB_BFC40054 = cpu->gpr[0]; @@ -168574,6 +205192,9 @@ label_BFC40054: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC40054) goto label_BFC400CC; label_BFC4005C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC4005C: 1000001B beq $zero, $zero, 0xBFC400CC */ uint32_t psx_brA_BFC4005C = cpu->gpr[0]; uint32_t psx_brB_BFC4005C = cpu->gpr[0]; @@ -168582,6 +205203,9 @@ label_BFC4005C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC4005C) goto label_BFC400CC; label_BFC40064: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC40064: 3C03800E lui $v1, 0x800E */ cpu->gpr[3] = 0x800E0000u; @@ -168596,6 +205220,9 @@ label_BFC40064: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); if (psx_taken_BFC40070) goto label_BFC40040; label_BFC40078: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40078: 1061FFF1 beq $v1, $at, 0xBFC40040 */ uint32_t psx_brA_BFC40078 = cpu->gpr[3]; uint32_t psx_brB_BFC40078 = cpu->gpr[1]; @@ -168604,6 +205231,9 @@ label_BFC40078: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); if (psx_taken_BFC40078) goto label_BFC40040; label_BFC40080: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40080: 1061FFEF beq $v1, $at, 0xBFC40040 */ uint32_t psx_brA_BFC40080 = cpu->gpr[3]; uint32_t psx_brB_BFC40080 = cpu->gpr[1]; @@ -168612,6 +205242,9 @@ label_BFC40080: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); if (psx_taken_BFC40080) goto label_BFC40040; label_BFC40088: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40088: 1061FFED beq $v1, $at, 0xBFC40040 */ uint32_t psx_brA_BFC40088 = cpu->gpr[3]; uint32_t psx_brB_BFC40088 = cpu->gpr[1]; @@ -168620,6 +205253,9 @@ label_BFC40088: cpu->gpr[1] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC40088) goto label_BFC40040; label_BFC40090: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40090: 1461FFF2 bne $v1, $at, 0xBFC4005C */ uint32_t psx_brA_BFC40090 = cpu->gpr[3]; uint32_t psx_brB_BFC40090 = cpu->gpr[1]; @@ -168628,6 +205264,9 @@ label_BFC40090: /* nop */ if (psx_taken_BFC40090) goto label_BFC4005C; label_BFC40098: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40098: 0C016703 jal 0xB0059C0C */ /* 0xBFC4009C: 00000000 nop */ @@ -168635,6 +205274,9 @@ label_BFC40098: cpu->gpr[31] = 0x800580A0u; psx_dispatch(cpu, 0x80059C0Cu); label_BFC400A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC400A0: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -168659,6 +205301,9 @@ label_BFC400A0: /* 0xBFC400C8: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC400CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC400CC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC400CCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -168681,6 +205326,9 @@ void func_1FC400DC(CPUState* cpu) { } } label_BFC400DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC400DC: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -168691,6 +205339,9 @@ label_BFC400DC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC400E4u); return; } g_debug_last_store_pc = 0xBFC400E4u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC400E0) goto label_BFC4010C; label_BFC400E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC400E8: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -168705,6 +205356,9 @@ label_BFC400E8: /* nop */ if (psx_taken_BFC400F4) goto label_BFC40140; label_BFC400FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC400FC: 1000001D beq $zero, $zero, 0xBFC40174 */ uint32_t psx_brA_BFC400FC = cpu->gpr[0]; uint32_t psx_brB_BFC400FC = cpu->gpr[0]; @@ -168713,6 +205367,9 @@ label_BFC400FC: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC400FC) goto label_BFC40174; label_BFC40104: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40104: 1000001B beq $zero, $zero, 0xBFC40174 */ uint32_t psx_brA_BFC40104 = cpu->gpr[0]; uint32_t psx_brB_BFC40104 = cpu->gpr[0]; @@ -168721,6 +205378,9 @@ label_BFC40104: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC40104) goto label_BFC40174; label_BFC4010C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC4010C: 3C03800E lui $v1, 0x800E */ cpu->gpr[3] = 0x800E0000u; @@ -168735,6 +205395,9 @@ label_BFC4010C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); if (psx_taken_BFC40118) goto label_BFC400E8; label_BFC40120: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40120: 1061FFF1 beq $v1, $at, 0xBFC400E8 */ uint32_t psx_brA_BFC40120 = cpu->gpr[3]; uint32_t psx_brB_BFC40120 = cpu->gpr[1]; @@ -168743,6 +205406,9 @@ label_BFC40120: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); if (psx_taken_BFC40120) goto label_BFC400E8; label_BFC40128: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40128: 1061FFEF beq $v1, $at, 0xBFC400E8 */ uint32_t psx_brA_BFC40128 = cpu->gpr[3]; uint32_t psx_brB_BFC40128 = cpu->gpr[1]; @@ -168751,6 +205417,9 @@ label_BFC40128: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); if (psx_taken_BFC40128) goto label_BFC400E8; label_BFC40130: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40130: 1061FFED beq $v1, $at, 0xBFC400E8 */ uint32_t psx_brA_BFC40130 = cpu->gpr[3]; uint32_t psx_brB_BFC40130 = cpu->gpr[1]; @@ -168759,6 +205428,9 @@ label_BFC40130: cpu->gpr[1] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC40130) goto label_BFC400E8; label_BFC40138: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40138: 1461FFF2 bne $v1, $at, 0xBFC40104 */ uint32_t psx_brA_BFC40138 = cpu->gpr[3]; uint32_t psx_brB_BFC40138 = cpu->gpr[1]; @@ -168767,6 +205439,9 @@ label_BFC40138: /* nop */ if (psx_taken_BFC40138) goto label_BFC40104; label_BFC40140: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40140: 0C016703 jal 0xB0059C0C */ /* 0xBFC40144: 00000000 nop */ @@ -168774,6 +205449,9 @@ label_BFC40140: cpu->gpr[31] = 0x80058148u; psx_dispatch(cpu, 0x80059C0Cu); label_BFC40148: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC40148: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -168798,6 +205476,9 @@ label_BFC40148: /* 0xBFC40170: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC40174: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC40174: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40174u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -168820,6 +205501,9 @@ void func_1FC40184(CPUState* cpu) { } } label_BFC40184: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC40184: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -168832,6 +205516,9 @@ label_BFC40184: cpu->gpr[4] = cpu->gpr[4] & 0xFFu; if (psx_taken_BFC4018C) goto label_BFC401B8; label_BFC40194: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC40194: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -168846,6 +205533,9 @@ label_BFC40194: /* nop */ if (psx_taken_BFC401A0) goto label_BFC401F4; label_BFC401A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC401A8: 10000029 beq $zero, $zero, 0xBFC40250 */ uint32_t psx_brA_BFC401A8 = cpu->gpr[0]; uint32_t psx_brB_BFC401A8 = cpu->gpr[0]; @@ -168854,6 +205544,9 @@ label_BFC401A8: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC401A8) goto label_BFC40250; label_BFC401B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC401B0: 10000027 beq $zero, $zero, 0xBFC40250 */ uint32_t psx_brA_BFC401B0 = cpu->gpr[0]; uint32_t psx_brB_BFC401B0 = cpu->gpr[0]; @@ -168862,6 +205555,9 @@ label_BFC401B0: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC401B0) goto label_BFC40250; label_BFC401B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC401B8: 3C03800E lui $v1, 0x800E */ cpu->gpr[3] = 0x800E0000u; @@ -168876,6 +205572,9 @@ label_BFC401B8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); if (psx_taken_BFC401C4) goto label_BFC401F4; label_BFC401CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC401CC: 1061FFF1 beq $v1, $at, 0xBFC40194 */ uint32_t psx_brA_BFC401CC = cpu->gpr[3]; uint32_t psx_brB_BFC401CC = cpu->gpr[1]; @@ -168884,6 +205583,9 @@ label_BFC401CC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); if (psx_taken_BFC401CC) goto label_BFC40194; label_BFC401D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC401D4: 1061FFEF beq $v1, $at, 0xBFC40194 */ uint32_t psx_brA_BFC401D4 = cpu->gpr[3]; uint32_t psx_brB_BFC401D4 = cpu->gpr[1]; @@ -168892,6 +205594,9 @@ label_BFC401D4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); if (psx_taken_BFC401D4) goto label_BFC40194; label_BFC401DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC401DC: 1061FFED beq $v1, $at, 0xBFC40194 */ uint32_t psx_brA_BFC401DC = cpu->gpr[3]; uint32_t psx_brB_BFC401DC = cpu->gpr[1]; @@ -168900,6 +205605,9 @@ label_BFC401DC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); if (psx_taken_BFC401DC) goto label_BFC40194; label_BFC401E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC401E4: 1061FFEB beq $v1, $at, 0xBFC40194 */ uint32_t psx_brA_BFC401E4 = cpu->gpr[3]; uint32_t psx_brB_BFC401E4 = cpu->gpr[1]; @@ -168908,6 +205616,9 @@ label_BFC401E4: cpu->gpr[1] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC401E4) goto label_BFC40194; label_BFC401EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC401EC: 1461FFF0 bne $v1, $at, 0xBFC401B0 */ uint32_t psx_brA_BFC401EC = cpu->gpr[3]; uint32_t psx_brB_BFC401EC = cpu->gpr[1]; @@ -168916,6 +205627,9 @@ label_BFC401EC: /* nop */ if (psx_taken_BFC401EC) goto label_BFC401B0; label_BFC401F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC401F4: 0C016703 jal 0xB0059C0C */ /* 0xBFC401F8: A3A40018 sb $a0, 24($sp) */ @@ -168923,6 +205637,9 @@ label_BFC401F4: cpu->gpr[31] = 0x800581FCu; psx_dispatch(cpu, 0x80059C0Cu); label_BFC401FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC401FC: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -168937,6 +205654,9 @@ label_BFC401FC: g_debug_last_store_pc = 0xBFC4020Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[15] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); if (psx_taken_BFC40208) goto label_BFC40220; label_BFC40210: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC40210: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -168949,6 +205669,9 @@ label_BFC40210: g_debug_last_store_pc = 0xBFC4021Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[24] + (0)), (uint8_t)(cpu->gpr[4] & 0xFFu)); if (psx_taken_BFC40218) goto label_BFC40230; label_BFC40220: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC40220: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -168959,6 +205682,9 @@ label_BFC40220: /* 0xBFC4022C: A3200000 sb $zero, 0($t9) */ g_debug_last_store_pc = 0xBFC4022Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[25] + (0)), (uint8_t)(cpu->gpr[0] & 0xFFu)); label_BFC40230: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC40230: 3C098008 lui $t1, 0x8008 */ cpu->gpr[9] = 0x80080000u; @@ -168977,6 +205703,9 @@ label_BFC40230: /* 0xBFC4024C: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC40250: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC40250: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40250u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -168999,6 +205728,9 @@ void func_1FC40260(CPUState* cpu) { } } label_BFC40260: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC40260: 3C03800E lui $v1, 0x800E */ cpu->gpr[3] = 0x800E0000u; @@ -169015,6 +205747,9 @@ label_BFC40260: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40274u); return; } g_debug_last_store_pc = 0xBFC40274u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC40270) goto label_BFC4028C; label_BFC40278: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40278: 24010003 addiu $at, $zero, 3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); @@ -169025,6 +205760,9 @@ label_BFC40278: /* nop */ if (psx_taken_BFC4027C) goto label_BFC4028C; label_BFC40284: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40284: 10000011 beq $zero, $zero, 0xBFC402CC */ uint32_t psx_brA_BFC40284 = cpu->gpr[0]; uint32_t psx_brB_BFC40284 = cpu->gpr[0]; @@ -169033,6 +205771,9 @@ label_BFC40284: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC40284) goto label_BFC402CC; label_BFC4028C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC4028C: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -169046,6 +205787,9 @@ label_BFC4028C: cpu->gpr[31] = 0x800582A0u; psx_dispatch(cpu, 0x80059C0Cu); label_BFC402A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC402A0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -169070,6 +205814,9 @@ label_BFC402A0: /* 0xBFC402C8: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC402CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC402CC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC402CCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -169092,6 +205839,9 @@ void func_1FC402DC(CPUState* cpu) { } } label_BFC402DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC402DC: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -169110,6 +205860,9 @@ label_BFC402DC: cpu->gpr[6] = cpu->gpr[4] + cpu->gpr[0]; if (psx_taken_BFC402F0) goto label_BFC40300; label_BFC402F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC402F8: 1000002E beq $zero, $zero, 0xBFC403B4 */ uint32_t psx_brA_BFC402F8 = cpu->gpr[0]; uint32_t psx_brB_BFC402F8 = cpu->gpr[0]; @@ -169118,6 +205871,9 @@ label_BFC402F8: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC402F8) goto label_BFC403B4; label_BFC40300: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC40300: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -169138,6 +205894,9 @@ label_BFC40300: /* nop */ if (psx_taken_BFC40318) goto label_BFC40328; label_BFC40320: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40320: 10000024 beq $zero, $zero, 0xBFC403B4 */ uint32_t psx_brA_BFC40320 = cpu->gpr[0]; uint32_t psx_brB_BFC40320 = cpu->gpr[0]; @@ -169146,6 +205905,9 @@ label_BFC40320: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC40320) goto label_BFC403B4; label_BFC40328: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC40328: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -169165,6 +205927,9 @@ label_BFC40328: cpu->gpr[31] = 0x80058348u; psx_dispatch(cpu, 0x80059C0Cu); label_BFC40348: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC40348: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -169187,6 +205952,9 @@ label_BFC40348: /* 0xBFC4036C: A0880000 sb $t0, 0($a0) */ g_debug_last_store_pc = 0xBFC4036Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (0)), (uint8_t)(cpu->gpr[8] & 0xFFu)); label_BFC40370: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40370: 10600008 beq $v1, $zero, 0xBFC40394 */ uint32_t psx_brA_BFC40370 = cpu->gpr[3]; uint32_t psx_brB_BFC40370 = cpu->gpr[0]; @@ -169195,6 +205963,9 @@ label_BFC40370: /* nop */ if (psx_taken_BFC40370) goto label_BFC40394; label_BFC40378: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC40378: 00C24821 addu $t1, $a2, $v0 */ cpu->gpr[9] = cpu->gpr[6] + cpu->gpr[2]; @@ -169213,6 +205984,9 @@ label_BFC40378: g_debug_last_store_pc = 0xBFC40390u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[4] + (0)), (uint8_t)(cpu->gpr[10] & 0xFFu)); if (psx_taken_BFC4038C) goto label_BFC40370; label_BFC40394: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC40394: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -169231,6 +206005,9 @@ label_BFC40394: /* 0xBFC403B0: A1AC0000 sb $t4, 0($t5) */ g_debug_last_store_pc = 0xBFC403B0u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[13] + (0)), (uint8_t)(cpu->gpr[12] & 0xFFu)); label_BFC403B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC403B4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC403B4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -169245,6 +206022,9 @@ label_BFC403B4: void func_1FC403C4(CPUState* cpu) { debug_server_log_call_entry(0x1FC403C4u); label_BFC403C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC403C4: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -169259,12 +206039,18 @@ label_BFC403C4: /* nop */ if (psx_taken_BFC403D0) goto label_BFC403E0; label_BFC403D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC403D8: 03E00008 jr $ra */ /* 0xBFC403DC: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; return; label_BFC403E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC403E0: 3C0F800E lui $t7, 0x800E */ cpu->gpr[15] = 0x800E0000u; @@ -169289,6 +206075,9 @@ label_BFC403E0: void func_1FC40404(CPUState* cpu) { debug_server_log_call_entry(0x1FC40404u); label_BFC40404: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC40404: 3C02800E lui $v0, 0x800E */ cpu->gpr[2] = 0x800E0000u; @@ -169303,6 +206092,9 @@ label_BFC40404: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); if (psx_taken_BFC40410) goto label_BFC40430; label_BFC40418: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40418: 10410005 beq $v0, $at, 0xBFC40430 */ uint32_t psx_brA_BFC40418 = cpu->gpr[2]; uint32_t psx_brB_BFC40418 = cpu->gpr[1]; @@ -169311,6 +206103,9 @@ label_BFC40418: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); if (psx_taken_BFC40418) goto label_BFC40430; label_BFC40420: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40420: 10410004 beq $v0, $at, 0xBFC40434 */ uint32_t psx_brA_BFC40420 = cpu->gpr[2]; uint32_t psx_brB_BFC40420 = cpu->gpr[1]; @@ -169319,16 +206114,25 @@ label_BFC40420: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC40420) goto label_BFC40434; label_BFC40428: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40428: 03E00008 jr $ra */ /* 0xBFC4042C: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; return; label_BFC40430: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC40430: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC40434: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC40434: 3C02800E lui $v0, 0x800E */ cpu->gpr[2] = 0x800E0000u; @@ -169341,6 +206145,9 @@ label_BFC40434: /* 0xBFC40444: 00801821 addu $v1, $a0, $zero */ cpu->gpr[3] = cpu->gpr[4] + cpu->gpr[0]; label_BFC40448: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC40448: 90AE0000 lbu $t6, 0($a1) */ cpu->gpr[14] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (0))); @@ -169369,6 +206176,9 @@ label_BFC40448: g_debug_last_store_pc = 0xBFC40474u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[3] + (-1)), (uint8_t)(cpu->gpr[25] & 0xFFu)); if (psx_taken_BFC40470) goto label_BFC40448; label_BFC40478: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40478: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -169393,6 +206203,9 @@ void func_1FC40484(CPUState* cpu) { } } label_BFC40484: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC40484: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -169415,6 +206228,9 @@ label_BFC40484: /* nop */ if (psx_taken_BFC404A0) goto label_BFC404B0; label_BFC404A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC404A8: 1000005B beq $zero, $zero, 0xBFC40618 */ uint32_t psx_brA_BFC404A8 = cpu->gpr[0]; uint32_t psx_brB_BFC404A8 = cpu->gpr[0]; @@ -169423,6 +206239,9 @@ label_BFC404A8: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC404A8) goto label_BFC40618; label_BFC404B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC404B0: 8C820000 lw $v0, 0($a0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[4] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC404B0u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -169437,6 +206256,9 @@ label_BFC404B0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4528)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC404C0u); return; } g_debug_last_store_pc = 0xBFC404C0u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC404BC) goto label_BFC404CC; label_BFC404C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC404C4: 10000054 beq $zero, $zero, 0xBFC40618 */ uint32_t psx_brA_BFC404C4 = cpu->gpr[0]; uint32_t psx_brB_BFC404C4 = cpu->gpr[0]; @@ -169445,6 +206267,9 @@ label_BFC404C4: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC404C4) goto label_BFC40618; label_BFC404CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(19u); +#endif psx_check_interrupts(cpu); /* 0xBFC404CC: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -169487,6 +206312,9 @@ label_BFC404CC: /* nop */ if (psx_taken_BFC40510) goto label_BFC405AC; label_BFC40518: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC40518: 000C6080 sll $t4, $t4, 2 */ cpu->gpr[12] = cpu->gpr[12] << 2u; @@ -169511,6 +206339,9 @@ label_BFC40518: default: cpu->pc = cpu->gpr[12]; return; } label_BFC40534: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40534: 0C0163CD jal 0xB0058F34 */ /* 0xBFC40538: 00000000 nop */ @@ -169518,6 +206349,9 @@ label_BFC40534: cpu->gpr[31] = 0x8005853Cu; psx_dispatch(cpu, 0x80058F34u); label_BFC4053C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC4053C: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -169530,6 +206364,9 @@ label_BFC4053C: cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC40544) goto label_BFC405B0; label_BFC4054C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC4054C: 0C0162DA jal 0xB0058B68 */ /* 0xBFC40550: 00000000 nop */ @@ -169537,6 +206374,9 @@ label_BFC4054C: cpu->gpr[31] = 0x80058554u; psx_dispatch(cpu, 0x80058B68u); label_BFC40554: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC40554: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -169549,6 +206389,9 @@ label_BFC40554: cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC4055C) goto label_BFC405B0; label_BFC40564: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40564: 0C0161EE jal 0xB00587B8 */ /* 0xBFC40568: 00000000 nop */ @@ -169556,6 +206399,9 @@ label_BFC40564: cpu->gpr[31] = 0x8005856Cu; psx_dispatch(cpu, 0x800587B8u); label_BFC4056C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC4056C: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -169568,6 +206414,9 @@ label_BFC4056C: cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC40574) goto label_BFC405B0; label_BFC4057C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC4057C: 0C01640B jal 0xB005902C */ /* 0xBFC40580: 00000000 nop */ @@ -169575,6 +206424,9 @@ label_BFC4057C: cpu->gpr[31] = 0x80058584u; psx_dispatch(cpu, 0x8005902Cu); label_BFC40584: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC40584: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -169587,6 +206439,9 @@ label_BFC40584: cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC4058C) goto label_BFC405B0; label_BFC40594: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40594: 0C01637A jal 0xB0058DE8 */ /* 0xBFC40598: 00000000 nop */ @@ -169594,6 +206449,9 @@ label_BFC40594: cpu->gpr[31] = 0x8005859Cu; psx_dispatch(cpu, 0x80058DE8u); label_BFC4059C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC4059C: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -169606,10 +206464,16 @@ label_BFC4059C: cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC405A4) goto label_BFC405B0; label_BFC405AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC405AC: 240D0001 addiu $t5, $zero, 1 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC405B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC405B0: A0AD0000 sb $t5, 0($a1) */ g_debug_last_store_pc = 0xBFC405B0u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[5] + (0)), (uint8_t)(cpu->gpr[13] & 0xFFu)); @@ -169636,10 +206500,16 @@ label_BFC405B0: cpu->gpr[11] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (40))); if (psx_taken_BFC405D4) goto label_BFC40610; label_BFC405DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC405DC: 8FB90024 lw $t9, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC405DCu); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } label_BFC405E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC405E0: 00000000 nop */ /* nop */ @@ -169666,16 +206536,25 @@ label_BFC405E0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40608u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } if (psx_taken_BFC40604) goto label_BFC405E0; label_BFC4060C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC4060C: 93AB0028 lbu $t3, 40($sp) */ cpu->gpr[11] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[29] + (40))); label_BFC40610: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40610: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); /* 0xBFC40614: A0AB0000 sb $t3, 0($a1) */ g_debug_last_store_pc = 0xBFC40614u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[5] + (0)), (uint8_t)(cpu->gpr[11] & 0xFFu)); label_BFC40618: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC40618: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40618u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -169698,6 +206577,9 @@ void func_1FC40628(CPUState* cpu) { } } label_BFC40628: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC40628: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -169720,6 +206602,9 @@ label_BFC40628: /* nop */ if (psx_taken_BFC40644) goto label_BFC40654; label_BFC4064C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC4064C: 10000020 beq $zero, $zero, 0xBFC406D0 */ uint32_t psx_brA_BFC4064C = cpu->gpr[0]; uint32_t psx_brB_BFC4064C = cpu->gpr[0]; @@ -169728,6 +206613,9 @@ label_BFC4064C: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC4064C) goto label_BFC406D0; label_BFC40654: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC40654: 8CA20000 lw $v0, 0($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40654u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -169742,6 +206630,9 @@ label_BFC40654: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4528)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40664u); return; } g_debug_last_store_pc = 0xBFC40664u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC40660) goto label_BFC40670; label_BFC40668: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40668: 10000019 beq $zero, $zero, 0xBFC406D0 */ uint32_t psx_brA_BFC40668 = cpu->gpr[0]; uint32_t psx_brB_BFC40668 = cpu->gpr[0]; @@ -169750,6 +206641,9 @@ label_BFC40668: cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC40668) goto label_BFC406D0; label_BFC40670: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC40670: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -169788,6 +206682,9 @@ label_BFC40670: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4488)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC406B0u); return; } g_debug_last_store_pc = 0xBFC406B0u; cpu->write_word(psx_addr, cpu->gpr[4]); } if (psx_taken_BFC406AC) goto label_BFC406C4; label_BFC406B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC406B4: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -169799,6 +206696,9 @@ label_BFC406B4: cpu->gpr[31] = 0x800586C4u; psx_dispatch(cpu, 0x8005AB90u); label_BFC406C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC406C4: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -169807,6 +206707,9 @@ label_BFC406C4: /* 0xBFC406CC: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC406D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC406D0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC406D0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -169829,6 +206732,9 @@ void func_1FC406E0(CPUState* cpu) { } } label_BFC406E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC406E0: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -169840,6 +206746,9 @@ label_BFC406E0: cpu->gpr[31] = 0x800586F0u; psx_dispatch(cpu, 0x8005ABA0u); label_BFC406F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC406F0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC406F0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -169862,6 +206771,9 @@ void func_1FC40700(CPUState* cpu) { } } label_BFC40700: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC40700: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -169873,6 +206785,9 @@ label_BFC40700: cpu->gpr[31] = 0x80058710u; psx_dispatch(cpu, 0x8005ABA0u); label_BFC40710: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC40710: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40710u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -169887,6 +206802,9 @@ label_BFC40710: void func_1FC40720(CPUState* cpu) { debug_server_log_call_entry(0x1FC40720u); label_BFC40720: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC40720: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -169911,6 +206829,9 @@ label_BFC40720: void func_1FC40744(CPUState* cpu) { debug_server_log_call_entry(0x1FC40744u); label_BFC40744: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC40744: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -169945,10 +206866,16 @@ label_BFC40744: /* nop */ if (psx_taken_BFC40778) goto label_BFC407B0; label_BFC40780: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC40780: 8FA90004 lw $t1, 4($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40780u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } label_BFC40784: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC40784: 00000000 nop */ /* nop */ @@ -169975,6 +206902,9 @@ label_BFC40784: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC407ACu); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } if (psx_taken_BFC407A8) goto label_BFC40784; label_BFC407B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC407B0: 03E00008 jr $ra */ /* 0xBFC407B4: 27BD0008 addiu $sp, $sp, 8 */ @@ -170007,6 +206937,9 @@ void func_1FC407B8(CPUState* cpu) { } } label_BFC407B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC407B8: 3C02800E lui $v0, 0x800E */ cpu->gpr[2] = 0x800E0000u; @@ -170023,6 +206956,9 @@ label_BFC407B8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC407CCu); return; } g_debug_last_store_pc = 0xBFC407CCu; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC407C8) goto label_BFC407E0; label_BFC407D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC407D0: 0C016496 jal 0xB0059258 */ /* 0xBFC407D4: 00000000 nop */ @@ -170030,6 +206966,9 @@ label_BFC407D0: cpu->gpr[31] = 0x800587D8u; psx_dispatch(cpu, 0x80059258u); label_BFC407D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC407D8: 100000E0 beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC407D8 = cpu->gpr[0]; uint32_t psx_brB_BFC407D8 = cpu->gpr[0]; @@ -170038,6 +206977,9 @@ label_BFC407D8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC407DCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC407D8) goto label_BFC40B5C; label_BFC407E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC407E0: 24010011 addiu $at, $zero, 17 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (17)); @@ -170048,6 +206990,9 @@ label_BFC407E0: /* nop */ if (psx_taken_BFC407E4) goto label_BFC407FC; label_BFC407EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC407EC: 0C0164C3 jal 0xB005930C */ /* 0xBFC407F0: 00000000 nop */ @@ -170055,6 +207000,9 @@ label_BFC407EC: cpu->gpr[31] = 0x800587F4u; psx_dispatch(cpu, 0x8005930Cu); label_BFC407F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC407F4: 100000D9 beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC407F4 = cpu->gpr[0]; uint32_t psx_brB_BFC407F4 = cpu->gpr[0]; @@ -170063,6 +207011,9 @@ label_BFC407F4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC407F8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC407F4) goto label_BFC40B5C; label_BFC407FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC407FC: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -170079,6 +207030,9 @@ label_BFC407FC: g_debug_last_store_pc = 0xBFC40810u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[1] + (-4416)), (uint8_t)(cpu->gpr[4] & 0xFFu)); if (psx_taken_BFC4080C) goto label_BFC4090C; label_BFC40814: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40814: 0C016480 jal 0xB0059200 */ /* 0xBFC40818: 00002021 addu $a0, $zero, $zero */ @@ -170086,6 +207040,9 @@ label_BFC40814: cpu->gpr[31] = 0x8005881Cu; psx_dispatch(cpu, 0x80059200u); label_BFC4081C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC4081C: 100000CF beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC4081C = cpu->gpr[0]; uint32_t psx_brB_BFC4081C = cpu->gpr[0]; @@ -170094,6 +207051,9 @@ label_BFC4081C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40820u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC4081C) goto label_BFC40B5C; label_BFC40824: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40824: 0C016480 jal 0xB0059200 */ /* 0xBFC40828: 24040001 addiu $a0, $zero, 1 */ @@ -170101,6 +207061,9 @@ label_BFC40824: cpu->gpr[31] = 0x8005882Cu; psx_dispatch(cpu, 0x80059200u); label_BFC4082C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC4082C: 100000CB beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC4082C = cpu->gpr[0]; uint32_t psx_brB_BFC4082C = cpu->gpr[0]; @@ -170109,10 +207072,16 @@ label_BFC4082C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40830u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC4082C) goto label_BFC40B5C; label_BFC40834: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC40834: 240F0001 addiu $t7, $zero, 1 */ cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC40838: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40838: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -170123,10 +207092,16 @@ label_BFC40838: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4516)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40840u); return; } g_debug_last_store_pc = 0xBFC40840u; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC4083C) goto label_BFC40B58; label_BFC40844: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC40844: 24180001 addiu $t8, $zero, 1 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC40848: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40848: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -170137,6 +207112,9 @@ label_BFC40848: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4516)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40850u); return; } g_debug_last_store_pc = 0xBFC40850u; cpu->write_word(psx_addr, cpu->gpr[24]); } if (psx_taken_BFC4084C) goto label_BFC40B58; label_BFC40854: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40854: 0C0164EC jal 0xB00593B0 */ /* 0xBFC40858: 00000000 nop */ @@ -170144,6 +207122,9 @@ label_BFC40854: cpu->gpr[31] = 0x8005885Cu; psx_dispatch(cpu, 0x800593B0u); label_BFC4085C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC4085C: 100000BF beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC4085C = cpu->gpr[0]; uint32_t psx_brB_BFC4085C = cpu->gpr[0]; @@ -170152,6 +207133,9 @@ label_BFC4085C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40860u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC4085C) goto label_BFC40B5C; label_BFC40864: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40864: 0C0164FD jal 0xB00593F4 */ /* 0xBFC40868: 00000000 nop */ @@ -170159,6 +207143,9 @@ label_BFC40864: cpu->gpr[31] = 0x8005886Cu; psx_dispatch(cpu, 0x800593F4u); label_BFC4086C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC4086C: 100000BB beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC4086C = cpu->gpr[0]; uint32_t psx_brB_BFC4086C = cpu->gpr[0]; @@ -170167,6 +207154,9 @@ label_BFC4086C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40870u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC4086C) goto label_BFC40B5C; label_BFC40874: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40874: 0C016516 jal 0xB0059458 */ /* 0xBFC40878: 00000000 nop */ @@ -170174,6 +207164,9 @@ label_BFC40874: cpu->gpr[31] = 0x8005887Cu; psx_dispatch(cpu, 0x80059458u); label_BFC4087C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC4087C: 100000B7 beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC4087C = cpu->gpr[0]; uint32_t psx_brB_BFC4087C = cpu->gpr[0]; @@ -170182,6 +207175,9 @@ label_BFC4087C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40880u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC4087C) goto label_BFC40B5C; label_BFC40884: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40884: 0C016601 jal 0xB0059804 */ /* 0xBFC40888: 00000000 nop */ @@ -170189,6 +207185,9 @@ label_BFC40884: cpu->gpr[31] = 0x8005888Cu; psx_dispatch(cpu, 0x80059804u); label_BFC4088C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC4088C: 100000B3 beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC4088C = cpu->gpr[0]; uint32_t psx_brB_BFC4088C = cpu->gpr[0]; @@ -170197,6 +207196,9 @@ label_BFC4088C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40890u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC4088C) goto label_BFC40B5C; label_BFC40894: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40894: 0C0165E2 jal 0xB0059788 */ /* 0xBFC40898: 00000000 nop */ @@ -170204,6 +207206,9 @@ label_BFC40894: cpu->gpr[31] = 0x8005889Cu; psx_dispatch(cpu, 0x80059788u); label_BFC4089C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC4089C: 100000AF beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC4089C = cpu->gpr[0]; uint32_t psx_brB_BFC4089C = cpu->gpr[0]; @@ -170212,6 +207217,9 @@ label_BFC4089C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC408A0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC4089C) goto label_BFC40B5C; label_BFC408A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC408A4: 0C016631 jal 0xB00598C4 */ /* 0xBFC408A8: 00000000 nop */ @@ -170219,6 +207227,9 @@ label_BFC408A4: cpu->gpr[31] = 0x800588ACu; psx_dispatch(cpu, 0x800598C4u); label_BFC408AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC408AC: 100000AB beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC408AC = cpu->gpr[0]; uint32_t psx_brB_BFC408AC = cpu->gpr[0]; @@ -170227,6 +207238,9 @@ label_BFC408AC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC408B0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC408AC) goto label_BFC40B5C; label_BFC408B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC408B4: 0C016691 jal 0xB0059A44 */ /* 0xBFC408B8: 00000000 nop */ @@ -170234,6 +207248,9 @@ label_BFC408B4: cpu->gpr[31] = 0x800588BCu; psx_dispatch(cpu, 0x80059A44u); label_BFC408BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC408BC: 100000A7 beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC408BC = cpu->gpr[0]; uint32_t psx_brB_BFC408BC = cpu->gpr[0]; @@ -170242,6 +207259,9 @@ label_BFC408BC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC408C0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC408BC) goto label_BFC40B5C; label_BFC408C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC408C4: 0C0165F3 jal 0xB00597CC */ /* 0xBFC408C8: 00000000 nop */ @@ -170249,6 +207269,9 @@ label_BFC408C4: cpu->gpr[31] = 0x800588CCu; psx_dispatch(cpu, 0x800597CCu); label_BFC408CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC408CC: 100000A3 beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC408CC = cpu->gpr[0]; uint32_t psx_brB_BFC408CC = cpu->gpr[0]; @@ -170257,6 +207280,9 @@ label_BFC408CC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC408D0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC408CC) goto label_BFC40B5C; label_BFC408D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC408D4: 0C01664B jal 0xB005992C */ /* 0xBFC408D8: 00000000 nop */ @@ -170264,6 +207290,9 @@ label_BFC408D4: cpu->gpr[31] = 0x800588DCu; psx_dispatch(cpu, 0x8005992Cu); label_BFC408DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC408DC: 1000009F beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC408DC = cpu->gpr[0]; uint32_t psx_brB_BFC408DC = cpu->gpr[0]; @@ -170272,6 +207301,9 @@ label_BFC408DC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC408E0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC408DC) goto label_BFC40B5C; label_BFC408E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC408E4: 0C0165C2 jal 0xB0059708 */ /* 0xBFC408E8: 00000000 nop */ @@ -170279,6 +207311,9 @@ label_BFC408E4: cpu->gpr[31] = 0x800588ECu; psx_dispatch(cpu, 0x80059708u); label_BFC408EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC408EC: 1000009B beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC408EC = cpu->gpr[0]; uint32_t psx_brB_BFC408EC = cpu->gpr[0]; @@ -170287,10 +207322,16 @@ label_BFC408EC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC408F0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC408EC) goto label_BFC40B5C; label_BFC408F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC408F4: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; label_BFC408F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC408F8: 34840003 ori $a0, $a0, 0x3 */ cpu->gpr[4] = cpu->gpr[4] | 0x3u; @@ -170300,6 +207341,9 @@ label_BFC408F8: cpu->gpr[31] = 0x80058904u; psx_dispatch(cpu, 0x8005AB90u); label_BFC40904: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40904: 10000095 beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC40904 = cpu->gpr[0]; uint32_t psx_brB_BFC40904 = cpu->gpr[0]; @@ -170308,6 +207352,9 @@ label_BFC40904: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40908u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40904) goto label_BFC40B5C; label_BFC4090C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC4090C: 24010019 addiu $at, $zero, 25 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (25)); @@ -170318,6 +207365,9 @@ label_BFC4090C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (26) ? 1 : 0); if (psx_taken_BFC40910) goto label_BFC408E4; label_BFC40918: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40918: 1020004D beq $at, $zero, 0xBFC40A50 */ uint32_t psx_brA_BFC40918 = cpu->gpr[1]; uint32_t psx_brB_BFC40918 = cpu->gpr[0]; @@ -170326,6 +207376,9 @@ label_BFC40918: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (14)); if (psx_taken_BFC40918) goto label_BFC40A50; label_BFC40920: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40920: 1041FFE8 beq $v0, $at, 0xBFC408C4 */ uint32_t psx_brA_BFC40920 = cpu->gpr[2]; uint32_t psx_brB_BFC40920 = cpu->gpr[1]; @@ -170334,6 +207387,9 @@ label_BFC40920: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (15) ? 1 : 0); if (psx_taken_BFC40920) goto label_BFC408C4; label_BFC40928: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40928: 10200029 beq $at, $zero, 0xBFC409D0 */ uint32_t psx_brA_BFC40928 = cpu->gpr[1]; uint32_t psx_brB_BFC40928 = cpu->gpr[0]; @@ -170342,6 +207398,9 @@ label_BFC40928: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (8)); if (psx_taken_BFC40928) goto label_BFC409D0; label_BFC40930: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40930: 10410089 beq $v0, $at, 0xBFC40B58 */ uint32_t psx_brA_BFC40930 = cpu->gpr[2]; uint32_t psx_brB_BFC40930 = cpu->gpr[1]; @@ -170350,6 +207409,9 @@ label_BFC40930: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (9) ? 1 : 0); if (psx_taken_BFC40930) goto label_BFC40B58; label_BFC40938: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40938: 10200017 beq $at, $zero, 0xBFC40998 */ uint32_t psx_brA_BFC40938 = cpu->gpr[1]; uint32_t psx_brB_BFC40938 = cpu->gpr[0]; @@ -170358,6 +207420,9 @@ label_BFC40938: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); if (psx_taken_BFC40938) goto label_BFC40998; label_BFC40940: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40940: 1041FFC0 beq $v0, $at, 0xBFC40844 */ uint32_t psx_brA_BFC40940 = cpu->gpr[2]; uint32_t psx_brB_BFC40940 = cpu->gpr[1]; @@ -170366,6 +207431,9 @@ label_BFC40940: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (6) ? 1 : 0); if (psx_taken_BFC40940) goto label_BFC40844; label_BFC40948: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40948: 1020000E beq $at, $zero, 0xBFC40984 */ uint32_t psx_brA_BFC40948 = cpu->gpr[1]; uint32_t psx_brB_BFC40948 = cpu->gpr[0]; @@ -170374,6 +207442,9 @@ label_BFC40948: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); if (psx_taken_BFC40948) goto label_BFC40984; label_BFC40950: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40950: 1041FFBC beq $v0, $at, 0xBFC40844 */ uint32_t psx_brA_BFC40950 = cpu->gpr[2]; uint32_t psx_brB_BFC40950 = cpu->gpr[1]; @@ -170382,6 +207453,9 @@ label_BFC40950: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (4) ? 1 : 0); if (psx_taken_BFC40950) goto label_BFC40844; label_BFC40958: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40958: 10200005 beq $at, $zero, 0xBFC40970 */ uint32_t psx_brA_BFC40958 = cpu->gpr[1]; uint32_t psx_brB_BFC40958 = cpu->gpr[0]; @@ -170390,6 +207464,9 @@ label_BFC40958: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC40958) goto label_BFC40970; label_BFC40960: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40960: 1041FFBC beq $v0, $at, 0xBFC40854 */ uint32_t psx_brA_BFC40960 = cpu->gpr[2]; uint32_t psx_brB_BFC40960 = cpu->gpr[1]; @@ -170398,6 +207475,9 @@ label_BFC40960: /* nop */ if (psx_taken_BFC40960) goto label_BFC40854; label_BFC40968: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40968: 1000007C beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC40968 = cpu->gpr[0]; uint32_t psx_brB_BFC40968 = cpu->gpr[0]; @@ -170406,6 +207486,9 @@ label_BFC40968: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC4096Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40968) goto label_BFC40B5C; label_BFC40970: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40970: 24010004 addiu $at, $zero, 4 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); @@ -170416,6 +207499,9 @@ label_BFC40970: cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC40974) goto label_BFC40848; label_BFC4097C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC4097C: 10000077 beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC4097C = cpu->gpr[0]; uint32_t psx_brB_BFC4097C = cpu->gpr[0]; @@ -170424,6 +207510,9 @@ label_BFC4097C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40980u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC4097C) goto label_BFC40B5C; label_BFC40984: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40984: 24010007 addiu $at, $zero, 7 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (7)); @@ -170434,6 +207523,9 @@ label_BFC40984: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC4098Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40988) goto label_BFC40B5C; label_BFC40990: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40990: 10000072 beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC40990 = cpu->gpr[0]; uint32_t psx_brB_BFC40990 = cpu->gpr[0]; @@ -170442,6 +207534,9 @@ label_BFC40990: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40994u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40990) goto label_BFC40B5C; label_BFC40998: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40998: 2401000B addiu $at, $zero, 11 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (11)); @@ -170452,6 +207547,9 @@ label_BFC40998: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (12) ? 1 : 0); if (psx_taken_BFC4099C) goto label_BFC40894; label_BFC409A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC409A4: 10200005 beq $at, $zero, 0xBFC409BC */ uint32_t psx_brA_BFC409A4 = cpu->gpr[1]; uint32_t psx_brB_BFC409A4 = cpu->gpr[0]; @@ -170460,6 +207558,9 @@ label_BFC409A4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); if (psx_taken_BFC409A4) goto label_BFC409BC; label_BFC409AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC409AC: 1041006B beq $v0, $at, 0xBFC40B5C */ uint32_t psx_brA_BFC409AC = cpu->gpr[2]; uint32_t psx_brB_BFC409AC = cpu->gpr[1]; @@ -170468,6 +207569,9 @@ label_BFC409AC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC409B0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC409AC) goto label_BFC40B5C; label_BFC409B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC409B4: 10000069 beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC409B4 = cpu->gpr[0]; uint32_t psx_brB_BFC409B4 = cpu->gpr[0]; @@ -170476,6 +207580,9 @@ label_BFC409B4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC409B8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC409B4) goto label_BFC40B5C; label_BFC409BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC409BC: 2401000C addiu $at, $zero, 12 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (12)); @@ -170486,6 +207593,9 @@ label_BFC409BC: /* nop */ if (psx_taken_BFC409C0) goto label_BFC40894; label_BFC409C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC409C8: 10000064 beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC409C8 = cpu->gpr[0]; uint32_t psx_brB_BFC409C8 = cpu->gpr[0]; @@ -170494,6 +207604,9 @@ label_BFC409C8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC409CCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC409C8) goto label_BFC40B5C; label_BFC409D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC409D0: 24010014 addiu $at, $zero, 20 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (20)); @@ -170504,6 +207617,9 @@ label_BFC409D0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (21) ? 1 : 0); if (psx_taken_BFC409D4) goto label_BFC408B4; label_BFC409DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC409DC: 1020000E beq $at, $zero, 0xBFC40A18 */ uint32_t psx_brA_BFC409DC = cpu->gpr[1]; uint32_t psx_brB_BFC409DC = cpu->gpr[0]; @@ -170512,6 +207628,9 @@ label_BFC409DC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (18)); if (psx_taken_BFC409DC) goto label_BFC40A18; label_BFC409E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC409E4: 1041005C beq $v0, $at, 0xBFC40B58 */ uint32_t psx_brA_BFC409E4 = cpu->gpr[2]; uint32_t psx_brB_BFC409E4 = cpu->gpr[1]; @@ -170520,6 +207639,9 @@ label_BFC409E4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (19) ? 1 : 0); if (psx_taken_BFC409E4) goto label_BFC40B58; label_BFC409EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC409EC: 10200005 beq $at, $zero, 0xBFC40A04 */ uint32_t psx_brA_BFC409EC = cpu->gpr[1]; uint32_t psx_brB_BFC409EC = cpu->gpr[0]; @@ -170528,6 +207650,9 @@ label_BFC409EC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (15)); if (psx_taken_BFC409EC) goto label_BFC40A04; label_BFC409F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC409F4: 1041FF9B beq $v0, $at, 0xBFC40864 */ uint32_t psx_brA_BFC409F4 = cpu->gpr[2]; uint32_t psx_brB_BFC409F4 = cpu->gpr[1]; @@ -170536,6 +207661,9 @@ label_BFC409F4: /* nop */ if (psx_taken_BFC409F4) goto label_BFC40864; label_BFC409FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC409FC: 10000057 beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC409FC = cpu->gpr[0]; uint32_t psx_brB_BFC409FC = cpu->gpr[0]; @@ -170544,6 +207672,9 @@ label_BFC409FC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40A00u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC409FC) goto label_BFC40B5C; label_BFC40A04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40A04: 24010013 addiu $at, $zero, 19 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (19)); @@ -170554,6 +207685,9 @@ label_BFC40A04: /* nop */ if (psx_taken_BFC40A08) goto label_BFC408D4; label_BFC40A10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40A10: 10000052 beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC40A10 = cpu->gpr[0]; uint32_t psx_brB_BFC40A10 = cpu->gpr[0]; @@ -170562,6 +207696,9 @@ label_BFC40A10: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40A14u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40A10) goto label_BFC40B5C; label_BFC40A18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40A18: 24010016 addiu $at, $zero, 22 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (22)); @@ -170572,6 +207709,9 @@ label_BFC40A18: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (23) ? 1 : 0); if (psx_taken_BFC40A1C) goto label_BFC40B58; label_BFC40A24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40A24: 10200005 beq $at, $zero, 0xBFC40A3C */ uint32_t psx_brA_BFC40A24 = cpu->gpr[1]; uint32_t psx_brB_BFC40A24 = cpu->gpr[0]; @@ -170580,6 +207720,9 @@ label_BFC40A24: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (21)); if (psx_taken_BFC40A24) goto label_BFC40A3C; label_BFC40A2C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40A2C: 1041004B beq $v0, $at, 0xBFC40B5C */ uint32_t psx_brA_BFC40A2C = cpu->gpr[2]; uint32_t psx_brB_BFC40A2C = cpu->gpr[1]; @@ -170588,6 +207731,9 @@ label_BFC40A2C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40A30u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40A2C) goto label_BFC40B5C; label_BFC40A34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40A34: 10000049 beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC40A34 = cpu->gpr[0]; uint32_t psx_brB_BFC40A34 = cpu->gpr[0]; @@ -170596,6 +207742,9 @@ label_BFC40A34: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40A38u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40A34) goto label_BFC40B5C; label_BFC40A3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40A3C: 24010017 addiu $at, $zero, 23 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (23)); @@ -170606,6 +207755,9 @@ label_BFC40A3C: /* nop */ if (psx_taken_BFC40A40) goto label_BFC408C4; label_BFC40A48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40A48: 10000044 beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC40A48 = cpu->gpr[0]; uint32_t psx_brB_BFC40A48 = cpu->gpr[0]; @@ -170614,6 +207766,9 @@ label_BFC40A48: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40A4Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40A48) goto label_BFC40B5C; label_BFC40A50: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40A50: 240100F6 addiu $at, $zero, 246 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (246)); @@ -170624,6 +207779,9 @@ label_BFC40A50: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (247) ? 1 : 0); if (psx_taken_BFC40A54) goto label_BFC40834; label_BFC40A5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40A5C: 10200020 beq $at, $zero, 0xBFC40AE0 */ uint32_t psx_brA_BFC40A5C = cpu->gpr[1]; uint32_t psx_brB_BFC40A5C = cpu->gpr[0]; @@ -170632,6 +207790,9 @@ label_BFC40A5C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); if (psx_taken_BFC40A5C) goto label_BFC40AE0; label_BFC40A64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40A64: 1041FF73 beq $v0, $at, 0xBFC40834 */ uint32_t psx_brA_BFC40A64 = cpu->gpr[2]; uint32_t psx_brB_BFC40A64 = cpu->gpr[1]; @@ -170640,6 +207801,9 @@ label_BFC40A64: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (231) ? 1 : 0); if (psx_taken_BFC40A64) goto label_BFC40834; label_BFC40A6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40A6C: 1020000E beq $at, $zero, 0xBFC40AA8 */ uint32_t psx_brA_BFC40A6C = cpu->gpr[1]; uint32_t psx_brB_BFC40A6C = cpu->gpr[0]; @@ -170648,6 +207812,9 @@ label_BFC40A6C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (80)); if (psx_taken_BFC40A6C) goto label_BFC40AA8; label_BFC40A74: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40A74: 1041FF83 beq $v0, $at, 0xBFC40884 */ uint32_t psx_brA_BFC40A74 = cpu->gpr[2]; uint32_t psx_brB_BFC40A74 = cpu->gpr[1]; @@ -170656,6 +207823,9 @@ label_BFC40A74: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (81) ? 1 : 0); if (psx_taken_BFC40A74) goto label_BFC40884; label_BFC40A7C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40A7C: 10200005 beq $at, $zero, 0xBFC40A94 */ uint32_t psx_brA_BFC40A7C = cpu->gpr[1]; uint32_t psx_brB_BFC40A7C = cpu->gpr[0]; @@ -170664,6 +207834,9 @@ label_BFC40A7C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (26)); if (psx_taken_BFC40A7C) goto label_BFC40A94; label_BFC40A84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40A84: 10410035 beq $v0, $at, 0xBFC40B5C */ uint32_t psx_brA_BFC40A84 = cpu->gpr[2]; uint32_t psx_brB_BFC40A84 = cpu->gpr[1]; @@ -170672,6 +207845,9 @@ label_BFC40A84: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40A88u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40A84) goto label_BFC40B5C; label_BFC40A8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40A8C: 10000033 beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC40A8C = cpu->gpr[0]; uint32_t psx_brB_BFC40A8C = cpu->gpr[0]; @@ -170680,6 +207856,9 @@ label_BFC40A8C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40A90u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40A8C) goto label_BFC40B5C; label_BFC40A94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40A94: 240100E2 addiu $at, $zero, 226 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (226)); @@ -170690,6 +207869,9 @@ label_BFC40A94: /* nop */ if (psx_taken_BFC40A98) goto label_BFC40824; label_BFC40AA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40AA0: 1000002E beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC40AA0 = cpu->gpr[0]; uint32_t psx_brB_BFC40AA0 = cpu->gpr[0]; @@ -170698,6 +207880,9 @@ label_BFC40AA0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40AA4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40AA0) goto label_BFC40B5C; label_BFC40AA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40AA8: 240100EE addiu $at, $zero, 238 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (238)); @@ -170708,6 +207893,9 @@ label_BFC40AA8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (239) ? 1 : 0); if (psx_taken_BFC40AAC) goto label_BFC40874; label_BFC40AB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40AB4: 10200005 beq $at, $zero, 0xBFC40ACC */ uint32_t psx_brA_BFC40AB4 = cpu->gpr[1]; uint32_t psx_brB_BFC40AB4 = cpu->gpr[0]; @@ -170716,6 +207904,9 @@ label_BFC40AB4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); if (psx_taken_BFC40AB4) goto label_BFC40ACC; label_BFC40ABC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40ABC: 1041FF5E beq $v0, $at, 0xBFC40838 */ uint32_t psx_brA_BFC40ABC = cpu->gpr[2]; uint32_t psx_brB_BFC40ABC = cpu->gpr[1]; @@ -170724,6 +207915,9 @@ label_BFC40ABC: cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC40ABC) goto label_BFC40838; label_BFC40AC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40AC4: 10000025 beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC40AC4 = cpu->gpr[0]; uint32_t psx_brB_BFC40AC4 = cpu->gpr[0]; @@ -170732,6 +207926,9 @@ label_BFC40AC4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40AC8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40AC4) goto label_BFC40B5C; label_BFC40ACC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40ACC: 240100F2 addiu $at, $zero, 242 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (242)); @@ -170742,6 +207939,9 @@ label_BFC40ACC: /* nop */ if (psx_taken_BFC40AD0) goto label_BFC40814; label_BFC40AD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40AD8: 10000020 beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC40AD8 = cpu->gpr[0]; uint32_t psx_brB_BFC40AD8 = cpu->gpr[0]; @@ -170750,6 +207950,9 @@ label_BFC40AD8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40ADCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40AD8) goto label_BFC40B5C; label_BFC40AE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40AE0: 24010DDD addiu $at, $zero, 3549 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3549)); @@ -170760,6 +207963,9 @@ label_BFC40AE0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (3550) ? 1 : 0); if (psx_taken_BFC40AE4) goto label_BFC40B58; label_BFC40AEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40AEC: 1020000E beq $at, $zero, 0xBFC40B28 */ uint32_t psx_brA_BFC40AEC = cpu->gpr[1]; uint32_t psx_brB_BFC40AEC = cpu->gpr[0]; @@ -170768,6 +207974,9 @@ label_BFC40AEC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (254)); if (psx_taken_BFC40AEC) goto label_BFC40B28; label_BFC40AF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40AF4: 1041FF5F beq $v0, $at, 0xBFC40874 */ uint32_t psx_brA_BFC40AF4 = cpu->gpr[2]; uint32_t psx_brB_BFC40AF4 = cpu->gpr[1]; @@ -170776,6 +207985,9 @@ label_BFC40AF4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (255) ? 1 : 0); if (psx_taken_BFC40AF4) goto label_BFC40874; label_BFC40AFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40AFC: 10200005 beq $at, $zero, 0xBFC40B14 */ uint32_t psx_brA_BFC40AFC = cpu->gpr[1]; uint32_t psx_brB_BFC40AFC = cpu->gpr[0]; @@ -170784,6 +207996,9 @@ label_BFC40AFC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (251)); if (psx_taken_BFC40AFC) goto label_BFC40B14; label_BFC40B04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40B04: 1041FF4C beq $v0, $at, 0xBFC40838 */ uint32_t psx_brA_BFC40B04 = cpu->gpr[2]; uint32_t psx_brB_BFC40B04 = cpu->gpr[1]; @@ -170792,6 +208007,9 @@ label_BFC40B04: cpu->gpr[15] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); if (psx_taken_BFC40B04) goto label_BFC40838; label_BFC40B0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40B0C: 10000013 beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC40B0C = cpu->gpr[0]; uint32_t psx_brB_BFC40B0C = cpu->gpr[0]; @@ -170800,6 +208018,9 @@ label_BFC40B0C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40B10u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40B0C) goto label_BFC40B5C; label_BFC40B14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40B14: 24010CCC addiu $at, $zero, 3276 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3276)); @@ -170810,6 +208031,9 @@ label_BFC40B14: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40B1Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40B18) goto label_BFC40B5C; label_BFC40B20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40B20: 1000000E beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC40B20 = cpu->gpr[0]; uint32_t psx_brB_BFC40B20 = cpu->gpr[0]; @@ -170818,6 +208042,9 @@ label_BFC40B20: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40B24u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40B20) goto label_BFC40B5C; label_BFC40B28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40B28: 24010FFF addiu $at, $zero, 4095 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4095)); @@ -170828,6 +208055,9 @@ label_BFC40B28: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (4096) ? 1 : 0); if (psx_taken_BFC40B2C) goto label_BFC40B58; label_BFC40B34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40B34: 10200005 beq $at, $zero, 0xBFC40B4C */ uint32_t psx_brA_BFC40B34 = cpu->gpr[1]; uint32_t psx_brB_BFC40B34 = cpu->gpr[0]; @@ -170836,6 +208066,9 @@ label_BFC40B34: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3860)); if (psx_taken_BFC40B34) goto label_BFC40B4C; label_BFC40B3C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40B3C: 1041FF59 beq $v0, $at, 0xBFC408A4 */ uint32_t psx_brA_BFC40B3C = cpu->gpr[2]; uint32_t psx_brB_BFC40B3C = cpu->gpr[1]; @@ -170844,6 +208077,9 @@ label_BFC40B3C: /* nop */ if (psx_taken_BFC40B3C) goto label_BFC408A4; label_BFC40B44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40B44: 10000005 beq $zero, $zero, 0xBFC40B5C */ uint32_t psx_brA_BFC40B44 = cpu->gpr[0]; uint32_t psx_brB_BFC40B44 = cpu->gpr[0]; @@ -170852,6 +208088,9 @@ label_BFC40B44: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40B48u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40B44) goto label_BFC40B5C; label_BFC40B4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40B4C: 3401FFFF ori $at, $zero, 0xFFFF */ cpu->gpr[1] = cpu->gpr[0] | 0xFFFFu; @@ -170862,10 +208101,16 @@ label_BFC40B4C: cpu->gpr[4] = 0xF0000000u; if (psx_taken_BFC40B50) goto label_BFC408F8; label_BFC40B58: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC40B58: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40B58u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC40B5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40B5C: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -170892,6 +208137,9 @@ void func_1FC40B68(CPUState* cpu) { } } label_BFC40B68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC40B68: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -170916,6 +208164,9 @@ label_BFC40B68: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3276)); if (psx_taken_BFC40B88) goto label_BFC40D18; label_BFC40B90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40B90: 0C016612 jal 0xB0059848 */ /* 0xBFC40B94: 00000000 nop */ @@ -170923,6 +208174,9 @@ label_BFC40B90: cpu->gpr[31] = 0x80058B98u; psx_dispatch(cpu, 0x80059848u); label_BFC40B98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40B98: 10000090 beq $zero, $zero, 0xBFC40DDC */ uint32_t psx_brA_BFC40B98 = cpu->gpr[0]; uint32_t psx_brB_BFC40B98 = cpu->gpr[0]; @@ -170931,6 +208185,9 @@ label_BFC40B98: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40B9Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40B98) goto label_BFC40DDC; label_BFC40BA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC40BA0: 3C02800E lui $v0, 0x800E */ cpu->gpr[2] = 0x800E0000u; @@ -170945,6 +208202,9 @@ label_BFC40BA0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); if (psx_taken_BFC40BAC) goto label_BFC40BD4; label_BFC40BB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40BB4: 10410007 beq $v0, $at, 0xBFC40BD4 */ uint32_t psx_brA_BFC40BB4 = cpu->gpr[2]; uint32_t psx_brB_BFC40BB4 = cpu->gpr[1]; @@ -170953,6 +208213,9 @@ label_BFC40BB4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); if (psx_taken_BFC40BB4) goto label_BFC40BD4; label_BFC40BBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40BBC: 10410005 beq $v0, $at, 0xBFC40BD4 */ uint32_t psx_brA_BFC40BBC = cpu->gpr[2]; uint32_t psx_brB_BFC40BBC = cpu->gpr[1]; @@ -170961,6 +208224,9 @@ label_BFC40BBC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); if (psx_taken_BFC40BBC) goto label_BFC40BD4; label_BFC40BC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40BC4: 10410003 beq $v0, $at, 0xBFC40BD4 */ uint32_t psx_brA_BFC40BC4 = cpu->gpr[2]; uint32_t psx_brB_BFC40BC4 = cpu->gpr[1]; @@ -170969,6 +208235,9 @@ label_BFC40BC4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); if (psx_taken_BFC40BC4) goto label_BFC40BD4; label_BFC40BCC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40BCC: 14410005 bne $v0, $at, 0xBFC40BE4 */ uint32_t psx_brA_BFC40BCC = cpu->gpr[2]; uint32_t psx_brB_BFC40BCC = cpu->gpr[1]; @@ -170977,6 +208246,9 @@ label_BFC40BCC: cpu->gpr[2] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC40BCC) goto label_BFC40BE4; label_BFC40BD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC40BD4: 3402FFFF ori $v0, $zero, 0xFFFF */ cpu->gpr[2] = cpu->gpr[0] | 0xFFFFu; @@ -170987,6 +208259,9 @@ label_BFC40BD4: /* 0xBFC40BE0: 3402FFFF ori $v0, $zero, 0xFFFF */ cpu->gpr[2] = cpu->gpr[0] | 0xFFFFu; label_BFC40BE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC40BE4: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -171002,6 +208277,9 @@ label_BFC40BE4: cpu->gpr[31] = 0x80058BFCu; psx_dispatch(cpu, 0x8005AB90u); label_BFC40BFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40BFC: 10000077 beq $zero, $zero, 0xBFC40DDC */ uint32_t psx_brA_BFC40BFC = cpu->gpr[0]; uint32_t psx_brB_BFC40BFC = cpu->gpr[0]; @@ -171010,6 +208288,9 @@ label_BFC40BFC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40C00u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40BFC) goto label_BFC40DDC; label_BFC40C04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC40C04: 3402FFFF ori $v0, $zero, 0xFFFF */ cpu->gpr[2] = cpu->gpr[0] | 0xFFFFu; @@ -171027,6 +208308,9 @@ label_BFC40C04: cpu->gpr[31] = 0x80058C20u; psx_dispatch(cpu, 0x8005AB90u); label_BFC40C20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40C20: 1000006E beq $zero, $zero, 0xBFC40DDC */ uint32_t psx_brA_BFC40C20 = cpu->gpr[0]; uint32_t psx_brB_BFC40C20 = cpu->gpr[0]; @@ -171035,6 +208319,9 @@ label_BFC40C20: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40C24u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40C20) goto label_BFC40DDC; label_BFC40C28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC40C28: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -171056,6 +208343,9 @@ label_BFC40C28: cpu->gpr[31] = 0x80058C4Cu; psx_dispatch(cpu, 0x8005AB90u); label_BFC40C4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40C4C: 10000063 beq $zero, $zero, 0xBFC40DDC */ uint32_t psx_brA_BFC40C4C = cpu->gpr[0]; uint32_t psx_brB_BFC40C4C = cpu->gpr[0]; @@ -171064,6 +208354,9 @@ label_BFC40C4C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40C50u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40C4C) goto label_BFC40DDC; label_BFC40C54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC40C54: 240E0001 addiu $t6, $zero, 1 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -171082,6 +208375,9 @@ label_BFC40C54: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4524)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40C6Cu); return; } g_debug_last_store_pc = 0xBFC40C6Cu; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC40C68) goto label_BFC40DD8; label_BFC40C70: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC40C70: 3C06800E lui $a2, 0x800E */ cpu->gpr[6] = 0x800E0000u; @@ -171112,6 +208408,9 @@ label_BFC40C70: /* 0xBFC40CA4: 24040008 addiu $a0, $zero, 8 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (8)); label_BFC40CA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC40CA8: 90A80000 lbu $t0, 0($a1) */ cpu->gpr[8] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[5] + (0))); @@ -171140,6 +208439,9 @@ label_BFC40CA8: g_debug_last_store_pc = 0xBFC40CD4u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[2] + (-1)), (uint8_t)(cpu->gpr[11] & 0xFFu)); if (psx_taken_BFC40CD0) goto label_BFC40CA8; label_BFC40CD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC40CD8: 3402FFFF ori $v0, $zero, 0xFFFF */ cpu->gpr[2] = cpu->gpr[0] | 0xFFFFu; @@ -171157,6 +208459,9 @@ label_BFC40CD8: cpu->gpr[31] = 0x80058CF4u; psx_dispatch(cpu, 0x8005AB90u); label_BFC40CF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40CF4: 10000039 beq $zero, $zero, 0xBFC40DDC */ uint32_t psx_brA_BFC40CF4 = cpu->gpr[0]; uint32_t psx_brB_BFC40CF4 = cpu->gpr[0]; @@ -171165,10 +208470,16 @@ label_BFC40CF4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40CF8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40CF4) goto label_BFC40DDC; label_BFC40CFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC40CFC: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; label_BFC40D00: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40D00: 34840003 ori $a0, $a0, 0x3 */ cpu->gpr[4] = cpu->gpr[4] | 0x3u; @@ -171178,6 +208489,9 @@ label_BFC40D00: cpu->gpr[31] = 0x80058D0Cu; psx_dispatch(cpu, 0x8005AB90u); label_BFC40D0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40D0C: 10000033 beq $zero, $zero, 0xBFC40DDC */ uint32_t psx_brA_BFC40D0C = cpu->gpr[0]; uint32_t psx_brB_BFC40D0C = cpu->gpr[0]; @@ -171186,10 +208500,16 @@ label_BFC40D0C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40D10u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40D0C) goto label_BFC40DDC; label_BFC40D14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC40D14: 24010CCC addiu $at, $zero, 3276 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3276)); label_BFC40D18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40D18: 1041FFCE beq $v0, $at, 0xBFC40C54 */ uint32_t psx_brA_BFC40D18 = cpu->gpr[2]; uint32_t psx_brB_BFC40D18 = cpu->gpr[1]; @@ -171198,6 +208518,9 @@ label_BFC40D18: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (3277) ? 1 : 0); if (psx_taken_BFC40D18) goto label_BFC40C54; label_BFC40D20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40D20: 1020001F beq $at, $zero, 0xBFC40DA0 */ uint32_t psx_brA_BFC40D20 = cpu->gpr[1]; uint32_t psx_brB_BFC40D20 = cpu->gpr[0]; @@ -171206,6 +208529,9 @@ label_BFC40D20: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (22)); if (psx_taken_BFC40D20) goto label_BFC40DA0; label_BFC40D28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40D28: 1041FF9D beq $v0, $at, 0xBFC40BA0 */ uint32_t psx_brA_BFC40D28 = cpu->gpr[2]; uint32_t psx_brB_BFC40D28 = cpu->gpr[1]; @@ -171214,6 +208540,9 @@ label_BFC40D28: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (23) ? 1 : 0); if (psx_taken_BFC40D28) goto label_BFC40BA0; label_BFC40D30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40D30: 10200016 beq $at, $zero, 0xBFC40D8C */ uint32_t psx_brA_BFC40D30 = cpu->gpr[1]; uint32_t psx_brB_BFC40D30 = cpu->gpr[0]; @@ -171222,6 +208551,9 @@ label_BFC40D30: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); if (psx_taken_BFC40D30) goto label_BFC40D8C; label_BFC40D38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40D38: 1041FF99 beq $v0, $at, 0xBFC40BA0 */ uint32_t psx_brA_BFC40D38 = cpu->gpr[2]; uint32_t psx_brB_BFC40D38 = cpu->gpr[1]; @@ -171230,6 +208562,9 @@ label_BFC40D38: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (10) ? 1 : 0); if (psx_taken_BFC40D38) goto label_BFC40BA0; label_BFC40D40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40D40: 10200007 beq $at, $zero, 0xBFC40D60 */ uint32_t psx_brA_BFC40D40 = cpu->gpr[1]; uint32_t psx_brB_BFC40D40 = cpu->gpr[0]; @@ -171238,6 +208573,9 @@ label_BFC40D40: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (21)); if (psx_taken_BFC40D40) goto label_BFC40D60; label_BFC40D48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40D48: 24040008 addiu $a0, $zero, 8 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (8)); @@ -171248,6 +208586,9 @@ label_BFC40D48: /* nop */ if (psx_taken_BFC40D4C) goto label_BFC40BA0; label_BFC40D54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40D54: 10000005 beq $zero, $zero, 0xBFC40D6C */ uint32_t psx_brA_BFC40D54 = cpu->gpr[0]; uint32_t psx_brB_BFC40D54 = cpu->gpr[0]; @@ -171256,10 +208597,16 @@ label_BFC40D54: cpu->gpr[2] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC40D54) goto label_BFC40D6C; label_BFC40D5C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC40D5C: 24010015 addiu $at, $zero, 21 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (21)); label_BFC40D60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40D60: 1041FF8F beq $v0, $at, 0xBFC40BA0 */ uint32_t psx_brA_BFC40D60 = cpu->gpr[2]; uint32_t psx_brB_BFC40D60 = cpu->gpr[1]; @@ -171268,10 +208615,16 @@ label_BFC40D60: /* nop */ if (psx_taken_BFC40D60) goto label_BFC40BA0; label_BFC40D68: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC40D68: 3402FFFF ori $v0, $zero, 0xFFFF */ cpu->gpr[2] = cpu->gpr[0] | 0xFFFFu; label_BFC40D6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC40D6C: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -171287,6 +208640,9 @@ label_BFC40D6C: cpu->gpr[31] = 0x80058D84u; psx_dispatch(cpu, 0x8005AB90u); label_BFC40D84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40D84: 10000015 beq $zero, $zero, 0xBFC40DDC */ uint32_t psx_brA_BFC40D84 = cpu->gpr[0]; uint32_t psx_brB_BFC40D84 = cpu->gpr[0]; @@ -171295,6 +208651,9 @@ label_BFC40D84: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40D88u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40D84) goto label_BFC40DDC; label_BFC40D8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40D8C: 2401001A addiu $at, $zero, 26 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (26)); @@ -171305,6 +208664,9 @@ label_BFC40D8C: /* nop */ if (psx_taken_BFC40D90) goto label_BFC40C70; label_BFC40D98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40D98: 1000FFF4 beq $zero, $zero, 0xBFC40D6C */ uint32_t psx_brA_BFC40D98 = cpu->gpr[0]; uint32_t psx_brB_BFC40D98 = cpu->gpr[0]; @@ -171313,6 +208675,9 @@ label_BFC40D98: cpu->gpr[2] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC40D98) goto label_BFC40D6C; label_BFC40DA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40DA0: 24010FFF addiu $at, $zero, 4095 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4095)); @@ -171323,6 +208688,9 @@ label_BFC40DA0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[2] < (4096) ? 1 : 0); if (psx_taken_BFC40DA4) goto label_BFC40C04; label_BFC40DAC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40DAC: 10200005 beq $at, $zero, 0xBFC40DC4 */ uint32_t psx_brA_BFC40DAC = cpu->gpr[1]; uint32_t psx_brB_BFC40DAC = cpu->gpr[0]; @@ -171331,6 +208699,9 @@ label_BFC40DAC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3549)); if (psx_taken_BFC40DAC) goto label_BFC40DC4; label_BFC40DB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40DB4: 1041FF9C beq $v0, $at, 0xBFC40C28 */ uint32_t psx_brA_BFC40DB4 = cpu->gpr[2]; uint32_t psx_brB_BFC40DB4 = cpu->gpr[1]; @@ -171339,6 +208710,9 @@ label_BFC40DB4: /* nop */ if (psx_taken_BFC40DB4) goto label_BFC40C28; label_BFC40DBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40DBC: 1000FFEB beq $zero, $zero, 0xBFC40D6C */ uint32_t psx_brA_BFC40DBC = cpu->gpr[0]; uint32_t psx_brB_BFC40DBC = cpu->gpr[0]; @@ -171347,6 +208721,9 @@ label_BFC40DBC: cpu->gpr[2] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC40DBC) goto label_BFC40D6C; label_BFC40DC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40DC4: 3401FFFF ori $at, $zero, 0xFFFF */ cpu->gpr[1] = cpu->gpr[0] | 0xFFFFu; @@ -171357,6 +208734,9 @@ label_BFC40DC4: cpu->gpr[4] = 0xF0000000u; if (psx_taken_BFC40DC8) goto label_BFC40D00; label_BFC40DD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40DD0: 1000FFE6 beq $zero, $zero, 0xBFC40D6C */ uint32_t psx_brA_BFC40DD0 = cpu->gpr[0]; uint32_t psx_brB_BFC40DD0 = cpu->gpr[0]; @@ -171365,10 +208745,16 @@ label_BFC40DD0: cpu->gpr[2] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC40DD0) goto label_BFC40D6C; label_BFC40DD8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC40DD8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40DD8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC40DDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40DDC: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -171390,6 +208776,9 @@ void func_1FC40DE8(CPUState* cpu) { } } label_BFC40DE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC40DE8: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -171424,6 +208813,9 @@ label_BFC40DE8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3276)); if (psx_taken_BFC40E1C) goto label_BFC40ECC; label_BFC40E24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC40E24: 3C02800E lui $v0, 0x800E */ cpu->gpr[2] = 0x800E0000u; @@ -171458,6 +208850,9 @@ label_BFC40E24: cpu->gpr[24] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC40E58) goto label_BFC40E9C; label_BFC40E60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC40E60: 906A0000 lbu $t2, 0($v1) */ cpu->gpr[10] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[3] + (0))); @@ -171490,10 +208885,16 @@ label_BFC40E60: /* nop */ if (psx_taken_BFC40E90) goto label_BFC40E60; label_BFC40E98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC40E98: 3418FFFF ori $t8, $zero, 0xFFFF */ cpu->gpr[24] = cpu->gpr[0] | 0xFFFFu; label_BFC40E9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC40E9C: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -171515,6 +208916,9 @@ label_BFC40E9C: cpu->gpr[31] = 0x80058EC0u; psx_dispatch(cpu, 0x8005AB90u); label_BFC40EC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40EC0: 10000019 beq $zero, $zero, 0xBFC40F28 */ uint32_t psx_brA_BFC40EC0 = cpu->gpr[0]; uint32_t psx_brB_BFC40EC0 = cpu->gpr[0]; @@ -171523,10 +208927,16 @@ label_BFC40EC0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40EC4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40EC0) goto label_BFC40F28; label_BFC40EC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC40EC8: 24010CCC addiu $at, $zero, 3276 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3276)); label_BFC40ECC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40ECC: 14410008 bne $v0, $at, 0xBFC40EF0 */ uint32_t psx_brA_BFC40ECC = cpu->gpr[2]; uint32_t psx_brB_BFC40ECC = cpu->gpr[1]; @@ -171535,6 +208945,9 @@ label_BFC40ECC: /* nop */ if (psx_taken_BFC40ECC) goto label_BFC40EF0; label_BFC40ED4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC40ED4: 24190002 addiu $t9, $zero, 2 */ cpu->gpr[25] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); @@ -171553,6 +208966,9 @@ label_BFC40ED4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4524)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40EECu); return; } g_debug_last_store_pc = 0xBFC40EECu; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC40EE8) goto label_BFC40F24; label_BFC40EF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC40EF0: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -171582,10 +208998,16 @@ label_BFC40EF0: cpu->gpr[31] = 0x80058F24u; psx_dispatch(cpu, 0x8005AB90u); label_BFC40F24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC40F24: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40F24u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC40F28: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40F28: 27BD0028 addiu $sp, $sp, 40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (40)); @@ -171609,6 +209031,9 @@ void func_1FC40F34(CPUState* cpu) { } } label_BFC40F34: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC40F34: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -171635,6 +209060,9 @@ label_BFC40F34: g_debug_last_store_pc = 0xBFC40F5Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[1] + (-4416)), (uint8_t)(cpu->gpr[6] & 0xFFu)); if (psx_taken_BFC40F58) goto label_BFC40F88; label_BFC40F60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40F60: 240500FB addiu $a1, $zero, 251 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[0] + (251)); @@ -171645,6 +209073,9 @@ label_BFC40F60: /* nop */ if (psx_taken_BFC40F64) goto label_BFC40F88; label_BFC40F6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC40F6C: 3C03800E lui $v1, 0x800E */ cpu->gpr[3] = 0x800E0000u; @@ -171659,6 +209090,9 @@ label_BFC40F6C: /* nop */ if (psx_taken_BFC40F78) goto label_BFC40F88; label_BFC40F80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40F80: 14650005 bne $v1, $a1, 0xBFC40F98 */ uint32_t psx_brA_BFC40F80 = cpu->gpr[3]; uint32_t psx_brB_BFC40F80 = cpu->gpr[5]; @@ -171667,6 +209101,9 @@ label_BFC40F80: /* nop */ if (psx_taken_BFC40F80) goto label_BFC40F98; label_BFC40F88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40F88: 0C016548 jal 0xB0059520 */ /* 0xBFC40F8C: 00000000 nop */ @@ -171674,6 +209111,9 @@ label_BFC40F88: cpu->gpr[31] = 0x80058F90u; psx_dispatch(cpu, 0x80059520u); label_BFC40F90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40F90: 10000023 beq $zero, $zero, 0xBFC41020 */ uint32_t psx_brA_BFC40F90 = cpu->gpr[0]; uint32_t psx_brB_BFC40F90 = cpu->gpr[0]; @@ -171682,6 +209122,9 @@ label_BFC40F90: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40F94u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40F90) goto label_BFC41020; label_BFC40F98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40F98: 240400E6 addiu $a0, $zero, 230 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); @@ -171692,6 +209135,9 @@ label_BFC40F98: /* nop */ if (psx_taken_BFC40F9C) goto label_BFC40FC0; label_BFC40FA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC40FA4: 240500EB addiu $a1, $zero, 235 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); @@ -171702,6 +209148,9 @@ label_BFC40FA4: /* nop */ if (psx_taken_BFC40FA8) goto label_BFC40FC0; label_BFC40FB0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40FB0: 10640003 beq $v1, $a0, 0xBFC40FC0 */ uint32_t psx_brA_BFC40FB0 = cpu->gpr[3]; uint32_t psx_brB_BFC40FB0 = cpu->gpr[4]; @@ -171710,6 +209159,9 @@ label_BFC40FB0: /* nop */ if (psx_taken_BFC40FB0) goto label_BFC40FC0; label_BFC40FB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40FB8: 14650006 bne $v1, $a1, 0xBFC40FD4 */ uint32_t psx_brA_BFC40FB8 = cpu->gpr[3]; uint32_t psx_brB_BFC40FB8 = cpu->gpr[5]; @@ -171718,6 +209170,9 @@ label_BFC40FB8: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); if (psx_taken_BFC40FB8) goto label_BFC40FD4; label_BFC40FC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40FC0: 0C016592 jal 0xB0059648 */ /* 0xBFC40FC4: 00000000 nop */ @@ -171725,6 +209180,9 @@ label_BFC40FC0: cpu->gpr[31] = 0x80058FC8u; psx_dispatch(cpu, 0x80059648u); label_BFC40FC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40FC8: 10000015 beq $zero, $zero, 0xBFC41020 */ uint32_t psx_brA_BFC40FC8 = cpu->gpr[0]; uint32_t psx_brB_BFC40FC8 = cpu->gpr[0]; @@ -171733,10 +209191,16 @@ label_BFC40FC8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC40FCCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC40FC8) goto label_BFC41020; label_BFC40FD0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC40FD0: 24010003 addiu $at, $zero, 3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); label_BFC40FD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40FD4: 10410009 beq $v0, $at, 0xBFC40FFC */ uint32_t psx_brA_BFC40FD4 = cpu->gpr[2]; uint32_t psx_brB_BFC40FD4 = cpu->gpr[1]; @@ -171745,6 +209209,9 @@ label_BFC40FD4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); if (psx_taken_BFC40FD4) goto label_BFC40FFC; label_BFC40FDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40FDC: 10410007 beq $v0, $at, 0xBFC40FFC */ uint32_t psx_brA_BFC40FDC = cpu->gpr[2]; uint32_t psx_brB_BFC40FDC = cpu->gpr[1]; @@ -171753,6 +209220,9 @@ label_BFC40FDC: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); if (psx_taken_BFC40FDC) goto label_BFC40FFC; label_BFC40FE4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40FE4: 10410005 beq $v0, $at, 0xBFC40FFC */ uint32_t psx_brA_BFC40FE4 = cpu->gpr[2]; uint32_t psx_brB_BFC40FE4 = cpu->gpr[1]; @@ -171761,6 +209231,9 @@ label_BFC40FE4: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (9)); if (psx_taken_BFC40FE4) goto label_BFC40FFC; label_BFC40FEC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40FEC: 10410003 beq $v0, $at, 0xBFC40FFC */ uint32_t psx_brA_BFC40FEC = cpu->gpr[2]; uint32_t psx_brB_BFC40FEC = cpu->gpr[1]; @@ -171769,6 +209242,9 @@ label_BFC40FEC: cpu->gpr[1] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC40FEC) goto label_BFC40FFC; label_BFC40FF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40FF4: 14410006 bne $v0, $at, 0xBFC41010 */ uint32_t psx_brA_BFC40FF4 = cpu->gpr[2]; uint32_t psx_brB_BFC40FF4 = cpu->gpr[1]; @@ -171777,6 +209253,9 @@ label_BFC40FF4: cpu->gpr[4] = 0xF0000000u; if (psx_taken_BFC40FF4) goto label_BFC41010; label_BFC40FFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC40FFC: 0C01659C jal 0xB0059670 */ /* 0xBFC41000: 00C02021 addu $a0, $a2, $zero */ @@ -171784,6 +209263,9 @@ label_BFC40FFC: cpu->gpr[31] = 0x80059004u; psx_dispatch(cpu, 0x80059670u); label_BFC41004: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41004: 10000006 beq $zero, $zero, 0xBFC41020 */ uint32_t psx_brA_BFC41004 = cpu->gpr[0]; uint32_t psx_brB_BFC41004 = cpu->gpr[0]; @@ -171792,10 +209274,16 @@ label_BFC41004: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41008u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC41004) goto label_BFC41020; label_BFC4100C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC4100C: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; label_BFC41010: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC41010: 34840003 ori $a0, $a0, 0x3 */ cpu->gpr[4] = cpu->gpr[4] | 0x3u; @@ -171805,10 +209293,16 @@ label_BFC41010: cpu->gpr[31] = 0x8005901Cu; psx_dispatch(cpu, 0x8005AB90u); label_BFC4101C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC4101C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC4101Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC41020: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC41020: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -171833,6 +209327,9 @@ void func_1FC4102C(CPUState* cpu) { } } label_BFC4102C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC4102C: 3C03800E lui $v1, 0x800E */ cpu->gpr[3] = 0x800E0000u; @@ -171849,6 +209346,9 @@ label_BFC4102C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41040u); return; } g_debug_last_store_pc = 0xBFC41040u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC4103C) goto label_BFC4106C; label_BFC41044: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC41044: 240100FB addiu $at, $zero, 251 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (251)); @@ -171859,6 +209359,9 @@ label_BFC41044: /* nop */ if (psx_taken_BFC41048) goto label_BFC4106C; label_BFC41050: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC41050: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -171873,6 +209376,9 @@ label_BFC41050: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (251)); if (psx_taken_BFC4105C) goto label_BFC4106C; label_BFC41064: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41064: 15C10016 bne $t6, $at, 0xBFC410C0 */ uint32_t psx_brA_BFC41064 = cpu->gpr[14]; uint32_t psx_brB_BFC41064 = cpu->gpr[1]; @@ -171881,6 +209387,9 @@ label_BFC41064: /* nop */ if (psx_taken_BFC41064) goto label_BFC410C0; label_BFC4106C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC4106C: 3C0F800E lui $t7, 0x800E */ cpu->gpr[15] = 0x800E0000u; @@ -171895,6 +209404,9 @@ label_BFC4106C: /* nop */ if (psx_taken_BFC41078) goto label_BFC4109C; label_BFC41080: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC41080: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -171906,6 +209418,9 @@ label_BFC41080: cpu->gpr[31] = 0x80059090u; psx_dispatch(cpu, 0x8005AB90u); label_BFC41090: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC41090: 3C03800E lui $v1, 0x800E */ cpu->gpr[3] = 0x800E0000u; @@ -171914,6 +209429,9 @@ label_BFC41090: /* 0xBFC41098: 240200F6 addiu $v0, $zero, 246 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (246)); label_BFC4109C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC4109C: 10620003 beq $v1, $v0, 0xBFC410AC */ uint32_t psx_brA_BFC4109C = cpu->gpr[3]; uint32_t psx_brB_BFC4109C = cpu->gpr[2]; @@ -171922,6 +209440,9 @@ label_BFC4109C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (251)); if (psx_taken_BFC4109C) goto label_BFC410AC; label_BFC410A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC410A4: 14610004 bne $v1, $at, 0xBFC410B8 */ uint32_t psx_brA_BFC410A4 = cpu->gpr[3]; uint32_t psx_brB_BFC410A4 = cpu->gpr[1]; @@ -171930,6 +209451,9 @@ label_BFC410A4: cpu->gpr[24] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC410A4) goto label_BFC410B8; label_BFC410AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC410AC: 10000004 beq $zero, $zero, 0xBFC410C0 */ uint32_t psx_brA_BFC410AC = cpu->gpr[0]; uint32_t psx_brB_BFC410AC = cpu->gpr[0]; @@ -171938,16 +209462,25 @@ label_BFC410AC: cpu->gpr[3] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC410AC) goto label_BFC410C0; label_BFC410B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC410B4: 3418FFFF ori $t8, $zero, 0xFFFF */ cpu->gpr[24] = cpu->gpr[0] | 0xFFFFu; label_BFC410B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC410B8: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; /* 0xBFC410BC: AC38EE58 sw $t8, -4520($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4520)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC410BCu); return; } g_debug_last_store_pc = 0xBFC410BCu; cpu->write_word(psx_addr, cpu->gpr[24]); } label_BFC410C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC410C0: 240200E6 addiu $v0, $zero, 230 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); @@ -171958,6 +209491,9 @@ label_BFC410C0: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC410C4) goto label_BFC410D4; label_BFC410CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC410CC: 10000013 beq $zero, $zero, 0xBFC4111C */ uint32_t psx_brA_BFC410CC = cpu->gpr[0]; uint32_t psx_brB_BFC410CC = cpu->gpr[0]; @@ -171966,6 +209502,9 @@ label_BFC410CC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4524)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC410D0u); return; } g_debug_last_store_pc = 0xBFC410D0u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC410CC) goto label_BFC4111C; label_BFC410D4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC410D4: 240100EB addiu $at, $zero, 235 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); @@ -171976,6 +209515,9 @@ label_BFC410D4: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC410D8) goto label_BFC410E8; label_BFC410E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC410E0: 1000000E beq $zero, $zero, 0xBFC4111C */ uint32_t psx_brA_BFC410E0 = cpu->gpr[0]; uint32_t psx_brB_BFC410E0 = cpu->gpr[0]; @@ -171984,6 +209526,9 @@ label_BFC410E0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4524)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC410E4u); return; } g_debug_last_store_pc = 0xBFC410E4u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC410E0) goto label_BFC4111C; label_BFC410E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC410E8: 3C19800E lui $t9, 0x800E */ cpu->gpr[25] = 0x800E0000u; @@ -171998,6 +209543,9 @@ label_BFC410E8: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC410F4) goto label_BFC41104; label_BFC410FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC410FC: 10000007 beq $zero, $zero, 0xBFC4111C */ uint32_t psx_brA_BFC410FC = cpu->gpr[0]; uint32_t psx_brB_BFC410FC = cpu->gpr[0]; @@ -172006,6 +209554,9 @@ label_BFC410FC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4524)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41100u); return; } g_debug_last_store_pc = 0xBFC41100u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC410FC) goto label_BFC4111C; label_BFC41104: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC41104: 3C08800E lui $t0, 0x800E */ cpu->gpr[8] = 0x800E0000u; @@ -172020,10 +209571,16 @@ label_BFC41104: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC41110) goto label_BFC4115C; label_BFC41118: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC41118: AC23EE54 sw $v1, -4524($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4524)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41118u); return; } g_debug_last_store_pc = 0xBFC41118u; cpu->write_word(psx_addr, cpu->gpr[3]); } label_BFC4111C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC4111C: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -172035,6 +209592,9 @@ label_BFC4111C: cpu->gpr[31] = 0x8005912Cu; psx_dispatch(cpu, 0x8005AB90u); label_BFC4112C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC4112C: 3C03800E lui $v1, 0x800E */ cpu->gpr[3] = 0x800E0000u; @@ -172049,6 +209609,9 @@ label_BFC4112C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); if (psx_taken_BFC41138) goto label_BFC41148; label_BFC41140: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41140: 14610004 bne $v1, $at, 0xBFC41154 */ uint32_t psx_brA_BFC41140 = cpu->gpr[3]; uint32_t psx_brB_BFC41140 = cpu->gpr[1]; @@ -172057,6 +209620,9 @@ label_BFC41140: cpu->gpr[9] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC41140) goto label_BFC41154; label_BFC41148: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41148: 10000004 beq $zero, $zero, 0xBFC4115C */ uint32_t psx_brA_BFC41148 = cpu->gpr[0]; uint32_t psx_brB_BFC41148 = cpu->gpr[0]; @@ -172065,16 +209631,25 @@ label_BFC41148: cpu->gpr[3] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC41148) goto label_BFC4115C; label_BFC41150: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC41150: 3409FFFF ori $t1, $zero, 0xFFFF */ cpu->gpr[9] = cpu->gpr[0] | 0xFFFFu; label_BFC41154: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41154: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; /* 0xBFC41158: AC29EE58 sw $t1, -4520($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4520)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41158u); return; } g_debug_last_store_pc = 0xBFC41158u; cpu->write_word(psx_addr, cpu->gpr[9]); } label_BFC4115C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC4115C: 24010003 addiu $at, $zero, 3 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); @@ -172085,6 +209660,9 @@ label_BFC4115C: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC41160) goto label_BFC41170; label_BFC41168: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41168: 1000000A beq $zero, $zero, 0xBFC41194 */ uint32_t psx_brA_BFC41168 = cpu->gpr[0]; uint32_t psx_brB_BFC41168 = cpu->gpr[0]; @@ -172093,6 +209671,9 @@ label_BFC41168: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4524)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC4116Cu); return; } g_debug_last_store_pc = 0xBFC4116Cu; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC41168) goto label_BFC41194; label_BFC41170: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC41170: 24010004 addiu $at, $zero, 4 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (4)); @@ -172103,6 +209684,9 @@ label_BFC41170: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC41174) goto label_BFC41184; label_BFC4117C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC4117C: 10000005 beq $zero, $zero, 0xBFC41194 */ uint32_t psx_brA_BFC4117C = cpu->gpr[0]; uint32_t psx_brB_BFC4117C = cpu->gpr[0]; @@ -172111,6 +209695,9 @@ label_BFC4117C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4524)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41180u); return; } g_debug_last_store_pc = 0xBFC41180u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC4117C) goto label_BFC41194; label_BFC41184: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC41184: 24010005 addiu $at, $zero, 5 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (5)); @@ -172121,10 +209708,16 @@ label_BFC41184: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC41188) goto label_BFC411B4; label_BFC41190: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC41190: AC23EE54 sw $v1, -4524($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4524)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41190u); return; } g_debug_last_store_pc = 0xBFC41190u; cpu->write_word(psx_addr, cpu->gpr[3]); } label_BFC41194: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC41194: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -172136,6 +209729,9 @@ label_BFC41194: cpu->gpr[31] = 0x800591A4u; psx_dispatch(cpu, 0x8005AB90u); label_BFC411A4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC411A4: 3403FFFF ori $v1, $zero, 0xFFFF */ cpu->gpr[3] = cpu->gpr[0] | 0xFFFFu; @@ -172148,6 +209744,9 @@ label_BFC411A4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4524)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC411B0u); return; } g_debug_last_store_pc = 0xBFC411B0u; cpu->write_word(psx_addr, cpu->gpr[3]); } if (psx_taken_BFC411AC) goto label_BFC411F0; label_BFC411B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC411B4: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -172162,6 +209761,9 @@ label_BFC411B4: cpu->gpr[4] = 0xF0000000u; if (psx_taken_BFC411C0) goto label_BFC411E4; label_BFC411C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC411C8: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -172173,6 +209775,9 @@ label_BFC411C8: cpu->gpr[31] = 0x800591D8u; psx_dispatch(cpu, 0x8005AB90u); label_BFC411D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC411D8: 10000006 beq $zero, $zero, 0xBFC411F4 */ uint32_t psx_brA_BFC411D8 = cpu->gpr[0]; uint32_t psx_brB_BFC411D8 = cpu->gpr[0]; @@ -172181,10 +209786,16 @@ label_BFC411D8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC411DCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC411D8) goto label_BFC411F4; label_BFC411E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC411E0: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; label_BFC411E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC411E4: 34840003 ori $a0, $a0, 0x3 */ cpu->gpr[4] = cpu->gpr[4] | 0x3u; @@ -172194,10 +209805,16 @@ label_BFC411E4: cpu->gpr[31] = 0x800591F0u; psx_dispatch(cpu, 0x8005AB90u); label_BFC411F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC411F0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC411F0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC411F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC411F4: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -172218,6 +209835,9 @@ void func_1FC41200(CPUState* cpu) { } } label_BFC41200: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC41200: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -172228,6 +209848,9 @@ label_BFC41200: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41208u); return; } g_debug_last_store_pc = 0xBFC41208u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC41204) goto label_BFC41214; label_BFC4120C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC4120C: 10000002 beq $zero, $zero, 0xBFC41218 */ uint32_t psx_brA_BFC4120C = cpu->gpr[0]; uint32_t psx_brB_BFC4120C = cpu->gpr[0]; @@ -172236,10 +209859,16 @@ label_BFC4120C: cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (21)); if (psx_taken_BFC4120C) goto label_BFC41218; label_BFC41214: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC41214: 24020016 addiu $v0, $zero, 22 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (22)); label_BFC41218: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC41218: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -172249,6 +209878,9 @@ label_BFC41218: cpu->gpr[31] = 0x80059224u; psx_dispatch(cpu, 0x80059C0Cu); label_BFC41224: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC41224: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -172289,6 +209921,9 @@ void func_1FC41258(CPUState* cpu) { } } label_BFC41258: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(17u); +#endif psx_check_interrupts(cpu); /* 0xBFC41258: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -172325,6 +209960,9 @@ label_BFC41258: /* 0xBFC41298: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); label_BFC4129C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC4129C: 90600000 lbu $zero, 0($v1) */ (void)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[3] + (0))); @@ -172343,6 +209981,9 @@ label_BFC4129C: /* nop */ if (psx_taken_BFC412B0) goto label_BFC4129C; label_BFC412B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC412B8: 3C02800E lui $v0, 0x800E */ cpu->gpr[2] = 0x800E0000u; @@ -172357,6 +209998,9 @@ label_BFC412B8: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC412C4) goto label_BFC412E0; label_BFC412CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC412CC: AC22EE54 sw $v0, -4524($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4524)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC412CCu); return; } g_debug_last_store_pc = 0xBFC412CCu; cpu->write_word(psx_addr, cpu->gpr[2]); } @@ -172371,6 +210015,9 @@ label_BFC412CC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4520)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC412DCu); return; } g_debug_last_store_pc = 0xBFC412DCu; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC412D8) goto label_BFC412EC; label_BFC412E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC412E0: 3419FFFF ori $t9, $zero, 0xFFFF */ cpu->gpr[25] = cpu->gpr[0] | 0xFFFFu; @@ -172379,6 +210026,9 @@ label_BFC412E0: /* 0xBFC412E8: AC39EE54 sw $t9, -4524($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4524)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC412E8u); return; } g_debug_last_store_pc = 0xBFC412E8u; cpu->write_word(psx_addr, cpu->gpr[25]); } label_BFC412EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC412EC: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -172390,6 +210040,9 @@ label_BFC412EC: cpu->gpr[31] = 0x800592FCu; psx_dispatch(cpu, 0x8005AB90u); label_BFC412FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC412FC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC412FCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -172412,6 +210065,9 @@ void func_1FC4130C(CPUState* cpu) { } } label_BFC4130C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC4130C: 3C03800E lui $v1, 0x800E */ cpu->gpr[3] = 0x800E0000u; @@ -172430,6 +210086,9 @@ label_BFC4130C: /* 0xBFC41328: 24050008 addiu $a1, $zero, 8 */ cpu->gpr[5] = (uint32_t)((int32_t)cpu->gpr[0] + (8)); label_BFC4132C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC4132C: 904E0000 lbu $t6, 0($v0) */ cpu->gpr[14] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[2] + (0))); @@ -172458,6 +210117,9 @@ label_BFC4132C: g_debug_last_store_pc = 0xBFC41358u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[3] + (-1)), (uint8_t)(cpu->gpr[25] & 0xFFu)); if (psx_taken_BFC41354) goto label_BFC4132C; label_BFC4135C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC4135C: 3C02800E lui $v0, 0x800E */ cpu->gpr[2] = 0x800E0000u; @@ -172472,6 +210134,9 @@ label_BFC4135C: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC41368) goto label_BFC41384; label_BFC41370: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC41370: AC22EE54 sw $v0, -4524($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4524)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41370u); return; } g_debug_last_store_pc = 0xBFC41370u; cpu->write_word(psx_addr, cpu->gpr[2]); } @@ -172486,6 +210151,9 @@ label_BFC41370: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4520)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41380u); return; } g_debug_last_store_pc = 0xBFC41380u; cpu->write_word(psx_addr, cpu->gpr[2]); } if (psx_taken_BFC4137C) goto label_BFC41390; label_BFC41384: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC41384: 3408FFFF ori $t0, $zero, 0xFFFF */ cpu->gpr[8] = cpu->gpr[0] | 0xFFFFu; @@ -172494,6 +210162,9 @@ label_BFC41384: /* 0xBFC4138C: AC28EE54 sw $t0, -4524($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4524)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC4138Cu); return; } g_debug_last_store_pc = 0xBFC4138Cu; cpu->write_word(psx_addr, cpu->gpr[8]); } label_BFC41390: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC41390: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -172505,6 +210176,9 @@ label_BFC41390: cpu->gpr[31] = 0x800593A0u; psx_dispatch(cpu, 0x8005AB90u); label_BFC413A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC413A0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC413A0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -172527,6 +210201,9 @@ void func_1FC413B0(CPUState* cpu) { } } label_BFC413B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC413B0: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -172556,6 +210233,9 @@ label_BFC413B0: cpu->gpr[31] = 0x800593E4u; psx_dispatch(cpu, 0x8005AB90u); label_BFC413E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC413E4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC413E4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -172578,6 +210258,9 @@ void func_1FC413F4(CPUState* cpu) { } } label_BFC413F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC413F4: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -172600,6 +210283,9 @@ label_BFC413F4: /* 0xBFC41418: A1EE0000 sb $t6, 0($t7) */ g_debug_last_store_pc = 0xBFC41418u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[15] + (0)), (uint8_t)(cpu->gpr[14] & 0xFFu)); label_BFC4141C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC4141C: 90800000 lbu $zero, 0($a0) */ (void)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (0))); @@ -172612,6 +210298,9 @@ label_BFC4141C: /* nop */ if (psx_taken_BFC41424) goto label_BFC4141C; label_BFC4142C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC4142C: 3418FFFF ori $t8, $zero, 0xFFFF */ cpu->gpr[24] = cpu->gpr[0] | 0xFFFFu; @@ -172629,6 +210318,9 @@ label_BFC4142C: cpu->gpr[31] = 0x80059448u; psx_dispatch(cpu, 0x8005AB90u); label_BFC41448: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC41448: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41448u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -172651,6 +210343,9 @@ void func_1FC41458(CPUState* cpu) { } } label_BFC41458: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC41458: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -172662,6 +210357,9 @@ label_BFC41458: cpu->gpr[31] = 0x80059468u; psx_dispatch(cpu, 0x80059C0Cu); label_BFC41468: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC41468: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -172684,6 +210382,9 @@ label_BFC41468: /* nop */ if (psx_taken_BFC41484) goto label_BFC414D0; label_BFC4148C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC4148C: 3C19800E lui $t9, 0x800E */ cpu->gpr[25] = 0x800E0000u; @@ -172698,6 +210399,9 @@ label_BFC4148C: cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); if (psx_taken_BFC41498) goto label_BFC414B4; label_BFC414A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC414A0: 240800F6 addiu $t0, $zero, 246 */ cpu->gpr[8] = (uint32_t)((int32_t)cpu->gpr[0] + (246)); @@ -172710,16 +210414,25 @@ label_BFC414A0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4524)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC414ACu); return; } g_debug_last_store_pc = 0xBFC414ACu; cpu->write_word(psx_addr, cpu->gpr[8]); } if (psx_taken_BFC414A8) goto label_BFC414BC; label_BFC414B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC414B0: 240900E6 addiu $t1, $zero, 230 */ cpu->gpr[9] = (uint32_t)((int32_t)cpu->gpr[0] + (230)); label_BFC414B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC414B4: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; /* 0xBFC414B8: AC29EE54 sw $t1, -4524($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4524)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC414B8u); return; } g_debug_last_store_pc = 0xBFC414B8u; cpu->write_word(psx_addr, cpu->gpr[9]); } label_BFC414BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC414BC: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -172734,6 +210447,9 @@ label_BFC414BC: g_debug_last_store_pc = 0xBFC414CCu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[11] + (0)), (uint8_t)(cpu->gpr[10] & 0xFFu)); if (psx_taken_BFC414C8) goto label_BFC41510; label_BFC414D0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC414D0: 3C0C800E lui $t4, 0x800E */ cpu->gpr[12] = 0x800E0000u; @@ -172748,6 +210464,9 @@ label_BFC414D0: cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); if (psx_taken_BFC414DC) goto label_BFC414F8; label_BFC414E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC414E4: 240D00FB addiu $t5, $zero, 251 */ cpu->gpr[13] = (uint32_t)((int32_t)cpu->gpr[0] + (251)); @@ -172760,16 +210479,25 @@ label_BFC414E4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4524)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC414F0u); return; } g_debug_last_store_pc = 0xBFC414F0u; cpu->write_word(psx_addr, cpu->gpr[13]); } if (psx_taken_BFC414EC) goto label_BFC41500; label_BFC414F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC414F4: 240E00EB addiu $t6, $zero, 235 */ cpu->gpr[14] = (uint32_t)((int32_t)cpu->gpr[0] + (235)); label_BFC414F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC414F8: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; /* 0xBFC414FC: AC2EEE54 sw $t6, -4524($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4524)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC414FCu); return; } g_debug_last_store_pc = 0xBFC414FCu; cpu->write_word(psx_addr, cpu->gpr[14]); } label_BFC41500: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC41500: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -172780,6 +210508,9 @@ label_BFC41500: /* 0xBFC4150C: A30F0000 sb $t7, 0($t8) */ g_debug_last_store_pc = 0xBFC4150Cu; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[24] + (0)), (uint8_t)(cpu->gpr[15] & 0xFFu)); label_BFC41510: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC41510: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41510u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -172804,6 +210535,9 @@ void func_1FC41520(CPUState* cpu) { } } label_BFC41520: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC41520: 3C06800E lui $a2, 0x800E */ cpu->gpr[6] = 0x800E0000u; @@ -172818,6 +210552,9 @@ label_BFC41520: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41530u); return; } g_debug_last_store_pc = 0xBFC41530u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC4152C) goto label_BFC41624; label_BFC41534: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC41534: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -172837,6 +210574,9 @@ label_BFC41534: cpu->gpr[31] = 0x80059554u; psx_dispatch(cpu, 0x80059C0Cu); label_BFC41554: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(28u); +#endif psx_check_interrupts(cpu); /* 0xBFC41554: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -172896,6 +210636,9 @@ label_BFC41554: cpu->gpr[31] = 0x800595C4u; psx_dispatch(cpu, 0x80059BA8u); label_BFC415C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC415C4: 3C0B800E lui $t3, 0x800E */ cpu->gpr[11] = 0x800E0000u; @@ -172922,6 +210665,9 @@ label_BFC415C4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4484)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC415ECu); return; } g_debug_last_store_pc = 0xBFC415ECu; cpu->write_word(psx_addr, cpu->gpr[13]); } if (psx_taken_BFC415E8) goto label_BFC41638; label_BFC415F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC415F0: 0C016703 jal 0xB0059C0C */ /* 0xBFC415F4: 00000000 nop */ @@ -172929,6 +210675,9 @@ label_BFC415F0: cpu->gpr[31] = 0x800595F8u; psx_dispatch(cpu, 0x80059C0Cu); label_BFC415F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC415F8: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -172955,6 +210704,9 @@ label_BFC415F8: g_debug_last_store_pc = 0xBFC41620u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[24] + (0)), (uint8_t)(cpu->gpr[15] & 0xFFu)); if (psx_taken_BFC4161C) goto label_BFC41638; label_BFC41624: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41624: 14C00005 bne $a2, $zero, 0xBFC4163C */ uint32_t psx_brA_BFC41624 = cpu->gpr[6]; uint32_t psx_brB_BFC41624 = cpu->gpr[0]; @@ -172963,6 +210715,9 @@ label_BFC41624: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41628u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC41624) goto label_BFC4163C; label_BFC4162C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC4162C: 24C6FFFF addiu $a2, $a2, -1 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[6] + (-1)); @@ -172971,10 +210726,16 @@ label_BFC4162C: /* 0xBFC41634: AC26EE74 sw $a2, -4492($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-4492)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41634u); return; } g_debug_last_store_pc = 0xBFC41634u; cpu->write_word(psx_addr, cpu->gpr[6]); } label_BFC41638: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC41638: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41638u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC4163C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC4163C: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -172995,6 +210756,9 @@ void func_1FC41648(CPUState* cpu) { } } label_BFC41648: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC41648: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -173010,6 +210774,9 @@ label_BFC41648: cpu->gpr[31] = 0x80059660u; psx_dispatch(cpu, 0x8005AB90u); label_BFC41660: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC41660: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41660u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -173032,6 +210799,9 @@ void func_1FC41670(CPUState* cpu) { } } label_BFC41670: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(18u); +#endif psx_check_interrupts(cpu); /* 0xBFC41670: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -173070,6 +210840,9 @@ label_BFC41670: /* 0xBFC416B4: A038EEBB sb $t8, -4421($at) */ g_debug_last_store_pc = 0xBFC416B4u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[1] + (-4421)), (uint8_t)(cpu->gpr[24] & 0xFFu)); label_BFC416B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC416B8: 90790000 lbu $t9, 0($v1) */ cpu->gpr[25] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[3] + (0))); @@ -173098,6 +210871,9 @@ label_BFC416B8: g_debug_last_store_pc = 0xBFC416E4u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[2] + (-1)), (uint8_t)(cpu->gpr[10] & 0xFFu)); if (psx_taken_BFC416E0) goto label_BFC416B8; label_BFC416E8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC416E8: 3C04F000 lui $a0, 0xF000 */ cpu->gpr[4] = 0xF0000000u; @@ -173109,6 +210885,9 @@ label_BFC416E8: cpu->gpr[31] = 0x800596F8u; psx_dispatch(cpu, 0x8005AB90u); label_BFC416F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC416F8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC416F8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -173131,6 +210910,9 @@ void func_1FC41708(CPUState* cpu) { } } label_BFC41708: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC41708: 3C05800E lui $a1, 0x800E */ cpu->gpr[5] = 0x800E0000u; @@ -173157,6 +210939,9 @@ label_BFC41708: /* 0xBFC41734: 00001821 addu $v1, $zero, $zero */ cpu->gpr[3] = cpu->gpr[0] + cpu->gpr[0]; label_BFC41738: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41738: 10400009 beq $v0, $zero, 0xBFC41760 */ uint32_t psx_brA_BFC41738 = cpu->gpr[2]; uint32_t psx_brB_BFC41738 = cpu->gpr[0]; @@ -173165,6 +210950,9 @@ label_BFC41738: cpu->gpr[24] = cpu->gpr[0] | 0xFFFFu; if (psx_taken_BFC41738) goto label_BFC41760; label_BFC41740: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC41740: 908E0000 lbu $t6, 0($a0) */ cpu->gpr[14] = (uint32_t)cpu->read_byte((uint32_t)((int32_t)cpu->gpr[4] + (0))); @@ -173183,10 +210971,16 @@ label_BFC41740: g_debug_last_store_pc = 0xBFC41758u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[15] + (2)), (uint8_t)(cpu->gpr[14] & 0xFFu)); if (psx_taken_BFC41754) goto label_BFC41738; label_BFC4175C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC4175C: 3418FFFF ori $t8, $zero, 0xFFFF */ cpu->gpr[24] = cpu->gpr[0] | 0xFFFFu; label_BFC41760: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC41760: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -173202,6 +210996,9 @@ label_BFC41760: cpu->gpr[31] = 0x80059778u; psx_dispatch(cpu, 0x8005AB90u); label_BFC41778: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC41778: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41778u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -173224,6 +211021,9 @@ void func_1FC41788(CPUState* cpu) { } } label_BFC41788: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC41788: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -173253,6 +211053,9 @@ label_BFC41788: cpu->gpr[31] = 0x800597BCu; psx_dispatch(cpu, 0x8005AB90u); label_BFC417BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC417BC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC417BCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -173275,6 +211078,9 @@ void func_1FC417CC(CPUState* cpu) { } } label_BFC417CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC417CC: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -173298,6 +211104,9 @@ label_BFC417CC: cpu->gpr[31] = 0x800597F4u; psx_dispatch(cpu, 0x8005AB90u); label_BFC417F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC417F4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC417F4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -173320,6 +211129,9 @@ void func_1FC41804(CPUState* cpu) { } } label_BFC41804: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC41804: 3C0E800E lui $t6, 0x800E */ cpu->gpr[14] = 0x800E0000u; @@ -173349,6 +211161,9 @@ label_BFC41804: cpu->gpr[31] = 0x80059838u; psx_dispatch(cpu, 0x8005AB90u); label_BFC41838: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC41838: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41838u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -173372,6 +211187,9 @@ void func_1FC41848(CPUState* cpu) { } } label_BFC41848: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC41848: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -173394,6 +211212,9 @@ label_BFC41848: cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (3860)); if (psx_taken_BFC41864) goto label_BFC41880; label_BFC4186C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC4186C: 0C016701 jal 0xB0059C04 */ /* 0xBFC41870: 00000000 nop */ @@ -173401,6 +211222,9 @@ label_BFC4186C: cpu->gpr[31] = 0x80059874u; psx_dispatch(cpu, 0x80059C04u); label_BFC41874: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41874: 10000010 beq $zero, $zero, 0xBFC418B8 */ uint32_t psx_brA_BFC41874 = cpu->gpr[0]; uint32_t psx_brB_BFC41874 = cpu->gpr[0]; @@ -173409,10 +211233,16 @@ label_BFC41874: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41878u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC41874) goto label_BFC418B8; label_BFC4187C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC4187C: 24180F14 addiu $t8, $zero, 3860 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (3860)); label_BFC41880: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC41880: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -173422,6 +211252,9 @@ label_BFC41880: cpu->gpr[31] = 0x8005988Cu; psx_dispatch(cpu, 0x80059C0Cu); label_BFC4188C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC4188C: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -173446,6 +211279,9 @@ label_BFC4188C: /* 0xBFC418B4: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC418B4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC418B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC418B8: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -173466,6 +211302,9 @@ void func_1FC418C4(CPUState* cpu) { } } label_BFC418C4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC418C4: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -173493,6 +211332,9 @@ label_BFC418C4: cpu->gpr[31] = 0x800598F4u; psx_dispatch(cpu, 0x80059C0Cu); label_BFC418F4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC418F4: 3C188008 lui $t8, 0x8008 */ cpu->gpr[24] = 0x80080000u; @@ -173536,6 +211378,9 @@ void func_1FC4192C(CPUState* cpu) { } } label_BFC4192C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(35u); +#endif psx_check_interrupts(cpu); /* 0xBFC4192C: 3C078008 lui $a3, 0x8008 */ cpu->gpr[7] = 0x80080000u; @@ -173610,6 +211455,9 @@ label_BFC4192C: cpu->gpr[1] = 0x800E0000u; if (psx_taken_BFC419B0) goto label_BFC419C8; label_BFC419B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC419B8: 0C016701 jal 0xB0059C04 */ /* 0xBFC419BC: A023EEA4 sb $v1, -4444($at) */ @@ -173617,6 +211465,9 @@ label_BFC419B8: cpu->gpr[31] = 0x800599C0u; psx_dispatch(cpu, 0x80059C04u); label_BFC419C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC419C0: 1000001D beq $zero, $zero, 0xBFC41A38 */ uint32_t psx_brA_BFC419C0 = cpu->gpr[0]; uint32_t psx_brB_BFC419C0 = cpu->gpr[0]; @@ -173625,6 +211476,9 @@ label_BFC419C0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC419C4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC419C0) goto label_BFC41A38; label_BFC419C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC419C8: 2401000A addiu $at, $zero, 10 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); @@ -173654,6 +211508,9 @@ label_BFC419C8: cpu->gpr[31] = 0x800599FCu; psx_dispatch(cpu, 0x80059C0Cu); label_BFC419FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC419FC: 3C0D8008 lui $t5, 0x8008 */ cpu->gpr[13] = 0x80080000u; @@ -173686,6 +211543,9 @@ label_BFC419FC: /* 0xBFC41A34: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41A34u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC41A38: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC41A38: 27BD0030 addiu $sp, $sp, 48 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (48)); @@ -173708,6 +211568,9 @@ void func_1FC41A44(CPUState* cpu) { } } label_BFC41A44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC41A44: 3C06800E lui $a2, 0x800E */ cpu->gpr[6] = 0x800E0000u; @@ -173728,6 +211591,9 @@ label_BFC41A44: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41A60u); return; } g_debug_last_store_pc = 0xBFC41A60u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC41A5C) goto label_BFC41A8C; label_BFC41A64: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC41A64: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -173752,6 +211618,9 @@ label_BFC41A64: g_debug_last_store_pc = 0xBFC41A88u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[3] + (1)), (uint8_t)(cpu->gpr[24] & 0xFFu)); if (psx_taken_BFC41A84) goto label_BFC41ABC; label_BFC41A8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC41A8C: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -173778,6 +211647,9 @@ label_BFC41A8C: /* 0xBFC41AB8: A049FFFE sb $t1, -2($v0) */ g_debug_last_store_pc = 0xBFC41AB8u; cpu->write_byte((uint32_t)((int32_t)cpu->gpr[2] + (-2)), (uint8_t)(cpu->gpr[9] & 0xFFu)); label_BFC41ABC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC41ABC: 24C30001 addiu $v1, $a2, 1 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[6] + (1)); @@ -173790,6 +211662,9 @@ label_BFC41ABC: /* nop */ if (psx_taken_BFC41AC4) goto label_BFC41AF0; label_BFC41ACC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC41ACC: 340AFFFF ori $t2, $zero, 0xFFFF */ cpu->gpr[10] = cpu->gpr[0] | 0xFFFFu; @@ -173807,6 +211682,9 @@ label_BFC41ACC: cpu->gpr[31] = 0x80059AE8u; psx_dispatch(cpu, 0x8005AB90u); label_BFC41AE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41AE8: 1000002C beq $zero, $zero, 0xBFC41B9C */ uint32_t psx_brA_BFC41AE8 = cpu->gpr[0]; uint32_t psx_brB_BFC41AE8 = cpu->gpr[0]; @@ -173815,6 +211693,9 @@ label_BFC41AE8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41AECu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC41AE8) goto label_BFC41B9C; label_BFC41AF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC41AF0: 3C0B8008 lui $t3, 0x8008 */ cpu->gpr[11] = 0x80080000u; @@ -173835,6 +211716,9 @@ label_BFC41AF0: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); if (psx_taken_BFC41B08) goto label_BFC41B24; label_BFC41B10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41B10: 0C016701 jal 0xB0059C04 */ /* 0xBFC41B14: 00000000 nop */ @@ -173842,6 +211726,9 @@ label_BFC41B10: cpu->gpr[31] = 0x80059B18u; psx_dispatch(cpu, 0x80059C04u); label_BFC41B18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41B18: 10000020 beq $zero, $zero, 0xBFC41B9C */ uint32_t psx_brA_BFC41B18 = cpu->gpr[0]; uint32_t psx_brB_BFC41B18 = cpu->gpr[0]; @@ -173850,10 +211737,16 @@ label_BFC41B18: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41B1Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC41B18) goto label_BFC41B9C; label_BFC41B20: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC41B20: 2401000A addiu $at, $zero, 10 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (10)); label_BFC41B24: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC41B24: 0081001B divu $a0, $at */ { uint32_t psx_n = cpu->gpr[4]; uint32_t psx_d = cpu->gpr[1]; if (psx_d == 0) { cpu->lo = 0xFFFFFFFFu; cpu->hi = psx_n; } else { uint32_t psx_q = psx_n / psx_d; uint32_t psx_r = psx_n - (psx_q * psx_d); cpu->lo = psx_q; cpu->hi = psx_r; } } @@ -173874,10 +211767,16 @@ label_BFC41B24: cpu->gpr[2] = cpu->gpr[2] & 0xFFu; if (psx_taken_BFC41B3C) goto label_BFC41B48; label_BFC41B44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC41B44: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; label_BFC41B48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC41B48: 24840001 addiu $a0, $a0, 1 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[4] + (1)); @@ -173893,6 +211792,9 @@ label_BFC41B48: cpu->gpr[31] = 0x80059B60u; psx_dispatch(cpu, 0x80059C0Cu); label_BFC41B60: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC41B60: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -173925,6 +211827,9 @@ label_BFC41B60: /* 0xBFC41B98: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41B98u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC41B9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC41B9C: 27BD0020 addiu $sp, $sp, 32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (32)); @@ -173937,6 +211842,9 @@ label_BFC41B9C: void func_1FC41BA8(CPUState* cpu) { debug_server_log_call_entry(0x1FC41BA8u); label_BFC41BA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(23u); +#endif psx_check_interrupts(cpu); /* 0xBFC41BA8: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -173989,6 +211897,9 @@ label_BFC41BA8: void func_1FC41C04(CPUState* cpu) { debug_server_log_call_entry(0x1FC41C04u); label_BFC41C04: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41C04: 03E00008 jr $ra */ /* 0xBFC41C08: 00000000 nop */ @@ -173999,6 +211910,9 @@ label_BFC41C04: void func_1FC41C0C(CPUState* cpu) { debug_server_log_call_entry(0x1FC41C0Cu); label_BFC41C0C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC41C0C: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -174033,10 +211947,16 @@ label_BFC41C0C: /* nop */ if (psx_taken_BFC41C40) goto label_BFC41C78; label_BFC41C48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC41C48: 8FA90004 lw $t1, 4($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41C48u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } label_BFC41C4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC41C4C: 00000000 nop */ /* nop */ @@ -174063,6 +211983,9 @@ label_BFC41C4C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41C74u); return; } cpu->gpr[9] = cpu->read_word(psx_addr); } if (psx_taken_BFC41C70) goto label_BFC41C4C; label_BFC41C78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41C78: 03E00008 jr $ra */ /* 0xBFC41C7C: 27BD0008 addiu $sp, $sp, 8 */ @@ -174081,6 +212004,9 @@ void func_1FC41C80(CPUState* cpu) { } } label_BFC41C80: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC41C80: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -174113,6 +212039,9 @@ label_BFC41C80: cpu->gpr[6] = cpu->gpr[6] & 0xFFFFu; if (psx_taken_BFC41CB0) goto label_BFC41CC8; label_BFC41CB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC41CB8: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -174125,6 +212054,9 @@ label_BFC41CB8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41CC4u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC41CC0) { cpu->pc = 0xBFC41D98u; return; } label_BFC41CC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC41CC8: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -174135,6 +212067,9 @@ label_BFC41CC8: /* nop */ if (psx_taken_BFC41CCC) goto label_BFC41CDC; label_BFC41CD4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41CD4: 1000002F beq $zero, $zero, 0xBFC41D94 */ uint32_t psx_brA_BFC41CD4 = cpu->gpr[0]; uint32_t psx_brB_BFC41CD4 = cpu->gpr[0]; @@ -174143,6 +212078,9 @@ label_BFC41CD4: cpu->gpr[2] = cpu->gpr[6] + cpu->gpr[0]; if (psx_taken_BFC41CD4) { cpu->pc = 0xBFC41D94u; return; } label_BFC41CDC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC41CDC: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -174158,6 +212096,9 @@ label_BFC41CDC: cpu->gpr[31] = 0x80059CF4u; psx_dispatch(cpu, 0x80059DA4u); label_BFC41CF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC41CF4: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -174193,6 +212134,9 @@ void func_1FC41D18(CPUState* cpu) { } } label_BFC41D18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC41D18: 8FA3001C lw $v1, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41D18u); return; } cpu->gpr[3] = cpu->read_word(psx_addr); } @@ -174209,6 +212153,9 @@ label_BFC41D18: /* nop */ if (psx_taken_BFC41D28) goto label_BFC41D6C; label_BFC41D30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC41D30: 3C058008 lui $a1, 0x8008 */ cpu->gpr[5] = 0x80080000u; @@ -174231,6 +212178,9 @@ label_BFC41D30: /* nop */ if (psx_taken_BFC41D4C) goto label_BFC41D6C; label_BFC41D54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC41D54: 8CAC0000 lw $t4, 0($a1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[5] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41D54u); return; } cpu->gpr[12] = cpu->read_word(psx_addr); } @@ -174247,6 +212197,9 @@ label_BFC41D54: /* nop */ if (psx_taken_BFC41D64) goto label_BFC41D54; label_BFC41D6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC41D6C: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -174269,10 +212222,16 @@ label_BFC41D6C: /* 0xBFC41D90: AC399C84 sw $t9, -25468($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25468)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41D90u); return; } g_debug_last_store_pc = 0xBFC41D90u; cpu->write_word(psx_addr, cpu->gpr[25]); } label_BFC41D94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC41D94: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41D94u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC41D98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC41D98: 27BD0020 addiu $sp, $sp, 32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (32)); @@ -174285,6 +212244,9 @@ label_BFC41D98: void func_1FC41DA4(CPUState* cpu) { debug_server_log_call_entry(0x1FC41DA4u); label_BFC41DA4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC41DA4: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -174320,6 +212282,9 @@ void func_1FC41DC8(CPUState* cpu) { } } label_BFC41DC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC41DC8: 8FA2001C lw $v0, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41DC8u); return; } cpu->gpr[2] = cpu->read_word(psx_addr); } @@ -174336,6 +212301,9 @@ label_BFC41DC8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41DDCu); return; } g_debug_last_store_pc = 0xBFC41DDCu; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC41DD8) { cpu->pc = 0xBFC41DFCu; return; } label_BFC41DE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC41DE0: 3C068008 lui $a2, 0x8008 */ cpu->gpr[6] = 0x80080000u; @@ -174349,6 +212317,9 @@ label_BFC41DE0: cpu->gpr[31] = 0x80059DF4u; psx_dispatch(cpu, 0x8005A910u); label_BFC41DF4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41DF4: 10000008 beq $zero, $zero, 0xBFC41E18 */ uint32_t psx_brA_BFC41DF4 = cpu->gpr[0]; uint32_t psx_brB_BFC41DF4 = cpu->gpr[0]; @@ -174362,6 +212333,9 @@ label_BFC41DF4: void func_1FC41DFC(CPUState* cpu) { debug_server_log_call_entry(0x1FC41DFCu); label_BFC41DFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC41DFC: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -174391,10 +212365,16 @@ void func_1FC41E14(CPUState* cpu) { } } label_BFC41E14: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC41E14: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41E14u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC41E18: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC41E18: 27BD0020 addiu $sp, $sp, 32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (32)); @@ -174407,6 +212387,9 @@ label_BFC41E18: void func_1FC41E30(CPUState* cpu) { debug_server_log_call_entry(0x1FC41E30u); label_BFC41E30: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC41E30: 3084FFFF andi $a0, $a0, 0xFFFF */ cpu->gpr[4] = cpu->gpr[4] & 0xFFFFu; @@ -174421,12 +212404,18 @@ label_BFC41E30: cpu->gpr[7] = cpu->gpr[6] + cpu->gpr[0]; if (psx_taken_BFC41E3C) goto label_BFC41E4C; label_BFC41E44: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41E44: 03E00008 jr $ra */ /* 0xBFC41E48: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; return; label_BFC41E4C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC41E4C: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -174447,6 +212436,9 @@ label_BFC41E4C: cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[0] + (72)); if (psx_taken_BFC41E64) goto label_BFC41E78; label_BFC41E6C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC41E6C: 24010001 addiu $at, $zero, 1 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -174457,6 +212449,9 @@ label_BFC41E6C: cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); if (psx_taken_BFC41E70) goto label_BFC41EA0; label_BFC41E78: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC41E78: 30F80010 andi $t8, $a3, 0x10 */ cpu->gpr[24] = cpu->gpr[7] & 0x10u; @@ -174467,12 +212462,18 @@ label_BFC41E78: cpu->gpr[25] = cpu->gpr[7] & 0x1u; if (psx_taken_BFC41E7C) goto label_BFC41E8C; label_BFC41E84: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41E84: 24060049 addiu $a2, $zero, 73 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[0] + (73)); /* 0xBFC41E88: 30F90001 andi $t9, $a3, 0x1 */ cpu->gpr[25] = cpu->gpr[7] & 0x1u; label_BFC41E8C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41E8C: 1720000B bne $t9, $zero, 0xBFC41EBC */ uint32_t psx_brA_BFC41E8C = cpu->gpr[25]; uint32_t psx_brB_BFC41E8C = cpu->gpr[0]; @@ -174481,6 +212482,9 @@ label_BFC41E8C: cpu->gpr[9] = cpu->gpr[7] & 0x1000u; if (psx_taken_BFC41E8C) goto label_BFC41EBC; label_BFC41E94: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41E94: 10000008 beq $zero, $zero, 0xBFC41EB8 */ uint32_t psx_brA_BFC41E94 = cpu->gpr[0]; uint32_t psx_brB_BFC41E94 = cpu->gpr[0]; @@ -174489,10 +212493,16 @@ label_BFC41E94: cpu->gpr[6] = cpu->gpr[6] | 0x100u; if (psx_taken_BFC41E94) goto label_BFC41EB8; label_BFC41E9C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC41E9C: 24010002 addiu $at, $zero, 2 */ cpu->gpr[1] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); label_BFC41EA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41EA0: 14810006 bne $a0, $at, 0xBFC41EBC */ uint32_t psx_brA_BFC41EA0 = cpu->gpr[4]; uint32_t psx_brB_BFC41EA0 = cpu->gpr[1]; @@ -174501,6 +212511,9 @@ label_BFC41EA0: cpu->gpr[9] = cpu->gpr[7] & 0x1000u; if (psx_taken_BFC41EA0) goto label_BFC41EBC; label_BFC41EA8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC41EA8: 30E80001 andi $t0, $a3, 0x1 */ cpu->gpr[8] = cpu->gpr[7] & 0x1u; @@ -174511,14 +212524,23 @@ label_BFC41EA8: cpu->gpr[9] = cpu->gpr[7] & 0x1000u; if (psx_taken_BFC41EAC) goto label_BFC41EBC; label_BFC41EB4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC41EB4: 24060248 addiu $a2, $zero, 584 */ cpu->gpr[6] = (uint32_t)((int32_t)cpu->gpr[0] + (584)); label_BFC41EB8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC41EB8: 30E91000 andi $t1, $a3, 0x1000 */ cpu->gpr[9] = cpu->gpr[7] & 0x1000u; label_BFC41EBC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41EBC: 11200002 beq $t1, $zero, 0xBFC41EC8 */ uint32_t psx_brA_BFC41EBC = cpu->gpr[9]; uint32_t psx_brB_BFC41EBC = cpu->gpr[0]; @@ -174527,10 +212549,16 @@ label_BFC41EBC: /* nop */ if (psx_taken_BFC41EBC) goto label_BFC41EC8; label_BFC41EC4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC41EC4: 34C60010 ori $a2, $a2, 0x10 */ cpu->gpr[6] = cpu->gpr[6] | 0x10u; label_BFC41EC8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC41EC8: A4660004 sh $a2, 4($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (4)); if (psx_addr & 1u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41EC8u); return; } g_debug_last_store_pc = 0xBFC41EC8u; cpu->write_half(psx_addr, (uint16_t)(cpu->gpr[6] & 0xFFFFu)); } @@ -174545,6 +212573,9 @@ label_BFC41EC8: void func_1FC41ED8(CPUState* cpu) { debug_server_log_call_entry(0x1FC41ED8u); label_BFC41ED8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC41ED8: 3084FFFF andi $a0, $a0, 0xFFFF */ cpu->gpr[4] = cpu->gpr[4] & 0xFFFFu; @@ -174557,12 +212588,18 @@ label_BFC41ED8: /* nop */ if (psx_taken_BFC41EE0) goto label_BFC41EF0; label_BFC41EE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41EE8: 03E00008 jr $ra */ /* 0xBFC41EEC: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; return; label_BFC41EF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC41EF0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -174585,6 +212622,9 @@ label_BFC41EF0: void func_1FC41F10(CPUState* cpu) { debug_server_log_call_entry(0x1FC41F10u); label_BFC41F10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC41F10: 3C028008 lui $v0, 0x8008 */ cpu->gpr[2] = 0x80080000u; @@ -174613,12 +212653,18 @@ label_BFC41F10: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC41F3Cu); return; } g_debug_last_store_pc = 0xBFC41F3Cu; cpu->write_word(psx_addr, cpu->gpr[25]); } if (psx_taken_BFC41F38) goto label_BFC41F48; label_BFC41F40: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41F40: 03E00008 jr $ra */ /* 0xBFC41F44: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; return; label_BFC41F48: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC41F48: 24020001 addiu $v0, $zero, 1 */ cpu->gpr[2] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -174631,6 +212677,9 @@ label_BFC41F48: void func_1FC41F54(CPUState* cpu) { debug_server_log_call_entry(0x1FC41F54u); label_BFC41F54: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC41F54: 3084FFFF andi $a0, $a0, 0xFFFF */ cpu->gpr[4] = cpu->gpr[4] & 0xFFFFu; @@ -174663,6 +212712,9 @@ label_BFC41F54: void func_1FC41F88(CPUState* cpu) { debug_server_log_call_entry(0x1FC41F88u); label_BFC41F88: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC41F88: 3084FFFF andi $a0, $a0, 0xFFFF */ cpu->gpr[4] = cpu->gpr[4] & 0xFFFFu; @@ -174675,12 +212727,18 @@ label_BFC41F88: /* nop */ if (psx_taken_BFC41F90) goto label_BFC41FA0; label_BFC41F98: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41F98: 03E00008 jr $ra */ /* 0xBFC41F9C: 00001021 addu $v0, $zero, $zero */ cpu->gpr[2] = cpu->gpr[0] + cpu->gpr[0]; return; label_BFC41FA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC41FA0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -174713,6 +212771,9 @@ void func_1FC41FC0(CPUState* cpu) { } } label_BFC41FC0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC41FC0: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -174736,6 +212797,9 @@ label_BFC41FC0: cpu->gpr[31] = 0x80059FE8u; psx_dispatch(cpu, 0x8005A060u); label_BFC41FE8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC41FE8: 3C042000 lui $a0, 0x2000 */ cpu->gpr[4] = 0x20000000u; @@ -174749,6 +212813,9 @@ label_BFC41FE8: cpu->gpr[31] = 0x80059FFCu; psx_dispatch(cpu, 0x8005ABB0u); label_BFC41FFC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC41FFC: 0C016A60 jal 0xB005A980 */ /* 0xBFC42000: 00002021 addu $a0, $zero, $zero */ @@ -174756,6 +212823,9 @@ label_BFC41FFC: cpu->gpr[31] = 0x8005A004u; psx_dispatch(cpu, 0x8005A980u); label_BFC42004: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC42004: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42004u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -174778,6 +212848,9 @@ void func_1FC42014(CPUState* cpu) { } } label_BFC42014: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC42014: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -174789,6 +212862,9 @@ label_BFC42014: cpu->gpr[31] = 0x8005A024u; psx_dispatch(cpu, 0x8005ABC0u); label_BFC42024: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC42024: 3C02800E lui $v0, 0x800E */ cpu->gpr[2] = 0x800E0000u; @@ -174815,6 +212891,9 @@ void func_1FC4203C(CPUState* cpu) { } } label_BFC4203C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC4203C: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -174826,6 +212905,9 @@ label_BFC4203C: cpu->gpr[31] = 0x8005A04Cu; psx_dispatch(cpu, 0x8005ABD0u); label_BFC4204C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC4204C: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC4204Cu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -174848,6 +212930,9 @@ void func_1FC42060(CPUState* cpu) { } } label_BFC42060: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC42060: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -174867,6 +212952,9 @@ label_BFC42060: cpu->gpr[31] = 0x8005A080u; psx_dispatch(cpu, cpu->gpr[15]); label_BFC42080: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC42080: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42080u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -174889,6 +212977,9 @@ void func_1FC42090(CPUState* cpu) { } } label_BFC42090: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC42090: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -174908,6 +212999,9 @@ label_BFC42090: cpu->gpr[31] = 0x8005A0B0u; psx_dispatch(cpu, cpu->gpr[15]); label_BFC420B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC420B0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC420B0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -174930,6 +213024,9 @@ void func_1FC420C0(CPUState* cpu) { } } label_BFC420C0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC420C0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -174949,6 +213046,9 @@ label_BFC420C0: cpu->gpr[31] = 0x8005A0E0u; psx_dispatch(cpu, cpu->gpr[15]); label_BFC420E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC420E0: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC420E0u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -174971,6 +213071,9 @@ void func_1FC420F0(CPUState* cpu) { } } label_BFC420F0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC420F0: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -174990,6 +213093,9 @@ label_BFC420F0: cpu->gpr[31] = 0x8005A110u; psx_dispatch(cpu, cpu->gpr[15]); label_BFC42110: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC42110: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42110u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -175012,6 +213118,9 @@ void func_1FC42120(CPUState* cpu) { } } label_BFC42120: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC42120: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -175031,6 +213140,9 @@ label_BFC42120: cpu->gpr[31] = 0x8005A140u; psx_dispatch(cpu, cpu->gpr[15]); label_BFC42140: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC42140: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42140u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -175054,6 +213166,9 @@ void func_1FC42160(CPUState* cpu) { } } label_BFC42160: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC42160: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -175068,6 +213183,9 @@ label_BFC42160: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42170u); return; } g_debug_last_store_pc = 0xBFC42170u; cpu->write_word(psx_addr, cpu->gpr[31]); } if (psx_taken_BFC4216C) { cpu->pc = 0xBFC42370u; return; } label_BFC42174: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC42174: 0C016AA4 jal 0xB005AA90 */ /* 0xBFC42178: AFB10034 sw $s1, 52($sp) */ @@ -175075,6 +213193,9 @@ label_BFC42174: cpu->gpr[31] = 0x8005A17Cu; psx_dispatch(cpu, 0x8005AA90u); label_BFC4217C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC4217C: 0C01692A jal 0xB005A4A8 */ /* 0xBFC42180: 00000000 nop */ @@ -175082,6 +213203,9 @@ label_BFC4217C: cpu->gpr[31] = 0x8005A184u; psx_dispatch(cpu, 0x8005A4A8u); label_BFC42184: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(12u); +#endif psx_check_interrupts(cpu); /* 0xBFC42184: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -175108,6 +213232,9 @@ label_BFC42184: /* 0xBFC421B0: 24110003 addiu $s1, $zero, 3 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); label_BFC421B4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC421B4: AC400000 sw $zero, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC421B4u); return; } g_debug_last_store_pc = 0xBFC421B4u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -175124,6 +213251,9 @@ label_BFC421B4: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC421C8u); return; } g_debug_last_store_pc = 0xBFC421C8u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC421C4) goto label_BFC421B4; label_BFC421CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC421CC: 3C04800E lui $a0, 0x800E */ cpu->gpr[4] = 0x800E0000u; @@ -175147,6 +213277,9 @@ void func_1FC421D8(CPUState* cpu) { } } label_BFC421D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC421D8: 10400050 beq $v0, $zero, 0xBFC4231C */ uint32_t psx_brA_BFC421D8 = cpu->gpr[2]; uint32_t psx_brB_BFC421D8 = cpu->gpr[0]; @@ -175155,6 +213288,9 @@ label_BFC421D8: /* nop */ if (psx_taken_BFC421D8) { cpu->pc = 0xBFC4231Cu; return; } label_BFC421E0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC421E0: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -175191,6 +213327,9 @@ label_BFC421E0: cpu->gpr[20] = (uint32_t)((int32_t)cpu->gpr[0] + (256)); if (psx_taken_BFC42218) { cpu->pc = 0xBFC42308u; return; } label_BFC42220: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC42220: AFB20020 sw $s2, 32($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (32)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42220u); return; } g_debug_last_store_pc = 0xBFC42220u; cpu->write_word(psx_addr, cpu->gpr[18]); } @@ -175207,6 +213346,9 @@ label_BFC42220: /* 0xBFC42238: 02801021 addu $v0, $s4, $zero */ cpu->gpr[2] = cpu->gpr[20] + cpu->gpr[0]; label_BFC4223C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC4223C: 14400009 bne $v0, $zero, 0xBFC42264 */ uint32_t psx_brA_BFC4223C = cpu->gpr[2]; uint32_t psx_brB_BFC4223C = cpu->gpr[0]; @@ -175215,6 +213357,9 @@ label_BFC4223C: cpu->gpr[20] = (uint32_t)((int32_t)cpu->gpr[20] + (-1)); if (psx_taken_BFC4223C) goto label_BFC42264; label_BFC42244: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC42244: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -175224,6 +213369,9 @@ label_BFC42244: cpu->gpr[31] = 0x8005A250u; psx_dispatch(cpu, 0x8005A910u); label_BFC42250: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC42250: 8FB00024 lw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42250u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -175238,6 +213386,9 @@ label_BFC42250: /* nop */ if (psx_taken_BFC4225C) { cpu->pc = 0xBFC42308u; return; } label_BFC42264: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC42264: 00008821 addu $s1, $zero, $zero */ cpu->gpr[17] = cpu->gpr[0] + cpu->gpr[0]; @@ -175257,6 +213408,9 @@ void func_1FC4226C(CPUState* cpu) { } } label_BFC4226C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC4226C: 3C0B800E lui $t3, 0x800E */ cpu->gpr[11] = 0x800E0000u; @@ -175279,6 +213433,9 @@ label_BFC4226C: /* nop */ if (psx_taken_BFC42288) goto label_BFC422CC; label_BFC42290: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC42290: 0200C827 nor $t9, $s0, $zero */ cpu->gpr[25] = ~(cpu->gpr[16] | cpu->gpr[0]); @@ -175299,6 +213456,9 @@ label_BFC42290: /* nop */ if (psx_taken_BFC422A8) goto label_BFC422CC; label_BFC422B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC422B0: 0040F809 jalr $ra, $v0 */ /* 0xBFC422B4: 00000000 nop */ @@ -175306,6 +213466,9 @@ label_BFC422B0: cpu->gpr[31] = 0x8005A2B8u; psx_dispatch(cpu, cpu->gpr[2]); label_BFC422B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC422B8: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -175318,6 +213481,9 @@ label_BFC422B8: /* 0xBFC422C8: 00000000 nop */ /* nop */ label_BFC422CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC422CC: 26310001 addiu $s1, $s1, 1 */ cpu->gpr[17] = (uint32_t)((int32_t)cpu->gpr[17] + (1)); @@ -175328,6 +213494,9 @@ label_BFC422CC: cpu->gpr[16] = cpu->gpr[16] << 1u; if (psx_taken_BFC422D0) goto label_BFC4226C; label_BFC422D8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC422D8: 3C0A800E lui $t2, 0x800E */ cpu->gpr[10] = 0x800E0000u; @@ -175348,6 +213517,9 @@ label_BFC422D8: cpu->gpr[2] = cpu->gpr[20] + cpu->gpr[0]; if (psx_taken_BFC422F0) { cpu->pc = 0xBFC4223Cu; return; } label_BFC422F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC422F8: 8FB00024 lw $s0, 36($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (36)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC422F8u); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -175371,6 +213543,9 @@ void func_1FC42308(CPUState* cpu) { } } label_BFC42308: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC42308: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -175380,6 +213555,9 @@ label_BFC42308: cpu->gpr[31] = 0x8005A314u; psx_dispatch(cpu, 0x8005ABA0u); label_BFC42314: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC42314: 8FB4002C lw $s4, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42314u); return; } cpu->gpr[20] = cpu->read_word(psx_addr); } @@ -175402,6 +213580,9 @@ void func_1FC4231C(CPUState* cpu) { } } label_BFC4231C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC4231C: 3C0F800E lui $t7, 0x800E */ cpu->gpr[15] = 0x800E0000u; @@ -175419,6 +213600,9 @@ label_BFC4231C: cpu->gpr[31] = 0x8005A338u; psx_dispatch(cpu, 0x8005ABF0u); label_BFC42338: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC42338: 24180001 addiu $t8, $zero, 1 */ cpu->gpr[24] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -175430,6 +213614,9 @@ label_BFC42338: cpu->gpr[31] = 0x8005A348u; psx_dispatch(cpu, 0x8005A540u); label_BFC42348: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC42348: 3C198008 lui $t9, 0x8008 */ cpu->gpr[25] = 0x80080000u; @@ -175441,6 +213628,9 @@ label_BFC42348: cpu->gpr[31] = 0x8005A358u; psx_dispatch(cpu, 0x8005A640u); label_BFC42358: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC42358: 3C088008 lui $t0, 0x8008 */ cpu->gpr[8] = 0x80080000u; @@ -175452,6 +213642,9 @@ label_BFC42358: cpu->gpr[31] = 0x8005A368u; psx_dispatch(cpu, 0x8005AA10u); label_BFC42368: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC42368: 8FB10034 lw $s1, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42368u); return; } cpu->gpr[17] = cpu->read_word(psx_addr); } @@ -175463,6 +213656,9 @@ label_BFC42368: void func_1FC42370(CPUState* cpu) { debug_server_log_call_entry(0x1FC42370u); label_BFC42370: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC42370: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42370u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -175477,6 +213673,9 @@ label_BFC42370: void func_1FC42380(CPUState* cpu) { debug_server_log_call_entry(0x1FC42380u); label_BFC42380: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC42380: 3C0F800E lui $t7, 0x800E */ cpu->gpr[15] = 0x800E0000u; @@ -175497,6 +213696,9 @@ label_BFC42380: /* nop */ if (psx_taken_BFC42398) goto label_BFC4241C; label_BFC423A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC423A0: 10A00010 beq $a1, $zero, 0xBFC423E4 */ uint32_t psx_brA_BFC423A0 = cpu->gpr[5]; uint32_t psx_brB_BFC423A0 = cpu->gpr[0]; @@ -175505,6 +213707,9 @@ label_BFC423A0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC423A4u); return; } g_debug_last_store_pc = 0xBFC423A4u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC423A0) goto label_BFC423E4; label_BFC423A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(15u); +#endif psx_check_interrupts(cpu); /* 0xBFC423A8: 3C068008 lui $a2, 0x8008 */ cpu->gpr[6] = 0x80080000u; @@ -175539,6 +213744,9 @@ label_BFC423A8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-244)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC423E0u); return; } g_debug_last_store_pc = 0xBFC423E0u; cpu->write_word(psx_addr, cpu->gpr[11]); } if (psx_taken_BFC423DC) goto label_BFC4241C; label_BFC423E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(14u); +#endif psx_check_interrupts(cpu); /* 0xBFC423E4: 3C068008 lui $a2, 0x8008 */ cpu->gpr[6] = 0x80080000u; @@ -175569,6 +213777,9 @@ label_BFC423E4: /* 0xBFC42418: AC39FF0C sw $t9, -244($at) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-244)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42418u); return; } g_debug_last_store_pc = 0xBFC42418u; cpu->write_word(psx_addr, cpu->gpr[25]); } label_BFC4241C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC4241C: 03E00008 jr $ra */ /* 0xBFC42420: 00601021 addu $v0, $v1, $zero */ @@ -175588,6 +213799,9 @@ void func_1FC42424(CPUState* cpu) { } } label_BFC42424: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC42424: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -175599,6 +213813,9 @@ label_BFC42424: cpu->gpr[31] = 0x8005A434u; psx_dispatch(cpu, 0x8005AA90u); label_BFC42434: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(16u); +#endif psx_check_interrupts(cpu); /* 0xBFC42434: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -175633,6 +213850,9 @@ label_BFC42434: /* 0xBFC42470: 2463FF0C addiu $v1, $v1, -244 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (-244)); label_BFC42474: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC42474: AC400000 sw $zero, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42474u); return; } g_debug_last_store_pc = 0xBFC42474u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -175649,6 +213869,9 @@ label_BFC42474: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42488u); return; } g_debug_last_store_pc = 0xBFC42488u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC42484) goto label_BFC42474; label_BFC4248C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC4248C: 3C018008 lui $at, 0x8008 */ cpu->gpr[1] = 0x80080000u; @@ -175658,6 +213881,9 @@ label_BFC4248C: cpu->gpr[31] = 0x8005A498u; psx_dispatch(cpu, 0x8005AA10u); label_BFC42498: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC42498: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42498u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -175681,6 +213907,9 @@ void func_1FC424A8(CPUState* cpu) { } } label_BFC424A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(27u); +#endif psx_check_interrupts(cpu); /* 0xBFC424A8: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -175739,6 +213968,9 @@ label_BFC424A8: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42510u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC4250C) goto label_BFC42534; label_BFC42514: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC42514: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -175748,6 +213980,9 @@ label_BFC42514: cpu->gpr[31] = 0x8005A520u; psx_dispatch(cpu, 0x8005A910u); label_BFC42520: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC42520: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -175759,10 +213994,16 @@ label_BFC42520: cpu->gpr[31] = 0x8005A530u; psx_dispatch(cpu, 0x8005A8D0u); label_BFC42530: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC42530: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42530u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC42534: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC42534: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -175785,6 +214026,9 @@ void func_1FC42540(CPUState* cpu) { } } label_BFC42540: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC42540: 27BDFFE0 addiu $sp, $sp, -32 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-32)); @@ -175802,6 +214046,9 @@ label_BFC42540: cpu->gpr[31] = 0x8005A55Cu; psx_dispatch(cpu, 0x8005A090u); label_BFC4255C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC4255C: 8FA50018 lw $a1, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC4255Cu); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -175814,6 +214061,9 @@ label_BFC4255C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42568u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC42564) goto label_BFC425AC; label_BFC4256C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC4256C: 3C0F8008 lui $t7, 0x8008 */ cpu->gpr[15] = 0x80080000u; @@ -175837,6 +214087,9 @@ label_BFC4256C: cpu->gpr[31] = 0x8005A594u; psx_dispatch(cpu, 0x8005A980u); label_BFC42594: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC42594: 24040003 addiu $a0, $zero, 3 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (3)); @@ -175846,6 +214099,9 @@ label_BFC42594: cpu->gpr[31] = 0x8005A5A0u; psx_dispatch(cpu, 0x8005AC00u); label_BFC425A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC425A0: 3C01800E lui $at, 0x800E */ cpu->gpr[1] = 0x800E0000u; @@ -175854,6 +214110,9 @@ label_BFC425A0: /* 0xBFC425A8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC425A8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC425AC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC425AC: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -175876,6 +214135,9 @@ void func_1FC425BC(CPUState* cpu) { } } label_BFC425BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC425BC: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -175900,6 +214162,9 @@ label_BFC425BC: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[1] + (-25188)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC425E0u); return; } g_debug_last_store_pc = 0xBFC425E0u; cpu->write_word(psx_addr, cpu->gpr[15]); } if (psx_taken_BFC425DC) goto label_BFC425EC; label_BFC425E4: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC425E4: 0040F809 jalr $ra, $v0 */ /* 0xBFC425E8: 00000000 nop */ @@ -175907,6 +214172,9 @@ label_BFC425E4: cpu->gpr[31] = 0x8005A5ECu; psx_dispatch(cpu, cpu->gpr[2]); label_BFC425EC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC425EC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC425ECu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -175929,6 +214197,9 @@ void func_1FC425FC(CPUState* cpu) { } } label_BFC425FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC425FC: 27BDFFE8 addiu $sp, $sp, -24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-24)); @@ -175940,6 +214211,9 @@ label_BFC425FC: cpu->gpr[31] = 0x8005A60Cu; psx_dispatch(cpu, 0x8005A540u); label_BFC4260C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC4260C: 3C02800E lui $v0, 0x800E */ cpu->gpr[2] = 0x800E0000u; @@ -175956,6 +214230,9 @@ label_BFC4260C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42620u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC4261C) goto label_BFC42634; label_BFC42624: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC42624: 00801021 addu $v0, $a0, $zero */ cpu->gpr[2] = cpu->gpr[4] + cpu->gpr[0]; @@ -175966,6 +214243,9 @@ label_BFC42624: /* 0xBFC42630: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42630u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC42634: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC42634: 27BD0018 addiu $sp, $sp, 24 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (24)); @@ -175986,6 +214266,9 @@ void func_1FC42640(CPUState* cpu) { } } label_BFC42640: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC42640: 27BDFFD8 addiu $sp, $sp, -40 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-40)); @@ -176003,6 +214286,9 @@ label_BFC42640: cpu->gpr[31] = 0x8005A65Cu; psx_dispatch(cpu, 0x8005A090u); label_BFC4265C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC4265C: 8FA5001C lw $a1, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC4265Cu); return; } cpu->gpr[5] = cpu->read_word(psx_addr); } @@ -176015,6 +214301,9 @@ label_BFC4265C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42668u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC42664) goto label_BFC426CC; label_BFC4266C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC4266C: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -176043,6 +214332,9 @@ label_BFC4266C: /* 0xBFC4269C: 2463FF6C addiu $v1, $v1, -148 */ cpu->gpr[3] = (uint32_t)((int32_t)cpu->gpr[3] + (-148)); label_BFC426A0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC426A0: AC400000 sw $zero, 0($v0) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC426A0u); return; } g_debug_last_store_pc = 0xBFC426A0u; cpu->write_word(psx_addr, cpu->gpr[0]); } @@ -176059,6 +214351,9 @@ label_BFC426A0: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (-4)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC426B4u); return; } g_debug_last_store_pc = 0xBFC426B4u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC426B0) goto label_BFC426A0; label_BFC426B8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC426B8: 3C0F8006 lui $t7, 0x8006 */ cpu->gpr[15] = 0x80060000u; @@ -176071,6 +214366,9 @@ label_BFC426B8: /* 0xBFC426C8: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC426C8u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC426CC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC426CC: 3C028006 lui $v0, 0x8006 */ cpu->gpr[2] = 0x80060000u; @@ -176093,6 +214391,9 @@ void func_1FC426DC(CPUState* cpu) { } } label_BFC426DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC426DC: 3C0E8008 lui $t6, 0x8008 */ cpu->gpr[14] = 0x80080000u; @@ -176112,6 +214413,9 @@ label_BFC426DC: cpu->gpr[31] = 0x8005A6FCu; psx_dispatch(cpu, 0x8005A910u); label_BFC426FC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC426FC: 8FBF0014 lw $ra, 20($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (20)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC426FCu); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } @@ -176135,6 +214439,9 @@ void func_1FC4270C(CPUState* cpu) { } } label_BFC4270C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC4270C: 27BDFFB8 addiu $sp, $sp, -72 */ cpu->gpr[29] = (uint32_t)((int32_t)cpu->gpr[29] + (-72)); @@ -176159,6 +214466,9 @@ label_BFC4270C: /* nop */ if (psx_taken_BFC4272C) goto label_BFC427F8; label_BFC42734: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(13u); +#endif psx_check_interrupts(cpu); /* 0xBFC42734: AFB2002C sw $s2, 44($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (44)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42734u); return; } g_debug_last_store_pc = 0xBFC42734u; cpu->write_word(psx_addr, cpu->gpr[18]); } @@ -176187,10 +214497,16 @@ label_BFC42734: /* 0xBFC42764: 00008021 addu $s0, $zero, $zero */ cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; label_BFC42768: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC42768: 02A08821 addu $s1, $s5, $zero */ cpu->gpr[17] = cpu->gpr[21] + cpu->gpr[0]; label_BFC4276C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC4276C: 8C780000 lw $t8, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC4276Cu); return; } cpu->gpr[24] = cpu->read_word(psx_addr); } @@ -176205,6 +214521,9 @@ label_BFC4276C: /* nop */ if (psx_taken_BFC42778) goto label_BFC427BC; label_BFC42780: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(10u); +#endif psx_check_interrupts(cpu); /* 0xBFC42780: 8C680000 lw $t0, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42780u); return; } cpu->gpr[8] = cpu->read_word(psx_addr); } @@ -176229,6 +214548,9 @@ label_BFC42780: /* nop */ if (psx_taken_BFC427A0) goto label_BFC427BC; label_BFC427A8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC427A8: 0040F809 jalr $ra, $v0 */ /* 0xBFC427AC: 00000000 nop */ @@ -176236,6 +214558,9 @@ label_BFC427A8: cpu->gpr[31] = 0x8005A7B0u; psx_dispatch(cpu, cpu->gpr[2]); label_BFC427B0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC427B0: 3C038008 lui $v1, 0x8008 */ cpu->gpr[3] = 0x80080000u; @@ -176244,6 +214569,9 @@ label_BFC427B0: /* 0xBFC427B8: 00000000 nop */ /* nop */ label_BFC427BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC427BC: 26100001 addiu $s0, $s0, 1 */ cpu->gpr[16] = (uint32_t)((int32_t)cpu->gpr[16] + (1)); @@ -176254,6 +214582,9 @@ label_BFC427BC: cpu->gpr[17] = cpu->gpr[17] << 1u; if (psx_taken_BFC427C0) goto label_BFC4276C; label_BFC427C8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC427C8: 8C6D0000 lw $t5, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC427C8u); return; } cpu->gpr[13] = cpu->read_word(psx_addr); } @@ -176268,6 +214599,9 @@ label_BFC427C8: cpu->gpr[16] = cpu->gpr[0] + cpu->gpr[0]; if (psx_taken_BFC427D4) goto label_BFC42768; label_BFC427DC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(7u); +#endif psx_check_interrupts(cpu); /* 0xBFC427DC: 8FB00034 lw $s0, 52($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (52)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC427DCu); return; } cpu->gpr[16] = cpu->read_word(psx_addr); } @@ -176284,6 +214618,9 @@ label_BFC427DC: /* 0xBFC427F4: 00000000 nop */ /* nop */ label_BFC427F8: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(6u); +#endif psx_check_interrupts(cpu); /* 0xBFC427F8: 8C6F0000 lw $t7, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC427F8u); return; } cpu->gpr[15] = cpu->read_word(psx_addr); } @@ -176300,6 +214637,9 @@ label_BFC427F8: /* nop */ if (psx_taken_BFC42808) goto label_BFC42824; label_BFC42810: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(5u); +#endif psx_check_interrupts(cpu); /* 0xBFC42810: 8C790000 lw $t9, 0($v1) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[3] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42810u); return; } cpu->gpr[25] = cpu->read_word(psx_addr); } @@ -176314,6 +214654,9 @@ label_BFC42810: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42820u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } if (psx_taken_BFC4281C) goto label_BFC42838; label_BFC42824: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC42824: 3C048008 lui $a0, 0x8008 */ cpu->gpr[4] = 0x80080000u; @@ -176325,10 +214668,16 @@ label_BFC42824: cpu->gpr[31] = 0xBFC42834u; psx_dispatch(cpu, 0xB005A910u); label_BFC42834: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(1u); +#endif psx_check_interrupts(cpu); /* 0xBFC42834: 8FBF001C lw $ra, 28($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (28)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42834u); return; } cpu->gpr[31] = cpu->read_word(psx_addr); } label_BFC42838: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC42838: 8FB60018 lw $s6, 24($sp) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[29] + (24)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42838u); return; } cpu->gpr[22] = cpu->read_word(psx_addr); } @@ -176341,6 +214690,9 @@ label_BFC42838: void func_1FC42844(CPUState* cpu) { debug_server_log_call_entry(0x1FC42844u); label_BFC42844: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(8u); +#endif psx_check_interrupts(cpu); /* 0xBFC42844: 3C0F800E lui $t7, 0x800E */ cpu->gpr[15] = 0x800E0000u; @@ -176361,6 +214713,9 @@ label_BFC42844: /* nop */ if (psx_taken_BFC4285C) goto label_BFC428BC; label_BFC42864: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC42864: 10A0000C beq $a1, $zero, 0xBFC42898 */ uint32_t psx_brA_BFC42864 = cpu->gpr[5]; uint32_t psx_brB_BFC42864 = cpu->gpr[0]; @@ -176369,6 +214724,9 @@ label_BFC42864: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[2] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42868u); return; } g_debug_last_store_pc = 0xBFC42868u; cpu->write_word(psx_addr, cpu->gpr[0]); } if (psx_taken_BFC42864) goto label_BFC42898; label_BFC4286C: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(11u); +#endif psx_check_interrupts(cpu); /* 0xBFC4286C: 3C068008 lui $a2, 0x8008 */ cpu->gpr[6] = 0x80080000u; @@ -176395,6 +214753,9 @@ label_BFC4286C: { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC42894u); return; } g_debug_last_store_pc = 0xBFC42894u; cpu->write_word(psx_addr, cpu->gpr[10]); } if (psx_taken_BFC42890) goto label_BFC428BC; label_BFC42898: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(9u); +#endif psx_check_interrupts(cpu); /* 0xBFC42898: 3C068008 lui $a2, 0x8008 */ cpu->gpr[6] = 0x80080000u; @@ -176415,6 +214776,9 @@ label_BFC42898: /* 0xBFC428B8: ACCF0000 sw $t7, 0($a2) */ { uint32_t psx_addr = (uint32_t)((int32_t)cpu->gpr[6] + (0)); if (psx_addr & 3u) { psx_unaligned_access(cpu, psx_addr, 0xBFC428B8u); return; } g_debug_last_store_pc = 0xBFC428B8u; cpu->write_word(psx_addr, cpu->gpr[15]); } label_BFC428BC: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(2u); +#endif psx_check_interrupts(cpu); /* 0xBFC428BC: 03E00008 jr $ra */ /* 0xBFC428C0: 00601021 addu $v0, $v1, $zero */ @@ -176425,6 +214789,9 @@ label_BFC428BC: void func_1FC42910(CPUState* cpu) { debug_server_log_call_entry(0x1FC42910u); label_BFC42910: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC42910: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -176437,6 +214804,9 @@ label_BFC42910: void func_1FC42A10(CPUState* cpu) { debug_server_log_call_entry(0x1FC42A10u); label_BFC42A10: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC42A10: 24040002 addiu $a0, $zero, 2 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (2)); @@ -176451,6 +214821,9 @@ label_BFC42A10: void func_1FC42A90(CPUState* cpu) { debug_server_log_call_entry(0x1FC42A90u); label_BFC42A90: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(4u); +#endif psx_check_interrupts(cpu); /* 0xBFC42A90: 24040001 addiu $a0, $zero, 1 */ cpu->gpr[4] = (uint32_t)((int32_t)cpu->gpr[0] + (1)); @@ -176465,6 +214838,9 @@ label_BFC42A90: void func_1FC42BA0(CPUState* cpu) { debug_server_log_call_entry(0x1FC42BA0u); label_BFC42BA0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC42BA0: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); @@ -176477,6 +214853,9 @@ label_BFC42BA0: void func_1FC42BE0(CPUState* cpu) { debug_server_log_call_entry(0x1FC42BE0u); label_BFC42BE0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC42BE0: 240A00A0 addiu $t2, $zero, 160 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (160)); @@ -176489,6 +214868,9 @@ label_BFC42BE0: void func_1FC42BF0(CPUState* cpu) { debug_server_log_call_entry(0x1FC42BF0u); label_BFC42BF0: +#ifdef PSX_ENABLE_BLOCK_CYCLES + psx_advance_cycles(3u); +#endif psx_check_interrupts(cpu); /* 0xBFC42BF0: 240A00B0 addiu $t2, $zero, 176 */ cpu->gpr[10] = (uint32_t)((int32_t)cpu->gpr[0] + (176)); diff --git a/recompiler/src/full_function_emitter.cpp b/recompiler/src/full_function_emitter.cpp index c47385b6..180b3828 100644 --- a/recompiler/src/full_function_emitter.cpp +++ b/recompiler/src/full_function_emitter.cpp @@ -265,6 +265,27 @@ bool FullFunctionEmitter::emit_function( } } + // Phase 1.0e-d: precompute per-block cycle estimates. For each block + // leader L, count instructions from L up to (but not including) the + // next leader address (or end of function). Conservative 1 cycle per + // instruction; precise R3000A timing (load delays, multiply/divide, + // memory stalls) is a future refinement. Includes terminator and + // delay slot in the block before the next leader. */ + std::map block_cycles; + for (auto it = addr_to_raw.begin(); it != addr_to_raw.end(); ++it) { + uint32_t leader = it->first; + if (!block_leaders.count(leader)) continue; + uint32_t count = 0; + auto walker = it; + while (walker != addr_to_raw.end()) { + count++; + ++walker; + if (walker == addr_to_raw.end()) break; + if (block_leaders.count(walker->first)) break; + } + block_cycles[leader] = count; + } + for (auto it = addr_to_raw.begin(); it != addr_to_raw.end(); ++it) { uint32_t addr = it->first; uint32_t raw = it->second; @@ -274,6 +295,16 @@ bool FullFunctionEmitter::emit_function( // can service vblank and other hardware interrupts. if (block_leaders.count(addr)) { out += fmt::format("label_{:08X}:\n", addr); + // Phase 1.0e-d: advance guest cycles for this block. Macro- + // gated; when off, generated code matches pre-1.0e-d output. + uint32_t bcyc = 0; + auto bcit = block_cycles.find(addr); + if (bcit != block_cycles.end()) bcyc = bcit->second; + if (bcyc > 0) { + out += "#ifdef PSX_ENABLE_BLOCK_CYCLES\n"; + out += fmt::format(" psx_advance_cycles({}u);\n", bcyc); + out += "#endif\n"; + } out += " psx_check_interrupts(cpu);\n"; } @@ -975,7 +1006,13 @@ EmitStats FullFunctionEmitter::emit( full_c += "extern void gte_write_data(CPUState* cpu, uint8_t reg, uint32_t val);\n"; full_c += "extern uint32_t gte_read_data(CPUState* cpu, uint8_t reg);\n"; full_c += "extern void debug_server_log_call_entry(uint32_t func_addr);\n"; - full_c += "extern uint32_t g_debug_last_store_pc;\n\n"; + full_c += "extern uint32_t g_debug_last_store_pc;\n"; + full_c += "/* Phase 1.0e-d: per-block guest cycle accounting.\n"; + full_c += " * Compile generated code with -DPSX_ENABLE_BLOCK_CYCLES=1 to\n"; + full_c += " * activate cycle advancement at every block leader. */\n"; + full_c += "#ifdef PSX_ENABLE_BLOCK_CYCLES\n"; + full_c += "extern void psx_advance_cycles(uint32_t cycles);\n"; + full_c += "#endif\n\n"; // Forward declare ALL functions so intra-file calls resolve. for (const auto& fn : dr.functions) { diff --git a/runtime/CMakeLists.txt b/runtime/CMakeLists.txt index 47eb31e5..f13ca703 100644 --- a/runtime/CMakeLists.txt +++ b/runtime/CMakeLists.txt @@ -43,6 +43,7 @@ target_include_directories(psx-runtime PRIVATE include) target_compile_definitions(psx-runtime PRIVATE PSX_NATIVE_BUILD=1 DEFAULT_DEBUG_PORT=4370 + PSX_ENABLE_BLOCK_CYCLES=1 $<$:SDL_MAIN_HANDLED> ) @@ -168,6 +169,7 @@ if(NOT MSVC AND EXISTS "${BEETLE_LIB}") PSX_NATIVE_BUILD=1 ENABLE_BEETLE_PSX_ORACLE=1 DEFAULT_DEBUG_PORT=4370 + PSX_ENABLE_BLOCK_CYCLES=1 ) target_link_libraries(psx-beetleoracle PRIVATE diff --git a/runtime/src/psx_cycles.c b/runtime/src/psx_cycles.c index 0738dd64..c6c38fa4 100644 --- a/runtime/src/psx_cycles.c +++ b/runtime/src/psx_cycles.c @@ -1,9 +1,12 @@ /* psx_cycles.c — PSX guest CPU cycle clock. * - * Phase 1.0e-a: scaffold only. psx_advance_cycles updates the counter - * but invokes no peripheral hooks. 1.0e-b will dispatch to - * sio_advance(cycles); 1.0e-c will add gpu_advance for VBlank; later - * slices add timers/CDROM. */ + * Phase 1.0e-d minimal slice: receives per-block cycle counts from + * generated code (when compiled with -DPSX_ENABLE_BLOCK_CYCLES=1) and + * accumulates them in psx_cycle_count. NO peripheral hooks — wiring + * sio_tick here would corrupt the legacy IRQ countdown (it decrements + * unconditionally per call; millions of calls per second drain it in + * microseconds). A future slice with a peripheral-only sio_advance + * (no legacy countdown side effect) will wire SIO. */ #include "psx_cycles.h" @@ -12,8 +15,7 @@ uint64_t psx_cycle_count = 0; void psx_advance_cycles(uint32_t cycles) { if (cycles == 0) return; psx_cycle_count += (uint64_t)cycles; - /* Phase 1.0e-a: peripheral hooks empty. - * 1.0e-b will call: sio_advance(cycles), gpu_advance(cycles), etc. */ + /* No peripheral dispatch in this slice — see comment above. */ } uint64_t psx_get_cycle_count(void) {