mirror of
https://github.com/mwpenny/portal64-still-alive.git
synced 2024-10-20 10:37:37 -04:00
Fix PAL audio
This commit is contained in:
parent
6332f2f5cf
commit
d26a6408b5
|
@ -8,7 +8,7 @@
|
|||
u8* gAudioHeapBuffer;
|
||||
ALHeap gAudioHeap;
|
||||
|
||||
void initAudio(void)
|
||||
void initAudio(int fps)
|
||||
{
|
||||
ALSynConfig c;
|
||||
amConfig amc;
|
||||
|
@ -30,5 +30,5 @@ void initAudio(void)
|
|||
amc.framesPerField = NUM_FIELDS;
|
||||
amc.maxACMDSize = MAX_RSP_CMDS;
|
||||
|
||||
amCreateAudioMgr(&c, AUDIO_PRIORITY, &amc);
|
||||
amCreateAudioMgr(&c, AUDIO_PRIORITY, &amc, fps);
|
||||
}
|
||||
|
|
|
@ -49,8 +49,8 @@ typedef struct {
|
|||
} amConfig;
|
||||
|
||||
|
||||
void amCreateAudioMgr(ALSynConfig *c, OSPri priority, amConfig *amc);
|
||||
void initAudio(void);
|
||||
void amCreateAudioMgr(ALSynConfig *c, OSPri priority, amConfig *amc, int fps);
|
||||
void initAudio(int fps);
|
||||
|
||||
extern u64 audYieldBuf[];
|
||||
extern u8* gAudioHeapBuffer;
|
||||
|
|
|
@ -89,7 +89,7 @@ static void __clearAudioDMA(void);
|
|||
/******************************************************************************
|
||||
* Audio Manager API
|
||||
*****************************************************************************/
|
||||
void amCreateAudioMgr(ALSynConfig *c, OSPri pri, amConfig *amc)
|
||||
void amCreateAudioMgr(ALSynConfig *c, OSPri pri, amConfig *amc, int fps)
|
||||
{
|
||||
u32 i;
|
||||
f32 fsize;
|
||||
|
@ -103,7 +103,7 @@ void amCreateAudioMgr(ALSynConfig *c, OSPri pri, amConfig *amc)
|
|||
* Calculate the frame sample parameters from the
|
||||
* video field rate and the output rate
|
||||
*/
|
||||
fsize = (f32) amc->framesPerField * c->outputRate / (f32) 60;
|
||||
fsize = (f32) amc->framesPerField * c->outputRate / (f32) fps;
|
||||
frameSize = (s32) fsize;
|
||||
if (frameSize < fsize)
|
||||
frameSize++;
|
||||
|
|
|
@ -99,9 +99,12 @@ extern char _animation_segmentSegmentRomStart[];
|
|||
static void gameProc(void* arg) {
|
||||
u8 schedulerMode = OS_VI_NTSC_LPF1;
|
||||
|
||||
int fps = 60;
|
||||
|
||||
switch (osTvType) {
|
||||
case 0: // PAL
|
||||
schedulerMode = HIGH_RES ? OS_VI_PAL_HPF1 : OS_VI_PAL_LPF1;
|
||||
fps = 50;
|
||||
break;
|
||||
case 1: // NTSC
|
||||
schedulerMode = HIGH_RES ? OS_VI_NTSC_HPF1 : OS_VI_NTSC_LPF1;
|
||||
|
@ -155,10 +158,10 @@ static void gameProc(void* arg) {
|
|||
dynamicSceneInit();
|
||||
contactSolverInit(&gContactSolver);
|
||||
portalSurfaceCleanupQueueInit();
|
||||
levelLoad(3);
|
||||
levelLoad(0);
|
||||
cutsceneRunnerReset();
|
||||
controllersInit();
|
||||
initAudio();
|
||||
initAudio(fps);
|
||||
soundPlayerInit();
|
||||
skSetSegmentLocation(CHARACTER_ANIMATION_SEGMENT, (unsigned)_animation_segmentSegmentRomStart);
|
||||
sceneInit(&gScene);
|
||||
|
|
Loading…
Reference in a new issue