diff --git a/Config.h b/Config.h index 63afad79..f65ca6dd 100644 --- a/Config.h +++ b/Config.h @@ -99,6 +99,7 @@ struct Config #define hack_scoreboard (1<<3) //Copy data from RDRAM to auxilary frame buffer. Scoreboard in Mario Tennis. #define hack_pilotWings (1<<4) //Special blend mode for PilotWings. #define hack_subscreen (1<<5) //Fix subscreen delay in Zelda OOT +#define hack_legoRacers (1<<6) //LEGO racers course map extern Config config; diff --git a/FrameBuffer.cpp b/FrameBuffer.cpp index 9866711e..24a1b584 100644 --- a/FrameBuffer.cpp +++ b/FrameBuffer.cpp @@ -417,7 +417,7 @@ void FrameBufferList::saveBuffer(u32 _address, u16 _format, u16 _size, u16 _widt ); #endif - if (bMarioTennisScoreboard) + if (bMarioTennisScoreboard || ((config.generalEmulation.hacks & hack_legoRacers) != 0 && bNew && _width == VI.width)) g_RDRAMtoFB.CopyFromRDRAM(m_pCurrent->m_startAddress + 4, false); m_pCurrent->m_isDepthBuffer = _address == gDP.depthImageAddress; diff --git a/RSP.cpp b/RSP.cpp index 07d58e37..b61e7767 100644 --- a/RSP.cpp +++ b/RSP.cpp @@ -327,7 +327,8 @@ void RSP_Init() strstr(RSP.romname, (const char *)"ZELDA MASTER QUEST") != NULL ) config.generalEmulation.hacks |= hack_subscreen; - + else if (strstr(RSP.romname, (const char *)"LEGORacers") != NULL) + config.generalEmulation.hacks |= hack_legoRacers; api().FindPluginPath(RSP.pluginpath);