Linux: Fixed compiler errors from my prev commit, along with a few verbose warnings and a compile error in SPU2-X. (note, moved Linux's define of SVN_REV macro to PrecompiledHeader.h for now, until a proper solution is implemented)

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@1819 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
Jake.Stine 2009-09-13 20:56:22 +00:00
parent 4fbc2c26aa
commit de0442321f
13 changed files with 110 additions and 68 deletions

View File

@ -50,6 +50,7 @@
<Compiler> <Compiler>
<Add option="`wx-config --version=2.8 --static=no --unicode=yes --debug=yes --cflags`" /> <Add option="`wx-config --version=2.8 --static=no --unicode=yes --debug=yes --cflags`" />
<Add option="-DPCSX2_DEVBUILD" /> <Add option="-DPCSX2_DEVBUILD" />
<Add option="-DPCSX2_DEVEL" />
<Add option="-DNDEBUG" /> <Add option="-DNDEBUG" />
<Add directory="../../include" /> <Add directory="../../include" />
<Add directory="../../include/Utilities" /> <Add directory="../../include/Utilities" />

View File

@ -50,6 +50,7 @@
<Add option="-Wall" /> <Add option="-Wall" />
<Add option="`wx-config --version=2.8 --static=no --unicode=yes --debug=no --cflags`" /> <Add option="`wx-config --version=2.8 --static=no --unicode=yes --debug=no --cflags`" />
<Add option="-DPCSX2_DEVBUILD" /> <Add option="-DPCSX2_DEVBUILD" />
<Add option="-DPCSX2_DEVEL" />
<Add option="-DNDEBUG" /> <Add option="-DNDEBUG" />
</Compiler> </Compiler>
<Linker> <Linker>

View File

@ -1,6 +1,6 @@
/* PCSX2 - PS2 Emulator for PCs /* PCSX2 - PS2 Emulator for PCs
* Copyright (C) 2002-2009 PCSX2 Dev Team * Copyright (C) 2002-2009 PCSX2 Dev Team
* *
* PCSX2 is free software: you can redistribute it and/or modify it under the terms * PCSX2 is free software: you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Found- * of the GNU Lesser General Public License as published by the Free Software Found-
* ation, either version 3 of the License, or (at your option) any later version. * ation, either version 3 of the License, or (at your option) any later version.
@ -27,17 +27,23 @@ extern void DevAssert( bool condition, const char* msg );
// exception. Use this macro to dispose of these dangerous exceptions, and generate a // exception. Use this macro to dispose of these dangerous exceptions, and generate a
// friendly error log in their wake. // friendly error log in their wake.
// //
#define DESTRUCTOR_CATCHALL \ #define __DESTRUCTOR_CATCHALL( funcname ) \
catch( Exception::BaseException& ex ) \ catch( Exception::BaseException& ex ) \
{ \ { \
Console::Error( "Unhandled BaseException in " __FUNCTION__ " (ignored!):" ); \ Console::Error( "Unhandled BaseException in %s (ignored!):", funcname ); \
Console::Error( ex.FormatDiagnosticMessage() ); \ Console::Error( ex.FormatDiagnosticMessage() ); \
} \ } \
catch( std::exception& ex ) \ catch( std::exception& ex ) \
{ \ { \
Console::Error( "Unhandled std::exception in " __FUNCTION__ " (ignored!):" ); \ Console::Error( "Unhandled std::exception in %s (ignored!):", funcname ); \
Console::Error( ex.what() ); \ Console::Error( ex.what() ); \
} }
#ifdef __GNUC__
# define DESTRUCTOR_CATCHALL __DESTRUCTOR_CATCHALL( __PRETTY_FUNCTION__ )
#else
# define DESTRUCTOR_CATCHALL __DESTRUCTOR_CATCHALL( __FUNCTION__ )
#endif
namespace Exception namespace Exception
{ {
@ -89,7 +95,7 @@ namespace Exception
// Construction using one translation key. // Construction using one translation key.
void InitBaseEx( const char* msg_eng ); void InitBaseEx( const char* msg_eng );
}; };
// -------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------
// Ps2Generic Exception // Ps2Generic Exception
// -------------------------------------------------------------------------------------- // --------------------------------------------------------------------------------------
@ -195,7 +201,7 @@ namespace Exception
public: public:
DEFINE_EXCEPTION_COPYTORS( IndexBoundsFault ) DEFINE_EXCEPTION_COPYTORS( IndexBoundsFault )
IndexBoundsFault( const wxString& objname, int index, int arrsize ) IndexBoundsFault( const wxString& objname, int index, int arrsize )
{ {
BaseException::InitBaseEx( "Index is outside the bounds of an array." ); BaseException::InitBaseEx( "Index is outside the bounds of an array." );
@ -208,12 +214,12 @@ namespace Exception
virtual wxString FormatDiagnosticMessage() const; virtual wxString FormatDiagnosticMessage() const;
virtual wxString FormatDisplayMessage() const; virtual wxString FormatDisplayMessage() const;
}; };
class ParseError : public RuntimeError class ParseError : public RuntimeError
{ {
public: public:
DEFINE_RUNTIME_EXCEPTION( ParseError, "Parse error" ); DEFINE_RUNTIME_EXCEPTION( ParseError, "Parse error" );
}; };
// --------------------------------------------------------------------------------------- // ---------------------------------------------------------------------------------------
// Hardware/OS Exceptions: // Hardware/OS Exceptions:
@ -344,7 +350,7 @@ namespace Exception
}; };
// Exception thrown by SaveState class when a plugin returns an error during state // Exception thrown by SaveState class when a plugin returns an error during state
// load or save. // load or save.
// //
class FreezePluginFailure : public virtual RuntimeError class FreezePluginFailure : public virtual RuntimeError
{ {
@ -374,7 +380,7 @@ namespace Exception
public: public:
DEFINE_EXCEPTION_COPYTORS( UnsupportedStateVersion ) DEFINE_EXCEPTION_COPYTORS( UnsupportedStateVersion )
explicit UnsupportedStateVersion( int version, const wxString& objname=wxEmptyString ) explicit UnsupportedStateVersion( int version, const wxString& objname=wxEmptyString )
{ {
StreamName = objname; StreamName = objname;

View File

@ -1,7 +1,12 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<CodeBlocks_workspace_file> <CodeBlocks_workspace_file>
<Workspace title="pcsx2_suite_2008 workspace"> <Workspace title="pcsx2_suite_2008 workspace">
<Project filename="pcsx2/Linux/pcsx2.cbp" /> <Project filename="pcsx2/Linux/pcsx2.cbp">
<Depends filename="common/build/x86emitter/x86emitter.cbp" />
<Depends filename="common/build/Utilities/Utilities.cbp" />
<Depends filename="3rdparty/zlib/zlib.cbp" />
<Depends filename="tools/bin2cpp/bin2cpp.cbp" />
</Project>
<Project filename="common/build/x86emitter/x86emitter.cbp" /> <Project filename="common/build/x86emitter/x86emitter.cbp" />
<Project filename="common/build/Utilities/Utilities.cbp" /> <Project filename="common/build/Utilities/Utilities.cbp" />
<Project filename="3rdparty/SoundTouch/SoundTouch.cbp" /> <Project filename="3rdparty/SoundTouch/SoundTouch.cbp" />

View File

@ -45,6 +45,7 @@
<Add option="`wx-config --version=2.8 --static=no --unicode=yes --debug=yes --cflags`" /> <Add option="`wx-config --version=2.8 --static=no --unicode=yes --debug=yes --cflags`" />
<Add option="-DNDEBUG" /> <Add option="-DNDEBUG" />
<Add option="-DPCSX2_DEVBUILD" /> <Add option="-DPCSX2_DEVBUILD" />
<Add option="-DPCSX2_DEVEL" />
</Compiler> </Compiler>
<ResourceCompiler> <ResourceCompiler>
<Add directory="$(ProjectRootDir)/gui" /> <Add directory="$(ProjectRootDir)/gui" />
@ -287,8 +288,8 @@
<Unit filename="../gui/MainFrame.cpp" /> <Unit filename="../gui/MainFrame.cpp" />
<Unit filename="../gui/MainFrame.h" /> <Unit filename="../gui/MainFrame.h" />
<Unit filename="../gui/MainMenuClicks.cpp" /> <Unit filename="../gui/MainMenuClicks.cpp" />
<Unit filename="../gui/MemoryCardFile.cpp" /> <Unit filename="../gui/MemoryCardFile.cpp" />
<Unit filename="../gui/Panels/AudioPanel.cpp" /> <Unit filename="../gui/Panels/AudioPanel.cpp" />
<Unit filename="../gui/Panels/BiosSelectorPanel.cpp" /> <Unit filename="../gui/Panels/BiosSelectorPanel.cpp" />
<Unit filename="../gui/Panels/ConfigurationPanels.h" /> <Unit filename="../gui/Panels/ConfigurationPanels.h" />
<Unit filename="../gui/Panels/CpuPanel.cpp" /> <Unit filename="../gui/Panels/CpuPanel.cpp" />
@ -303,16 +304,19 @@
<Unit filename="../gui/Resources/AppIcon16.h" /> <Unit filename="../gui/Resources/AppIcon16.h" />
<Unit filename="../gui/Resources/AppIcon16.png"> <Unit filename="../gui/Resources/AppIcon16.png">
<Option compile="1" /> <Option compile="1" />
<Option weight="0" />
<Option compiler="gcc" use="1" buildCommand="$(SvnRootDir)/tools/bin2app.sh $(SvnRootDir) $file" /> <Option compiler="gcc" use="1" buildCommand="$(SvnRootDir)/tools/bin2app.sh $(SvnRootDir) $file" />
</Unit> </Unit>
<Unit filename="../gui/Resources/AppIcon32.h" /> <Unit filename="../gui/Resources/AppIcon32.h" />
<Unit filename="../gui/Resources/AppIcon32.png"> <Unit filename="../gui/Resources/AppIcon32.png">
<Option compile="1" /> <Option compile="1" />
<Option weight="0" />
<Option compiler="gcc" use="1" buildCommand="$(SvnRootDir)/tools/bin2app.sh $(SvnRootDir) $file" /> <Option compiler="gcc" use="1" buildCommand="$(SvnRootDir)/tools/bin2app.sh $(SvnRootDir) $file" />
</Unit> </Unit>
<Unit filename="../gui/Resources/AppIcon64.h" /> <Unit filename="../gui/Resources/AppIcon64.h" />
<Unit filename="../gui/Resources/AppIcon64.png"> <Unit filename="../gui/Resources/AppIcon64.png">
<Option compile="1" /> <Option compile="1" />
<Option weight="0" />
<Option compiler="gcc" use="1" buildCommand="$(SvnRootDir)/tools/bin2app.sh $(SvnRootDir) $file" /> <Option compiler="gcc" use="1" buildCommand="$(SvnRootDir)/tools/bin2app.sh $(SvnRootDir) $file" />
</Unit> </Unit>
<Unit filename="../gui/Resources/BackgroundLogo.h" /> <Unit filename="../gui/Resources/BackgroundLogo.h" />

View File

@ -1,6 +1,6 @@
/* PCSX2 - PS2 Emulator for PCs /* PCSX2 - PS2 Emulator for PCs
* Copyright (C) 2002-2009 PCSX2 Dev Team * Copyright (C) 2002-2009 PCSX2 Dev Team
* *
* PCSX2 is free software: you can redistribute it and/or modify it under the terms * PCSX2 is free software: you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Found- * of the GNU Lesser General Public License as published by the Free Software Found-
* ation, either version 3 of the License, or (at your option) any later version. * ation, either version 3 of the License, or (at your option) any later version.
@ -632,7 +632,7 @@ static void PS2E_CALLBACK pcsx2_OSD_WriteLn( int icon, const char* msg )
PluginManager::PluginManager( const wxString (&folders)[PluginId_Count] ) PluginManager::PluginManager( const wxString (&folders)[PluginId_Count] )
{ {
Console::Status( "Loading plugins..." ); Console::Status( "Loading plugins..." );
const PluginInfo* pi = tbl_PluginInfo-1; const PluginInfo* pi = tbl_PluginInfo-1;
while( ++pi, pi->shortname != NULL ) while( ++pi, pi->shortname != NULL )
{ {
@ -674,21 +674,21 @@ PluginManager::PluginManager( const wxString (&folders)[PluginId_Count] )
// Hack for PAD's stupid parameter passed on Init // Hack for PAD's stupid parameter passed on Init
PADinit = (_PADinit)m_info[PluginId_PAD].CommonBindings.Init; PADinit = (_PADinit)m_info[PluginId_PAD].CommonBindings.Init;
m_info[PluginId_PAD].CommonBindings.Init = _hack_PADinit; m_info[PluginId_PAD].CommonBindings.Init = _hack_PADinit;
Console::Status( "Plugins loaded successfully.\n" ); Console::Status( "Plugins loaded successfully.\n" );
// HACK! Manually bind the Internal MemoryCard plugin for now, until // HACK! Manually bind the Internal MemoryCard plugin for now, until
// we get things more completed in the new plugin api. // we get things more completed in the new plugin api.
static const PS2E_EmulatorInfo myself = static const PS2E_EmulatorInfo myself =
{ {
"PCSX2", "PCSX2",
{ 0, PCSX2_VersionHi, PCSX2_VersionLo, SVN_REV }, { 0, PCSX2_VersionHi, PCSX2_VersionLo, SVN_REV },
x86caps.PhysicalCores, x86caps.PhysicalCores,
x86caps.LogicalCores, x86caps.LogicalCores,
pcsx2_GetInt, pcsx2_GetInt,
pcsx2_GetBoolean, pcsx2_GetBoolean,
pcsx2_GetString, pcsx2_GetString,
@ -712,7 +712,6 @@ PluginManager::~PluginManager()
Shutdown(); Shutdown();
} }
DESTRUCTOR_CATCHALL DESTRUCTOR_CATCHALL
// All library unloading done automatically. // All library unloading done automatically.
} }
@ -988,9 +987,9 @@ void PluginManager::Shutdown()
m_info[pid].IsInitialized = false; m_info[pid].IsInitialized = false;
m_info[pid].CommonBindings.Shutdown(); m_info[pid].CommonBindings.Shutdown();
} }
// More memorycard hacks!! // More memorycard hacks!!
if( EmuPlugins.Mcd != NULL && m_mcdPlugin != NULL ) if( EmuPlugins.Mcd != NULL && m_mcdPlugin != NULL )
{ {
m_mcdPlugin->DeleteComponentInstance( (PS2E_THISPTR)EmuPlugins.Mcd ); m_mcdPlugin->DeleteComponentInstance( (PS2E_THISPTR)EmuPlugins.Mcd );

View File

@ -1,6 +1,6 @@
/* PCSX2 - PS2 Emulator for PCs /* PCSX2 - PS2 Emulator for PCs
* Copyright (C) 2002-2009 PCSX2 Dev Team * Copyright (C) 2002-2009 PCSX2 Dev Team
* *
* PCSX2 is free software: you can redistribute it and/or modify it under the terms * PCSX2 is free software: you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Found- * of the GNU Lesser General Public License as published by the Free Software Found-
* ation, either version 3 of the License, or (at your option) any later version. * ation, either version 3 of the License, or (at your option) any later version.
@ -29,7 +29,7 @@ struct PluginInfo
PluginsEnum_t id; PluginsEnum_t id;
int typemask; int typemask;
int version; // minimum version required / supported int version; // minimum version required / supported
wxString GetShortname() const wxString GetShortname() const
{ {
return wxString::FromUTF8( shortname ); return wxString::FromUTF8( shortname );
@ -127,7 +127,7 @@ struct LegacyPluginAPI_Common
s32 (CALLBACK* Test)(); s32 (CALLBACK* Test)();
void (CALLBACK* Configure)(); void (CALLBACK* Configure)();
void (CALLBACK* About)(); void (CALLBACK* About)();
LegacyPluginAPI_Common() : LegacyPluginAPI_Common() :
Init ( NULL ) Init ( NULL )
, Close ( NULL ) , Close ( NULL )
@ -154,7 +154,7 @@ class EmuPluginBindings
{ {
protected: protected:
PS2E_ComponentAPI_Mcd* Mcd; PS2E_ComponentAPI_Mcd* Mcd;
public: public:
EmuPluginBindings() : EmuPluginBindings() :
Mcd( NULL ) Mcd( NULL )
@ -204,7 +204,7 @@ public:
virtual void Freeze( PluginsEnum_t pid, int mode, freezeData* data ) { wxASSERT_MSG( false, L"Null PluginManager!" ); } virtual void Freeze( PluginsEnum_t pid, int mode, freezeData* data ) { wxASSERT_MSG( false, L"Null PluginManager!" ); }
virtual void Freeze( PluginsEnum_t pid, SaveState& state ) { wxASSERT_MSG( false, L"Null PluginManager!" ); } virtual void Freeze( PluginsEnum_t pid, SaveState& state ) { wxASSERT_MSG( false, L"Null PluginManager!" ); }
virtual void Freeze( SaveState& state ) { wxASSERT_MSG( false, L"Null PluginManager!" ); } virtual void Freeze( SaveState& state ) { wxASSERT_MSG( false, L"Null PluginManager!" ); }
virtual bool KeyEvent( const keyEvent& evt ) { return false; } virtual bool KeyEvent( const keyEvent& evt ) { return false; }
}; };
@ -225,7 +225,7 @@ protected:
LegacyPluginAPI_Common CommonBindings; LegacyPluginAPI_Common CommonBindings;
wxDynamicLibrary Lib; wxDynamicLibrary Lib;
PluginStatus_t() : PluginStatus_t() :
IsInitialized( false ) IsInitialized( false )
, IsOpened( false ) , IsOpened( false )
@ -268,7 +268,7 @@ protected:
void BindCommon( PluginsEnum_t pid ); void BindCommon( PluginsEnum_t pid );
void BindRequired( PluginsEnum_t pid ); void BindRequired( PluginsEnum_t pid );
void BindOptional( PluginsEnum_t pid ); void BindOptional( PluginsEnum_t pid );
friend class mtgsThreadObject; friend class mtgsThreadObject;
}; };
@ -282,7 +282,7 @@ extern PluginManagerBase& GetPluginManager();
// Hack to expose internal MemoryCard plugin: // Hack to expose internal MemoryCard plugin:
extern "C" extern const PS2E_LibraryAPI* FileMcd_InitAPI( const PS2E_EmulatorInfo* emuinfo ); extern "C" const PS2E_LibraryAPI* FileMcd_InitAPI( const PS2E_EmulatorInfo* emuinfo );
// Per ChickenLiver, this is being used to pass the GS plugins window handle to the Pad plugins. // Per ChickenLiver, this is being used to pass the GS plugins window handle to the Pad plugins.
// So a rename to pDisplay is in the works, but it will not, in fact, be removed. // So a rename to pDisplay is in the works, but it will not, in fact, be removed.

View File

@ -90,6 +90,12 @@ typedef int BOOL;
#include "Utilities/General.h" #include "Utilities/General.h"
#include "x86emitter/tools.h" #include "x86emitter/tools.h"
// Linux isn't set up for svn version numbers yet.
#ifdef __LINUX__
# define SVN_REV 0
# define SVN_MODS 0
#endif
////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////
// Compiler/OS specific macros and defines -- Begin Section // Compiler/OS specific macros and defines -- Begin Section

View File

@ -279,26 +279,16 @@ MainEmuFrame::MainEmuFrame(wxWindow* parent, const wxString& title):
wxString wintitle; wxString wintitle;
if( PCSX2_VersionLo & 1 ) if( PCSX2_VersionLo & 1 )
{ {
#ifdef __LINUX__
// Linux isn't set up for svn version numbers yet.
wintitle.Printf( _("PCSX2 %d.%d.%d (svn) %s"), PCSX2_VersionHi, PCSX2_VersionMid, PCSX2_VersionLo,
wxString::FromUTF8(__DATE__).c_str() );
#else
// Odd versions: beta / development editions, which feature revision number and compile date. // Odd versions: beta / development editions, which feature revision number and compile date.
wintitle.Printf( _("PCSX2 %d.%d.%d.%d%s (svn) %s"), PCSX2_VersionHi, PCSX2_VersionMid, PCSX2_VersionLo, wintitle.Printf( _("PCSX2 %d.%d.%d.%d%s (svn) %s"), PCSX2_VersionHi, PCSX2_VersionMid, PCSX2_VersionLo,
SVN_REV, SVN_MODS ? L"m" : wxEmptyString, wxString::FromUTF8(__DATE__).c_str() ); SVN_REV, SVN_MODS ? L"m" : wxEmptyString, wxString::FromUTF8(__DATE__).c_str() );
#endif
} }
else else
{ {
#ifdef __LINUX__
wintitle.Printf( _("PCSX2 %d.%d.%d"), PCSX2_VersionHi, PCSX2_VersionMid, PCSX2_VersionLo);
#else
// evens: stable releases, with a simpler title. // evens: stable releases, with a simpler title.
wintitle.Printf( _("PCSX2 %d.%d.%d %s"), PCSX2_VersionHi, PCSX2_VersionMid, PCSX2_VersionLo, wintitle.Printf( _("PCSX2 %d.%d.%d %s"), PCSX2_VersionHi, PCSX2_VersionMid, PCSX2_VersionLo,
SVN_MODS ? _("(modded)") : wxEmptyString SVN_MODS ? _("(modded)") : wxEmptyString
); );
#endif
} }
SetTitle( wintitle ); SetTitle( wintitle );
@ -306,13 +296,13 @@ MainEmuFrame::MainEmuFrame(wxWindow* parent, const wxString& title):
// Ideally the __WXMSW__ port should use the embedded IDI_ICON2 icon, because wxWidgets sucks and // Ideally the __WXMSW__ port should use the embedded IDI_ICON2 icon, because wxWidgets sucks and
// loses the transparency information when loading bitmaps into icons. But for some reason // loses the transparency information when loading bitmaps into icons. But for some reason
// I cannot get it to work despite following various examples to the letter. // I cannot get it to work despite following various examples to the letter.
wxIconBundle bundle; wxIconBundle bundle;
bundle.AddIcon( EmbeddedImage<res_AppIcon32>().GetIcon() ); bundle.AddIcon( EmbeddedImage<res_AppIcon32>().GetIcon() );
bundle.AddIcon( EmbeddedImage<res_AppIcon64>().GetIcon() ); bundle.AddIcon( EmbeddedImage<res_AppIcon64>().GetIcon() );
bundle.AddIcon( EmbeddedImage<res_AppIcon16>().GetIcon() ); bundle.AddIcon( EmbeddedImage<res_AppIcon16>().GetIcon() );
SetIcons( bundle ); SetIcons( bundle );
int m_statusbar_widths[] = { (int)(backsize.GetWidth()*0.73), (int)(backsize.GetWidth()*0.25) }; int m_statusbar_widths[] = { (int)(backsize.GetWidth()*0.73), (int)(backsize.GetWidth()*0.25) };
m_statusbar.SetStatusWidths(2, m_statusbar_widths); m_statusbar.SetStatusWidths(2, m_statusbar_widths);
m_statusbar.SetStatusText( L"The Status is Good!", 0); m_statusbar.SetStatusText( L"The Status is Good!", 0);

View File

@ -2,9 +2,12 @@
#ifndef _BASETYPES_H_ #ifndef _BASETYPES_H_
#define _BASETYPES_H_ #define _BASETYPES_H_
#include "PS2Edefs.h"
//system defines //system defines
#ifdef __LINUX__ #ifdef __LINUX__
#include <gtk/gtk.h> # undef __LINUX__ // supress gtk's warnings on redefinition
# include <gtk/gtk.h>
#else #else
# define WINVER 0x0501 # define WINVER 0x0501
# define _WIN32_WINNT 0x0501 # define _WIN32_WINNT 0x0501
@ -27,8 +30,6 @@
using std::string; using std::string;
using std::wstring; using std::wstring;
#include "PS2Edefs.h"
////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////
// Override Win32 min/max macros with the STL's type safe and macro // Override Win32 min/max macros with the STL's type safe and macro
// free varieties (much safer!) // free varieties (much safer!)
@ -65,7 +66,7 @@ extern void SysMessage(const char *fmt, ...);
# define DevMsg MsgBox # define DevMsg MsgBox
#else #else
# define DevCon 0&&Console # define DevCon 0&&Console
# define DevMsg # define DevMsg
#endif #endif
#ifdef PCSX2_DEBUG #ifdef PCSX2_DEBUG
@ -83,7 +84,7 @@ struct StereoOut32
s32 Left; s32 Left;
s32 Right; s32 Right;
StereoOut32() : StereoOut32() :
Left( 0 ), Left( 0 ),
Right( 0 ) Right( 0 )
@ -95,12 +96,12 @@ struct StereoOut32
Right( right ) Right( right )
{ {
} }
StereoOut32( const StereoOut16& src ); StereoOut32( const StereoOut16& src );
explicit StereoOut32( const StereoOutFloat& src ); explicit StereoOut32( const StereoOutFloat& src );
StereoOut16 DownSample() const; StereoOut16 DownSample() const;
StereoOut32 operator+( const StereoOut32& right ) const StereoOut32 operator+( const StereoOut32& right ) const
{ {
return StereoOut32( return StereoOut32(
@ -109,7 +110,7 @@ struct StereoOut32
); );
} }
StereoOut32 operator/( int src ) const StereoOut32 operator/( int src ) const
{ {
return StereoOut32( Left / src, Right / src ); return StereoOut32( Left / src, Right / src );
} }

View File

@ -59,7 +59,7 @@ struct StereoOut16
Right( right ) Right( right )
{ {
} }
StereoOut32 UpSample() const; StereoOut32 UpSample() const;
void ResampleFrom( const StereoOut32& src ) void ResampleFrom( const StereoOut32& src )
@ -214,7 +214,7 @@ struct Stereo51Out16DplII
s32 XL = abs(ValL>>8); s32 XL = abs(ValL>>8);
s32 XR = abs(ValR>>8); s32 XR = abs(ValR>>8);
if(XL>LMax) LMax = XL; if(XL>LMax) LMax = XL;
if(XR>RMax) RMax = XR; if(XR>RMax) RMax = XR;
@ -264,7 +264,7 @@ struct Stereo51Out16DplII
s32 VL=(ValL>>4) * Cfl; //16.12 s32 VL=(ValL>>4) * Cfl; //16.12
s32 VR=(ValR>>4) * Cfr; s32 VR=(ValR>>4) * Cfr;
s32 SC = (VL-VR)>>15; //s32 SC = (VL-VR)>>15;
SL = (((VR/148 - VL/209)>>4)*Cfr)>>8; SL = (((VR/148 - VL/209)>>4)*Cfr)>>8;
SR = (((VR/209 - VL/148)>>4)*Cfl)>>8; SR = (((VR/209 - VL/148)>>4)*Cfl)>>8;
@ -283,7 +283,7 @@ struct Stereo51Out16DplII
int AddCX = (C * AddCLR)>>8; int AddCX = (C * AddCLR)>>8;
Left = (((L * GainL ))>>8) + AddCX; Left = (((L * GainL ))>>8) + AddCX;
Right = (((R * GainL ))>>8) + AddCX; Right = (((R * GainR ))>>8) + AddCX;
Center = (((C * GainC ))>>8); Center = (((C * GainC ))>>8);
LFE = (((SUB * GainLFE))>>8); LFE = (((SUB * GainLFE))>>8);
LeftBack = (((SL * GainSL ))>>8); LeftBack = (((SL * GainSL ))>>8);
@ -310,7 +310,7 @@ struct Stereo71Out16
LFE = Center; LFE = Center;
LeftBack = src.Left >> SndOutVolumeShift; LeftBack = src.Left >> SndOutVolumeShift;
RightBack = src.Right >> SndOutVolumeShift; RightBack = src.Right >> SndOutVolumeShift;
LeftSide = src.Left >> (SndOutVolumeShift+1); LeftSide = src.Left >> (SndOutVolumeShift+1);
RightSide = src.Right >> (SndOutVolumeShift+1); RightSide = src.Right >> (SndOutVolumeShift+1);
} }
@ -352,7 +352,7 @@ private:
static StereoOut32* sndTempBuffer; static StereoOut32* sndTempBuffer;
static StereoOut16* sndTempBuffer16; static StereoOut16* sndTempBuffer16;
static int sndTempProgress; static int sndTempProgress;
static int m_dsp_progress; static int m_dsp_progress;
@ -381,7 +381,7 @@ private:
static void timeStretchWrite(); static void timeStretchWrite();
static void timeStretchUnderrun(); static void timeStretchUnderrun();
static s32 timeStretchOverrun(); static s32 timeStretchOverrun();
static void PredictDataWrite( int samples ); static void PredictDataWrite( int samples );
static float GetStatusPct(); static float GetStatusPct();
static void UpdateTempoChange(); static void UpdateTempoChange();
@ -392,13 +392,13 @@ public:
static void Write( const StereoOut32& Sample ); static void Write( const StereoOut32& Sample );
static s32 Test(); static s32 Test();
static void ClearContents(); static void ClearContents();
#ifdef _MSC_VER #ifdef _MSC_VER
static void Configure(HWND parent, u32 module ); static void Configure(HWND parent, u32 module );
#else #else
static void Configure(uptr parent, u32 module ); static void Configure(uptr parent, u32 module );
#endif #endif
// Note: When using with 32 bit output buffers, the user of this function is responsible // Note: When using with 32 bit output buffers, the user of this function is responsible
// for shifting the values to where they need to be manually. The fixed point depth of // for shifting the values to where they need to be manually. The fixed point depth of
// the sample output is determined by the SndOutVolumeShift, which is the number of bits // the sample output is determined by the SndOutVolumeShift, which is the number of bits

View File

@ -1,6 +1,6 @@
/* SPU2-X, A plugin for Emulating the Sound Processing Unit of the Playstation 2 /* SPU2-X, A plugin for Emulating the Sound Processing Unit of the Playstation 2
* Developed and maintained by the Pcsx2 Development Team. * Developed and maintained by the Pcsx2 Development Team.
* *
* SPU2-X is free software: you can redistribute it and/or modify it under the terms * SPU2-X is free software: you can redistribute it and/or modify it under the terms
* of the GNU Lesser General Public License as published by the Free Software Found- * of the GNU Lesser General Public License as published by the Free Software Found-
* ation, either version 3 of the License, or (at your option) any later version. * ation, either version 3 of the License, or (at your option) any later version.
@ -130,7 +130,7 @@ static const int pcm_DecodedSamplesPerBlock = 28;
struct PcmCacheEntry struct PcmCacheEntry
{ {
bool Validated; bool Validated;
s16 Sampledata[pcm_DecodedSamplesPerBlock]; s16 Sampledata[pcm_DecodedSamplesPerBlock];
}; };
@ -144,10 +144,10 @@ extern short *_spu2mem;
extern PcmCacheEntry* pcm_cache_data; extern PcmCacheEntry* pcm_cache_data;
extern s16 __forceinline * __fastcall GetMemPtr(u32 addr); extern s16* __fastcall GetMemPtr(u32 addr);
extern s16 __forceinline __fastcall spu2M_Read( u32 addr ); extern s16 __fastcall spu2M_Read( u32 addr );
extern void __inline __fastcall spu2M_Write( u32 addr, s16 value ); extern void __fastcall spu2M_Write( u32 addr, s16 value );
extern void __inline __fastcall spu2M_Write( u32 addr, u16 value ); extern void __fastcall spu2M_Write( u32 addr, u16 value );
#define spu2Rs16(mmem) (*(s16 *)((s8 *)spu2regs + ((mmem) & 0x1fff))) #define spu2Rs16(mmem) (*(s16 *)((s8 *)spu2regs + ((mmem) & 0x1fff)))
#define spu2Ru16(mmem) (*(u16 *)((s8 *)spu2regs + ((mmem) & 0x1fff))) #define spu2Ru16(mmem) (*(u16 *)((s8 *)spu2regs + ((mmem) & 0x1fff)))

View File

@ -5,6 +5,11 @@
<Option title="bin2cpp" /> <Option title="bin2cpp" />
<Option pch_mode="2" /> <Option pch_mode="2" />
<Option compiler="gcc" /> <Option compiler="gcc" />
<Option show_notes="0">
<notes>
<![CDATA[Built Targets: Debug and Devel builds are carbon copies of Release. Code::Blocks won't build bin2cpp automatically as a dependency of PCSX2 unless it has matching debug/devel configurations (that is, the depdendency only builds in Release modes, if the dependency only has a release target). There's no point in having debug/devel builds other than that.]]>
</notes>
</Option>
<Build> <Build>
<Target title="Release"> <Target title="Release">
<Option output="../bin/bin2cpp" prefix_auto="1" extension_auto="1" /> <Option output="../bin/bin2cpp" prefix_auto="1" extension_auto="1" />
@ -18,6 +23,30 @@
<Add option="-s" /> <Add option="-s" />
</Linker> </Linker>
</Target> </Target>
<Target title="Debug">
<Option output="../bin/bin2cpp" prefix_auto="1" extension_auto="1" />
<Option object_output="./.objs/release/" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
<Add option="-O2" />
</Compiler>
<Linker>
<Add option="-s" />
</Linker>
</Target>
<Target title="Devel">
<Option output="../bin/bin2cpp" prefix_auto="1" extension_auto="1" />
<Option object_output="./.objs/release/" />
<Option type="1" />
<Option compiler="gcc" />
<Compiler>
<Add option="-O2" />
</Compiler>
<Linker>
<Add option="-s" />
</Linker>
</Target>
</Build> </Build>
<Compiler> <Compiler>
<Add option="-Wall" /> <Add option="-Wall" />