mirror of
https://codeberg.org/KeybadeBlox/JSRF-Decompilation.git
synced 2026-02-20 18:27:04 +03:00
Add objdiff setup
This is intended more as a proof of concept as we figure things out than the start of an actual decompilation in this repository. Target object files are currently "bring your own."
This commit is contained in:
parent
10b3c8c273
commit
7e1785e466
12 changed files with 151 additions and 27 deletions
|
|
@ -1,56 +0,0 @@
|
|||
#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