From ec7c4ad53f8f8757166b0a476163cfc419ce39c2 Mon Sep 17 00:00:00 2001 From: daco65 Date: Sun, 30 Nov 2008 21:36:45 +0000 Subject: [PATCH] ported the fire emblem speedhack to pal. also added size 3 to some action reply stuff (im not sure it works, all my size 3 codes are special codes) git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1349 8ced0084-cf51-0410-be5f-012b33b47a6e --- Data/User/GameConfig/GFEP01.ini | 11 +++++++++++ Source/Core/Core/Src/ActionReplay.cpp | 9 ++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 Data/User/GameConfig/GFEP01.ini diff --git a/Data/User/GameConfig/GFEP01.ini b/Data/User/GameConfig/GFEP01.ini new file mode 100644 index 0000000000..908addf38c --- /dev/null +++ b/Data/User/GameConfig/GFEP01.ini @@ -0,0 +1,11 @@ +# GFEE01 - FIRE EMBLEM GC EU +[Core] +#Values set here will override the main dolphin settings. +SkipIdle = 0 +[Speedhacks] +0x80213278=500 +[EmuState] +#The Emulation State. 1 is worst, 5 is best, 0 is not set. +EmulationStateId = 5 +[OnFrame] +[ActionReplay] diff --git a/Source/Core/Core/Src/ActionReplay.cpp b/Source/Core/Core/Src/ActionReplay.cpp index d77241026c..cb737c262f 100644 --- a/Source/Core/Core/Src/ActionReplay.cpp +++ b/Source/Core/Core/Src/ActionReplay.cpp @@ -459,7 +459,7 @@ bool Subtype_WriteToPointer(u32 addr, u32 data) LogInfo("--------"); break; } - + case 0x03: case 0x02: // Dword write to pointer [44] LogInfo("Write dword to pointer"); LogInfo("--------"); @@ -715,6 +715,7 @@ bool NormalCode_Type_1(u8 subtype, u32 addr, u32 data, int *count, bool *skip) { case 0x0: con = (Memory::Read_U8(new_addr) == (u8)(data & 0xFF)); break; case 0x1: con = (Memory::Read_U16(new_addr) == (u16)(data & 0xFFFF)); break; + case 0x3: case 0x2: con = (Memory::Read_U32(new_addr) == data); break; default: LogInfo("Bad Size"); @@ -749,6 +750,7 @@ bool NormalCode_Type_2(u8 subtype, u32 addr, u32 data, int *count, bool *skip) { case 0x0: con = (Memory::Read_U8(new_addr) != (u8)(data & 0xFF)); break; case 0x1: con = (Memory::Read_U16(new_addr) != (u16)(data & 0xFFFF)); break; + case 0x3: case 0x2: con = (Memory::Read_U32(new_addr) != data); break; default: LogInfo("Bad Size"); @@ -783,6 +785,7 @@ bool NormalCode_Type_3(u8 subtype, u32 addr, u32 data, int *count, bool *skip) { case 0x0: con = ((char)Memory::Read_U8(new_addr) < (char)(data & 0xFF)); break; case 0x1: con = ((short)Memory::Read_U16(new_addr) < (short)(data & 0xFFFF)); break; + case 0x3: case 0x2: con = ((int)Memory::Read_U32(new_addr) < (int)data); break; default: LogInfo("Bad Size"); @@ -817,6 +820,7 @@ bool NormalCode_Type_4(u8 subtype, u32 addr, u32 data, int *count, bool *skip) { case 0x0: con = ((char)Memory::Read_U8(new_addr) > (char)(data & 0xFF)); break; case 0x1: con = ((short)Memory::Read_U16(new_addr) > (short)(data & 0xFFFF)); break; + case 0x3: case 0x2: con = ((int)Memory::Read_U32(new_addr) > (int)data); break; default: LogInfo("Bad Size"); @@ -851,6 +855,7 @@ bool NormalCode_Type_5(u8 subtype, u32 addr, u32 data, int *count, bool *skip) { case 0x0: con = (Memory::Read_U8(new_addr) < (data & 0xFF)); break; case 0x1: con = (Memory::Read_U16(new_addr) < (data & 0xFFFF)); break; + case 0x3: case 0x2: con = (Memory::Read_U32(new_addr) < data); break; default: LogInfo("Bad Size"); @@ -885,6 +890,7 @@ bool NormalCode_Type_6(u8 subtype, u32 addr, u32 data, int *count, bool *skip) { case 0x0: con = (Memory::Read_U8(new_addr) > (data & 0xFF)); break; case 0x1: con = (Memory::Read_U16(new_addr) > (data & 0xFFFF)); break; + case 0x3: case 0x2: con = (Memory::Read_U32(new_addr) > data); break; default: LogInfo("Bad Size"); @@ -919,6 +925,7 @@ bool NormalCode_Type_7(u8 subtype, u32 addr, u32 data, int *count, bool *skip) { case 0x0: con = ((Memory::Read_U8(new_addr) & (data & 0xFF)) != 0); break; case 0x1: con = ((Memory::Read_U16(new_addr) & (data & 0xFFFF)) != 0); break; + case 0x3: case 0x2: con = ((Memory::Read_U32(new_addr) & data) != 0); break; default: LogInfo("Bad Size");