From 9a556978bad21b1049b7c98423b3bd5f6cfbd87f Mon Sep 17 00:00:00 2001 From: Sergey Lipskiy Date: Sat, 4 Apr 2015 18:58:24 +0600 Subject: [PATCH] Add hack for LEGO racers course map: copy RDRAM content to new buffer. Fixed issue #314 --- Config.h | 1 + FrameBuffer.cpp | 2 +- RSP.cpp | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) 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);