Merge in small changes. (#63)

This commit is contained in:
Prince Frizzy 2022-04-16 22:12:12 -04:00 committed by GitHub
parent a31ddaff9d
commit f51f1d6c4a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 24 additions and 16 deletions

View file

@ -618,6 +618,14 @@ void Print(const char *aFmt, Args... aArgs) {
aGfxData->mErrorCount++; \ aGfxData->mErrorCount++; \
} }
#if DEBUG
#define PrintDebug(...) { Print(__VA_ARGS__); }
#define PrintDebugNoNewLine(...) { PrintNoNewLine(__VA_ARGS__); }
#else
#define PrintDebug(...)
#define PrintDebugNoNewLine(...)
#endif
template <typename... Args> template <typename... Args>
SysPath fstring(const char *aFmt, Args... aArgs) { SysPath fstring(const char *aFmt, Args... aArgs) {
char buffer[1024]; char buffer[1024];

View file

@ -159,4 +159,4 @@ void DynOS_Tex_Load(FILE *aFile, GfxData *aGfxData) {
// Append // Append
aGfxData->mTextures.Add(_Node); aGfxData->mTextures.Add(_Node);
} }

View file

@ -23,12 +23,14 @@ void DynOS_Actor_AddCustom(const SysPath &aFilename, const char *aActorName) {
GfxData *_GfxData = DynOS_Actor_LoadFromBinary(aFilename, actorName, aFilename); GfxData *_GfxData = DynOS_Actor_LoadFromBinary(aFilename, actorName, aFilename);
if (!_GfxData) { if (!_GfxData) {
Print(" ERROR: Couldn't load Actor Binary \"%s\" from \"%s\"", actorName, aPackFolder.c_str());
free(actorName); free(actorName);
return; return;
} }
void* geoLayout = (*(_GfxData->mGeoLayouts.end() - 1))->mData; void* geoLayout = (*(_GfxData->mGeoLayouts.end() - 1))->mData;
if (!geoLayout) { if (!geoLayout) {
Print(" ERROR: Couldn't load geo layout for \"%s\"", actorName);
free(actorName); free(actorName);
return; return;
} }

View file

@ -136,8 +136,9 @@ static void _RelocateGraphNodePointers(struct GraphNode *aHead, u64 aOffset) {
} while (_Node != aHead); } while (_Node != aHead);
} }
static Array<Pair<void *, void *>> sLoadedGraphNodes = {};
void *DynOS_Geo_GetGraphNode(const void *aGeoLayout, bool aKeepInMemory) { void *DynOS_Geo_GetGraphNode(const void *aGeoLayout, bool aKeepInMemory) {
static Array<Pair<void *, void *>> sLoadedGraphNodes;
if (aKeepInMemory) { if (aKeepInMemory) {
s32 _LoadedGraphNodeIndex = sLoadedGraphNodes.FindIf([&aGeoLayout](const Pair<void *, void *> &aLoadedGraphNode) { return aLoadedGraphNode.first == aGeoLayout; }); s32 _LoadedGraphNodeIndex = sLoadedGraphNodes.FindIf([&aGeoLayout](const Pair<void *, void *> &aLoadedGraphNode) { return aLoadedGraphNode.first == aGeoLayout; });
if (_LoadedGraphNodeIndex != -1) { if (_LoadedGraphNodeIndex != -1) {

View file

@ -76,8 +76,7 @@ typedef struct {
/* Functions */ /* Functions */
s32 osPiStartDma(OSIoMesg *mb, s32 priority, s32 direction, uintptr_t devAddr, void *vAddr, s32 osPiStartDma(OSIoMesg *mb, s32 priority, s32 direction, uintptr_t devAddr, void *vAddr, size_t nbytes, OSMesgQueue *mq);
size_t nbytes, OSMesgQueue *mq);
void osCreatePiManager(OSPri pri, OSMesgQueue *cmdQ, OSMesg *cmdBuf, s32 cmdMsgCnt); void osCreatePiManager(OSPri pri, OSMesgQueue *cmdQ, OSMesg *cmdBuf, s32 cmdMsgCnt);
OSMesgQueue *osPiGetCmdQueue(void); OSMesgQueue *osPiGetCmdQueue(void);
s32 osPiWriteIo(uintptr_t devAddr, u32 data); s32 osPiWriteIo(uintptr_t devAddr, u32 data);

View file

@ -665,8 +665,7 @@ extern s32 osPiRawReadIo(u32, u32 *);
extern s32 osPiRawStartDma(s32, u32, void *, u32); extern s32 osPiRawStartDma(s32, u32, void *, u32);
extern s32 osPiWriteIo(u32, u32); extern s32 osPiWriteIo(u32, u32);
extern s32 osPiReadIo(u32, u32 *); extern s32 osPiReadIo(u32, u32 *);
extern s32 osPiStartDma(OSIoMesg *, s32, s32, u32, void *, u32, extern s32 osPiStartDma(OSIoMesg *, s32, s32, u32, void *, u32, OSMesgQueue *);
OSMesgQueue *);
extern void osCreatePiManager(OSPri, OSMesgQueue *, OSMesg *, s32); extern void osCreatePiManager(OSPri, OSMesgQueue *, OSMesg *, s32);
/* Video interface (Vi) */ /* Video interface (Vi) */

View file

@ -28,17 +28,17 @@ s8 gReverbDownsampleRate;
u8 sReverbDownsampleRateLog; // never read u8 sReverbDownsampleRateLog; // never read
#endif #endif
struct SoundAllocPool gAudioSessionPool; struct SoundAllocPool gAudioSessionPool = {};
struct SoundAllocPool gAudioInitPool; struct SoundAllocPool gAudioInitPool = {};
struct SoundAllocPool gNotesAndBuffersPool; struct SoundAllocPool gNotesAndBuffersPool = {};
u8 sAudioHeapPad[0x20]; // probably two unused pools u8 sAudioHeapPad[0x20]; // probably two unused pools
struct SoundAllocPool gSeqAndBankPool; struct SoundAllocPool gSeqAndBankPool = {};
struct SoundAllocPool gPersistentCommonPool; struct SoundAllocPool gPersistentCommonPool = {};
struct SoundAllocPool gTemporaryCommonPool; struct SoundAllocPool gTemporaryCommonPool = {};
struct SoundMultiPool gSeqLoadedPool; struct SoundMultiPool gSeqLoadedPool = {};
struct SoundMultiPool gBankLoadedPool; struct SoundMultiPool gBankLoadedPool = {};
struct SoundMultiPool gUnusedLoadedPool; struct SoundMultiPool gUnusedLoadedPool = {};
#ifdef VERSION_SH #ifdef VERSION_SH
struct Unk1Pool gUnkPool1; struct Unk1Pool gUnkPool1;

View file

@ -18,7 +18,6 @@ u64 osClockRate = 62500000;
s32 osPiStartDma(UNUSED OSIoMesg *mb, UNUSED s32 priority, UNUSED s32 direction, s32 osPiStartDma(UNUSED OSIoMesg *mb, UNUSED s32 priority, UNUSED s32 direction,
uintptr_t devAddr, void *vAddr, size_t nbytes, uintptr_t devAddr, void *vAddr, size_t nbytes,
UNUSED OSMesgQueue *mq) { UNUSED OSMesgQueue *mq) {
//printf("osPiStartDma: Copying %u bytes from %p to %p!\n", nbytes, (void *)devAddr, vAddr);
memcpy(vAddr, (const void *) devAddr, nbytes); memcpy(vAddr, (const void *) devAddr, nbytes);
return 0; return 0;
} }