mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-08-03 06:39:33 +00:00
dx shiz
This commit is contained in:
parent
9dcc090b6e
commit
92812b9fb0
8 changed files with 1249 additions and 33 deletions
|
@ -320,11 +320,13 @@ C207D25C 0000000B
|
||||||
39C00000 00000000
|
39C00000 00000000
|
||||||
|
|
||||||
$Lottery - Double the Price [Tabitha]
|
$Lottery - Double the Price [Tabitha]
|
||||||
0407BD20 2C1E000A
|
C207D25C 00000001
|
||||||
|
2C1E000A 00000000
|
||||||
*Makes the lottery cost nothing instead of the usual 5 coins.
|
*Makes the lottery cost nothing instead of the usual 5 coins.
|
||||||
|
|
||||||
$Lottery - Free Entry [Tabitha]
|
$Lottery - Free Entry [Tabitha]
|
||||||
0407BD20 2C1E0000
|
C207D25C 00000001
|
||||||
|
2C1E0000 00000000
|
||||||
*Makes the lottery cost nothing instead of the usual 5 coins.
|
*Makes the lottery cost nothing instead of the usual 5 coins.
|
||||||
|
|
||||||
$Items - Bowser Suit Can Appear in Item Bags [WolfGC64]
|
$Items - Bowser Suit Can Appear in Item Bags [WolfGC64]
|
||||||
|
@ -617,6 +619,10 @@ C2083CF0 00000002
|
||||||
*-Warp Pipe and Mini-Mega Hammer have a 10% rate
|
*-Warp Pipe and Mini-Mega Hammer have a 10% rate
|
||||||
*-Boo Crystal Ball, Gaddlight, Magic Lamp and Bowser Suit have a 5% rate
|
*-Boo Crystal Ball, Gaddlight, Magic Lamp and Bowser Suit have a 5% rate
|
||||||
|
|
||||||
|
$Items - Item Shops - Are Open Last Turn [Tabitha]
|
||||||
|
C2077DCC 00000001
|
||||||
|
60000000 00000000
|
||||||
|
|
||||||
$Items - Start with a Mini and Mega Mushroom [WolfGC64]
|
$Items - Start with a Mini and Mega Mushroom [WolfGC64]
|
||||||
C2063AE0 00000013
|
C2063AE0 00000013
|
||||||
7C83032E 2C040007
|
7C83032E 2C040007
|
||||||
|
|
1218
Data/Sys/GameSettings/GMPEDX.ini
Normal file
1218
Data/Sys/GameSettings/GMPEDX.ini
Normal file
File diff suppressed because it is too large
Load diff
|
@ -9443,6 +9443,7 @@ GMNE78 = Monsters, Inc. Scream Arena
|
||||||
GMNP78 = Monsters, Inc. Scream Arena
|
GMNP78 = Monsters, Inc. Scream Arena
|
||||||
GMOP70 = Micro Machines
|
GMOP70 = Micro Machines
|
||||||
GMPE01 = Mario Party 4
|
GMPE01 = Mario Party 4
|
||||||
|
GMPEDX = Mario Party 4 DX
|
||||||
GMPJ01 = Mario Party 4
|
GMPJ01 = Mario Party 4
|
||||||
GMPP01 = Mario Party 4
|
GMPP01 = Mario Party 4
|
||||||
GMPW01 = Mario Party 4
|
GMPW01 = Mario Party 4
|
||||||
|
|
|
@ -1087,30 +1087,10 @@ CPUThreadGuard::~CPUThreadGuard()
|
||||||
}
|
}
|
||||||
|
|
||||||
static GameName mGameBeingPlayed = GameName::UnknownGame;
|
static GameName mGameBeingPlayed = GameName::UnknownGame;
|
||||||
const std::map<std::string, GameName> mGameMap = {{"GMPE01", GameName::MarioParty4},
|
const std::map<std::string, GameName> mGameMap = {{"GMPE01", GameName::MarioParty4DX},
|
||||||
{"GP5E01", GameName::MarioParty5},
|
{"GP5E01", GameName::MarioParty5},
|
||||||
{"GP6E01", GameName::MarioParty6},
|
{"GP6E01", GameName::MarioParty6},
|
||||||
{"GP7E01", GameName::MarioParty7},
|
{"GP7E01", GameName::MarioParty7},
|
||||||
{"RM8E01", GameName::MarioParty8}};
|
{"RM8E01", GameName::MarioParty8},
|
||||||
|
{"GMPEDX", GameName::MarioParty4}};
|
||||||
std::optional<std::pair<u32,u32>> getGameFreeMemory()
|
|
||||||
{
|
|
||||||
switch (mGameBeingPlayed) {
|
|
||||||
case GameName::MarioParty4:
|
|
||||||
return std::nullopt;
|
|
||||||
case GameName::MarioParty5:
|
|
||||||
return std::make_pair(0x801A811C, 0x801A9B5C);
|
|
||||||
case GameName::MarioParty6:
|
|
||||||
return std::make_pair(0x80213974, 0x80216014);
|
|
||||||
case GameName::MarioParty7:
|
|
||||||
return std::make_pair(0x8023CF6C, 0x8023F9D0);
|
|
||||||
case GameName::MarioParty8:
|
|
||||||
return std::make_pair(0x802D5100, 0x802D9500);
|
|
||||||
case GameName::UnknownGame:
|
|
||||||
return std::nullopt;
|
|
||||||
default:
|
|
||||||
return std::nullopt;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace Core
|
} // namespace Core
|
||||||
|
|
|
@ -199,13 +199,13 @@ void UpdateInputGate(bool require_focus, bool require_full_focus = false);
|
||||||
void UpdateTitle(Core::System& system);
|
void UpdateTitle(Core::System& system);
|
||||||
|
|
||||||
enum class GameName : u8 {
|
enum class GameName : u8 {
|
||||||
UnknownGame = 0,
|
UnknownGame = 0,
|
||||||
MarioParty4 = 1,
|
MarioParty4 = 1,
|
||||||
MarioParty5 = 2,
|
MarioParty5 = 2,
|
||||||
MarioParty6 = 3,
|
MarioParty6 = 3,
|
||||||
MarioParty7 = 4,
|
MarioParty7 = 4,
|
||||||
MarioParty8 = 5
|
MarioParty8 = 5,
|
||||||
|
MarioParty4DX = 6
|
||||||
};
|
};
|
||||||
|
|
||||||
std::optional<std::pair<u32,u32>> getGameFreeMemory();
|
|
||||||
} // namespace Core
|
} // namespace Core
|
||||||
|
|
|
@ -182,7 +182,7 @@ static Installation InstallCodeHandlerLocked(const Core::CPUThreadGuard& guard)
|
||||||
const bool is_mpn_handler_and_game_id_gp5e01 =
|
const bool is_mpn_handler_and_game_id_gp5e01 =
|
||||||
IsGeckoCodeHandlerMPN() && (SConfig::GetInstance().GetGameID() == "GP5E01");
|
IsGeckoCodeHandlerMPN() && (SConfig::GetInstance().GetGameID() == "GP5E01");
|
||||||
const bool is_mpn_handler_and_game_id_gmpe01 =
|
const bool is_mpn_handler_and_game_id_gmpe01 =
|
||||||
IsGeckoCodeHandlerMPN() && (SConfig::GetInstance().GetGameID() == "GMPE01");
|
IsGeckoCodeHandlerMPN() && (SConfig::GetInstance().GetGameID() == "GMPE01") || (SConfig::GetInstance().GetGameID() == "GMPEDX");
|
||||||
|
|
||||||
u32 codelist_base_address =
|
u32 codelist_base_address =
|
||||||
is_mpn_handler_and_game_id_rm8e01 ? INSTALLER_BASE_ADDRESS_MP8 :
|
is_mpn_handler_and_game_id_rm8e01 ? INSTALLER_BASE_ADDRESS_MP8 :
|
||||||
|
|
|
@ -115,6 +115,7 @@ GeckoDialog::GeckoDialog(QWidget* parent) : QDialog(parent)
|
||||||
QVBoxLayout* layout = new QVBoxLayout();
|
QVBoxLayout* layout = new QVBoxLayout();
|
||||||
QTabWidget* tab_widget = new QTabWidget(this);
|
QTabWidget* tab_widget = new QTabWidget(this);
|
||||||
GeckoCodeWidget* mp4_gecko = new GeckoCodeWidget("GMPE01", "GMPE01", 0);
|
GeckoCodeWidget* mp4_gecko = new GeckoCodeWidget("GMPE01", "GMPE01", 0);
|
||||||
|
GeckoCodeWidget* mp4dx_gecko = new GeckoCodeWidget("GMPEDX", "GMPEDX", 0);
|
||||||
GeckoCodeWidget* mp5_gecko = new GeckoCodeWidget("GP5E01", "GP5E01", 0);
|
GeckoCodeWidget* mp5_gecko = new GeckoCodeWidget("GP5E01", "GP5E01", 0);
|
||||||
GeckoCodeWidget* mp6_gecko = new GeckoCodeWidget("GP6E01", "GP6E01", 0);
|
GeckoCodeWidget* mp6_gecko = new GeckoCodeWidget("GP6E01", "GP6E01", 0);
|
||||||
GeckoCodeWidget* mp7_gecko = new GeckoCodeWidget("GP7E01", "GP7E01", 0);
|
GeckoCodeWidget* mp7_gecko = new GeckoCodeWidget("GP7E01", "GP7E01", 0);
|
||||||
|
@ -122,6 +123,8 @@ GeckoDialog::GeckoDialog(QWidget* parent) : QDialog(parent)
|
||||||
|
|
||||||
connect(mp4_gecko, &GeckoCodeWidget::OpenGeneralSettings, this,
|
connect(mp4_gecko, &GeckoCodeWidget::OpenGeneralSettings, this,
|
||||||
&GeckoDialog::OpenGeneralSettings);
|
&GeckoDialog::OpenGeneralSettings);
|
||||||
|
connect(mp4dx_gecko, &GeckoCodeWidget::OpenGeneralSettings, this,
|
||||||
|
&GeckoDialog::OpenGeneralSettings);
|
||||||
connect(mp5_gecko, &GeckoCodeWidget::OpenGeneralSettings, this,
|
connect(mp5_gecko, &GeckoCodeWidget::OpenGeneralSettings, this,
|
||||||
&GeckoDialog::OpenGeneralSettings);
|
&GeckoDialog::OpenGeneralSettings);
|
||||||
connect(mp6_gecko, &GeckoCodeWidget::OpenGeneralSettings, this,
|
connect(mp6_gecko, &GeckoCodeWidget::OpenGeneralSettings, this,
|
||||||
|
@ -136,6 +139,8 @@ GeckoDialog::GeckoDialog(QWidget* parent) : QDialog(parent)
|
||||||
|
|
||||||
tab_widget->addTab(GetWrappedWidget(mp4_gecko, this, padding_width, padding_height),
|
tab_widget->addTab(GetWrappedWidget(mp4_gecko, this, padding_width, padding_height),
|
||||||
tr("Mario Party 4"));
|
tr("Mario Party 4"));
|
||||||
|
tab_widget->addTab(GetWrappedWidget(mp4dx_gecko, this, padding_width, padding_height),
|
||||||
|
tr("Mario Party 4 DX"));
|
||||||
tab_widget->addTab(GetWrappedWidget(mp5_gecko, this, padding_width, padding_height),
|
tab_widget->addTab(GetWrappedWidget(mp5_gecko, this, padding_width, padding_height),
|
||||||
tr("Mario Party 5"));
|
tr("Mario Party 5"));
|
||||||
tab_widget->addTab(GetWrappedWidget(mp6_gecko, this, padding_width, padding_height),
|
tab_widget->addTab(GetWrappedWidget(mp6_gecko, this, padding_width, padding_height),
|
||||||
|
|
|
@ -185,6 +185,12 @@ bool InstallUpdateDialog::unzipFile(const std::string& zipFilePath, const std::s
|
||||||
return false; // Failed to get file info
|
return false; // Failed to get file info
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Skip User/GC and User/GameSettings directories
|
||||||
|
if (std::string(filename).find("User/GC") == 0 || std::string(filename).find("User/GameSettings") == 0)
|
||||||
|
{
|
||||||
|
continue; // Skip these directories
|
||||||
|
}
|
||||||
|
|
||||||
// Create full path for the extracted file
|
// Create full path for the extracted file
|
||||||
std::string fullPath = destDir + "/" + std::string(filename);
|
std::string fullPath = destDir + "/" + std::string(filename);
|
||||||
QString qFullPath = QString::fromStdString(fullPath);
|
QString qFullPath = QString::fromStdString(fullPath);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue