Skip to content

Commit

Permalink
Fix Caribbean Nights homebrew, see #2700
Browse files Browse the repository at this point in the history
  • Loading branch information
gonetz committed Nov 10, 2024
1 parent a1320da commit d5be3c6
Showing 1 changed file with 39 additions and 36 deletions.
75 changes: 39 additions & 36 deletions src/GBI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -52,48 +52,50 @@ struct SpecialMicrocodeInfo
bool NoN; // ucode does not use near clipping
bool negativeY; // Y is inverted
bool fast3DPerspNorm; // ucode is from Fast3D family and has G_PERSPNORMALIZE. See #1303
bool legacyVertexPipeline;
u32 crc;
};

static const
std::vector<SpecialMicrocodeInfo> specialMicrocodes =
{
{ S2DEX2, false, true, false, 0x02c399dd }, // Animal Forest
{ F3DEX095, false, false, true, 0x0ace4c3f }, // Mario Kart 64
{ F3D, true, false, false, 0x16c3a775 }, // AeroFighters
{ F3DEX2CBFD, true, true, false, 0x1b4ace88 }, // Conker's Bad Fur Day
{ F3DPD, true, true, false, 0x1c4f7869 }, // Perfect Dark
{ F3D, false, false, true, 0x1f24cc84 }, // Wayne Gretzky's 3D Hockey (U)
{ F5Indi_Naboo, false, false, false, 0x23fef05f }, // SW Ep.1 Battle for Naboo
{ Turbo3D, false, true, false, 0x2bdcfc8a }, // Dark Rift, Turbo3D
{ F3DSETA, false, true, true, 0x2edee7be }, // RSP SW Version: 2.0D, 04-01-96
{ F3DGOLDEN, true, true, false, 0x302bca09 }, // RSP SW Version: 2.0G, 09-30-96 GoldenEye
{ F3D, false, false, false, 0x4AED6B3B }, // Vivid Dolls [ALECK64]
{ F3D, true, true, true, 0x54c558ba }, // RSP SW Version: 2.0D, 04-01-96 Pilot Wings, Blast Corps
{ ZSortBOSS, false, false, false, 0x553538cc }, // World Driver Championship
{ F3D, false, false, true, 0x55be9bad }, // RSP SW Version: 2.0D, 04-01-96, Mischief Makers, Mortal Combat Trilogy, J.League Live
{ F3DEX, true, true, true, 0x637b4b58 }, // RSP SW Version: 2.0D, 04-01-96 Power League
{ F5Indi_Naboo, false, false, false, 0x6859bf8e }, // Indiana Jones
{ F3D, false, false, true, 0x6932365f }, // Super Mario 64
{ ZSortBOSS, false, false, false, 0x6a76f8dd }, // Stunt Racer
{ F3DDKR, false, true, true, 0x6e6fc893 }, // Diddy Kong Racing
{ ZSortBOSS, false, false, false, 0x75ed44cc }, // World Driver Championship, European
{ F3D, true, false, true, 0x77195a68 }, // Dark Rift
{ L3D, true, true, true, 0x771ce0c4 }, // RSP SW Version: 2.0D, 04-01-96 Blast Corps
{ F3D, false, false, false, 0x7d372819 }, // Pachinko nichi 365
{ F3DDKR, false, true, true, 0x8d91244f }, // Diddy Kong Racing
{ F3DBETA, false, true, true, 0x94c4c833 }, // Star Wars Shadows of Empire
{ S2DEX_1_05, false, true, false, 0x9df31081 }, // RSP Gfx ucode S2DEX 1.06 Yoshitaka Yasumoto Nintendo
{ T3DUX, false, true, false, 0xbad437f2 }, // T3DUX vers 0.83 for Toukon Road
{ F3DJFG, false, true, true, 0xbde9d1fb }, // Jet Force Gemini, Mickey
{ T3DUX, false, true, false, 0xd0a1aa3d }, // T3DUX vers 0.85 for Toukon Road 2
{ F3DBETA, false, true, true, 0xd17906e2 }, // RSP SW Version: 2.0D, 04-01-96, Wave Race (U)
{ F3DZEX2MM, true, true, false, 0xd39a0d4f }, // Animal Forest
{ F3D, false, false, true, 0xd3ab59b2 }, // Cruise'n USA
{ F5Rogue, false, false, false, 0xda51ccdb }, // Star Wars RS
{ F3D, false, false, false, 0xe01e14be }, // Eikou no Saint Andrews
{ F3DEX2ACCLAIM,true, true, false, 0xe44df568 }, // Acclaim games: Turok2 & 3, Armories and South park
{ F3D, false, true, false, 0xe62a706d }, // Fast3D
{ S2DEX2, false, true, false, true, 0x02c399dd }, // Animal Forest
{ F3DEX095, false, false, true, true, 0x0ace4c3f }, // Mario Kart 64
{ F3D, true, false, false, true, 0x16c3a775 }, // AeroFighters
{ F3DEX2CBFD, true, true, false, true, 0x1b4ace88 }, // Conker's Bad Fur Day
{ F3DPD, true, true, false, true, 0x1c4f7869 }, // Perfect Dark
{ F3D, false, false, true, true, 0x1f24cc84 }, // Wayne Gretzky's 3D Hockey (U)
{ F5Indi_Naboo, false, false, false, true, 0x23fef05f }, // SW Ep.1 Battle for Naboo
{ Turbo3D, false, true, false, true, 0x2bdcfc8a }, // Dark Rift, Turbo3D
{ F3DSETA, false, true, true, true, 0x2edee7be }, // RSP SW Version: 2.0D, 04-01-96
{ F3DGOLDEN, true, true, false, true, 0x302bca09 }, // RSP SW Version: 2.0G, 09-30-96 GoldenEye
{ F3D, false, false, false, true, 0x4AED6B3B }, // Vivid Dolls [ALECK64]
{ F3D, true, true, true, true, 0x54c558ba }, // RSP SW Version: 2.0D, 04-01-96 Pilot Wings, Blast Corps
{ ZSortBOSS, false, false, false, true, 0x553538cc }, // World Driver Championship
{ F3D, false, false, true, true, 0x55be9bad }, // RSP SW Version: 2.0D, 04-01-96, Mischief Makers, Mortal Combat Trilogy, J.League Live
{ F3DEX, true, true, true, true, 0x637b4b58 }, // RSP SW Version: 2.0D, 04-01-96 Power League
{ F5Indi_Naboo, false, false, false, true, 0x6859bf8e }, // Indiana Jones
{ F3D, false, false, true, true, 0x6932365f }, // Super Mario 64
{ ZSortBOSS, false, false, false, true, 0x6a76f8dd }, // Stunt Racer
{ F3DDKR, false, true, true, true, 0x6e6fc893 }, // Diddy Kong Racing
{ ZSortBOSS, false, false, false, true, 0x75ed44cc }, // World Driver Championship, European
{ F3D, true, false, true, true, 0x77195a68 }, // Dark Rift
{ L3D, true, true, true, true, 0x771ce0c4 }, // RSP SW Version: 2.0D, 04-01-96 Blast Corps
{ F3D, false, false, false, true, 0x7d372819 }, // Pachinko nichi 365
{ F3DDKR, false, true, true, true, 0x8d91244f }, // Diddy Kong Racing
{ F3DBETA, false, true, true, true, 0x94c4c833 }, // Star Wars Shadows of Empire
{ S2DEX_1_05, false, true, false, true, 0x9df31081 }, // RSP Gfx ucode S2DEX 1.06 Yoshitaka Yasumoto Nintendo
{ T3DUX, false, true, false, true, 0xbad437f2 }, // T3DUX vers 0.83 for Toukon Road
{ F3DJFG, false, true, true, true, 0xbde9d1fb }, // Jet Force Gemini, Mickey
{ T3DUX, false, true, false, true, 0xd0a1aa3d }, // T3DUX vers 0.85 for Toukon Road 2
{ F3DBETA, false, true, true, true, 0xd17906e2 }, // RSP SW Version: 2.0D, 04-01-96, Wave Race (U)
{ F3DZEX2MM, true, true, false, true, 0xd39a0d4f }, // Animal Forest
{ F3D, false, false, true, true, 0xd3ab59b2 }, // Cruise'n USA
{ F5Rogue, false, false, false, true, 0xda51ccdb }, // Star Wars RS
{ F3D, false, false, false, true, 0xe01e14be }, // Eikou no Saint Andrews
{ F3DEX2ACCLAIM,true, true, false, true, 0xe44df568 }, // Acclaim games: Turok2 & 3, Armories and South park
{ F3D, false, true, false, true, 0xe62a706d }, // Fast3D
{ F3D, false, true, false, false, 0xfff0637d }, // Caribbean Nights
};

u32 G_RDPHALF_1, G_RDPHALF_2, G_RDPHALF_CONT;
Expand Down Expand Up @@ -403,6 +405,7 @@ void GBIInfo::loadMicrocode(u32 uc_start, u32 uc_dstart, u16 uc_dsize)
current.NoN = info.NoN;
current.negativeY = info.negativeY;
current.fast3DPersp = info.fast3DPerspNorm;
current.f3dex3.legacyVertexPipeline = info.legacyVertexPipeline;
LOG(LOG_VERBOSE, "Load microcode type: %d crc: 0x%08x romname: %s", current.type, uc_crc, RSP.romname);
_makeCurrent(&current);
return;
Expand Down

0 comments on commit d5be3c6

Please sign in to comment.