Added fixes based on the reviews

This commit is contained in:
Kevin Alexis Contreras 2022-06-19 02:03:04 -05:00
parent 8a6ee00a21
commit e945a86d46
5 changed files with 60 additions and 70 deletions

View File

@ -12,12 +12,11 @@ namespace Ship
while (reader->GetBaseAddress() % 8 != 0)
reader->ReadByte();
if (sizeof(uintptr_t) < 8)
while (true)
{
while (true)
{
uint64_t data = reader->ReadUInt64();
uint64_t data = reader->ReadUInt64();
if (sizeof(uintptr_t) < 8){
dl->instructions.push_back(data);
uint8_t opcode = data >> 24;
@ -28,13 +27,7 @@ namespace Ship
if (opcode == G_ENDDL)
break;
}
}
else
{
while (true)
{
uint64_t data = reader->ReadUInt64();
} else {
uint32_t w0 = (uint32_t)data;
uint32_t w1 = (uint32_t)(data >> 32);

View File

@ -1646,8 +1646,6 @@ typedef struct {
#ifdef __cplusplus
static_assert(sizeof(Gwords) == 2 * sizeof(void*), "Display list size is bad");
#else
//_Static_assert(sizeof(Gwords) == 2 * sizeof(void*), "fail");
#endif
/*

View File

@ -2,40 +2,40 @@
#include "spdlog/spdlog.h"
namespace Ship {
bool SDLAudioPlayer::Init(void) {
if (SDL_Init(SDL_INIT_AUDIO) != 0) {
SPDLOG_ERROR("SDL init error: %s\n", SDL_GetError());
return false;
}
SDL_AudioSpec want, have;
SDL_zero(want);
want.freq = this->GetSampleRate();
want.format = AUDIO_S16;
want.channels = 2;
want.samples = 1024;
want.callback = NULL;
Device = SDL_OpenAudioDevice(NULL, 0, &want, &have, 0);
if (Device == 0) {
SPDLOG_ERROR("SDL_OpenAudio error: {}", SDL_GetError());
return false;
}
SDL_PauseAudioDevice(Device, 0);
return true;
}
bool SDLAudioPlayer::Init(void) {
if (SDL_Init(SDL_INIT_AUDIO) != 0) {
SPDLOG_ERROR("SDL init error: %s\n", SDL_GetError());
return false;
}
SDL_AudioSpec want, have;
SDL_zero(want);
want.freq = this->GetSampleRate();
want.format = AUDIO_S16;
want.channels = 2;
want.samples = 1024;
want.callback = NULL;
Device = SDL_OpenAudioDevice(NULL, 0, &want, &have, 0);
if (Device == 0) {
SPDLOG_ERROR("SDL_OpenAudio error: {}", SDL_GetError());
return false;
}
SDL_PauseAudioDevice(Device, 0);
return true;
}
int SDLAudioPlayer::Buffered(void) {
// 4 is sizeof(int16_t) * num_channels (2 for stereo)
return SDL_GetQueuedAudioSize(Device) / 4;
}
int SDLAudioPlayer::Buffered(void) {
// 4 is sizeof(int16_t) * num_channels (2 for stereo)
return SDL_GetQueuedAudioSize(Device) / 4;
}
int SDLAudioPlayer::GetDesiredBuffered(void) {
return 2480;
}
int SDLAudioPlayer::GetDesiredBuffered(void) {
return 2480;
}
void SDLAudioPlayer::Play(const uint8_t* Buffer, uint32_t BufferLen) {
if (Buffered() < 6000) {
// Don't fill the audio buffer too much in case this happens
SDL_QueueAudio(Device, Buffer, BufferLen);
}
}
void SDLAudioPlayer::Play(const uint8_t* Buffer, uint32_t BufferLen) {
if (Buffered() < 6000) {
// Don't fill the audio buffer too much in case this happens
SDL_QueueAudio(Device, Buffer, BufferLen);
}
}
}

View File

@ -356,7 +356,7 @@ extern "C" char** ResourceMgr_ListFiles(const char* searchMask, int* resultSize)
auto lst = OTRGlobals::Instance->context->GetResourceManager()->ListFiles(searchMask);
char** result = (char**)malloc(lst->size() * sizeof(char*));
for (int i = 0; i < lst->size(); i++) {
for (size_t i = 0; i < lst->size(); i++) {
char* str = (char*)malloc(lst.get()[0][i].size() + 1);
memcpy(str, lst.get()[0][i].data(), lst.get()[0][i].size());
str[lst.get()[0][i].size()] = '\0';
@ -478,7 +478,7 @@ extern "C" char* ResourceMgr_LoadArrayByNameAsVec3s(const char* path) {
{
Vec3s* data = (Vec3s*)malloc(sizeof(Vec3s) * res->scalars.size());
for (int i = 0; i < res->scalars.size(); i += 3) {
for (size_t i = 0; i < res->scalars.size(); i += 3) {
data[(i / 3)].x = res->scalars[i + 0].s16;
data[(i / 3)].y = res->scalars[i + 1].s16;
data[(i / 3)].z = res->scalars[i + 2].s16;
@ -510,7 +510,7 @@ extern "C" CollisionHeader* ResourceMgr_LoadColByName(const char* path)
colHeader->vtxList = (Vec3s*)malloc(sizeof(Vec3s) * colRes->vertices.size());
colHeader->numVertices = colRes->vertices.size();
for (int i = 0; i < colRes->vertices.size(); i++)
for (size_t i = 0; i < colRes->vertices.size(); i++)
{
colHeader->vtxList[i].x = colRes->vertices[i].x;
colHeader->vtxList[i].y = colRes->vertices[i].y;
@ -520,7 +520,7 @@ extern "C" CollisionHeader* ResourceMgr_LoadColByName(const char* path)
colHeader->polyList = (CollisionPoly*)malloc(sizeof(CollisionPoly) * colRes->polygons.size());
colHeader->numPolygons = colRes->polygons.size();
for (int i = 0; i < colRes->polygons.size(); i++)
for (size_t i = 0; i < colRes->polygons.size(); i++)
{
colHeader->polyList[i].type = colRes->polygons[i].type;
colHeader->polyList[i].flags_vIA = colRes->polygons[i].vtxA;
@ -534,7 +534,7 @@ extern "C" CollisionHeader* ResourceMgr_LoadColByName(const char* path)
colHeader->surfaceTypeList = (SurfaceType*)malloc(colRes->polygonTypes.size() * sizeof(SurfaceType));
for (int i = 0; i < colRes->polygonTypes.size(); i++)
for (size_t i = 0; i < colRes->polygonTypes.size(); i++)
{
colHeader->surfaceTypeList[i].data[0] = colRes->polygonTypes[i] >> 32;
colHeader->surfaceTypeList[i].data[1] = colRes->polygonTypes[i] & 0xFFFFFFFF;
@ -542,7 +542,7 @@ extern "C" CollisionHeader* ResourceMgr_LoadColByName(const char* path)
colHeader->cameraDataList = (CamData*)malloc(sizeof(CamData) * colRes->camData->entries.size());
for (int i = 0; i < colRes->camData->entries.size(); i++)
for (size_t i = 0; i < colRes->camData->entries.size(); i++)
{
colHeader->cameraDataList[i].cameraSType = colRes->camData->entries[i]->cameraSType;
colHeader->cameraDataList[i].numCameras = colRes->camData->entries[i]->numData;
@ -629,7 +629,7 @@ extern "C" SoundFontSample* ReadCustomSample(const char* path) {
drwav_uint32 channels;
drwav_uint32 sampleRate;
drwav_uint64 totalPcm;
drmp3_int16* pcmData =
drmp3_int16* pcmData =
drwav_open_memory_and_read_pcm_frames_s16(strem2, sampleRaw->dwBufferSize, &channels, &sampleRate, &totalPcm, NULL);
sampleC->size = totalPcm;
sampleC->sampleAddr = (uint8_t*)pcmData;
@ -645,7 +645,6 @@ extern "C" SoundFontSample* ReadCustomSample(const char* path) {
cachedCustomSFs[path] = sampleC;
return sampleC;
} else if (entry.ext == "mp3") {
drmp3_config mp3Info;
drmp3_uint64 totalPcm;
drmp3_int16* pcmData =
@ -709,7 +708,7 @@ extern "C" SoundFontSample* ResourceMgr_LoadAudioSample(const char* path)
sampleC->book->npredictors = sample->book.npredictors;
sampleC->book->order = sample->book.order;
for (int i = 0; i < sample->book.books.size(); i++)
for (size_t i = 0; i < sample->book.books.size(); i++)
sampleC->book->book[i] = sample->book.books[i];
sampleC->loop = new AdpcmLoop;
@ -720,7 +719,7 @@ extern "C" SoundFontSample* ResourceMgr_LoadAudioSample(const char* path)
for (int i = 0; i < 16; i++)
sampleC->loop->state[i] = 0;
for (int i = 0; i < sample->loop.states.size(); i++)
for (size_t i = 0; i < sample->loop.states.size(); i++)
sampleC->loop->state[i] = sample->loop.states[i];
sample->cachedGameAsset = sampleC;
@ -752,7 +751,7 @@ extern "C" SoundFont* ResourceMgr_LoadAudioSoundFont(const char* path) {
soundFontC->drums = (Drum**)malloc(sizeof(Drum*) * soundFont->drums.size());
for (int i = 0; i < soundFont->drums.size(); i++)
for (size_t i = 0; i < soundFont->drums.size(); i++)
{
Drum* drum = (Drum*)malloc(sizeof(Drum));
@ -766,7 +765,7 @@ extern "C" SoundFont* ResourceMgr_LoadAudioSoundFont(const char* path) {
{
drum->envelope = (AdsrEnvelope*)malloc(sizeof(AdsrEnvelope) * soundFont->drums[i].env.size());
for (int k = 0; k < soundFont->drums[i].env.size(); k++)
for (size_t k = 0; k < soundFont->drums[i].env.size(); k++)
{
drum->envelope[k].delay = BOMSWAP16(soundFont->drums[i].env[k]->delay);
drum->envelope[k].arg = BOMSWAP16(soundFont->drums[i].env[k]->arg);
@ -781,7 +780,7 @@ extern "C" SoundFont* ResourceMgr_LoadAudioSoundFont(const char* path) {
soundFontC->instruments = (Instrument**)malloc(sizeof(Instrument*) * soundFont->instruments.size());
for (int i = 0; i < soundFont->instruments.size(); i++) {
for (size_t i = 0; i < soundFont->instruments.size(); i++) {
if (soundFont->instruments[i].isValidEntry)
{
@ -843,7 +842,7 @@ extern "C" SoundFont* ResourceMgr_LoadAudioSoundFont(const char* path) {
soundFontC->soundEffects = (SoundFontSound*)malloc(sizeof(SoundFontSound) * soundFont->soundEffects.size());
for (int i = 0; i < soundFont->soundEffects.size(); i++)
for (size_t i = 0; i < soundFont->soundEffects.size(); i++)
{
soundFontC->soundEffects[i].sample = ResourceMgr_LoadAudioSample(soundFont->soundEffects[i]->sampleFileName.c_str());
soundFontC->soundEffects[i].tuning = soundFont->soundEffects[i]->tuning;
@ -887,12 +886,12 @@ extern "C" AnimationHeaderCommon* ResourceMgr_LoadAnimByName(const char* path) {
animNormal->common.frameCount = res->frameCount;
animNormal->frameData = (int16_t*)malloc(res->rotationValues.size() * sizeof(int16_t));
for (int i = 0; i < res->rotationValues.size(); i++)
for (size_t i = 0; i < res->rotationValues.size(); i++)
animNormal->frameData[i] = res->rotationValues[i];
animNormal->jointIndices = (JointIndex*)malloc(res->rotationIndices.size() * sizeof(Vec3s));
for (int i = 0; i < res->rotationIndices.size(); i++) {
for (size_t i = 0; i < res->rotationIndices.size(); i++) {
animNormal->jointIndices[i].x = res->rotationIndices[i].x;
animNormal->jointIndices[i].y = res->rotationIndices[i].y;
animNormal->jointIndices[i].z = res->rotationIndices[i].z;
@ -908,12 +907,12 @@ extern "C" AnimationHeaderCommon* ResourceMgr_LoadAnimByName(const char* path) {
animCurve->copyValues = (s16*)malloc(res->copyValuesArr.size() * sizeof(s16));
for (int i = 0; i < res->copyValuesArr.size(); i++)
for (size_t i = 0; i < res->copyValuesArr.size(); i++)
animCurve->copyValues[i] = res->copyValuesArr[i];
animCurve->transformData = (TransformData*)malloc(res->transformDataArr.size() * sizeof(TransformData));
for (int i = 0; i < res->transformDataArr.size(); i++)
for (size_t i = 0; i < res->transformDataArr.size(); i++)
{
animCurve->transformData[i].unk_00 = res->transformDataArr[i].unk_00;
animCurve->transformData[i].unk_02 = res->transformDataArr[i].unk_02;
@ -923,7 +922,7 @@ extern "C" AnimationHeaderCommon* ResourceMgr_LoadAnimByName(const char* path) {
}
animCurve->refIndex = (u8*)malloc(res->refIndexArr.size());
for (int i = 0; i < res->refIndexArr.size(); i++)
for (size_t i = 0; i < res->refIndexArr.size(); i++)
animCurve->refIndex[i] = res->refIndexArr[i];
anim = (AnimationHeaderCommon*)animCurve;
@ -973,7 +972,7 @@ extern "C" SkeletonHeader* ResourceMgr_LoadSkeletonByName(const char* path) {
baseHeader->segment = (void**)malloc(sizeof(StandardLimb*) * res->limbTable.size());
}
for (int i = 0; i < res->limbTable.size(); i++) {
for (size_t i = 0; i < res->limbTable.size(); i++) {
std::string limbStr = res->limbTable[i];
auto limb = std::static_pointer_cast<Ship::SkeletonLimb>(
OTRGlobals::Instance->context->GetResourceManager()->LoadResource(limbStr.c_str()));
@ -1070,7 +1069,7 @@ extern "C" SkeletonHeader* ResourceMgr_LoadSkeletonByName(const char* path) {
animData->limbModifications = new SkinLimbModif[animData->limbModifCount];
animData->dlist = ResourceMgr_LoadGfxByName(limb->skinDList2.c_str());
for (int i = 0; i < skinDataSize; i++)
for (size_t i = 0; i < skinDataSize; i++)
{
animData->limbModifications[i].vtxCount = limb->skinData[i].unk_8_arr.size();
animData->limbModifications[i].transformCount = limb->skinData[i].unk_C_arr.size();
@ -1223,7 +1222,7 @@ extern "C" uint32_t OTRGetCurrentHeight() {
extern "C" void OTRControllerCallback(ControllerCallback* controller) {
auto controllers = OTRGlobals::Instance->context->GetWindow()->Controllers;
for (int i = 0; i < controllers.size(); i++) {
for (size_t i = 0; i < controllers.size(); i++) {
for (int j = 0; j < controllers[i].size(); j++) {
OTRGlobals::Instance->context->GetWindow()->Controllers[i][j]->WriteToSource(controller);
}

View File

@ -1585,8 +1585,8 @@ void BgCheck_Allocate(CollisionContext* colCtx, GlobalContext* globalCtx, Collis
BgCheck_SetSubdivisionDimension(colCtx->minBounds.z, colCtx->subdivAmount.z, &colCtx->maxBounds.z,
&colCtx->subdivLength.z, &colCtx->subdivLengthInv.z);
#ifdef _SOH64
colCtx->memSize *= (sizeof(void*) / 4);
#ifdef _SOH64 // BGCheck needs more memory on 64 bits because it crashes on some areas
colCtx->memSize *= 2;
#endif
memSize = colCtx->subdivAmount.x * sizeof(StaticLookup) * colCtx->subdivAmount.y * colCtx->subdivAmount.z +