diff --git a/src/Config.h b/src/Config.h index 2600c825..3a8751e2 100644 --- a/src/Config.h +++ b/src/Config.h @@ -106,10 +106,11 @@ struct Config #define hack_noDepthFrameBuffers (1<<1) //Do not use depth buffers as texture #define hack_blurPauseScreen (1<<2) //Game copies frame buffer to depth buffer area, CPU blurs it. That image is used as background for pause screen. #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 -#define hack_blastCorps (1<<7) //Blast Corps black polygons +#define hack_scoreboardJ (1<<4) //Copy data from RDRAM to auxilary frame buffer. Scoreboard in Mario Tennis (J). +#define hack_pilotWings (1<<5) //Special blend mode for PilotWings. +#define hack_subscreen (1<<6) //Fix subscreen delay in Zelda OOT +#define hack_legoRacers (1<<7) //LEGO racers course map +#define hack_blastCorps (1<<8) //Blast Corps black polygons extern Config config; diff --git a/src/FrameBuffer.cpp b/src/FrameBuffer.cpp index c7b717c5..65a7224e 100644 --- a/src/FrameBuffer.cpp +++ b/src/FrameBuffer.cpp @@ -281,7 +281,9 @@ void FrameBufferList::setBufferChanged() bool FrameBufferList::_isMarioTennisScoreboard() { - return (config.generalEmulation.hacks&hack_scoreboard) != 0 && m_pCurrent != NULL && (m_pCurrent->m_startAddress == 0x13ba50 || m_pCurrent->m_startAddress == 0x264430); + if ((config.generalEmulation.hacks&hack_scoreboard) != 0) + return m_pCurrent != NULL && (m_pCurrent->m_startAddress == 0x13ba50 || m_pCurrent->m_startAddress == 0x264430); + return (config.generalEmulation.hacks&hack_scoreboardJ) != 0 && m_pCurrent != NULL && (m_pCurrent->m_startAddress == 0x134080 || m_pCurrent->m_startAddress == 0x1332f8); } void FrameBufferList::correctHeight() diff --git a/src/RSP.cpp b/src/RSP.cpp index 84bc94ae..73679476 100644 --- a/src/RSP.cpp +++ b/src/RSP.cpp @@ -309,6 +309,8 @@ void RSP_Init() strstr(RSP.romname, (const char *)"MICKEY USA") != NULL ) config.generalEmulation.hacks |= hack_blurPauseScreen; + else if (strstr(RSP.romname, (const char *)"MarioTennis64") != NULL) + config.generalEmulation.hacks |= hack_scoreboardJ; else if (strstr(RSP.romname, (const char *)"MarioTennis") != NULL) config.generalEmulation.hacks |= hack_scoreboard; else if (strstr(RSP.romname, (const char *)"Pilot Wings64") != NULL)