Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
b1c585f
implement core functionalities for PS2 to Windows port
caprado Nov 12, 2025
6142fc0
Implement utility functions for managing a global pointer array and e…
caprado Nov 13, 2025
fe342cf
Implement Windows timing functionality to replace PS2 timing logic
caprado Jan 3, 2026
8497767
Update upload-artifact action to version 4 in track-progress workflow
caprado Jan 3, 2026
2b5ab63
Update progress data commit to push to progress-data branch instead o…
caprado Jan 3, 2026
8fbbdf5
Add CMakeLists.txt and Windows build script for project setup
caprado Jan 3, 2026
6ac15aa
Merge remote-tracking branch 'origin/main' into categorize/system
caprado Jan 3, 2026
ef2c78f
Update track-progress workflow to push progress data directly to main…
caprado Jan 3, 2026
d8f4d05
Add git pull --rebase before pushing updated progress data
caprado Jan 3, 2026
9ae4bec
Merge branch 'main' into categorize/system
caprado Jan 3, 2026
bb27891
Update progress data commit condition to allow manual workflow dispatch
caprado Jan 3, 2026
7cc87f5
Merge branch 'categorize/system' of https://github.com/caprado/REOF2 …
caprado Jan 3, 2026
0e1e590
Merge remote-tracking branch 'origin/main' into categorize/system
caprado Jan 3, 2026
90a759d
Fix image link in README to use absolute URL for decompilation progre…
caprado Jan 3, 2026
9bee234
Add function integrity verification workflow and script
caprado Jan 3, 2026
0de9443
update extracted functions & tools
caprado Jan 3, 2026
87bb0e3
Refactor: Remove obsolete rendering, resource entry, and graphics buf…
caprado Jan 3, 2026
baa0ece
Classify/Refactor src files
caprado Jan 4, 2026
cdce772
Merge branch 'main' into categorize/system
caprado Jan 4, 2026
e04fc85
Refactor: Remove obsolete documentation comments and enhance function…
caprado Jan 4, 2026
002454b
Merge branch 'categorize/system' of https://github.com/caprado/REOF2 …
caprado Jan 4, 2026
0966481
Add new functions and update documentation
caprado Jan 4, 2026
32a01f0
Add new function hashes and clean up obsolete entries in function_has…
caprado Jan 4, 2026
821e727
Enhance function definition pattern matching to exclude C keywords in…
caprado Jan 4, 2026
2ccc724
Refactor updateGameStateManager
caprado Jan 5, 2026
03f7ffe
Enhance TAG_PATTERN to support category, status, and author formats w…
caprado Jan 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
5,774 changes: 2,890 additions & 2,884 deletions .github/data/function_hashes.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion extracted/func_00100230.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ void func_00100230() {
int32_t hi, lo; // Multiply/divide result registers

sp = sp + -0x10; // 0x00100230: addiu $sp, $sp, -0x10
func_00111f90(); // 0x111f40 // 0x00100238: jal 0x111f40
func_00111f40(); // 111f40 // 0x00100238: jal 0x111f40
/* nop */ // 0x0010023c: nop
v0 = ((unsigned)0 < (unsigned)v0) ? 1 : 0; // 0x00100244: sltu $v0, $zero, $v0
return; // 0x00100248: jr $ra
Expand Down
6 changes: 3 additions & 3 deletions extracted/func_00100250.c
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,18 @@ void func_00100250() {
int32_t hi, lo; // Multiply/divide result registers

sp = sp + -0x30; // 0x00100250: addiu $sp, $sp, -0x30
func_00100e38(); // 0x100d98 // 0x00100264: jal 0x100d98
func_00100d98(); // 100d98 // 0x00100264: jal 0x100d98
a0 = 1; // 0x00100268: addiu $a0, $zero, 1
if (v0 != 0) goto label_0x1002a4; // 0x0010026c: bnez $v0, 0x1002a4
func_0011d378(); // 0x11d320 // 0x00100274: jal 0x11d320
func_0011d320(); // 11d320 // 0x00100274: jal 0x11d320
/* nop */ // 0x00100278: nop
v1 = 0x25 << 16; // 0x0010027c: lui $v1, 0x25
a0 = 0x25 << 16; // 0x00100280: lui $a0, 0x25
s0 = g_0024b700; // Global at 0x0024b700 // 0x00100284: lw $s0, -0x4900($v1)
g_0024b700 = s1; // Global at 0x0024b700 // 0x00100288: sw $s1, -0x4900($v1)
g_0024b704 = gp; // Global at 0x0024b704 // 0x0010028c: sw $gp, -0x48fc($a0)
if (v0 == 0) goto label_0x1002a4; // 0x00100290: beqz $v0, 0x1002a4
func_0011d390(); // 0x11d378 // 0x00100298: jal 0x11d378
func_0011d378(); // 11d378 // 0x00100298: jal 0x11d378
/* nop */ // 0x0010029c: nop
label_0x1002a4:
return; // 0x001002b0: jr $ra
Expand Down
2 changes: 1 addition & 1 deletion extracted/func_00100358.c
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ void func_00100358() {
if (v0 <= 0) goto label_0x1003f0; // 0x001003dc: blez $v0, 0x1003f0
a0 = &str_0021fd00; // "Libcdvd bind err CdSearchFile\n" // 0x001003e0: addiu $a0, $s6, -0x300
a1 = g_0024b700; // Global at 0x0024b700 // 0x001003e4: lw $a1, -0x4900($s2)
func_00116598(); // 0x116508 // 0x001003e8: jal 0x116508
func_00116508(); // 116508 // 0x001003e8: jal 0x116508
a2 = g_001edf5c; // Global at 0x001edf5c // 0x001003ec: lw $a2, -0x20a4($s1)
label_0x1003f0:
v1 = g_0024b700; // Global at 0x0024b700 // 0x001003f0: lw $v1, -0x4900($s2)
Expand Down
1 change: 1 addition & 0 deletions extracted/func_001005b0.c
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/** @category system/ps2 @status complete @author caprado */
void func_001005b0() {
// MIPS register variables
int32_t v0, v1, a0, a1, a2, a3, t0, t1, t2, t3, t4, t5, t6, t7, t8, t9;
Expand Down
4 changes: 2 additions & 2 deletions extracted/func_00100668.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,10 @@ void func_00100668() {
a0 = g_001edf30; // Global at 0x001edf30 // 0x001006c4: lw $a0, -0x20d0($v1)
SignalSema(); // 0x1142f0 // 0x001006c8: jal 0x1142f0
a0 = g_001edf20; // Global at 0x001edf20 // 0x001006cc: lw $a0, -0x20e0($s0)
func_0011d378(); // 0x11d320 // 0x001006d0: jal 0x11d320
func_0011d320(); // 11d320 // 0x001006d0: jal 0x11d320
/* nop */ // 0x001006d4: nop
a0 = 0x8000 << 16; // 0x001006d8: lui $a0, 0x8000
func_00116990(); // 0x116940 // 0x001006e0: jal 0x116940
func_00116940(); // 116940 // 0x001006e0: jal 0x116940
a0 = a0 | 0x12; // 0x001006e4: ori $a0, $a0, 0x12
if (s0 == 0) goto label_0x1006fc; // 0x001006e8: beqz $s0, 0x1006fc
return func_0011d390(); // Tail call // 0x001006f4: j 0x11d378
Expand Down
6 changes: 3 additions & 3 deletions extracted/func_00100708.c
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ void func_00100708() {
v0 = 0x1f << 16; // 0x0010070c: lui $v0, 0x1f
v1 = g_001edf40; // Global at 0x001edf40 // 0x0010071c: lw $v1, -0x20c0($v0)
if (v1 >= 0) goto label_0x100738; // 0x00100728: bgez $v1, 0x100738
func_00100858(); // 0x1007e0 // 0x00100730: jal 0x1007e0
func_001007e0(); // 1007e0 // 0x00100730: jal 0x1007e0
/* nop */ // 0x00100734: nop
label_0x100738:
func_0011d378(); // 0x11d320 // 0x00100738: jal 0x11d320
func_0011d320(); // 11d320 // 0x00100738: jal 0x11d320
/* nop */ // 0x0010073c: nop
a1 = 0x25 << 16; // 0x00100740: lui $a1, 0x25
a0 = 0x25 << 16; // 0x00100744: lui $a0, 0x25
Expand All @@ -23,7 +23,7 @@ void func_00100708() {
g_0024b708 = s2; // Global at 0x0024b708 // 0x00100754: sw $s2, -0x48f8($a1)
g_0024b70c = gp; // Global at 0x0024b70c // 0x00100758: sw $gp, -0x48f4($v1)
if (v0 == 0) goto label_0x100770; // 0x0010075c: beqz $v0, 0x100770
func_0011d390(); // 0x11d378 // 0x00100764: jal 0x11d378
func_0011d378(); // 11d378 // 0x00100764: jal 0x11d378
/* nop */ // 0x00100768: nop
label_0x100770:
return; // 0x00100780: jr $ra
Expand Down
6 changes: 3 additions & 3 deletions extracted/func_001007e0.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,16 @@ void func_001007e0() {
sp = sp + -0x40; // 0x001007e0: addiu $sp, $sp, -0x40
s2 = 1; // 0x001007ec: addiu $s2, $zero, 1
s1 = 0x1f << 16; // 0x001007f0: lui $s1, 0x1f
func_0011d378(); // 0x11d320 // 0x001007fc: jal 0x11d320
func_0011d320(); // 11d320 // 0x001007fc: jal 0x11d320
g_001edf24 = s2; // Global at 0x001edf24 // 0x00100800: sw $s2, -0x20dc($s1)
a1 = 0x10 << 16; // 0x00100804: lui $a1, 0x10
a0 = 0x8000 << 16; // 0x00100808: lui $a0, 0x8000
a1 = a1 + 0x788; // 0x00100810: addiu $a1, $a1, 0x788
a0 = a0 | 0x12; // 0x00100814: ori $a0, $a0, 0x12
func_00116940(); // 0x1168c8 // 0x00100818: jal 0x1168c8
func_001168c8(); // 1168c8 // 0x00100818: jal 0x1168c8
if (s0 == 0) goto label_0x100834; // 0x00100820: beqz $s0, 0x100834
v0 = 0x1f << 16; // 0x00100824: lui $v0, 0x1f
func_0011d390(); // 0x11d378 // 0x00100828: jal 0x11d378
func_0011d378(); // 11d378 // 0x00100828: jal 0x11d378
/* nop */ // 0x0010082c: nop
v0 = 0x1f << 16; // 0x00100830: lui $v0, 0x1f
label_0x100834:
Expand Down
22 changes: 11 additions & 11 deletions extracted/func_00100858.c
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ void func_00100858() {

sp = sp + -0xc0; // 0x00100858: addiu $sp, $sp, -0xc0
s6 = 0x1f << 16; // 0x00100874: lui $s6, 0x1f
func_00100668(); // 0x1005b0 // 0x00100890: jal 0x1005b0
func_001005b0(); // 1005b0 // 0x00100890: jal 0x1005b0
local_10 = a2; // 0x00100894: sw $a2, 0x10($sp)
a0 = g_001edf28; // Global at 0x001edf28 // 0x00100898: lw $a0, -0x20d8($s6)
SetOsdConfigParam(); // 0x114330 // 0x0010089c: jal 0x114330
Expand All @@ -26,10 +26,10 @@ void func_00100858() {
g_001edf1c = v1; // Global at 0x001edf1c // 0x001008c4: sw $v1, -0x20e4($a2)
iReferThreadStatus(); // 0x1141e0 // 0x001008c8: jal 0x1141e0
a1 = a1 + -0x48e0; // 0x001008cc: addiu $a1, $a1, -0x48e0
func_00100e38(); // 0x100d98 // 0x001008d0: jal 0x100d98
func_00100d98(); // 100d98 // 0x001008d0: jal 0x100d98
a0 = 1; // 0x001008d4: addiu $a0, $zero, 1
if (v0 != 0) goto label_0x100a70; // 0x001008d8: bnez $v0, 0x100a70
func_00116ee0(); // 0x116d40 // 0x001008e0: jal 0x116d40
func_00116d40(); // 116d40 // 0x001008e0: jal 0x116d40
s1 = 0x1f << 16; // 0x001008e4: lui $s1, 0x1f
v0 = g_001edf44; // Global at 0x001edf44 // 0x001008e8: lw $v0, -0x20bc($s1)
if (v0 >= 0) goto label_0x1009a4; // 0x001008ec: bgez $v0, 0x1009a4
Expand All @@ -55,14 +55,14 @@ void func_00100858() {
label_0x100930:
a1 = 0x8000 << 16; // 0x00100930: lui $a1, 0x8000
a1 = a1 | 0x597; // 0x00100938: ori $a1, $a1, 0x597
func_001176a8(); // 0x1174d8 // 0x0010093c: jal 0x1174d8
func_001174d8(); // 1174d8 // 0x0010093c: jal 0x1174d8
if (v0 >= 0) goto label_0x100994; // 0x00100944: bgezl $v0, 0x100994
v0 = g_0024b924; // Global at 0x0024b924 // 0x00100948: lw $v0, 0x24($s0)
v0 = g_001edf10; // Global at 0x001edf10 // 0x0010094c: lw $v0, -0x20f0($s4)
if (v0 <= 0) goto label_0x100968; // 0x00100950: blez $v0, 0x100968
v0 = 0x10 << 16; // 0x00100954: lui $v0, 0x10
a0 = 0x22 << 16; // 0x00100958: lui $a0, 0x22
func_00116598(); // 0x116508 // 0x0010095c: jal 0x116508
func_00116508(); // 116508 // 0x0010095c: jal 0x116508
a0 = &str_0021fd28; // "ee call cmd search %s\n" // 0x00100960: addiu $a0, $a0, -0x2d8
v0 = 0x10 << 16; // 0x00100964: lui $v0, 0x10
label_0x100968:
Expand Down Expand Up @@ -116,21 +116,21 @@ void func_00100858() {
a0 = 0x22 << 16; // 0x00100a10: lui $a0, 0x22
a1 = 0x25 << 16; // 0x00100a14: lui $a1, 0x25
a0 = &str_0021fd48; // "search name %s\n" // 0x00100a18: addiu $a0, $a0, -0x2b8
func_00116598(); // 0x116508 // 0x00100a1c: jal 0x116508
func_00116508(); // 116508 // 0x00100a1c: jal 0x116508
a1 = a1 + -0x485c; // 0x00100a20: addiu $a1, $a1, -0x485c
label_0x100a24:
v0 = local_10; // 0x00100a24: lw $v0, 0x10($sp)
s0 = s5 + -0x4880; // 0x00100a28: addiu $s0, $s5, -0x4880
a1 = 0x12c; // 0x00100a2c: addiu $a1, $zero, 0x12c
g_0024b8a8 = v0; // Global at 0x0024b8a8 // 0x00100a34: sw $v0, 0x128($s0)
func_00116d40(); // 0x116c90 // 0x00100a38: jal 0x116c90
func_00116c90(); // 116c90 // 0x00100a38: jal 0x116c90
g_0024b8a4 = s0; // Global at 0x0024b8a4 // 0x00100a3c: sw $s0, 0x124($s0)
a0 = s7 + -0x4700; // 0x00100a40: addiu $a0, $s7, -0x4700
local_0 = 0; // 0x00100a44: sw $zero, 0($sp)
t0 = 0x12c; // 0x00100a54: addiu $t0, $zero, 0x12c
t1 = fp + -0x4740; // 0x00100a58: addiu $t1, $fp, -0x4740
t2 = 4; // 0x00100a5c: addiu $t2, $zero, 4
func_001178a0(); // 0x1176a8 // 0x00100a60: jal 0x1176a8
func_001176a8(); // 1176a8 // 0x00100a60: jal 0x1176a8
if (v0 >= 0) goto label_0x100a84; // 0x00100a68: bgez $v0, 0x100a84
v0 = 0x2000 << 16; // 0x00100a6c: lui $v0, 0x2000
label_0x100a70:
Expand All @@ -148,19 +148,19 @@ void func_00100858() {
if (v1 <= 0) goto label_0x100b20; // 0x00100adc: blez $v1, 0x100b20
a0 = 0x22 << 16; // 0x00100ae0: lui $a0, 0x22
a1 = s3 + 8; // 0x00100ae4: addiu $a1, $s3, 8
func_00116598(); // 0x116508 // 0x00100ae8: jal 0x116508
func_00116508(); // 116508 // 0x00100ae8: jal 0x116508
a0 = &str_0021fd60; // "search size %d\n" // 0x00100aec: addiu $a0, $a0, -0x2a0
v0 = g_001edf10; // Global at 0x001edf10 // 0x00100af0: lw $v0, -0x20f0($s4)
if (v0 <= 0) goto label_0x100b20; // 0x00100af4: blez $v0, 0x100b20
a0 = 0x22 << 16; // 0x00100af8: lui $a0, 0x22
a1 = *(int32_t*)((s3) + 4); // 0x00100afc: lw $a1, 4($s3)
func_00116598(); // 0x116508 // 0x00100b00: jal 0x116508
func_00116508(); // 116508 // 0x00100b00: jal 0x116508
a0 = &str_0021fd70; // "search loc lbn %d\n" // 0x00100b04: addiu $a0, $a0, -0x290
v0 = g_001edf10; // Global at 0x001edf10 // 0x00100b08: lw $v0, -0x20f0($s4)
if (v0 <= 0) goto label_0x100b20; // 0x00100b0c: blez $v0, 0x100b20
a0 = 0x22 << 16; // 0x00100b10: lui $a0, 0x22
a1 = *(int32_t*)(s3); // 0x00100b14: lw $a1, 0($s3)
func_00116598(); // 0x116508 // 0x00100b18: jal 0x116508
func_00116508(); // 116508 // 0x00100b18: jal 0x116508
a0 = &str_0021fd80; // "Ncmd fail sema cur_cmd:%d keep_cmd:%d\n" // 0x00100b1c: addiu $a0, $a0, -0x280
label_0x100b20:
v1 = 0x2000 << 16; // 0x00100b20: lui $v1, 0x2000
Expand Down
2 changes: 1 addition & 1 deletion extracted/func_00100b70.c
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ void func_00100b70() {
int32_t hi, lo; // Multiply/divide result registers

sp = sp + -0x10; // 0x00100b70: addiu $sp, $sp, -0x10
func_00100b70(); // 0x100858 // 0x00100b78: jal 0x100858
func_00100858(); // 100858 // 0x00100b78: jal 0x100858
return; // 0x00100b84: jr $ra
sp = sp + 0x10; // 0x00100b88: addiu $sp, $sp, 0x10
}
Loading