[Gamecube specific]

---------------
* fixed audio input frequency, now use exact audio hardware samplerate, as measured on my Game Cube (~48044 Hz),

[Wii specific]
---------------
* fixed USB drive not being detected when application is loaded from USB (HBC), thanks to Tantric for the tips.
This commit is contained in:
ekeeke31 2010-12-04 17:16:32 +00:00
parent 39920979d2
commit 24e84a7951

View File

@ -39,6 +39,13 @@
#include <wiiuse/wpad.h> #include <wiiuse/wpad.h>
#endif #endif
/* audio "exact" samplerate, measured on real hardware */
#ifdef HW_RVL
#define SAMPLERATE_48KHZ 48000
#else
#define SAMPLERATE_48KHZ 48044
#endif
u32 Shutdown = 0; u32 Shutdown = 0;
u32 ConfigRequested = 1; u32 ConfigRequested = 1;
@ -169,7 +176,7 @@ static void run_emulation(void)
memcpy(temp, YM2612GetContextPtr(), YM2612GetContextSize()); memcpy(temp, YM2612GetContextPtr(), YM2612GetContextSize());
/* framerate has changed, reinitialize audio timings */ /* framerate has changed, reinitialize audio timings */
audio_init(48000, interlaced ? 59.94 : (1000000.0/16715.0)); audio_init(SAMPLERATE_48KHZ, interlaced ? 59.94 : (1000000.0/16715.0));
sound_init(); sound_init();
/* restore YM2612 context */ /* restore YM2612 context */
@ -202,7 +209,7 @@ void reloadrom (int size, char *name)
if (hotswap) if (hotswap)
{ {
cart_hw_init(); cart_hw_init();
cart_hw_reset(); cart_hw_reset(1);
} }
else else
{ {
@ -210,7 +217,7 @@ void reloadrom (int size, char *name)
/* 60hz video mode requires synchronization with Video Interrupt. */ /* 60hz video mode requires synchronization with Video Interrupt. */
/* Framerate is 59.94 fps in interlaced/progressive modes, ~59.825 fps in non-interlaced mode */ /* Framerate is 59.94 fps in interlaced/progressive modes, ~59.825 fps in non-interlaced mode */
float framerate = vdp_pal ? 50.0 : ((config.tv_mode == 1) ? 60.0 : (config.render ? 59.94 : (1000000.0/16715.0))); float framerate = vdp_pal ? 50.0 : ((config.tv_mode == 1) ? 60.0 : (config.render ? 59.94 : (1000000.0/16715.0)));
audio_init(48000, framerate); audio_init(SAMPLERATE_48KHZ, framerate);
/* System Power ON */ /* System Power ON */
system_init (); system_init ();
@ -266,18 +273,36 @@ u32 frameticker = 0;
int main (int argc, char *argv[]) int main (int argc, char *argv[])
{ {
/* initialize video engine */ #ifdef HW_RVL
gx_video_Init(); /* initialize DI interface */
DI_UseCache(0);
/* initialize DVD interface */
#ifdef HW_DOL
DVD_Init ();
#else
DI_Init(); DI_Init();
#endif #endif
/* initialize video engine */
gx_video_Init();
#ifdef HW_DOL
/* initialize DVD interface */
DVD_Init ();
#endif
/* initialize input engine */
gx_input_Init();
/* initialize FAT devices */ /* initialize FAT devices */
if (fatInitDefault()) int retry = 0;
int fatMounted = 0;
/* try to mount FAT devices during 3 seconds */
while (!fatMounted && (retry < 12))
{
fatMounted = fatInitDefault();
usleep(250000);
retry++;
}
if (fatMounted)
{ {
/* base directory */ /* base directory */
char pathname[MAXPATHLEN]; char pathname[MAXPATHLEN];
@ -305,9 +330,6 @@ int main (int argc, char *argv[])
else mkdir(pathname,S_IRWXU); else mkdir(pathname,S_IRWXU);
} }
/* initialize input engine */
gx_input_Init();
/* initialize sound engine */ /* initialize sound engine */
gx_audio_Init(); gx_audio_Init();