Fix 32 bit (#697)

* try x86

* ci: uniform build-linux-release-docker and their x86

* Update main.yml

* fix animation

Co-Authored-By: Alessio Tosto <rinnegatamante@gmail.com>

* add explanation

* add windows 32 in release

* Update windows-compile.yml

* fix windows compilation

* fix win32 windows

* Update libultraship

---------

Co-authored-by: Alessio Tosto <rinnegatamante@gmail.com>
This commit is contained in:
coco875
2026-05-03 02:13:30 +02:00
committed by GitHub
parent 40d4f12580
commit e2cf6ecbb4
13 changed files with 431 additions and 74 deletions
+6 -6
View File
@@ -168,11 +168,11 @@ Mat4 that the `thing` values are placed into.
#define ANIMATION_POP_MATRIX SIMPLE_ANIMATION_INSTRUCTION(POP_MATRIX)
#define ANIMATION_STOP SIMPLE_ANIMATION_INSTRUCTION(STOP_ANIMATION)
//! the pos is relative to the previous RENDER_MODEL_OR_ADD_POS if ANIMATION_DISABLE_AUTOMATIC_POP is used
#define ANIMATION_RENDER_MODEL_AT(model, x, y, z) RENDER_MODEL_OR_ADD_POS, 0x00000007, 0x00000000, (s64) model, x, y, z
#define ANIMATION_RENDER_MODEL_AT(model, x, y, z) RENDER_MODEL_OR_ADD_POS, 0x00000007, 0x00000000, (uintptr_t) model, x, y, z
//! use RENDER_MODEL_OR_ADD_POS
#define ANIMATION_RENDER_MODEL(model) ANIMATION_RENDER_MODEL_AT(model, 0x00000000, 0x00000000, 0x00000000)
//! use RENDER_MODEL_OR_ADD_POS
#define ANIMATION_ADD_POS(x, y, z) ANIMATION_RENDER_MODEL_AT((s64) NULL, x, y, z)
#define ANIMATION_ADD_POS(x, y, z) ANIMATION_RENDER_MODEL_AT((uintptr_t) NULL, x, y, z)
enum animation_type { RENDER_MODEL_OR_ADD_POS, DISABLE_AUTOMATIC_POP_MATRIX, POP_MATRIX, STOP_ANIMATION };
@@ -181,11 +181,11 @@ enum animation_type { RENDER_MODEL_OR_ADD_POS, DISABLE_AUTOMATIC_POP_MATRIX, POP
* in the armature
*/
typedef struct {
/* 0x00 */ s64 type;
/* 0x04 */ s64 size;
/* 0x08 */ s64 always_zero_never_used;
/* 0x00 */ intptr_t type;
/* 0x04 */ intptr_t size;
/* 0x08 */ intptr_t always_zero_never_used;
/* 0x0C */ Gfx* model;
/* 0x10 */ s64 pos[3];
/* 0x10 */ intptr_t pos[3];
} Armature;
typedef struct {
+4 -1
View File
@@ -79,7 +79,10 @@ bool IsTriangleWindingInverted();
* This work is done in render_track_sections()
*/
typedef struct {
uint64_t crc;
union {
uint64_t crc;
void* model;
};
u8 surfaceType; // Determines what kind of surface the player drives on (ex. dirt, asphalt, etc.)
u8 sectionId;
u16 clip; // enum in CustomTrack.h
+1 -1
View File
@@ -79,7 +79,7 @@ void parse_track_displaylists(TrackSections* asset) {
if (addr == NULL) {
printf("Warning: Could not find resource for section %d with crc 0x%llX\n", section->sectionId,
section->crc);
addr = (void*) section->crc;
addr = section->model;
}
generate_collision_mesh(addr, section->surfaceType, section->sectionId);
section++;