Arrange decompilation source/target in directories

This commit is contained in:
KeybadeBlox 2025-12-17 21:46:17 -05:00
parent 21c3864bb7
commit 1c8eb137ee
11 changed files with 9 additions and 9 deletions

View 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;
}

View file

@ -0,0 +1,14 @@
/* JSRF Decompilation: MMatrix.hpp
Smilebit's stack-based matrix math library.
*/
#ifndef MMATRIX_HPP
#define MMATRIX_HPP
#include "D3D.hpp"
// 4x4 matrix type
typedef D3DVECTOR4 Mat4[4];
#endif