Mostly fix for OGL plugin, putting it's shaders in the right place, few other bugs here and there though. Fix for CPU detect and removed a quick hack to reduce underflows in the HLE plugin. Added AA for Linux, but may be only usable by ATI/Intel cards or Opensource drivers
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@231 8ced0084-cf51-0410-be5f-012b33b47a6e
This commit is contained in:
parent
d1723cae4a
commit
730d80864d
|
@ -61,7 +61,8 @@ else:
|
||||||
"Source/Core/DebuggerWX/src",
|
"Source/Core/DebuggerWX/src",
|
||||||
"Source/Core/VideoCommon/Src",
|
"Source/Core/VideoCommon/Src",
|
||||||
"Source/Plugins/Plugin_VideoOGL/Src",
|
"Source/Plugins/Plugin_VideoOGL/Src",
|
||||||
"Source/Plugins/Plugin_DSP_NULL/Src",
|
# "Source/Plugins/Plugin_DSP_NULL/Src",
|
||||||
|
"Source/Plugins/Plugin_DSP_HLE/Src",
|
||||||
# "Source/Plugins/Plugin_DSP_LLE/Src",
|
# "Source/Plugins/Plugin_DSP_LLE/Src",
|
||||||
"Source/Plugins/Plugin_PadSimple/Src",
|
"Source/Plugins/Plugin_PadSimple/Src",
|
||||||
"Source/Plugins/Plugin_nJoy_SDL/Src",
|
"Source/Plugins/Plugin_nJoy_SDL/Src",
|
||||||
|
|
|
@ -26,7 +26,14 @@
|
||||||
// if you are on linux and this doesn't build, plz fix :)
|
// if you are on linux and this doesn't build, plz fix :)
|
||||||
static inline void do_cpuid(unsigned int *eax, unsigned int *ebx,
|
static inline void do_cpuid(unsigned int *eax, unsigned int *ebx,
|
||||||
unsigned int *ecx, unsigned int *edx)
|
unsigned int *ecx, unsigned int *edx)
|
||||||
{
|
{
|
||||||
|
#ifdef __linux__
|
||||||
|
__asm__("cpuid"
|
||||||
|
: "=a" (*eax),
|
||||||
|
"=b" (*ebx),
|
||||||
|
"=c" (*ecx),
|
||||||
|
"=d" (*edx));
|
||||||
|
#else
|
||||||
// Note: EBX is reserved on Mac OS X, so it has to be restored at the end
|
// Note: EBX is reserved on Mac OS X, so it has to be restored at the end
|
||||||
// of the asm block.
|
// of the asm block.
|
||||||
__asm__(
|
__asm__(
|
||||||
|
@ -38,6 +45,7 @@ static inline void do_cpuid(unsigned int *eax, unsigned int *ebx,
|
||||||
"=r" (*ebx),
|
"=r" (*ebx),
|
||||||
"=c" (*ecx),
|
"=c" (*ecx),
|
||||||
"=d" (*edx));
|
"=d" (*edx));
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void __cpuid(int info[4], int x)
|
void __cpuid(int info[4], int x)
|
||||||
|
@ -174,4 +182,4 @@ std::string CPUInfo::Summarize()
|
||||||
if (bLongMode) sum += ", 64-bit support";
|
if (bLongMode) sum += ", 64-bit support";
|
||||||
sum += " (wrong? report)";
|
sum += " (wrong? report)";
|
||||||
return sum;
|
return sum;
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,7 +54,7 @@ namespace AOSound
|
||||||
}
|
}
|
||||||
|
|
||||||
return(false);*/
|
return(false);*/
|
||||||
if(soundData[0] != 0)
|
//if(soundData[0] != 0)
|
||||||
ao_play(device, soundData, dwSoundBytes);
|
ao_play(device, soundData, dwSoundBytes);
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
|
|
@ -86,8 +86,10 @@ void Mixer_PushSamples(short *buffer, int num_stereo_samples, int sample_rate) {
|
||||||
while (queue_size > queue_maxlength / 2) {
|
while (queue_size > queue_maxlength / 2) {
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
DSound::DSound_UpdateSound();
|
DSound::DSound_UpdateSound();
|
||||||
#endif
|
|
||||||
Sleep(0);
|
Sleep(0);
|
||||||
|
#else
|
||||||
|
sleep(0);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
//convert into config option?
|
//convert into config option?
|
||||||
|
|
|
@ -602,10 +602,10 @@ void LoadBPReg(u32 value0)
|
||||||
|
|
||||||
((u32*)&bpmem)[opcode] = newval;
|
((u32*)&bpmem)[opcode] = newval;
|
||||||
TRectangle rc = {
|
TRectangle rc = {
|
||||||
(int)(bpmem.copyTexSrcXY.x),
|
(int)(bpmem.copyTexSrcXY.x * MValue),
|
||||||
(int)(bpmem.copyTexSrcXY.y),
|
(int)(bpmem.copyTexSrcXY.y * MValue),
|
||||||
(int)((bpmem.copyTexSrcXY.x+bpmem.copyTexSrcWH.x)),
|
(int)((bpmem.copyTexSrcXY.x * MValue + bpmem.copyTexSrcWH.x * MValue)),
|
||||||
(int)((bpmem.copyTexSrcXY.y+bpmem.copyTexSrcWH.y))
|
(int)((bpmem.copyTexSrcXY.y * MValue + bpmem.copyTexSrcWH. * MValuey))
|
||||||
};
|
};
|
||||||
|
|
||||||
UPE_Copy PE_copy;
|
UPE_Copy PE_copy;
|
||||||
|
@ -633,7 +633,8 @@ void LoadBPReg(u32 value0)
|
||||||
glViewport(0, 0, Renderer::GetTargetWidth(), Renderer::GetTargetHeight());
|
glViewport(0, 0, Renderer::GetTargetWidth(), Renderer::GetTargetHeight());
|
||||||
// if copied to texture, set the dimensions to the source copy dims, otherwise, clear the entire buffer
|
// if copied to texture, set the dimensions to the source copy dims, otherwise, clear the entire buffer
|
||||||
if( PE_copy.copy_to_xfb == 0 )
|
if( PE_copy.copy_to_xfb == 0 )
|
||||||
glScissor(rc.left, (Renderer::GetTargetHeight()-rc.bottom), (rc.right-rc.left), (rc.bottom-rc.top));
|
glScissor(rc.left * MValue, (Renderer::GetTargetHeight()-rc.bottom * MValue),
|
||||||
|
(rc.right * MValue - rc.left * MValue), (rc.bottom * MValue-rc.top * MValue));
|
||||||
VertexShaderMngr::SetViewportChanged();
|
VertexShaderMngr::SetViewportChanged();
|
||||||
|
|
||||||
// since clear operations use the source rectangle, have to do regular renders (glClear clears the entire buffer)
|
// since clear operations use the source rectangle, have to do regular renders (glClear clears the entire buffer)
|
||||||
|
|
|
@ -286,7 +286,7 @@ bool OpenGL_Create(SVideoInitialize &_VideoInitialize, int _iwidth, int _iheight
|
||||||
GLX_GREEN_SIZE, 8,
|
GLX_GREEN_SIZE, 8,
|
||||||
GLX_BLUE_SIZE, 8,
|
GLX_BLUE_SIZE, 8,
|
||||||
GLX_DEPTH_SIZE, 24,
|
GLX_DEPTH_SIZE, 24,
|
||||||
GLX_SAMPLE_BUFFERS_ARB, 1, GLX_SAMPLES_ARB, 1, None };
|
GLX_SAMPLE_BUFFERS_ARB, g_Config.iMultisampleMode, GLX_SAMPLES_ARB, 1, None };
|
||||||
GLWin.dpy = XOpenDisplay(0);
|
GLWin.dpy = XOpenDisplay(0);
|
||||||
g_VideoInitialize.pWindowHandle = (HWND)GLWin.dpy;
|
g_VideoInitialize.pWindowHandle = (HWND)GLWin.dpy;
|
||||||
GLWin.screen = DefaultScreen(GLWin.dpy);
|
GLWin.screen = DefaultScreen(GLWin.dpy);
|
||||||
|
|
|
@ -66,6 +66,8 @@ void Config::Load()
|
||||||
iniFile.Get("Settings", "DumpTextures", &bDumpTextures, 0);
|
iniFile.Get("Settings", "DumpTextures", &bDumpTextures, 0);
|
||||||
iniFile.Get("Settings", "ShowShaderErrors", &bShowShaderErrors, 0);
|
iniFile.Get("Settings", "ShowShaderErrors", &bShowShaderErrors, 0);
|
||||||
iniFile.Get("Settings", "Multisample", &iMultisampleMode, 0);
|
iniFile.Get("Settings", "Multisample", &iMultisampleMode, 0);
|
||||||
|
if(iMultisampleMode == 0)
|
||||||
|
iMultisampleMode = 1;
|
||||||
std::string s;
|
std::string s;
|
||||||
iniFile.Get("Settings", "TexDumpPath", &s, 0);
|
iniFile.Get("Settings", "TexDumpPath", &s, 0);
|
||||||
if( s.size() < sizeof(texDumpPath) )
|
if( s.size() < sizeof(texDumpPath) )
|
||||||
|
|
|
@ -18,7 +18,9 @@
|
||||||
#include "Globals.h"
|
#include "Globals.h"
|
||||||
#include <list>
|
#include <list>
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
#include <mmsystem.h>
|
#include <mmsystem.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include "GLInit.h"
|
#include "GLInit.h"
|
||||||
#include "Render.h"
|
#include "Render.h"
|
||||||
|
@ -450,16 +452,13 @@ void Renderer::ReinitView(int nNewWidth, int nNewHeight)
|
||||||
nBackbufferWidth = nNewWidth > 16 ? nNewWidth : 16;
|
nBackbufferWidth = nNewWidth > 16 ? nNewWidth : 16;
|
||||||
nBackbufferHeight = nNewHeight > 16 ? nNewHeight : 16;
|
nBackbufferHeight = nNewHeight > 16 ? nNewHeight : 16;
|
||||||
}
|
}
|
||||||
//TODO: Return correct Values
|
|
||||||
int Renderer::GetTargetWidth()
|
int Renderer::GetTargetWidth()
|
||||||
{
|
{
|
||||||
//return 640;
|
|
||||||
return nBackbufferWidth;
|
return nBackbufferWidth;
|
||||||
}
|
}
|
||||||
|
|
||||||
int Renderer::GetTargetHeight()
|
int Renderer::GetTargetHeight()
|
||||||
{
|
{
|
||||||
//return 480;
|
|
||||||
return nBackbufferHeight;
|
return nBackbufferHeight;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
// Official SVN repository and contact information can be found at
|
// Official SVN repository and contact information can be found at
|
||||||
// http://code.google.com/p/dolphin-emu/
|
// http://code.google.com/p/dolphin-emu/
|
||||||
|
#include <wx/aboutdlg.h>
|
||||||
#include "Globals.h"
|
#include "Globals.h"
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
|
|
Loading…
Reference in New Issue