From 51b62d7e7ea46afb2a6b5efc7db88e27a4f866cb Mon Sep 17 00:00:00 2001 From: "fix94.1" Date: Thu, 28 Jun 2012 14:32:58 +0000 Subject: [PATCH] -set down mem2 which wiiflow can use, that should make it more stable, and I havent seen somebody filling filling it completely anyways :P --- source/main.cpp | 2 +- source/memory/mem2alloc.cpp | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/source/main.cpp b/source/main.cpp index 659b11e0..a40a8603 100644 --- a/source/main.cpp +++ b/source/main.cpp @@ -42,7 +42,7 @@ int main(int argc, char **argv) CVideo vid; vid.init(); - MEM2_init(49); //Thats everything we can get anyways + MEM2_init(46); //Should be safe to use vid.waitMessage(0.2f); AllocSDGeckoBuffer(); diff --git a/source/memory/mem2alloc.cpp b/source/memory/mem2alloc.cpp index bb288221..8e950238 100644 --- a/source/memory/mem2alloc.cpp +++ b/source/memory/mem2alloc.cpp @@ -4,14 +4,16 @@ #include #include +#define IOS_RELOAD_AREA 0x90200000 + #include "lockMutex.hpp" void CMEM2Alloc::init(unsigned int size) { - m_baseAddress = (SBlock *)(((u32)SYS_GetArena2Lo() + 31) & ~31); + m_baseAddress = (SBlock *) std::max(((u32)SYS_GetArena2Lo() + 31) & ~31, IOS_RELOAD_AREA); m_endAddress = (SBlock *)((char *)m_baseAddress + std::min(size * 0x100000, SYS_GetArena2Size() & ~31)); - if (m_endAddress > (SBlock *)0x93100000) - m_endAddress = (SBlock *)0x93100000; + if (m_endAddress > (SBlock *) 0x93300000) //rest is reserved for usb/usb2/network and other stuff... (0xE0000 bytes) + m_endAddress = (SBlock *) 0x93300000; SYS_SetArena2Lo(m_endAddress); LWP_MutexInit(&m_mutex, 0); }