forked from Ports/perfect_dark
portx64: a bunch of gcc14 fixes
portx64: fixed pal Update c-cpp.yml portx64: fixed linux build portx64: fixed linux build ops portx64: fixed linux build, one more time portx64: fixed linux build, one more time
This commit is contained in:
1 parent
01cbcd99cb
commit
e77b3172ed
10 files changed
+87
-76
No files matched your search
@@ -40,7 +40,7 @@ jobs:
|
|||||||
cp build/ntsc-final-port/pd.exe bin/
|
cp build/ntsc-final-port/pd.exe bin/
|
||||||
cp build/pal-final-port/pd.pal.exe bin/
|
cp build/pal-final-port/pd.pal.exe bin/
|
||||||
cp build/jpn-final-port/pd.jpn.exe bin/
|
cp build/jpn-final-port/pd.jpn.exe bin/
|
||||||
cp /mingw64/bin/{SDL2.dll,zlib1.dll,libgcc_s_dw2-1.dll,libwinpthread-1.dll} bin/
|
cp /mingw64/bin/{SDL2.dll,zlib1.dll,libwinpthread-1.dll} bin/
|
||||||
touch bin/data/put_your_rom_here.txt
|
touch bin/data/put_your_rom_here.txt
|
||||||
- name: Upload artifact
|
- name: Upload artifact
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
|
|
||||||
#include <PR/ultratypes.h>
|
#include <PR/ultratypes.h>
|
||||||
#include "gbiex.h"
|
#include "gbiex.h"
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
#ifndef PLATFORM_N64
|
#ifndef PLATFORM_N64
|
||||||
#include "platform.h"
|
#include "platform.h"
|
||||||
|
|||||||
@@ -4,12 +4,22 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <assert.h>
|
||||||
|
#include "platform.h"
|
||||||
|
|
||||||
|
#ifdef PLATFORM_WIN32
|
||||||
|
|
||||||
#include <winsock2.h>
|
#include <winsock2.h>
|
||||||
// this BS comes from windows.h
|
// this BS comes from windows.h
|
||||||
#undef near
|
#undef near
|
||||||
#undef far
|
#undef far
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#include <arpa/inet.h>
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <sys/param.h>
|
#include <sys/param.h>
|
||||||
|
|
||||||
#include <PR/ultratypes.h>
|
#include <PR/ultratypes.h>
|
||||||
|
|||||||
@@ -315,11 +315,11 @@ struct dst_texconfig {
|
|||||||
u8 unk0b;
|
u8 unk0b;
|
||||||
};
|
};
|
||||||
|
|
||||||
static inline void *minPtr(void *a, void *b) {
|
static inline uintptr_t minPtr(uintptr_t a, uintptr_t b) {
|
||||||
return (a && (a < b || !b)) ? a : b;
|
return (a && (a < b || !b)) ? a : b;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void *minPtr3(void *a, void *b, void *c) {
|
static inline uintptr_t minPtr3(uintptr_t a, uintptr_t b, uintptr_t c) {
|
||||||
return minPtr(minPtr(a, b), c);
|
return minPtr(minPtr(a, b), c);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -781,14 +781,14 @@ static u32 resolvePointer(u32 src_offset)
|
|||||||
|
|
||||||
static u8 *relinkPointers(u8 *dst, u8 *src)
|
static u8 *relinkPointers(u8 *dst, u8 *src)
|
||||||
{
|
{
|
||||||
u8 *textures_end = 0;
|
uintptr_t textures_end = 0;
|
||||||
|
|
||||||
for (int i = 0; i < m_NumMarkers; i++) {
|
for (int i = 0; i < m_NumMarkers; i++) {
|
||||||
struct marker *marker = &m_Markers[i];
|
struct marker *marker = &m_Markers[i];
|
||||||
void *src_thing = &src[marker->src_offset];
|
void *src_thing = &src[marker->src_offset];
|
||||||
void *dst_thing = &dst[marker->dst_offset];
|
void *dst_thing = &dst[marker->dst_offset];
|
||||||
|
|
||||||
u8 *lowestptr = 0;
|
uintptr_t lowestptr = 0;
|
||||||
|
|
||||||
switch (marker->type) {
|
switch (marker->type) {
|
||||||
case CT_MODELDEF:
|
case CT_MODELDEF:
|
||||||
@@ -913,6 +913,7 @@ static u8 *relinkPointers(u8 *dst, u8 *src)
|
|||||||
break;
|
break;
|
||||||
case CT_TEXDATA:
|
case CT_TEXDATA:
|
||||||
case CT_VTXCOL:
|
case CT_VTXCOL:
|
||||||
|
case CT_VTXCOL4:
|
||||||
case CT_GDL:
|
case CT_GDL:
|
||||||
case CT_RODATA_BBOX:
|
case CT_RODATA_BBOX:
|
||||||
case CT_RODATA_11:
|
case CT_RODATA_11:
|
||||||
@@ -925,31 +926,17 @@ static u8 *relinkPointers(u8 *dst, u8 *src)
|
|||||||
textures_end = minPtr(textures_end, lowestptr);
|
textures_end = minPtr(textures_end, lowestptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
return textures_end;
|
return (u8*)textures_end;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int convertModel(u8 *dst, u8 *src, u32 srclen)
|
static void preprocessTextureRGBA32Embedded(u32* dest, u32 size_bytes)
|
||||||
{
|
|
||||||
u32 dstpos;
|
|
||||||
|
|
||||||
populateMarkers(src);
|
|
||||||
sortMarkers();
|
|
||||||
|
|
||||||
dstpos = convertContent(dst, src, srclen);
|
|
||||||
u8 *tex_end = relinkPointers(dst, src);
|
|
||||||
preprocessModelTextures(dst, tex_end);
|
|
||||||
|
|
||||||
return dstpos;
|
|
||||||
}
|
|
||||||
|
|
||||||
void preprocessTextureRGBA32Embedded(u32* dest, u32 size_bytes)
|
|
||||||
{
|
{
|
||||||
for (uint32_t i = 0; i < size_bytes; i += 4, ++dest) {
|
for (uint32_t i = 0; i < size_bytes; i += 4, ++dest) {
|
||||||
*dest = PD_BE32(*dest);
|
*dest = PD_BE32(*dest);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void preprocessModelTextures(u8 *base, u8 *textures_end)
|
static void preprocessModelTextures(u8 *base, u8 *textures_end)
|
||||||
{
|
{
|
||||||
struct modeldef* mdl = (struct modeldef*)base;
|
struct modeldef* mdl = (struct modeldef*)base;
|
||||||
if (!mdl->texconfigs) return;
|
if (!mdl->texconfigs) return;
|
||||||
@@ -976,6 +963,20 @@ void preprocessModelTextures(u8 *base, u8 *textures_end)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int convertModel(u8* dst, u8* src, u32 srclen)
|
||||||
|
{
|
||||||
|
u32 dstpos;
|
||||||
|
|
||||||
|
populateMarkers(src);
|
||||||
|
sortMarkers();
|
||||||
|
|
||||||
|
dstpos = convertContent(dst, src, srclen);
|
||||||
|
u8* tex_end = relinkPointers(dst, src);
|
||||||
|
preprocessModelTextures(dst, tex_end);
|
||||||
|
|
||||||
|
return dstpos;
|
||||||
|
}
|
||||||
|
|
||||||
u8 *preprocessModelFile(u8 *data, u32 size, u32 *outSize)
|
u8 *preprocessModelFile(u8 *data, u32 size, u32 *outSize)
|
||||||
{
|
{
|
||||||
gbiReset();
|
gbiReset();
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ static inline void convU16(u16 *dst, u32 src) { *dst = srctoh16(src); }
|
|||||||
static inline void convS16(s16 *dst, s32 src) { *dst = srctoh16(src); }
|
static inline void convS16(s16 *dst, s32 src) { *dst = srctoh16(src); }
|
||||||
static inline void cpyByte(u8 *dst, u8 src) { *dst = src; }
|
static inline void cpyByte(u8 *dst, u8 src) { *dst = src; }
|
||||||
static inline void convCoord(struct coord* dst, struct n64_coord src) { convF32(&dst->x, src.x); convF32(&dst->y, src.y); convF32(&dst->z, src.z); }
|
static inline void convCoord(struct coord* dst, struct n64_coord src) { convF32(&dst->x, src.x); convF32(&dst->y, src.y); convF32(&dst->z, src.z); }
|
||||||
static u32 convUnk(void* x, u32 y) { __debugbreak(); }
|
static inline void convUnk(u32 x) { assert(0 && "unknown type"); }
|
||||||
|
|
||||||
#define PD_CONV_VAL(dst, src) _Generic((dst), \
|
#define PD_CONV_VAL(dst, src) _Generic((dst), \
|
||||||
f32: convF32, \
|
f32: convF32, \
|
||||||
@@ -40,7 +40,7 @@ static u32 convUnk(void* x, u32 y) { __debugbreak(); }
|
|||||||
for (int j = 0; j < ARRAYCOUNT(dst); j++) PD_CONV_VAL(dst[i][j], src[i][j]); \
|
for (int j = 0; j < ARRAYCOUNT(dst); j++) PD_CONV_VAL(dst[i][j], src[i][j]); \
|
||||||
}
|
}
|
||||||
|
|
||||||
#define PD_CONV_PTR(dst, src) dst = srctoh32(src)
|
#define PD_CONV_PTR(dst, src, type) dst = (type)srctoh32(src)
|
||||||
|
|
||||||
static u32 obj_size(struct n64_defaultobj *obj)
|
static u32 obj_size(struct n64_defaultobj *obj)
|
||||||
{
|
{
|
||||||
@@ -109,10 +109,10 @@ static u32 obj_size(struct n64_defaultobj *obj)
|
|||||||
|
|
||||||
void conv_tvscreen(struct tvscreen* dstobj, struct n64_tvscreen* srcobj)
|
void conv_tvscreen(struct tvscreen* dstobj, struct n64_tvscreen* srcobj)
|
||||||
{
|
{
|
||||||
PD_CONV_PTR(dstobj->cmdlist, srcobj->ptr_cmdlist);
|
PD_CONV_PTR(dstobj->cmdlist, srcobj->ptr_cmdlist, u32*);
|
||||||
PD_CONV_VAL(dstobj->offset, srcobj->offset);
|
PD_CONV_VAL(dstobj->offset, srcobj->offset);
|
||||||
PD_CONV_VAL(dstobj->pause60, srcobj->pause60);
|
PD_CONV_VAL(dstobj->pause60, srcobj->pause60);
|
||||||
PD_CONV_PTR(dstobj->tconfig, srcobj->ptr_tconfig);
|
PD_CONV_PTR(dstobj->tconfig, srcobj->ptr_tconfig, struct textureconfig*);
|
||||||
PD_CONV_VAL(dstobj->rot, srcobj->rot);
|
PD_CONV_VAL(dstobj->rot, srcobj->rot);
|
||||||
PD_CONV_VAL(dstobj->xscale, srcobj->xscale);
|
PD_CONV_VAL(dstobj->xscale, srcobj->xscale);
|
||||||
PD_CONV_VAL(dstobj->xscalefrac, srcobj->xscalefrac);
|
PD_CONV_VAL(dstobj->xscalefrac, srcobj->xscalefrac);
|
||||||
@@ -180,12 +180,11 @@ void convertDefaultObj(struct defaultobj* dstobj, struct n64_defaultobj* srcobj)
|
|||||||
PD_CONV_VAL(dstobj->flags, srcobj->flags);
|
PD_CONV_VAL(dstobj->flags, srcobj->flags);
|
||||||
PD_CONV_VAL(dstobj->flags2, srcobj->flags2);
|
PD_CONV_VAL(dstobj->flags2, srcobj->flags2);
|
||||||
PD_CONV_VAL(dstobj->flags3, srcobj->flags3);
|
PD_CONV_VAL(dstobj->flags3, srcobj->flags3);
|
||||||
PD_CONV_PTR(dstobj->prop, srcobj->ptr_prop);
|
PD_CONV_PTR(dstobj->prop, srcobj->ptr_prop, struct prop*);
|
||||||
PD_CONV_PTR(dstobj->model, srcobj->ptr_model);
|
PD_CONV_PTR(dstobj->model, srcobj->ptr_model, struct model*);
|
||||||
PD_CONV_ARRAY2D(dstobj->realrot, srcobj->realrot);
|
PD_CONV_ARRAY2D(dstobj->realrot, srcobj->realrot);
|
||||||
PD_CONV_VAL(dstobj->hidden, srcobj->hidden);
|
PD_CONV_VAL(dstobj->hidden, srcobj->hidden);
|
||||||
PD_CONV_PTR(dstobj->unkgeo, srcobj->ptr_unkgeo);
|
PD_CONV_PTR(dstobj->unkgeo, srcobj->ptr_unkgeo, struct geocyl*);
|
||||||
PD_CONV_PTR(dstobj->embedment, srcobj->ptr_embedment);
|
|
||||||
PD_CONV_VAL(dstobj->damage, srcobj->damage);
|
PD_CONV_VAL(dstobj->damage, srcobj->damage);
|
||||||
PD_CONV_VAL(dstobj->maxdamage, srcobj->maxdamage);
|
PD_CONV_VAL(dstobj->maxdamage, srcobj->maxdamage);
|
||||||
PD_CONV_ARRAY(dstobj->shadecol, srcobj->shadecol);
|
PD_CONV_ARRAY(dstobj->shadecol, srcobj->shadecol);
|
||||||
@@ -230,7 +229,7 @@ u32 convertProps(u8* dst, u8* src)
|
|||||||
PD_CONV_VAL(dstobj->opadist, srcobj->opadist);
|
PD_CONV_VAL(dstobj->opadist, srcobj->opadist);
|
||||||
PD_CONV_VAL(dstobj->startpos, srcobj->startpos);
|
PD_CONV_VAL(dstobj->startpos, srcobj->startpos);
|
||||||
PD_CONV_ARRAY2D(dstobj->mtx98, srcobj->mtx98);
|
PD_CONV_ARRAY2D(dstobj->mtx98, srcobj->mtx98);
|
||||||
PD_CONV_PTR(dstobj->sibling, srcobj->ptr_sibling);
|
PD_CONV_PTR(dstobj->sibling, srcobj->ptr_sibling, struct doorobj*);
|
||||||
PD_CONV_VAL(dstobj->lastopen60, srcobj->lastopen60);
|
PD_CONV_VAL(dstobj->lastopen60, srcobj->lastopen60);
|
||||||
PD_CONV_VAL(dstobj->portalnum, srcobj->portalnum);
|
PD_CONV_VAL(dstobj->portalnum, srcobj->portalnum);
|
||||||
PD_CONV_VAL(dstobj->soundtype, srcobj->soundtype);
|
PD_CONV_VAL(dstobj->soundtype, srcobj->soundtype);
|
||||||
@@ -337,7 +336,7 @@ u32 convertProps(u8* dst, u8* src)
|
|||||||
|
|
||||||
PD_CONV_VAL(dstobj->team, srcobj->team);
|
PD_CONV_VAL(dstobj->team, srcobj->team);
|
||||||
|
|
||||||
PD_CONV_PTR(dstobj->dualweapon, srcobj->ptr_dualweapon);
|
PD_CONV_PTR(dstobj->dualweapon, srcobj->ptr_dualweapon, struct weaponobj*);
|
||||||
|
|
||||||
dst += sizeof(struct weaponobj);
|
dst += sizeof(struct weaponobj);
|
||||||
break;
|
break;
|
||||||
@@ -428,9 +427,9 @@ u32 convertProps(u8* dst, u8* src)
|
|||||||
PD_CONV_VAL(dstobj->lastseebond60, srcobj->lastseebond60);
|
PD_CONV_VAL(dstobj->lastseebond60, srcobj->lastseebond60);
|
||||||
PD_CONV_VAL(dstobj->lastaimbond60, srcobj->lastaimbond60);
|
PD_CONV_VAL(dstobj->lastaimbond60, srcobj->lastaimbond60);
|
||||||
PD_CONV_VAL(dstobj->allowsoundframe, srcobj->allowsoundframe);
|
PD_CONV_VAL(dstobj->allowsoundframe, srcobj->allowsoundframe);
|
||||||
PD_CONV_PTR(dstobj->beam, srcobj->ptr_beam);
|
PD_CONV_PTR(dstobj->beam, srcobj->ptr_beam, struct beam*);
|
||||||
PD_CONV_VAL(dstobj->shotbondsum, srcobj->shotbondsum);
|
PD_CONV_VAL(dstobj->shotbondsum, srcobj->shotbondsum);
|
||||||
PD_CONV_PTR(dstobj->target, srcobj->ptr_target);
|
PD_CONV_PTR(dstobj->target, srcobj->ptr_target, struct prop*);
|
||||||
PD_CONV_VAL(dstobj->targetteam, srcobj->targetteam);
|
PD_CONV_VAL(dstobj->targetteam, srcobj->targetteam);
|
||||||
PD_CONV_VAL(dstobj->ammoquantity, srcobj->ammoquantity);
|
PD_CONV_VAL(dstobj->ammoquantity, srcobj->ammoquantity);
|
||||||
PD_CONV_VAL(dstobj->nextchrtest, srcobj->nextchrtest);
|
PD_CONV_VAL(dstobj->nextchrtest, srcobj->nextchrtest);
|
||||||
@@ -468,9 +467,9 @@ u32 convertProps(u8* dst, u8* src)
|
|||||||
struct linkliftdoorobj* dstobj = (struct linkliftdoorobj*)dst;
|
struct linkliftdoorobj* dstobj = (struct linkliftdoorobj*)dst;
|
||||||
|
|
||||||
convertDefaultObjHdr((struct defaultobj*)dstobj, cmd);
|
convertDefaultObjHdr((struct defaultobj*)dstobj, cmd);
|
||||||
PD_CONV_PTR(dstobj->door, srcobj->ptr_door);
|
PD_CONV_PTR(dstobj->door, srcobj->ptr_door, struct prop*);
|
||||||
PD_CONV_PTR(dstobj->lift, srcobj->ptr_lift);
|
PD_CONV_PTR(dstobj->lift, srcobj->ptr_lift, struct prop*);
|
||||||
PD_CONV_PTR(dstobj->next, srcobj->ptr_next);
|
PD_CONV_PTR(dstobj->next, srcobj->ptr_next, struct linkliftdoorobj*);
|
||||||
PD_CONV_VAL(dstobj->stopnum, srcobj->stopnum);
|
PD_CONV_VAL(dstobj->stopnum, srcobj->stopnum);
|
||||||
|
|
||||||
dst += sizeof(struct linkliftdoorobj);
|
dst += sizeof(struct linkliftdoorobj);
|
||||||
@@ -513,8 +512,8 @@ u32 convertProps(u8* dst, u8* src)
|
|||||||
convertDefaultObjHdr((struct defaultobj*)dstobj, cmd);
|
convertDefaultObjHdr((struct defaultobj*)dstobj, cmd);
|
||||||
PD_CONV_VAL(dstobj->tagnum, srcobj->tagnum);
|
PD_CONV_VAL(dstobj->tagnum, srcobj->tagnum);
|
||||||
PD_CONV_VAL(dstobj->cmdoffset, srcobj->cmdoffset);
|
PD_CONV_VAL(dstobj->cmdoffset, srcobj->cmdoffset);
|
||||||
PD_CONV_PTR(dstobj->next, srcobj->ptr_next);
|
PD_CONV_PTR(dstobj->next, srcobj->ptr_next, struct tag*);
|
||||||
PD_CONV_PTR(dstobj->obj, srcobj->ptr_obj);
|
PD_CONV_PTR(dstobj->obj, srcobj->ptr_obj, struct defaultobj*);
|
||||||
|
|
||||||
dst += sizeof(struct tag);
|
dst += sizeof(struct tag);
|
||||||
break;
|
break;
|
||||||
@@ -572,7 +571,7 @@ u32 convertProps(u8* dst, u8* src)
|
|||||||
convertDefaultObjHdr((struct defaultobj*)dstobj, cmd);
|
convertDefaultObjHdr((struct defaultobj*)dstobj, cmd);
|
||||||
PD_CONV_VAL(dstobj->obj, srcobj->obj);
|
PD_CONV_VAL(dstobj->obj, srcobj->obj);
|
||||||
PD_CONV_VAL(dstobj->status, srcobj->status);
|
PD_CONV_VAL(dstobj->status, srcobj->status);
|
||||||
PD_CONV_PTR(dstobj->next, srcobj->ptr_next);
|
PD_CONV_PTR(dstobj->next, srcobj->ptr_next, struct criteria_holograph*);
|
||||||
|
|
||||||
dst += sizeof(struct criteria_holograph);
|
dst += sizeof(struct criteria_holograph);
|
||||||
break;
|
break;
|
||||||
@@ -585,7 +584,7 @@ u32 convertProps(u8* dst, u8* src)
|
|||||||
convertDefaultObjHdr((struct defaultobj*)dstobj, cmd);
|
convertDefaultObjHdr((struct defaultobj*)dstobj, cmd);
|
||||||
PD_CONV_VAL(dstobj->pad, srcobj->pad);
|
PD_CONV_VAL(dstobj->pad, srcobj->pad);
|
||||||
PD_CONV_VAL(dstobj->status, srcobj->status);
|
PD_CONV_VAL(dstobj->status, srcobj->status);
|
||||||
PD_CONV_PTR(dstobj->next, srcobj->ptr_next);
|
PD_CONV_PTR(dstobj->next, srcobj->ptr_next, struct criteria_roomentered*);
|
||||||
|
|
||||||
dst += sizeof(struct criteria_roomentered);
|
dst += sizeof(struct criteria_roomentered);
|
||||||
break;
|
break;
|
||||||
@@ -598,7 +597,7 @@ u32 convertProps(u8* dst, u8* src)
|
|||||||
convertDefaultObjHdr((struct defaultobj*)dstobj, cmd);
|
convertDefaultObjHdr((struct defaultobj*)dstobj, cmd);
|
||||||
PD_CONV_VAL(dstobj->pad, srcobj->pad);
|
PD_CONV_VAL(dstobj->pad, srcobj->pad);
|
||||||
PD_CONV_VAL(dstobj->status, srcobj->status);
|
PD_CONV_VAL(dstobj->status, srcobj->status);
|
||||||
PD_CONV_PTR(dstobj->next, srcobj->ptr_next);
|
PD_CONV_PTR(dstobj->next, srcobj->ptr_next, struct criteria_throwinroom*);
|
||||||
|
|
||||||
dst += sizeof(struct criteria_throwinroom);
|
dst += sizeof(struct criteria_throwinroom);
|
||||||
break;
|
break;
|
||||||
@@ -611,7 +610,7 @@ u32 convertProps(u8* dst, u8* src)
|
|||||||
convertDefaultObjHdr((struct defaultobj*)dstobj, cmd);
|
convertDefaultObjHdr((struct defaultobj*)dstobj, cmd);
|
||||||
PD_CONV_VAL(dstobj->type, srcobj->type);
|
PD_CONV_VAL(dstobj->type, srcobj->type);
|
||||||
PD_CONV_VAL(dstobj->text, srcobj->text);
|
PD_CONV_VAL(dstobj->text, srcobj->text);
|
||||||
PD_CONV_PTR(dstobj->next, srcobj->ptr_next);
|
PD_CONV_PTR(dstobj->next, srcobj->ptr_next, struct briefingobj*);
|
||||||
|
|
||||||
dst += sizeof(struct briefingobj);
|
dst += sizeof(struct briefingobj);
|
||||||
break;
|
break;
|
||||||
@@ -629,8 +628,8 @@ u32 convertProps(u8* dst, u8* src)
|
|||||||
PD_CONV_VAL(dstobj->inventorytext, srcobj->inventorytext);
|
PD_CONV_VAL(dstobj->inventorytext, srcobj->inventorytext);
|
||||||
PD_CONV_VAL(dstobj->inventory2text, srcobj->inventory2text);
|
PD_CONV_VAL(dstobj->inventory2text, srcobj->inventory2text);
|
||||||
PD_CONV_VAL(dstobj->pickuptext, srcobj->pickuptext);
|
PD_CONV_VAL(dstobj->pickuptext, srcobj->pickuptext);
|
||||||
PD_CONV_PTR(dstobj->next, srcobj->ptr_next);
|
PD_CONV_PTR(dstobj->next, srcobj->ptr_next, struct textoverride*);
|
||||||
PD_CONV_PTR(dstobj->obj, srcobj->ptr_obj);
|
PD_CONV_PTR(dstobj->obj, srcobj->ptr_obj, struct defaultobj*);
|
||||||
|
|
||||||
dst += sizeof(struct textoverride);
|
dst += sizeof(struct textoverride);
|
||||||
break;
|
break;
|
||||||
@@ -641,9 +640,9 @@ u32 convertProps(u8* dst, u8* src)
|
|||||||
struct padlockeddoorobj* dstobj = (struct padlockeddoorobj*)dst;
|
struct padlockeddoorobj* dstobj = (struct padlockeddoorobj*)dst;
|
||||||
|
|
||||||
convertDefaultObjHdr((struct defaultobj*)dstobj, cmd);
|
convertDefaultObjHdr((struct defaultobj*)dstobj, cmd);
|
||||||
PD_CONV_PTR(dstobj->door, srcobj->ptr_door);
|
PD_CONV_PTR(dstobj->door, srcobj->ptr_door, struct doorobj*);
|
||||||
PD_CONV_PTR(dstobj->lock, srcobj->ptr_lock);
|
PD_CONV_PTR(dstobj->lock, srcobj->ptr_lock, struct defaultobj*);
|
||||||
PD_CONV_PTR(dstobj->next, srcobj->ptr_next);
|
PD_CONV_PTR(dstobj->next, srcobj->ptr_next, struct padlockeddoorobj*);
|
||||||
|
|
||||||
dst += sizeof(struct padlockeddoorobj);
|
dst += sizeof(struct padlockeddoorobj);
|
||||||
break;
|
break;
|
||||||
@@ -655,7 +654,7 @@ u32 convertProps(u8* dst, u8* src)
|
|||||||
|
|
||||||
convertDefaultObj(&dstobj->base, cmd);
|
convertDefaultObj(&dstobj->base, cmd);
|
||||||
|
|
||||||
PD_CONV_PTR(dstobj->ailist, srcobj->ptr_ailist);
|
PD_CONV_PTR(dstobj->ailist, srcobj->ptr_ailist, u8*);
|
||||||
PD_CONV_VAL(dstobj->aioffset, srcobj->aioffset);
|
PD_CONV_VAL(dstobj->aioffset, srcobj->aioffset);
|
||||||
PD_CONV_VAL(dstobj->aireturnlist, srcobj->aireturnlist);
|
PD_CONV_VAL(dstobj->aireturnlist, srcobj->aireturnlist);
|
||||||
PD_CONV_VAL(dstobj->speed, srcobj->speed);
|
PD_CONV_VAL(dstobj->speed, srcobj->speed);
|
||||||
@@ -665,7 +664,7 @@ u32 convertProps(u8* dst, u8* src)
|
|||||||
PD_CONV_VAL(dstobj->speedtime60, srcobj->speedtime60);
|
PD_CONV_VAL(dstobj->speedtime60, srcobj->speedtime60);
|
||||||
PD_CONV_VAL(dstobj->turnrot60, srcobj->turnrot60);
|
PD_CONV_VAL(dstobj->turnrot60, srcobj->turnrot60);
|
||||||
PD_CONV_VAL(dstobj->roty, srcobj->roty);
|
PD_CONV_VAL(dstobj->roty, srcobj->roty);
|
||||||
PD_CONV_PTR(dstobj->path, srcobj->ptr_path);
|
PD_CONV_PTR(dstobj->path, srcobj->ptr_path, struct path*);
|
||||||
PD_CONV_VAL(dstobj->nextstep, srcobj->nextstep);
|
PD_CONV_VAL(dstobj->nextstep, srcobj->nextstep);
|
||||||
|
|
||||||
dst += sizeof(struct truckobj);
|
dst += sizeof(struct truckobj);
|
||||||
@@ -678,7 +677,7 @@ u32 convertProps(u8* dst, u8* src)
|
|||||||
|
|
||||||
convertDefaultObj(&dstobj->base, cmd);
|
convertDefaultObj(&dstobj->base, cmd);
|
||||||
|
|
||||||
PD_CONV_PTR(dstobj->ailist, srcobj->ptr_ailist);
|
PD_CONV_PTR(dstobj->ailist, srcobj->ptr_ailist, u8*);
|
||||||
PD_CONV_VAL(dstobj->aioffset, srcobj->aioffset);
|
PD_CONV_VAL(dstobj->aioffset, srcobj->aioffset);
|
||||||
PD_CONV_VAL(dstobj->aireturnlist, srcobj->aireturnlist);
|
PD_CONV_VAL(dstobj->aireturnlist, srcobj->aireturnlist);
|
||||||
PD_CONV_VAL(dstobj->rotoryrot, srcobj->rotoryrot);
|
PD_CONV_VAL(dstobj->rotoryrot, srcobj->rotoryrot);
|
||||||
@@ -689,7 +688,7 @@ u32 convertProps(u8* dst, u8* src)
|
|||||||
PD_CONV_VAL(dstobj->speedaim, srcobj->speedaim);
|
PD_CONV_VAL(dstobj->speedaim, srcobj->speedaim);
|
||||||
PD_CONV_VAL(dstobj->speedtime60, srcobj->speedtime60);
|
PD_CONV_VAL(dstobj->speedtime60, srcobj->speedtime60);
|
||||||
PD_CONV_VAL(dstobj->yrot, srcobj->yrot);
|
PD_CONV_VAL(dstobj->yrot, srcobj->yrot);
|
||||||
PD_CONV_PTR(dstobj->path, srcobj->ptr_path);
|
PD_CONV_PTR(dstobj->path, srcobj->ptr_path, struct path*);
|
||||||
PD_CONV_VAL(dstobj->nextstep, srcobj->nextstep);
|
PD_CONV_VAL(dstobj->nextstep, srcobj->nextstep);
|
||||||
|
|
||||||
dst += sizeof(struct heliobj);
|
dst += sizeof(struct heliobj);
|
||||||
@@ -712,10 +711,10 @@ u32 convertProps(u8* dst, u8* src)
|
|||||||
struct safeitemobj* dstobj = (struct safeitemobj*)dst;
|
struct safeitemobj* dstobj = (struct safeitemobj*)dst;
|
||||||
|
|
||||||
convertDefaultObjHdr((struct defaultobj*)dstobj, cmd);
|
convertDefaultObjHdr((struct defaultobj*)dstobj, cmd);
|
||||||
PD_CONV_PTR(dstobj->item, srcobj->ptr_item);
|
PD_CONV_PTR(dstobj->item, srcobj->ptr_item, struct defaultobj*);
|
||||||
PD_CONV_PTR(dstobj->safe, srcobj->ptr_safe);
|
PD_CONV_PTR(dstobj->safe, srcobj->ptr_safe, struct safeobj*);
|
||||||
PD_CONV_PTR(dstobj->door, srcobj->ptr_door);
|
PD_CONV_PTR(dstobj->door, srcobj->ptr_door, struct doorobj*);
|
||||||
PD_CONV_PTR(dstobj->next, srcobj->ptr_next);
|
PD_CONV_PTR(dstobj->next, srcobj->ptr_next, struct safeitemobj*);
|
||||||
|
|
||||||
dst += sizeof(struct safeitemobj);
|
dst += sizeof(struct safeitemobj);
|
||||||
break;
|
break;
|
||||||
@@ -766,7 +765,7 @@ u32 convertProps(u8* dst, u8* src)
|
|||||||
|
|
||||||
PD_CONV_ARRAY(dstobj->pads, srcobj->pads);
|
PD_CONV_ARRAY(dstobj->pads, srcobj->pads);
|
||||||
for (int k = 0; k < 4; k++)
|
for (int k = 0; k < 4; k++)
|
||||||
PD_CONV_PTR(dstobj->doors[k], srcobj->ptr_doors[k]);
|
PD_CONV_PTR(dstobj->doors[k], srcobj->ptr_doors[k], struct doorobj*);
|
||||||
PD_CONV_VAL(dstobj->dist, srcobj->dist);
|
PD_CONV_VAL(dstobj->dist, srcobj->dist);
|
||||||
PD_CONV_VAL(dstobj->speed, srcobj->speed);
|
PD_CONV_VAL(dstobj->speed, srcobj->speed);
|
||||||
PD_CONV_VAL(dstobj->accel, srcobj->accel);
|
PD_CONV_VAL(dstobj->accel, srcobj->accel);
|
||||||
@@ -785,10 +784,10 @@ u32 convertProps(u8* dst, u8* src)
|
|||||||
struct linksceneryobj* dstobj = (struct linksceneryobj*)dst;
|
struct linksceneryobj* dstobj = (struct linksceneryobj*)dst;
|
||||||
|
|
||||||
convertDefaultObjHdr((struct defaultobj*)dstobj, cmd);
|
convertDefaultObjHdr((struct defaultobj*)dstobj, cmd);
|
||||||
PD_CONV_PTR(dstobj->trigger, srcobj->ptr_trigger);
|
PD_CONV_PTR(dstobj->trigger, srcobj->ptr_trigger, struct defaultobj*);
|
||||||
PD_CONV_PTR(dstobj->unexp, srcobj->ptr_unexp);
|
PD_CONV_PTR(dstobj->unexp, srcobj->ptr_unexp, struct defaultobj*);
|
||||||
PD_CONV_PTR(dstobj->exp, srcobj->ptr_exp);
|
PD_CONV_PTR(dstobj->exp, srcobj->ptr_exp, struct defaultobj*);
|
||||||
PD_CONV_PTR(dstobj->next, srcobj->ptr_next);
|
PD_CONV_PTR(dstobj->next, srcobj->ptr_next, struct linksceneryobj*);
|
||||||
|
|
||||||
dst += sizeof(struct linksceneryobj);
|
dst += sizeof(struct linksceneryobj);
|
||||||
break;
|
break;
|
||||||
@@ -799,10 +798,10 @@ u32 convertProps(u8* dst, u8* src)
|
|||||||
struct blockedpathobj* dstobj = (struct blockedpathobj*)dst;
|
struct blockedpathobj* dstobj = (struct blockedpathobj*)dst;
|
||||||
|
|
||||||
convertDefaultObjHdr((struct defaultobj*)dstobj, cmd);
|
convertDefaultObjHdr((struct defaultobj*)dstobj, cmd);
|
||||||
PD_CONV_PTR(dstobj->blocker, srcobj->ptr_blocker);
|
PD_CONV_PTR(dstobj->blocker, srcobj->ptr_blocker, struct defaultobj*);
|
||||||
PD_CONV_VAL(dstobj->waypoint1, srcobj->waypoint1);
|
PD_CONV_VAL(dstobj->waypoint1, srcobj->waypoint1);
|
||||||
PD_CONV_VAL(dstobj->waypoint2, srcobj->waypoint2);
|
PD_CONV_VAL(dstobj->waypoint2, srcobj->waypoint2);
|
||||||
PD_CONV_PTR(dstobj->next, srcobj->ptr_next);
|
PD_CONV_PTR(dstobj->next, srcobj->ptr_next, struct blockedpathobj*);
|
||||||
|
|
||||||
dst += sizeof(struct blockedpathobj);
|
dst += sizeof(struct blockedpathobj);
|
||||||
break;
|
break;
|
||||||
@@ -898,7 +897,7 @@ u32 convertProps(u8* dst, u8* src)
|
|||||||
|
|
||||||
convertDefaultObj(&dstobj->base, cmd);
|
convertDefaultObj(&dstobj->base, cmd);
|
||||||
|
|
||||||
PD_CONV_PTR(dstobj->ailist, srcobj->ptr_ailist);
|
PD_CONV_PTR(dstobj->ailist, srcobj->ptr_ailist, u8*);
|
||||||
PD_CONV_VAL(dstobj->aioffset, srcobj->aioffset);
|
PD_CONV_VAL(dstobj->aioffset, srcobj->aioffset);
|
||||||
PD_CONV_VAL(dstobj->aireturnlist, srcobj->aireturnlist);
|
PD_CONV_VAL(dstobj->aireturnlist, srcobj->aireturnlist);
|
||||||
PD_CONV_VAL(dstobj->speed, srcobj->speed);
|
PD_CONV_VAL(dstobj->speed, srcobj->speed);
|
||||||
@@ -910,7 +909,7 @@ u32 convertProps(u8* dst, u8* src)
|
|||||||
PD_CONV_VAL(dstobj->roty, srcobj->roty);
|
PD_CONV_VAL(dstobj->roty, srcobj->roty);
|
||||||
PD_CONV_VAL(dstobj->rotx, srcobj->rotx);
|
PD_CONV_VAL(dstobj->rotx, srcobj->rotx);
|
||||||
PD_CONV_VAL(dstobj->rotz, srcobj->rotz);
|
PD_CONV_VAL(dstobj->rotz, srcobj->rotz);
|
||||||
PD_CONV_PTR(dstobj->path, srcobj->ptr_path);
|
PD_CONV_PTR(dstobj->path, srcobj->ptr_path, struct path*);
|
||||||
PD_CONV_VAL(dstobj->nextstep, srcobj->nextstep);
|
PD_CONV_VAL(dstobj->nextstep, srcobj->nextstep);
|
||||||
PD_CONV_VAL(dstobj->status, srcobj->status);
|
PD_CONV_VAL(dstobj->status, srcobj->status);
|
||||||
PD_CONV_VAL(dstobj->dead, srcobj->dead);
|
PD_CONV_VAL(dstobj->dead, srcobj->dead);
|
||||||
@@ -939,7 +938,7 @@ u32 convertProps(u8* dst, u8* src)
|
|||||||
|
|
||||||
convertDefaultObj(&dstobj->base, cmd);
|
convertDefaultObj(&dstobj->base, cmd);
|
||||||
|
|
||||||
PD_CONV_PTR(dstobj->ailist, srcobj->ptr_ailist);
|
PD_CONV_PTR(dstobj->ailist, srcobj->ptr_ailist, u8*);
|
||||||
PD_CONV_VAL(dstobj->aioffset, srcobj->aioffset);
|
PD_CONV_VAL(dstobj->aioffset, srcobj->aioffset);
|
||||||
PD_CONV_VAL(dstobj->aireturnlist, srcobj->aireturnlist);
|
PD_CONV_VAL(dstobj->aireturnlist, srcobj->aireturnlist);
|
||||||
PD_CONV_VAL(dstobj->speed, srcobj->speed);
|
PD_CONV_VAL(dstobj->speed, srcobj->speed);
|
||||||
@@ -951,7 +950,7 @@ u32 convertProps(u8* dst, u8* src)
|
|||||||
PD_CONV_VAL(dstobj->roty, srcobj->roty);
|
PD_CONV_VAL(dstobj->roty, srcobj->roty);
|
||||||
PD_CONV_VAL(dstobj->rotx, srcobj->rotx);
|
PD_CONV_VAL(dstobj->rotx, srcobj->rotx);
|
||||||
PD_CONV_VAL(dstobj->rotz, srcobj->rotz);
|
PD_CONV_VAL(dstobj->rotz, srcobj->rotz);
|
||||||
PD_CONV_PTR(dstobj->path, srcobj->ptr_path);
|
PD_CONV_PTR(dstobj->path, srcobj->ptr_path, struct path*);
|
||||||
PD_CONV_VAL(dstobj->nextstep, srcobj->nextstep);
|
PD_CONV_VAL(dstobj->nextstep, srcobj->nextstep);
|
||||||
PD_CONV_VAL(dstobj->weaponsarmed, srcobj->weaponsarmed);
|
PD_CONV_VAL(dstobj->weaponsarmed, srcobj->weaponsarmed);
|
||||||
PD_CONV_VAL(dstobj->ontarget, srcobj->ontarget);
|
PD_CONV_VAL(dstobj->ontarget, srcobj->ontarget);
|
||||||
@@ -976,7 +975,7 @@ u32 convertProps(u8* dst, u8* src)
|
|||||||
PD_CONV_VAL(dstobj->gunrotx, srcobj->gunrotx);
|
PD_CONV_VAL(dstobj->gunrotx, srcobj->gunrotx);
|
||||||
PD_CONV_VAL(dstobj->barrelrotspeed, srcobj->barrelrotspeed);
|
PD_CONV_VAL(dstobj->barrelrotspeed, srcobj->barrelrotspeed);
|
||||||
PD_CONV_VAL(dstobj->barrelrot, srcobj->barrelrot);
|
PD_CONV_VAL(dstobj->barrelrot, srcobj->barrelrot);
|
||||||
PD_CONV_PTR(dstobj->fireslotthing, srcobj->ptr_fireslotthing);
|
PD_CONV_PTR(dstobj->fireslotthing, srcobj->ptr_fireslotthing, struct fireslotthing*);
|
||||||
PD_CONV_VAL(dstobj->dead, srcobj->dead);
|
PD_CONV_VAL(dstobj->dead, srcobj->dead);
|
||||||
|
|
||||||
dst += sizeof(struct chopperobj);
|
dst += sizeof(struct chopperobj);
|
||||||
@@ -1050,7 +1049,7 @@ static u32 convertPaths(u8 *dst, u8 *src)
|
|||||||
struct path* dstpath = (struct path*)dst;
|
struct path* dstpath = (struct path*)dst;
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
PD_CONV_PTR(dstpath->pads, srcpath->ptr_pads);
|
PD_CONV_PTR(dstpath->pads, srcpath->ptr_pads, s32*);
|
||||||
PD_CONV_VAL(dstpath->id, srcpath->id);
|
PD_CONV_VAL(dstpath->id, srcpath->id);
|
||||||
PD_CONV_VAL(dstpath->flags, srcpath->flags);
|
PD_CONV_VAL(dstpath->flags, srcpath->flags);
|
||||||
PD_CONV_VAL(dstpath->len, srcpath->len);
|
PD_CONV_VAL(dstpath->len, srcpath->len);
|
||||||
@@ -1093,7 +1092,7 @@ static u32 convertAiLists(u8* dst, u8* src)
|
|||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
// at this point these fields are already converted, so we just assign
|
// at this point these fields are already converted, so we just assign
|
||||||
dstailist->list = srcailist->ptr_list;
|
dstailist->list = (u8*)srcailist->ptr_list;
|
||||||
dstailist->id = srcailist->id;
|
dstailist->id = srcailist->id;
|
||||||
|
|
||||||
|
|
||||||
@@ -1123,7 +1122,7 @@ static u32 convertLists(u8 *dst, u8 *src, u32 dstpos, u32 src_ofs)
|
|||||||
for (struct n64_ailist *ailist = src_ailists; ailist->ptr_list; ailist++) {
|
for (struct n64_ailist *ailist = src_ailists; ailist->ptr_list; ailist++) {
|
||||||
// update the src list pointers here
|
// update the src list pointers here
|
||||||
uintptr_t src_ptr_list = (uintptr_t) ailist->ptr_list;
|
uintptr_t src_ptr_list = (uintptr_t) ailist->ptr_list;
|
||||||
ailist->ptr_list = (u8*)dstpos;
|
ailist->ptr_list = dstpos;
|
||||||
|
|
||||||
// multiple ailists can point to the same list, so we need to check if it was already copied
|
// multiple ailists can point to the same list, so we need to check if it was already copied
|
||||||
struct ptrmarker *marker = findPtrMarker(src_ptr_list);
|
struct ptrmarker *marker = findPtrMarker(src_ptr_list);
|
||||||
|
|||||||
@@ -59,7 +59,7 @@ u8 *preprocessFont(u8 *src, u32 srclen, u32 *outSize)
|
|||||||
if (src == _fonthandelgothicsmSegmentRomStart
|
if (src == _fonthandelgothicsmSegmentRomStart
|
||||||
|| src == _fonthandelgothicxsSegmentRomStart
|
|| src == _fonthandelgothicxsSegmentRomStart
|
||||||
|| src == _fonthandelgothicmdSegmentRomStart) {
|
|| src == _fonthandelgothicmdSegmentRomStart) {
|
||||||
numchars = 135;
|
num_chars = 135;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ void gbiGdlRewriteAddrs(u8 *dst, u32 offset)
|
|||||||
|
|
||||||
do {
|
do {
|
||||||
cmd = *cmds;
|
cmd = *cmds;
|
||||||
Gfx* gfxcmd = cmds;
|
Gfx* gfxcmd = (Gfx *)cmds;
|
||||||
int idx = 0;
|
int idx = 0;
|
||||||
u8 opcode = (cmd >> 24) & 0xff;
|
u8 opcode = (cmd >> 24) & 0xff;
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -4259,7 +4259,7 @@ u32 fileGetInflatedSize(s32 filenum, FileType filetype)
|
|||||||
{
|
{
|
||||||
u8 *ptr;
|
u8 *ptr;
|
||||||
u8 buffer[0x50];
|
u8 buffer[0x50];
|
||||||
u32 *romaddrptr;
|
uintptr_t *romaddrptr;
|
||||||
#if VERSION < VERSION_NTSC_1_0
|
#if VERSION < VERSION_NTSC_1_0
|
||||||
char message[128];
|
char message[128];
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
+1
-1
@@ -377,7 +377,7 @@ s32 langGetFileId(s32 bank)
|
|||||||
void langLoad(s32 bank)
|
void langLoad(s32 bank)
|
||||||
{
|
{
|
||||||
#if VERSION >= VERSION_PAL_BETA
|
#if VERSION >= VERSION_PAL_BETA
|
||||||
s32 len = fileGetInflatedSize(langGetFileId(bank));
|
s32 len = fileGetInflatedSize(langGetFileId(bank), LOADTYPE_LANG);
|
||||||
|
|
||||||
if ((uintptr_t)g_LangBuffer + len + g_LangBufferSize - (uintptr_t)g_LangBufferPos >= 0) {
|
if ((uintptr_t)g_LangBuffer + len + g_LangBufferSize - (uintptr_t)g_LangBufferPos >= 0) {
|
||||||
s32 len2 = (uintptr_t)g_LangBuffer + g_LangBufferSize - (uintptr_t)g_LangBufferPos;
|
s32 len2 = (uintptr_t)g_LangBuffer + g_LangBufferSize - (uintptr_t)g_LangBufferPos;
|
||||||
|
|||||||
+1
-1
@@ -799,7 +799,7 @@ bool menuitemListTick(struct menuitem *item, struct menuinputs *inputs, u32 tick
|
|||||||
|
|
||||||
void menuitemDropdownInit(struct menuitem *item, union menuitemdata *data)
|
void menuitemDropdownInit(struct menuitem *item, union menuitemdata *data)
|
||||||
{
|
{
|
||||||
s32 (*handler)(s32 operation, struct menuitem *item, union handlerdata *data);
|
uintptr_t (*handler)(s32 operation, struct menuitem *item, union handlerdata *data);
|
||||||
union handlerdata handlerdata;
|
union handlerdata handlerdata;
|
||||||
union handlerdata handlerdata2;
|
union handlerdata handlerdata2;
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user