From a3cfafcd12bdfb51e14e129cf82e55a9cd66a4e5 Mon Sep 17 00:00:00 2001 From: ayuanx Date: Fri, 8 Jan 2010 21:57:31 +0000 Subject: 1. Expanded Framelimit range from 20 to 120 in case someone wants to run a little faster than full speed but still controllable not like wild OFF. 2. Fixed a bug (for Win 32bit) that reports "No possible memory base pointer found!" even when there IS valid memory base found. 3. Made Metroid Prime 2 (maybe also other games) boot PS: There is definitely some initialization problem with Dolphin (not found exact location yet), which prevents Metroid Prime 2 from first time booting (If you boot some other GC game first, stop it, then MP2 can boot without problem). So I added an instant BP hack that can make MP2 boot even at first time. And I've tested all my games to guarantee it won't break any game that already boots before this hack. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@4795 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/Common/Src/MemArena.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'Source/Core/Common/Src/MemArena.cpp') diff --git a/Source/Core/Common/Src/MemArena.cpp b/Source/Core/Common/Src/MemArena.cpp index 42fd97d886..9d918243a2 100644 --- a/Source/Core/Common/Src/MemArena.cpp +++ b/Source/Core/Common/Src/MemArena.cpp @@ -244,12 +244,13 @@ u8 *MemoryMap_Setup(const MemoryView *views, int num_views, u32 flags, MemArena u32 max_base_addr = 0x7FFF0000 - 0x31000000; u8 *base = NULL; int base_attempts = 1; - for (u32 base_addr = 0; base_addr < max_base_addr; base_addr += 0x40000) + for (u32 base_addr = 0x40000; base_addr < max_base_addr; base_addr += 0x40000) { base = (u8 *)base_addr; if (Memory_TryBase(base, views, num_views, flags, arena)) { INFO_LOG(MEMMAP, "Found valid memory base at %p after %i tries.", base, base_attempts); + base_attempts = 0; break; } base_attempts++; @@ -266,7 +267,7 @@ u8 *MemoryMap_Setup(const MemoryView *views, int num_views, u32 flags, MemArena #endif #endif - if (!base) + if (base_attempts) PanicAlert("No possible memory base pointer found!"); return base; } -- cgit v1.2.3