mirror of https://github.com/PCSX2/pcsx2.git
Brought the Erementar Gerad gamefix over to Linux, and got rid of some junk that isn't neccesary now that the crc version of the hack is gone.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1438 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
6b2c26a617
commit
6e5d4a5d15
|
@ -394,7 +394,6 @@ void cdvdReadKey(u8 arg0, u16 arg1, u32 arg2, u8* key) {
|
|||
{
|
||||
ElfCRC = loadElfCRC( str );
|
||||
ElfApplyPatches();
|
||||
LoadGameSpecificSettings();
|
||||
GSsetGameCRC( ElfCRC, 0 );
|
||||
}
|
||||
}
|
||||
|
@ -584,7 +583,6 @@ void cdvdNewDiskCB()
|
|||
{
|
||||
ElfCRC = loadElfCRC( str );
|
||||
ElfApplyPatches();
|
||||
LoadGameSpecificSettings();
|
||||
GSsetGameCRC( ElfCRC, 0 );
|
||||
}
|
||||
|
||||
|
|
|
@ -565,23 +565,7 @@ int loadElfFile(const char *filename)
|
|||
Console::Status( "loadElfFile: %s; CRC = %8.8X", params filename, ElfCRC);
|
||||
|
||||
ElfApplyPatches();
|
||||
LoadGameSpecificSettings();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#include "VU.h"
|
||||
int g_VUGameFixes = 0;
|
||||
|
||||
// fixme - this should be moved to patches or eliminated
|
||||
void LoadGameSpecificSettings()
|
||||
{
|
||||
// default
|
||||
g_VUGameFixes = 0;
|
||||
|
||||
switch(ElfCRC) {
|
||||
case 0xb99379b7: // erementar gerad (discolored chars)
|
||||
g_VUGameFixes |= VUFIX_XGKICKDELAY2; // Tested - still needed - arcum42
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -26,7 +26,6 @@ extern unsigned int args_ptr;
|
|||
//-------------------
|
||||
int loadElfFile(const char *filename);
|
||||
u32 loadElfCRC(const char *filename);
|
||||
void LoadGameSpecificSettings();
|
||||
void ElfApplyPatches();
|
||||
|
||||
extern u32 ElfCRC;
|
||||
|
|
|
@ -30,6 +30,7 @@ GtkWidget *GameFixDlg, *SpeedHacksDlg;
|
|||
set_checked(GameFixDlg, "check_FPU_Compare", (Config.GameFixes & FLAG_FPU_Compare));
|
||||
set_checked(GameFixDlg, "check_FPU_Mul", (Config.GameFixes & FLAG_FPU_MUL));
|
||||
set_checked(GameFixDlg, "check_DMAExec", (Config.GameFixes & FLAG_DMAExec));
|
||||
set_checked(GameFixDlg, "check_XGKick", (Config.GameFixes & FLAG_XGKick));
|
||||
|
||||
gtk_widget_show_all(GameFixDlg);
|
||||
gtk_widget_set_sensitive(MainWindow, FALSE);
|
||||
|
@ -47,6 +48,7 @@ void on_Game_Fix_OK(GtkButton *button, gpointer user_data)
|
|||
Config.GameFixes |= is_checked(GameFixDlg, "check_FPU_Compare") ? FLAG_FPU_Compare : 0;
|
||||
Config.GameFixes |= is_checked(GameFixDlg, "check_FPU_Mul") ? FLAG_FPU_MUL : 0;
|
||||
Config.GameFixes |= is_checked(GameFixDlg, "check_DMAExec") ? FLAG_DMAExec : 0;
|
||||
Config.GameFixes |= is_checked(GameFixDlg, "check_XGKick") ? FLAG_XGKick : 0;
|
||||
|
||||
SaveConfig();
|
||||
|
||||
|
|
|
@ -127,6 +127,8 @@ char ee_cycle_labels[3][256] =
|
|||
#define FLAG_FPU_MUL 0x8
|
||||
//Fatal Frame
|
||||
#define FLAG_DMAExec 0x10
|
||||
//Erementar Gerad
|
||||
#define FLAG_XGKick 0x20
|
||||
|
||||
#define FLAG_VU_NO_OVERFLOW 0x2
|
||||
#define FLAG_VU_EXTRA_OVERFLOW 0x40
|
||||
|
|
|
@ -940,6 +940,7 @@ create_GameFixDlg (void)
|
|||
GtkWidget *check_FPU_Mul;
|
||||
GtkWidget *check_VU_Clip;
|
||||
GtkWidget *check_DMAExec;
|
||||
GtkWidget *check_XGKick;
|
||||
GtkWidget *label42;
|
||||
GtkWidget *dialog_action_area1;
|
||||
GtkWidget *cancelbutton1;
|
||||
|
@ -996,6 +997,11 @@ create_GameFixDlg (void)
|
|||
gtk_widget_show (check_DMAExec);
|
||||
gtk_box_pack_start (GTK_BOX (vbox30), check_DMAExec, FALSE, FALSE, 0);
|
||||
|
||||
check_XGKick = gtk_check_button_new_with_mnemonic (_("VU XGkick Hack - Fix for Erementar Gerad. \nAdds more delay to VU XGkick instructions. Corrects the color of some graphics."));
|
||||
gtk_widget_set_name (check_XGKick, "check_XGKick");
|
||||
gtk_widget_show (check_XGKick);
|
||||
gtk_box_pack_start (GTK_BOX (vbox30), check_XGKick, FALSE, FALSE, 0);
|
||||
|
||||
label42 = gtk_label_new (_("<b>Some games need special settings.\nConfigure them here.</b>"));
|
||||
gtk_widget_set_name (label42, "label42");
|
||||
gtk_widget_show (label42);
|
||||
|
@ -1040,6 +1046,7 @@ create_GameFixDlg (void)
|
|||
GLADE_HOOKUP_OBJECT (GameFixDlg, check_FPU_Mul, "check_FPU_Mul");
|
||||
GLADE_HOOKUP_OBJECT (GameFixDlg, check_VU_Clip, "check_VU_Clip");
|
||||
GLADE_HOOKUP_OBJECT (GameFixDlg, check_DMAExec, "check_DMAExec");
|
||||
GLADE_HOOKUP_OBJECT (GameFixDlg, check_XGKick, "check_XGKick");
|
||||
GLADE_HOOKUP_OBJECT (GameFixDlg, label42, "label42");
|
||||
GLADE_HOOKUP_OBJECT_NO_REF (GameFixDlg, dialog_action_area1, "dialog_action_area1");
|
||||
GLADE_HOOKUP_OBJECT (GameFixDlg, cancelbutton1, "cancelbutton1");
|
||||
|
|
|
@ -1984,6 +1984,26 @@ Causes freezing in Gust games and crashing in some TriAce games</property>
|
|||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
|
||||
<child>
|
||||
<widget class="GtkCheckButton" id="check_XGKick">
|
||||
<property name="visible">True</property>
|
||||
<property name="can_focus">True</property>
|
||||
<property name="label" translatable="yes">VU XGkick Hack - Fix for Erementar Gerad.
|
||||
Adds more delay to VU XGkick instructions. Corrects the color of some graphics.</property>
|
||||
<property name="use_underline">True</property>
|
||||
<property name="relief">GTK_RELIEF_NORMAL</property>
|
||||
<property name="focus_on_click">True</property>
|
||||
<property name="active">False</property>
|
||||
<property name="inconsistent">False</property>
|
||||
<property name="draw_indicator">True</property>
|
||||
</widget>
|
||||
<packing>
|
||||
<property name="padding">0</property>
|
||||
<property name="expand">False</property>
|
||||
<property name="fill">False</property>
|
||||
</packing>
|
||||
</child>
|
||||
</widget>
|
||||
</child>
|
||||
</widget>
|
||||
|
|
|
@ -653,13 +653,10 @@ int AddPatch(int Mode, int Place, int Address, int Size, u64 data)
|
|||
|
||||
void patchFunc_ffxhack( char * cmd, char * param )
|
||||
{
|
||||
//Keeping this as a dummy a while :p
|
||||
//g_FFXHack = 1;
|
||||
}
|
||||
|
||||
void patchFunc_xkickdelay( char * cmd, char * param )
|
||||
{
|
||||
g_VUGameFixes |= VUFIX_XGKICKDELAY2;
|
||||
}
|
||||
|
||||
void patchFunc_fastmemory( char * cmd, char * param )
|
||||
|
|
|
@ -196,10 +196,3 @@ static __forceinline u32* GET_VU_MEM(VURegs* VU, u32 addr)
|
|||
|
||||
return (u32*)(VU0.Mem+(addr&0x0fff)); // for addr 0x0000 to 0x4000 just wrap around
|
||||
}
|
||||
|
||||
|
||||
// various fixes to enable per game (all are off by default)
|
||||
#define VUFIX_SIGNEDZERO 1
|
||||
#define VUFIX_EXTRAFLAGS 2
|
||||
#define VUFIX_XGKICKDELAY2 4
|
||||
extern int g_VUGameFixes;
|
||||
|
|
Loading…
Reference in New Issue