static bool StartVideo(void) { windowSetting.dps = windowSetting.fps = -1; windowSetting.lastSecDlistCount = windowSetting.lastSecFrameCount = 0xFFFFFFFF; memcpy(&g_curRomInfo.romheader, gfx_info.HEADER, sizeof(ROMHeader)); unsigned char *puc = (unsigned char *) &g_curRomInfo.romheader; unsigned int i; unsigned char temp; for (i = 0; i < sizeof(ROMHeader); i += 4) /* byte-swap the ROM header */ { temp = puc[i]; puc[i] = puc[i+3]; puc[i+3] = temp; temp = puc[i+1]; puc[i+1] = puc[i+2]; puc[i+2] = temp; } ROM_GetRomNameFromHeader(g_curRomInfo.szGameName, &g_curRomInfo.romheader); Ini_GetRomOptions(&g_curRomInfo); char *p = (char *) g_curRomInfo.szGameName + (strlen((char *) g_curRomInfo.szGameName) -1); // -1 to skip null while (p >= (char *) g_curRomInfo.szGameName) { if( *p == ':' || *p == '\\' || *p == '/' ) *p = '-'; p--; } GenerateCurrentRomOptions(); status.dwTvSystem = CountryCodeToTVSystem(g_curRomInfo.romheader.nCountryID); if( status.dwTvSystem == TV_SYSTEM_NTSC ) status.fRatio = 0.75f; else status.fRatio = 9/11.0f;; CDeviceBuilder::GetBuilder()->CreateGraphicsContext(); CGraphicsContext::InitWindowInfo(); bool res = CGraphicsContext::Get()->Initialize(windowSetting.uDisplayWidth, windowSetting.uDisplayHeight); if (!res) { return false; } CDeviceBuilder::GetBuilder()->CreateRender(); CRender::GetRender()->Initialize(); DLParser_Init(); status.bGameIsRunning = true; return true; }
EXPORT BOOL CALL InitiateAudio (AUDIO_INFO Audio_Info) { HRESULT hr; int count; ROMHeader header; //void InitLogging (); static int initvariables=0; gUcode = UNDEFINED_UCODE; AudioInfo = Audio_Info; audioIsPlaying = FALSE; memcpy(&header, Audio_Info.HEADER, sizeof(ROMHeader)); ROM_ByteSwap_3210( &header, sizeof(ROMHeader) ); memset(gameName,0,sizeof(gameName)); ROM_GetRomNameFromHeader(gameName, &header); if (!initvariables) { initvariables = 1; Dacrate = 0; Playing = FALSE; SndBuffer[0] = Buffer_Empty; SndBuffer[1] = Buffer_Empty; SndBuffer[2] = Buffer_Empty; pIMEM = (char*)Audio_Info.IMEM; pRDRAM = (char*)Audio_Info.RDRAM; pDMEM = (char*)Audio_Info.DMEM; } //InitLogging (); DoOnce = 0; imem_DMA_dst = 0; imem_DMA_src = 0; rsp_reset(); return TRUE; }
bool StartVideo(void) { #ifndef _XBOX SystemParametersInfo(SPI_GETSCREENSAVEACTIVE, 0, &windowSetting.screenSaverStatus, 0); if( windowSetting.screenSaverStatus ) SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, FALSE, 0, 0); // Disable screen saver windowSetting.timer = SetTimer(g_GraphicsInfo.hWnd, 100, 1000, (TIMERPROC)TimerProc); #endif windowSetting.dps = windowSetting.fps = -1; windowSetting.lastSecDlistCount = windowSetting.lastSecFrameCount = 0xFFFFFFFF; g_CritialSection.Lock(); memcpy(&g_curRomInfo.romheader, g_GraphicsInfo.HEADER, sizeof(ROMHeader)); unsigned char *puc = (unsigned char *) &g_curRomInfo.romheader; unsigned int i; unsigned char temp; for (i = 0; i < sizeof(ROMHeader); i += 4) /* byte-swap the ROM header */ { temp = puc[i]; puc[i] = puc[i+3]; puc[i+3] = temp; temp = puc[i+1]; puc[i+1] = puc[i+2]; puc[i+2] = temp; } ROM_GetRomNameFromHeader(g_curRomInfo.szGameName, &g_curRomInfo.romheader); Ini_GetRomOptions(&g_curRomInfo); char *p = g_curRomInfo.szGameName + (lstrlen(g_curRomInfo.szGameName) -1); // -1 to skip null while (p >= g_curRomInfo.szGameName) { if( *p == ':' || *p == '\\' || *p == '/' ) *p = '-'; p--; } GenerateCurrentRomOptions(); status.dwTvSystem = CountryCodeToTVSystem(g_curRomInfo.romheader.nCountryID); if( status.dwTvSystem == TV_SYSTEM_NTSC ) status.fRatio = 0.75f; else status.fRatio = 9/11.0f;; InitExternalTextures(); try { CDeviceBuilder::GetBuilder()->CreateGraphicsContext(); CGraphicsContext::InitWindowInfo(); bool res = CGraphicsContext::Get()->Initialize(g_GraphicsInfo.hWnd, g_GraphicsInfo.hStatusBar, 640, 480, TRUE); if(!res ) { g_CritialSection.Unlock(); return false; } CDeviceBuilder::GetBuilder()->CreateRender(); CRender::GetRender()->Initialize(); DLParser_Init(); status.bGameIsRunning = true; } catch(...) { ErrorMsg("Exception caught while starting video renderer"); throw 0; } g_CritialSection.Unlock(); return true; }
void StartVideo(void) { #ifdef DEBUGON // _break(); #endif windowSetting.dps = windowSetting.fps = -1; windowSetting.lastSecDlistCount = windowSetting.lastSecFrameCount = 0xFFFFFFFF; g_CritialSection.Lock(); memcpy(&g_curRomInfo.romheader, g_GraphicsInfo.HEADER, sizeof(ROMHeader)); #ifndef _BIG_ENDIAN unsigned char *puc = (unsigned char *) &g_curRomInfo.romheader; unsigned int i; unsigned char temp; for (i = 0; i < sizeof(ROMHeader); i += 4) { temp = puc[i]; puc[i] = puc[i+3]; puc[i+3] = temp; temp = puc[i+1]; puc[i+1] = puc[i+2]; puc[i+2] = temp; } #endif //_BIG_ENDIAN ROM_GetRomNameFromHeader(g_curRomInfo.szGameName, &g_curRomInfo.romheader); Ini_GetRomOptions(&g_curRomInfo); char *p = (char *) g_curRomInfo.szGameName + (strlen((char *) g_curRomInfo.szGameName) -1); // -1 to skip null while (p >= (char *) g_curRomInfo.szGameName) { if( *p == ':' || *p == '\\' || *p == '/' ) *p = '-'; p--; } GenerateCurrentRomOptions(); status.dwTvSystem = CountryCodeToTVSystem(g_curRomInfo.romheader.nCountryID); if( status.dwTvSystem == TV_SYSTEM_NTSC ) status.fRatio = 0.75f; else status.fRatio = 9/11.0f;; InitExternalTextures(); try { #ifdef __GX__ CDeviceBuilder::SelectDeviceType(OGL_DEVICE); #endif //__GX__ #ifdef XENON CDeviceBuilder::SelectDeviceType(OGL_DEVICE); #endif CDeviceBuilder::GetBuilder()->CreateGraphicsContext(); CGraphicsContext::InitWindowInfo(); windowSetting.bDisplayFullscreen = FALSE; bool res = CGraphicsContext::Get()->Initialize(0, 0, 640, 480, TRUE); CDeviceBuilder::GetBuilder()->CreateRender(); CRender::GetRender()->Initialize(); if( res ) { DLParser_Init(); } status.bGameIsRunning = true; } catch(...) { ErrorMsg("Error to start video"); throw 0; } g_CritialSection.Unlock(); }