diff --git a/Core/MIPS/ARM/ArmAsm.cpp b/Core/MIPS/ARM/ArmAsm.cpp index efb797b77e..0a2174f102 100644 --- a/Core/MIPS/ARM/ArmAsm.cpp +++ b/Core/MIPS/ARM/ArmAsm.cpp @@ -31,12 +31,7 @@ using namespace ArmGen; //static int temp32; // unused? -//TODO - make an option -//#if _DEBUG -static bool enableDebug = false; -//#else -// bool enableDebug = false; -//#endif +static const bool enableDebug = false; //static bool enableStatistics = false; //unused? @@ -49,13 +44,13 @@ static bool enableDebug = false; // r4 to r11: used to hold local variables. // r0 to r3: used to hold argument values passed to a subroutine, and also hold results returned from a subroutine. -// R2, R3, R4, R5, R6, R7, R8, R10, R11 // omitting R9? - +// Mappable registers: +// R2, R3, R4, R5, R6, R8, R11 // STATIC ALLOCATION ARM: -// R11 : Memory base pointer. // R10 : MIPS state -// R9 : +// R11 : Memory base pointer. +// R7 : Down counter extern volatile CoreState coreState; void JitAt() @@ -63,14 +58,6 @@ void JitAt() MIPSComp::jit->Compile(currentMIPS->pc); } -/* -double testD; - -u32 DoubleTest(u32 sp) { - volatile double local = 1.0; - testD += local; - return (u32)(&local); -} void ShowPC(u32 sp) { if (currentMIPS) { @@ -78,7 +65,7 @@ void ShowPC(u32 sp) { } else { ERROR_LOG(JIT, "Universe corrupt?"); } -}*/ +} void DisassembleArm(const u8 *data, int size); @@ -155,8 +142,10 @@ void Jit::GenerateFixedCode() dispatcherNoCheck = GetCodePtr(); // Debug - // MOV(R0, R13); - // QuickCallFunction(R1, (void *)&ShowPC); + if (enableDebug) { + MOV(R0, R13); + QuickCallFunction(R1, (void *)&ShowPC); + } LDR(R0, CTXREG, offsetof(MIPSState, pc)); // TODO: In practice, do we ever run code from uncached space (| 0x40000000)? If not, we can remove this BIC. diff --git a/README.md b/README.md index 44966432b4..2ec8ce7890 100644 --- a/README.md +++ b/README.md @@ -20,16 +20,14 @@ For build instructions and other development tutorials, see the [wiki](https://g What's new in 0.9.6 ------------------- -* Large general speed improvements +* Large general speed improvements and assorted bug fixes * "Software Skinning" option which speeds up many games with animated 3D characters -* Various fixes around stencil/alpha, reducing glow problems in Wipeout and Gods Eater Burst +* Various fixes around stencil/alpha, reducing glow problems in Wipeout and Gods Eater Burst. * Timing improvements making more games run at the correct FPS, also fixing some audio issues * More debugger features * Option for four-way touch dpad, avoiding diagonal dpad issues * Individually resizable touch controls * Add ability to switch UMD in multi-disc games (works for most) -* Support for "Immersive mode" full screen on Android Kitkat on devices that - support it (Nexus 4, etc). * Emulate PSP-2000 rather than the 1000 model by default. Not much different in practice. * Automatic install of games from ZIP files, like demos and many homebrew. * VERY basic ad-hoc online play support, to be improved in future versions. See below. diff --git a/UI/GameInfoCache.cpp b/UI/GameInfoCache.cpp index f6e565b9d6..bf08267060 100644 --- a/UI/GameInfoCache.cpp +++ b/UI/GameInfoCache.cpp @@ -421,6 +421,13 @@ void GameInfoCache::Clear() { delete iter->second->pic1Texture; iter->second->pic1Texture = 0; } + if (!iter->second->iconTextureData.empty()) { + iter->second->iconTextureData.clear(); + } + if (iter->second->iconTexture) { + delete iter->second->iconTexture; + iter->second->iconTexture = 0; + } } info_.clear(); }