From 17cff80f2be8987b861e6acced055cb3b80581ff Mon Sep 17 00:00:00 2001 From: donkopunchstania Date: Tue, 23 Sep 2008 20:55:01 +0000 Subject: [PATCH] BIOS sets video mode from emulator configuration. Fixed iteration in DX VShaderCache::Cleanup. git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@644 8ced0084-cf51-0410-be5f-012b33b47a6e --- Source/Core/Core/Src/Boot/Boot.cpp | 4 +++- Source/Plugins/Plugin_VideoDX9/Src/ShaderManager.cpp | 6 +++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Source/Core/Core/Src/Boot/Boot.cpp b/Source/Core/Core/Src/Boot/Boot.cpp index 269596ef55..2379a12aed 100644 --- a/Source/Core/Core/Src/Boot/Boot.cpp +++ b/Source/Core/Core/Src/Boot/Boot.cpp @@ -298,9 +298,11 @@ bool CBoot::EmulatedBIOS_Wii(bool _bDebug) Memory::Write_U8(0x80, 0x0000315c); // OSInit Memory::Write_U8(0x00, 0x00000006); // DVDInit Memory::Write_U8(0x00, 0x00000007); // DVDInit - Memory::Write_U32(0x00000005, 0x000000cc); // VIInit Memory::Write_U16(0x0000, 0x000030e0); // PADInit + // fake the VI Init of the BIOS + Memory::Write_U32(Core::g_CoreStartupParameter.bNTSC ? 0 : 1, 0x000000CC); + // clear exception handler for (int i = 0x3000; i <= 0x3038; i += 4) { diff --git a/Source/Plugins/Plugin_VideoDX9/Src/ShaderManager.cpp b/Source/Plugins/Plugin_VideoDX9/Src/ShaderManager.cpp index c28128f11c..70e7936380 100644 --- a/Source/Plugins/Plugin_VideoDX9/Src/ShaderManager.cpp +++ b/Source/Plugins/Plugin_VideoDX9/Src/ShaderManager.cpp @@ -200,7 +200,7 @@ void VShaderCache::SetShader() void VShaderCache::Cleanup() { - for (VSCache::iterator iter=vshaders.begin(); iter!=vshaders.end();iter++) + for (VSCache::iterator iter=vshaders.begin(); iter!=vshaders.end();) { VSCacheEntry &entry = iter->second; if (entry.frameCount < frameCount - 30) @@ -208,6 +208,10 @@ void VShaderCache::Cleanup() entry.Destroy(); iter = vshaders.erase(iter); } + else + { + ++iter; + } } SETSTAT(stats.numVertexShadersAlive, (int)vshaders.size()); }