mirror of
https://codeberg.org/KeybadeBlox/JSRF-Decompilation.git
synced 2026-02-20 10:17:03 +03:00
Complete delink workflow; separate from decomp
We can now create a fresh Ghidra project, import the JSRF executable into it, import symbols into it, delink object files from it, and then decompile with objdiff. Just needs some documentation.
This commit is contained in:
parent
87c56f01d6
commit
1a48d4323e
17 changed files with 1178 additions and 8 deletions
56
decompile/src/MMatrix.cpp
Normal file
56
decompile/src/MMatrix.cpp
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
#pragma code_seg("MMATRIX")
|
||||
|
||||
|
||||
// Address: 0x00264C04
|
||||
Mat4 * * g_matricesHead;
|
||||
|
||||
// Address: 0x00264C08
|
||||
Mat4 * g_matrices[3];
|
||||
|
||||
|
||||
// Address: 0x001BB690
|
||||
// Matching: yes
|
||||
HRESULT __stdcall initMatrices(unsigned const count) {
|
||||
/* Initialize the matrix stack with the given number of matrices.
|
||||
The requested number of matrices is rounded up to the nearest multiple of two.
|
||||
The initialized matrices are accessible through g_matrices.
|
||||
*/
|
||||
// Allocate matrices
|
||||
unsigned i = (count + 1) & 0xFFFFFFFE; // Round up
|
||||
Mat4 * const mats = (Mat4 *)VirtualAlloc(
|
||||
NULL,
|
||||
(i + 2) * sizeof *mats,
|
||||
MEM_COMMIT|MEM_RESERVE,
|
||||
PAGE_READWRITE
|
||||
);
|
||||
if (mats != NULL) {
|
||||
Mat4 * mat = mats + 2;
|
||||
|
||||
// Initialize each matrix to identity
|
||||
if (i > 0) for (; i > 0; i--) {
|
||||
float * entry = (float *)mat;
|
||||
|
||||
for (unsigned j = 0; j < sizeof *mat/sizeof *entry; j++) {
|
||||
*entry = 0;
|
||||
entry += 1;
|
||||
}
|
||||
|
||||
(*mat)[3].w = 1;
|
||||
(*mat)[2].z = 1;
|
||||
(*mat)[1].y = 1;
|
||||
(*mat)[0].x = 1;
|
||||
mat++;
|
||||
}
|
||||
|
||||
// Assign to g_matrices for later access
|
||||
mat = mats + 2;
|
||||
g_matrices[1] = mats;
|
||||
g_matrices[2] = mat;
|
||||
g_matrices[0] = mats;
|
||||
g_matricesHead = g_matrices + 2;
|
||||
|
||||
return ERROR_SUCCESS;
|
||||
}
|
||||
|
||||
return E_OUTOFMEMORY;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue