Screwed up my last i18n commit -- forgot that gettext/poedit needs explicit text literals to work from, so my pxE_* macros won't work. This version should be better.

git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3132 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
Jake.Stine 2010-05-31 15:18:49 +00:00
parent 62e0ab888e
commit 644d4cda7f
34 changed files with 163 additions and 134 deletions

View File

@ -238,7 +238,7 @@ public:
// returns the translated error message for the Virtual Machine failing to allocate!
static wxString GetMemoryErrorVM()
{
return pxE_Error( "EmuCore::MemoryForVM",
return pxE( ".Error:EmuCore::MemoryForVM",
L"PCSX2 is unable to allocate memory needed for the PS2 virtual machine. "
L"Close out some memory hogging background tasks and try again."
);

View File

@ -39,7 +39,7 @@ static void CpuCheckSSE2()
wxDialogWithHelpers exconf( NULL, _("PCSX2 - SSE2 Recommended"), wxVERTICAL );
exconf += exconf.Heading( pxE_Error( "Startup:NoSSE2",
exconf += exconf.Heading( pxE( ".Popup:Startup:NoSSE2",
L"Warning: Your computer does not support SSE2, which is required by many PCSX2 recompilers and plugins. "
L"Your options will be limited and emulation will be *very* slow." )
);
@ -190,6 +190,8 @@ void Pcsx2App::ReadUserModeSettings()
void Pcsx2App::DetectCpuAndUserMode()
{
cpudetectInit();
//x86caps.Identify();
//x86caps.SIMD_EstablishMXCSRmask();
if( !x86caps.hasMultimediaExtensions )
{
@ -255,7 +257,7 @@ void Pcsx2App::AllocateCoreStuffs()
wxDialogWithHelpers exconf( NULL, _("PCSX2 Recompiler Error(s)"), wxVERTICAL );
exconf += 12;
exconf += exconf.Heading( pxE_Error( "RecompilerInit",
exconf += exconf.Heading( pxE( ".Popup:RecompilerInit",
L"Warning: Some of the configured PS2 recompilers failed to initialize and will not be available for this session:\n" )
);

View File

@ -363,7 +363,7 @@ void Pcsx2App::OnEmuKeyDown( wxKeyEvent& evt )
// are multiple variations on the BIOS and BIOS folder checks).
wxString BIOS_GetMsg_Required()
{
return pxE_Popup( "BiosDumpRequired",
return pxE( ".Popup:BiosDumpRequired",
L"\n\n"
L"PCSX2 requires a PS2 BIOS in order to run. For legal reasons, you *must* obtain \n"
L"a BIOS from an actual PS2 unit that you own (borrowing doesn't count).\n"

View File

@ -45,7 +45,7 @@ bool ApplicableWizardPage::PrepForApply()
Panels::SettingsDirPickerPanel::SettingsDirPickerPanel( wxWindow* parent ) :
DirPickerPanel( parent, FolderId_Settings, _("Settings"), _("Select a folder for PCSX2 settings") )
{
pxSetToolTip( this, pxE_Tooltip( "Folders:Settings",
pxSetToolTip( this, pxE( ".Tooltip:Folders:Settings",
L"This is the folder where PCSX2 saves your settings, including settings generated "
L"by most plugins (some older plugins may not respect this value)."
) );
@ -53,7 +53,7 @@ Panels::SettingsDirPickerPanel::SettingsDirPickerPanel( wxWindow* parent ) :
// Insert this into the top of the staticboxsizer created by the constructor.
GetSizer()->Insert( 0,
new wxStaticText( this, wxID_ANY,
pxE_Panel( "SettingsDirPicker",
pxE( ".Panel:SettingsDirPicker",
L"You may optionally specify a location for your PCSX2 settings here. If the location \n"
L"contains existing PCSX2 settings, you will be given the option to import or overwrite them."
), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE
@ -111,7 +111,7 @@ bool FirstTimeWizard::UsermodePage::PrepForApply()
// FIXME: There's already a file by the same name.. not sure what we should do here.
throw Exception::BadStream( path.ToString(),
L"Targeted documents folder is already occupied by a file.",
pxE_Error( "DocsFolderFileConflict",
pxE( ".Error:DocsFolderFileConflict",
L"PCSX2 cannot create a documents folder in the requested location. "
L"The path name matches an existing file. Delete the file or change the documents location, "
L"and then try again."
@ -155,7 +155,7 @@ FirstTimeWizard::FirstTimeWizard( wxWindow* parent )
// Temporary tutorial message for the BIOS, needs proof-reading!!
m_page_bios += 12;
m_page_bios += new pxStaticHeading( &m_page_bios,
pxE_Wizard( "Bios:Tutorial",
pxE( ".Wizard:Bios:Tutorial",
L"PCSX2 requires a *legal* copy of the PS2 BIOS in order to run games.\n"
L"You cannot use a copy obtained from a friend or the Internet.\n"
L"You must dump the BIOS from your *own* Playstation 2 console."

View File

@ -25,7 +25,7 @@ Dialogs::ImportSettingsDialog::ImportSettingsDialog( wxWindow* parent )
{
m_idealWidth = 440;
pxStaticText* heading = new pxStaticHeading( this, pxE_Popup( "ImportExistingSettings",
pxStaticText* heading = new pxStaticHeading( this, pxE( ".Popup:ImportExistingSettings",
L"Existing PCSX2 settings have been found in the configured settings folder. "
L"Would you like to import these settings or overwrite them with PCSX2 default values?"
L"\n\n(or press Cancel to select a different settings folder)" )

View File

@ -38,7 +38,7 @@ namespace Panels
wxString GetMsg_McdNtfsCompress()
{
return pxE_Panel( "Mcd:NtfsCompress",
return pxE( ".Panel:Mcd:NtfsCompress",
L"NTFS compression is built-in, fast, and completely reliable; and typically compresses memory cards "
L"very well (this option is highly recommended)."
);
@ -51,7 +51,7 @@ Panels::McdConfigPanel_Toggles::McdConfigPanel_Toggles(wxWindow *parent)
m_check_Ejection = new pxCheckBox( this,
_("Auto-eject memory cards when loading savestates"),
pxE_Panel( "Mcd:EnableEjection",
pxE( ".Panel:Mcd:EnableEjection",
L"Avoids memory card corruption by forcing games to re-index card contents after "
L"loading from savestates. May not be compatible with all games (Guitar Hero)."
)
@ -173,7 +173,7 @@ Dialogs::McdConfigDialog::McdConfigDialog( wxWindow* parent )
//AddPage<McdConfigPanel_Toggles> ( wxLt("Settings"), cfgid.MemoryCard );
//AddPage<McdConfigPanel_Standard> ( wxLt("Slots 1/2"), cfgid.MemoryCard );
*this += Heading(_("Drag items in the list over other items to swap or copy memory cards."));
*this += Heading(_("Drag items over other items in the list to swap or copy memory cards."));
*this += StdPadding;
*this += m_panel_mcdlist | StdExpand();

View File

@ -32,7 +32,7 @@ Dialogs::StuckThreadDialog::StuckThreadDialog( wxWindow* parent, StuckThreadActi
stuck_thread.AddListener( this );
*this += Heading( wxsFormat(
pxE_Panel( "StuckThread:Heading",
pxE( ".Panel:StuckThread:Heading",
L"The thread '%s' is not responding. It could be deadlocked, or it might "
L"just be running *really* slowly."
),

View File

@ -27,7 +27,7 @@
wxString GetMsg_ConfirmSysReset()
{
return pxE_Popup( "ConfirmSysReset",
return pxE( ".Popup:ConfirmSysReset",
L"This action will reset the existing PS2 virtual machine state; "
L"all current progress will be lost. Are you sure?"
);

View File

@ -100,7 +100,7 @@ void MainEmuFrame::Menu_ResetAllSettings_Click(wxCommandEvent &event)
{
ScopedCoreThreadPopup suspender;
if( !Msgbox::OkCancel(
pxE_Popup( "DeleteSettings",
pxE( ".Popup:DeleteSettings",
L"This command clears PCSX2 settings and allows you to re-run the First-Time Wizard. You will need to "
L"manually restart PCSX2 after this operation.\n\n"
L"WARNING!! Click OK to delete *ALL* settings for PCSX2 and force PCSX2 to shudown, losing any current emulation progress. Are you absolutely sure?"

View File

@ -74,7 +74,7 @@ protected:
wxString GetDisabledMessage( uint slot ) const
{
return pxE_Popup( "Mcd:HasBeenDisabled", wxsFormat(
return pxE( ".Popup:Mcd:HasBeenDisabled", wxsFormat(
L"The memory card in slot %d has been automatically disabled. You can correct the problem\n"
L"and re-enable the memory card at any time using Config:Memory cards from the main menu.",
slot

View File

@ -126,7 +126,7 @@ void Panels::BiosSelectorPanel::Apply()
L"User did not specify a valid BIOS selection.",
// Translated
pxE_Error( "BIOS:InvalidSelection",
pxE( ".Error:BIOS:InvalidSelection",
L"Please select a valid BIOS. If you are unable to make a valid selection "
L"then press cancel to close the Configuration panel."
)

View File

@ -60,7 +60,7 @@ void Panels::DirPickerPanel::Explore_Click( wxCommandEvent &evt )
createPathDlg += createPathDlg.Text( path ) | StdCenter();
createPathDlg += createPathDlg.Heading( pxE_Error( "DirPicker:CreatePath",
createPathDlg += createPathDlg.Heading( pxE( ".Error:DirPicker:CreatePath",
L"The specified path/directory does not exist. Would you like to create it?" )
);
@ -115,7 +115,7 @@ void Panels::DirPickerPanel::Init( FoldersEnum_t folderid, const wxString& dialo
{
m_checkCtrl = new pxCheckBox( this, _("Use default setting") );
pxSetToolTip( m_checkCtrl, pxE_Tooltip( "DirPicker:UseDefault",
pxSetToolTip( m_checkCtrl, pxE( ".Tooltip:DirPicker:UseDefault",
L"When checked this folder will automatically reflect the default associated with PCSX2's current usermode setting. " )
);

View File

@ -48,28 +48,28 @@ Panels::GSWindowSettingsPanel::GSWindowSettingsPanel( wxWindow* parent )
m_check_VsyncEnable = new pxCheckBox( this, _("Wait for vsync on refresh") );
m_check_ExclusiveFS = new pxCheckBox( this, _("Use exclusive fullscreen mode (if available)") );
m_check_VsyncEnable->SetToolTip( pxE_Tooltip( "Window:Vsync",
m_check_VsyncEnable->SetToolTip( pxE( ".Tooltip:Window:Vsync",
L"Vsync eliminates screen tearing but typically has a big performance hit. "
L"It usually only applies to fullscreen mode, and may not work with all GS plugins."
) );
m_check_HideMouse->SetToolTip( pxE_Tooltip( "Window:HideMouse",
m_check_HideMouse->SetToolTip( pxE( ".Tooltip:Window:HideMouse",
L"Check this to force the mouse cursor invisible inside the GS window; useful if using "
L"the mouse as a primary control device for gaming. By default the mouse auto-hides after "
L"2 seconds of inactivity."
) );
m_check_Fullscreen->SetToolTip( pxE_Tooltip( "Window:Fullscreen",
m_check_Fullscreen->SetToolTip( pxE( ".Tooltip:Window:Fullscreen",
L"Enables automatic mode switch to fullscreen when starting or resuming emulation. "
L"You can still toggle fullscreen display at any time using alt-enter."
) );
m_check_ExclusiveFS->SetToolTip( pxE_Tooltip( "Window:FullscreenExclusive",
m_check_ExclusiveFS->SetToolTip( pxE( ".Tooltip:Window:FullscreenExclusive",
L"Fullscreen Exclusive Mode may look better on older CRTs and might be a little faster on older video cards, "
L"but typically can lead to memory leaks or random crashes when entering/leaving fullscreen mode."
) );
m_check_CloseGS->SetToolTip( pxE_Tooltip( "Window:HideGS",
m_check_CloseGS->SetToolTip( pxE( ".Tooltip:Window:HideGS",
L"Completely closes the often large and bulky GS window when pressing "
L"ESC or suspending the emulator."
) );

View File

@ -66,7 +66,7 @@ Panels::GameFixesPanel::GameFixesPanel( wxWindow* parent ) :
},
{
_("EE timing hack - Multi purpose hack. Try if all else fails."),
pxE_Tooltip( "Gamefixes:EE Timing Hack",
pxE( ".Tooltip:Gamefixes:EE Timing Hack",
L"Known to affect following games:\n"
L" * Digital Devil Saga (Fixes FMV and crashes)\n"
L" * SSX (Fixes bad graphics and crashes)\n"
@ -93,7 +93,7 @@ Panels::GameFixesPanel::GameFixesPanel( wxWindow* parent ) :
*this += groupSizer | pxCenter;
*this += m_check_Enable | StdExpand();
*this += Heading( pxE_Panel( "Gamefixes:Compat Warning",
*this += Heading( pxE( ".Panel:Gamefixes:Compat Warning",
L"Enabling game fixes can cause compatibility or performance issues in other games. You "
L"will need to turn off fixes manually when changing games."
));

View File

@ -340,7 +340,7 @@ public:
if( dest.IsPresent && dest.IsFormatted )
{
wxsFormat( pxE_Popup( "Mcd:Overwrite",
wxsFormat( pxE( ".Popup:Mcd:Overwrite",
L"This will copy the contents of the memory card in slot %u over the memory card in slot %u. "
L"All data on the target slot will be lost. Are you sure?" ),
src.Slot, dest.Slot
@ -354,7 +354,7 @@ public:
if( !wxCopyFile( srcfile.GetFullPath(), destfile.GetFullPath(), true ) )
{
wxString heading;
heading.Printf( pxE_Error( "Mcd:Copy Failed",
heading.Printf( pxE( ".Error:Mcd:Copy Failed",
L"Error! Could not copy the memory card into slot %u. The destination file is in use." ),
dest.Slot
);
@ -558,7 +558,7 @@ void Panels::MemoryCardListPanel_Simple::OnCreateCard(wxCommandEvent& evt)
{
wxString content;
content.Printf(wxsFormat(
pxE_Popup("Mcd:Delete",
pxE( ".Popup:Mcd:Delete",
L"You are about to delete the formatted memory card in slot %u. "
L"All data on this card will be lost! Are you absolutely and quite positively sure?"
), slot )

View File

@ -32,13 +32,13 @@ using namespace pxSizerFlags;
Panels::DocsFolderPickerPanel::DocsFolderPickerPanel( wxWindow* parent, bool isFirstTime )
: BaseApplicableConfigPanel( parent, wxVERTICAL, _("Usermode Selection") )
{
const wxString usermodeExplained( pxE_Panel( "Usermode:Explained",
const wxString usermodeExplained( pxE( ".Panel:Usermode:Explained",
L"Please select your preferred default location for PCSX2 user-level documents below "
L"(includes memory cards, screenshots, settings, and savestates). "
L"These folder locations can be overridden at any time using the Core Settings panel."
) );
const wxString usermodeWarning( pxE_Panel( "Usermode:Warning",
const wxString usermodeWarning( pxE( ".Panel:Usermode:Warning",
L"You can change the preferred default location for PCSX2 user-level documents here "
L"(includes memory cards, screenshots, settings, and savestates). "
L"This option only affects Standard Paths which are set to use the installation default value."

View File

@ -36,7 +36,7 @@ Panels::StandardPathsPanel::StandardPathsPanel( wxWindow* parent ) :
*this += (new DirPickerPanel( this, FolderId_Savestates,
_("Savestates:"),
_("Select folder for Savestates") ))->
SetToolTip( pxE_Tooltip( "Folders:Savestates",
SetToolTip( pxE( ".Tooltip:Folders:Savestates",
L"This folder is where PCSX2 records savestates; which are recorded either by using "
L"menus/toolbars, or by pressing F1/F3 (load/save)."
)
@ -46,7 +46,7 @@ Panels::StandardPathsPanel::StandardPathsPanel( wxWindow* parent ) :
*this += (new DirPickerPanel( this, FolderId_Snapshots,
_("Snapshots:"),
_("Select a folder for Snapshots") ))->
SetToolTip( pxE_Tooltip( "Folders:Snapshots",
SetToolTip( pxE( ".Tooltip:Folders:Snapshots",
L"This folder is where PCSX2 saves screenshots. Actual screenshot image format and style "
L"may vary depending on the GS plugin being used."
)
@ -56,7 +56,7 @@ Panels::StandardPathsPanel::StandardPathsPanel( wxWindow* parent ) :
*this += (new DirPickerPanel( this, FolderId_Logs,
_("Logs/Dumps:" ),
_("Select a folder for logs/dumps") ))->
SetToolTip( pxE_Tooltip( "Folders:Logs",
SetToolTip( pxE( ".Tooltip:Folders:Logs",
L"This folder is where PCSX2 saves its logfiles and diagnostic dumps. Most plugins will "
L"also adhere to this folder, however some older plugins may ignore it."
)

View File

@ -230,7 +230,7 @@ void ApplyOverValidStateEvent::InvokeEvent()
{
wxDialogWithHelpers dialog( m_owner, _("Shutdown PS2 virtual machine?"), wxVERTICAL );
dialog += dialog.Heading( pxE_Popup( "PluginSelector:ConfirmShutdown",
dialog += dialog.Heading( pxE( ".Popup:PluginSelector:ConfirmShutdown",
L"Warning! Changing plugins requires a complete shutdown and reset of the PS2 virtual machine. "
L"PCSX2 will attempt to save and restore the state, but if the newly selected plugins are "
L"incompatible the recovery may fail, and current progress will be lost."
@ -446,7 +446,7 @@ void Panels::PluginSelectorPanel::AppStatusEvent_OnSettingsApplied()
static wxString GetApplyFailedMsg()
{
return pxE_Error( "PluginSelector:ApplyFailed",
return pxE( ".Error:PluginSelector:ApplyFailed",
L"All plugins must have valid selections for PCSX2 to run. If you are unable to make\n"
L"a valid selection due to missing plugins or an incomplete install of PCSX2, then\n"
L"press cancel to close the Configuration panel."

View File

@ -32,17 +32,17 @@ const wxChar* Panels::SpeedHacksPanel::GetEEcycleSliderMsg( int val )
switch( val )
{
case 1:
return pxE_Panel( "Speedhacks:EECycleX1",
return pxE( ".Panel:Speedhacks:EECycleX1",
L"1 - Default cyclerate. This closely matches the actual speed of a real PS2 EmotionEngine."
);
case 2:
return pxE_Panel( "Speedhacks:EECycleX2",
return pxE( ".Panel:Speedhacks:EECycleX2",
L"2 - Reduces the EE's cyclerate by about 33%. Mild speedup for most games with high compatibility."
);
case 3:
return pxE_Panel( "Speedhacks:EECycleX3",
return pxE( ".Panel:Speedhacks:EECycleX3",
L"3 - Reduces the EE's cyclerate by about 50%. Moderate speedup, but *will* cause stuttering "
L"audio on many FMVs."
);
@ -59,23 +59,23 @@ const wxChar* Panels::SpeedHacksPanel::GetVUcycleSliderMsg( int val )
switch( val )
{
case 0:
return pxE_Panel( "Speedhacks:VUCycleStealOff",
return pxE( ".Panel:Speedhacks:VUCycleStealOff",
L"0 - Disables VU Cycle Stealing. Most compatible setting!"
);
case 1:
return pxE_Panel( "Speedhacks:VUCycleSteal1",
return pxE( ".Panel:Speedhacks:VUCycleSteal1",
L"1 - Mild VU Cycle Stealing. Lower compatibility, but some speedup for most games."
);
case 2:
return pxE_Panel( "Speedhacks:VUCycleSteal2",
return pxE( ".Panel:Speedhacks:VUCycleSteal2",
L"2 - Moderate VU Cycle Stealing. Even lower compatibility, but significant speedups in some games."
);
case 3:
// TODO: Mention specific games that benefit from this setting here.
return pxE_Panel( "Speedhacks:VUCycleSteal3",
return pxE( ".Panel:Speedhacks:VUCycleSteal3",
L"3 - Maximum VU Cycle Stealing. Usefulness is limited, as this will cause flickering "
L"visuals or slowdown in most games."
);
@ -101,7 +101,7 @@ Panels::SpeedHacksPanel::SpeedHacksPanel( wxWindow* parent )
{
const wxSizerFlags sliderFlags( wxSizerFlags().Border( wxLEFT | wxRIGHT, 8 ).Expand() );
pxStaticText* heading = new pxStaticHeading( this, pxE_Panel( "Speedhacks:Overview",
pxStaticText* heading = new pxStaticHeading( this, pxE( ".Panel:Speedhacks:Overview",
L"These hacks will usually improve the speed of PCSX2 emulation, but compromise compatibility. "
L"If you have issues, always try disabling these hacks first."
) );
@ -134,7 +134,7 @@ Panels::SpeedHacksPanel::SpeedHacksPanel( wxWindow* parent )
m_msg_eecycle->SetForegroundColour( wxColour( L"Red" ) );
m_msg_eecycle->SetMinSize( wxSize( wxDefaultCoord, pxGetTextHeight(m_msg_eecycle, 3) ) );
const wxChar* ee_tooltip = pxE_Tooltip( "Speedhacks:EECycleRate Slider",
const wxChar* ee_tooltip = pxE( ".Tooltip:Speedhacks:EECycleRate Slider",
L"Setting higher values on this slider effectively reduces the clock speed of the EmotionEngine's "
L"R5900 core cpu, and typically brings big speedups to games that fail to utilize "
L"the full potential of the real PS2 hardware."
@ -155,7 +155,7 @@ Panels::SpeedHacksPanel::SpeedHacksPanel( wxWindow* parent )
m_msg_vustealer->SetForegroundColour( wxColour( L"Red" ) );
m_msg_vustealer->SetMinSize( wxSize( wxDefaultCoord, pxGetTextHeight(m_msg_vustealer, 3) ) );
const wxChar* vu_tooltip = pxE_Tooltip( "Speedhacks:VUCycleStealing Slider",
const wxChar* vu_tooltip = pxE( ".Tooltip:Speedhacks:VUCycleStealing Slider",
L"This slider controls the amount of cycles the VU unit steals from the EmotionEngine. Higher values increase the number of "
L"cycles stolen from the EE for each VU microprogram the game runs."
);
@ -174,12 +174,12 @@ Panels::SpeedHacksPanel::SpeedHacksPanel( wxWindow* parent )
m_check_vuMinMax = new pxCheckBox( vuHacksPanel, _("mVU Min/Max Hack"),
_("Small Speedup; may cause black screens, garbage graphics, SPS, etc... [Not Recommended]") );
m_check_vuFlagHack->SetToolTip( pxE_Tooltip( "Speedhacks:vuFlagHack",
m_check_vuFlagHack->SetToolTip( pxE( ".Tooltip:Speedhacks:vuFlagHack",
L"Updates Status Flags only on blocks which will read them, instead of all the time. "
L"This is safe most of the time, and Super VU does something similar by default."
) );
m_check_vuMinMax->SetToolTip( pxE_Tooltip( "Speedhacks:vuMinMax",
m_check_vuMinMax->SetToolTip( pxE( ".Tooltip:Speedhacks:vuMinMax",
L"Uses SSE's Min/Max Floating Point Operations instead of custom logical Min/Max routines. "
L"Known to break Gran Turismo 4, Tekken 5."
) );
@ -199,19 +199,19 @@ Panels::SpeedHacksPanel::SpeedHacksPanel( wxWindow* parent )
_("Small Speedup. Works well with some games but may cause issues in others. [Not Recommended]") );
m_check_intc->SetToolTip( pxE_Tooltip( "Speedhacks:INTC",
m_check_intc->SetToolTip( pxE( ".Tooltip:Speedhacks:INTC",
L"This hack works best for games that use the INTC Status register to wait for vsyncs, which includes primarily non-3D "
L"RPG titles. Games that do not use this method of vsync will see little or no speedup from this hack."
) );
m_check_waitloop->SetToolTip( pxE_Tooltip( "Speedhacks:BIFC0",
m_check_waitloop->SetToolTip( pxE( ".Tooltip:Speedhacks:BIFC0",
L"Primarily targetting the EE idle loop at address 0x81FC0 in the kernel, this hack attempts to "
L"detect loops whose bodies are guaranteed to result in the same machine state for every iteration "
L"until a scheduled event triggers emulation of another unit. After a single iteration of such loops, "
L"we advance to the time of the next event or the end of the processor's timeslice, whichever comes first."
) );
m_check_IOPx2->SetToolTip( pxE_Tooltip( "Speedhacks:IOPx2",
m_check_IOPx2->SetToolTip( pxE( ".Tooltip:Speedhacks:IOPx2",
L"Halves the cycle rate of the IOP, giving it an effective emulated speed of roughly 18 MHz. "
L"The speedup is very minor, so this hack is generally not recommended."
) );

View File

@ -32,7 +32,7 @@ Panels::FramelimiterPanel::FramelimiterPanel( wxWindow* parent )
m_check_LimiterDisable = new pxCheckBox( this, _("Disable Framelimiting"),
_("Useful for running benchmarks. Toggle this option in-game by pressing F4.") );
m_check_LimiterDisable->SetToolTip( pxE_Tooltip( "Framelimiter:Disable",
m_check_LimiterDisable->SetToolTip( pxE( ".Tooltip:Framelimiter:Disable",
L"Note that when Framelimiting is disabled, Turbo and SlowMotion modes will not "
L"be available either."
) );
@ -100,7 +100,7 @@ Panels::FramelimiterPanel::FramelimiterPanel( wxWindow* parent )
*this += 5;
*this += Heading( pxE_Panel( "Framelimiter:Heading",
*this += Heading( pxE( ".Panel:Framelimiter:Heading",
L"The internal framelimiter regulates the speed of the virtual machine. Adjustment values below are in "
L"percentages of the default region-based framerate, which can also be configured below." )
);
@ -166,7 +166,7 @@ Panels::FrameSkipPanel::FrameSkipPanel( wxWindow* parent )
L""
) );
m_check_EnableSkipOnTurbo->SetToolTip( pxE_Tooltip( "Frameskip:UseForTurbo",
m_check_EnableSkipOnTurbo->SetToolTip( pxE( ".Tooltip:Frameskip:UseForTurbo",
L"Recommended option! Since frameskipping glitches typically aren't as annoying when you're "
L" just trying to speed through stuff."
) );*/
@ -221,7 +221,7 @@ Panels::FrameSkipPanel::FrameSkipPanel( wxWindow* parent )
*this += s_spins | StdExpand();
*this += Heading( pxE_Panel( "Frameskip:Heading",
*this += Heading( pxE( ".Panel:Frameskip:Heading",
L"Notice: Due to PS2 hardware design, precise frame skipping is impossible. "
L"Enabling it will cause severe graphical errors in some games, and so it should be considered a speedhack." )
);
@ -292,11 +292,11 @@ Panels::VideoPanel::VideoPanel( wxWindow* parent ) :
_("Completely disables all GS plugin activity; ideal for benchmarking EEcore components.")
);
m_check_SynchronousGS->SetToolTip( pxE_Tooltip( "GS:SyncMTGS",
m_check_SynchronousGS->SetToolTip( pxE( ".Tooltip:GS:SyncMTGS",
L"Enable this if you think MTGS thread sync is causing crashes or graphical errors.")
) ;
m_check_DisableOutput->SetToolTip( pxE_Tooltip( "GS:DisableOutput",
m_check_DisableOutput->SetToolTip( pxE( ".Tooltip:GS:DisableOutput",
L"Removes any benchmark noise caused by the MTGS thread or GPU overhead. This option is best used in conjunction with savestates: "
L"save a state at an ideal scene, enable this option, and re-load the savestate.\n\n"
L"Warning: This option can be enabled on-the-fly but typically cannot be disabled on-the-fly (video will typically be garbage)."

View File

@ -117,6 +117,29 @@ void i18n_EnumeratePackages( LangPackList& langs )
//
const wxChar* __fastcall pxExpandMsg( const wxChar* key, const wxChar* englishContent )
{
#ifdef PCSX2_DEVBUILD
static const wxChar* tbl_pxE_Prefixes[] =
{
L".Panel:",
L".Popup:",
L".Error:",
L".Wizard:",
L".Tooltip:",
NULL
};
// test the prefix of the key for consistency to valid/known prefix types.
const wxChar** prefix = tbl_pxE_Prefixes;
while( *prefix != NULL )
{
if( wxString(key).StartsWith(*prefix) ) break;
++prefix;
}
pxAssertDev( *prefix != NULL,
wxsFormat( L"Invalid pxE key prefix in key '%s'. Prefix must be one of the valid prefixes listed in pxExpandMsg.", key )
);
#endif
const wxLanguageInfo* info = wxLocale::GetLanguageInfo( g_Conf->LanguageId );
if( ( info == NULL ) || IsEnglish( info->Language ) )

View File

@ -45,25 +45,27 @@ extern const wxChar* __fastcall pxGetTranslation( const wxChar* message );
// source code identifiers, and then reference the source code to see what the current
// english version is.
//
//#define pxE(key, english) pxExpandMsg( wxT(key), english )
// Valid prefix types:
//
// .Panel: Key-based translation of a panel or dialog text; usually either a header or
// checkbox description, by may also include some controls with long labels.
// These have the highest translation priority.
//
// .Popup: Key-based translation of a popup dialog box; either a notice, confirmation,
// or error. These typically have very high translation priority (roughly equal
// or slightly less than pxE_Panel).
//
// .Error Key-based translation of error messages, typically used when throwing exceptions
// that have end-user errors. These are normally (but not always) displayed as popups
// to the user. Translation priority is medium.
//
// .Wizard Key-based translation of a heading, checkbox item, description, or other text
// associated with the First-time wizard. Translation of these items is considered
// lower-priority to most other messages; but equal or higher priority to tooltips.
//
// .Tooltip: Key-based translation of a tooltip for a control on a dialog/panel. Translation
// of these items is typically considered "lowest priority" as they usually provide
// the most tertiary of info to the user.
//
// Key-based translation of a panel or dialog text; usually either a header or checkbox description,
// by may also include some controls with long labels.
#define pxE_Panel(key, english) pxExpandMsg( wxT(".Panel:") wxT(key), english )
// Key-based translation of a popup dialog box; either a notice or confirmation. Popup erros should
// use pxE_Error instead.
#define pxE_Popup(key, english) pxExpandMsg( wxT(".Popup:") wxT(key), english )
// Key-based translation of a popup error.
#define pxE_Error(key, english) pxExpandMsg( wxT(".Error:") wxT(key), english )
// Key-based translation of a heading, checkbox item, description, or other text associated with
// the First-time wizard. Translation of these items is considered lower-priority to most other
// messages; but equal or higher priority to tooltips.
#define pxE_Wizard(key, english) pxExpandMsg( wxT(".Wizard:") wxT(key), english )
// Key-based translation of a tooltip for a control on a dialog/panel. Tanslation of these items
// is typically considered "lowest priority" as they usually provide the most tertiary of info
// to the user.
#define pxE_Tooltip(key, english) pxExpandMsg( wxT(".Error:") wxT(key), english )
#define pxE(key, english) pxExpandMsg( wxT(key), english )

View File

@ -37,7 +37,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SPU2-X", "plugins\spu2-x\sr
{C34487AF-228A-4D11-8E50-27803DF76873} = {C34487AF-228A-4D11-8E50-27803DF76873}
{0E231FB1-F3C9-4724-ACCB-DE8BCB3C089E} = {0E231FB1-F3C9-4724-ACCB-DE8BCB3C089E}
{7E9B2BE7-CEC3-4F14-847B-0AB8D562FB86} = {7E9B2BE7-CEC3-4F14-847B-0AB8D562FB86}
{A51123F5-9505-4EAE-85E7-D320290A272C} = {A51123F5-9505-4EAE-85E7-D320290A272C}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "GSdx", "plugins\GSdx\GSdx_vs2008.vcproj", "{18E42F6F-3A62-41EE-B42F-79366C4F1E95}"

View File

@ -127,7 +127,7 @@ void V_Core::StartADMAWrite(u16 *pMem, u32 sz)
#ifndef ENABLE_NEW_IOPDMA_SPU2
int size = (sz)&(~511);
if(MsgAutoDMA()) ConLog(" * SPU2: DMA%c AutoDMA Transfer of %d bytes to %x (%02x %x %04x).\n",
if(MsgAutoDMA()) ConLog("* SPU2-X: DMA%c AutoDMA Transfer of %d bytes to %x (%02x %x %04x).\n",
GetDmaIndexChar(), size<<1, TSA, DMABits, AutoDMACtrl, (~Regs.ATTR)&0x7fff);
InputDataProgress = 0;
@ -236,7 +236,7 @@ void V_Core::PlainDMAWrite(u16 *pMem, u32 size)
cacheLine++;
} while ( cacheLine != &cacheEnd );
//ConLog( " * SPU2 : Cache Clear Range! TSA=0x%x, TDA=0x%x (low8=0x%x, high8=0x%x, len=0x%x)\n",
//ConLog( "* SPU2-X: Cache Clear Range! TSA=0x%x, TDA=0x%x (low8=0x%x, high8=0x%x, len=0x%x)\n",
// TSA, buff1end, flagTSA, flagTDA, clearLen );
@ -421,7 +421,7 @@ void V_Core::DoDMAwrite(u16* pMem, u32 size)
}
else
{
if(MsgDMA()) ConLog(" * SPU2: DMA%c Transfer of %d bytes to %x (%02x %x %04x). IRQE = %d IRQA = %x \n",
if(MsgDMA()) ConLog("* SPU2-X: DMA%c Transfer of %d bytes to %x (%02x %x %04x). IRQE = %d IRQA = %x \n",
GetDmaIndexChar(),size<<1,TSA,DMABits,AutoDMACtrl,(~Regs.ATTR)&0x7fff,
Cores[0].IRQEnable, Cores[0].IRQA);
@ -534,9 +534,9 @@ s32 V_Core::NewDmaWrite(u32* data, u32 bytesLeft, u32* bytesProcessed)
if(adma_enable)
{
TSA&=0x1fff;
//Console.Error(" * SPU2: AutoDMA transfers not supported yet! (core %d)\n", Index);
//Console.Error("* SPU2-X: AutoDMA transfers not supported yet! (core %d)\n", Index);
if(MsgAutoDMA() && DmaStarting) ConLog(" * SPU2: DMA%c AutoDMA Transfer of %d bytes to %x (%02x %x %04x).\n",
if(MsgAutoDMA() && DmaStarting) ConLog("* SPU2-X: DMA%c AutoDMA Transfer of %d bytes to %x (%02x %x %04x).\n",
GetDmaIndexChar(), bytesLeft<<1, TSA, DMABits, AutoDMACtrl, (~Regs.ATTR)&0x7fff);
u32 processed = 0;
@ -635,7 +635,7 @@ s32 V_Core::NewDmaWrite(u32* data, u32 bytesLeft, u32* bytesProcessed)
}
else
{
if(MsgDMA() && DmaStarting) ConLog(" * SPU2: DMA%c Transfer of %d bytes to %x (%02x %x %04x).\n",
if(MsgDMA() && DmaStarting) ConLog("* SPU2-X: DMA%c Transfer of %d bytes to %x (%02x %x %04x).\n",
GetDmaIndexChar(),bytesLeft,TSA,DMABits,AutoDMACtrl,(~Regs.ATTR)&0x7fff);
if(bytesLeft> 2048)

View File

@ -150,7 +150,7 @@ static __forceinline s32 __fastcall GetNextDataBuffered( V_Core& thiscore, uint
vc.Stop();
if( IsDevBuild )
{
if(MsgVoiceOff()) ConLog(" * SPU2: Voice Off by EndPoint: %d \n", voiceidx);
if(MsgVoiceOff()) ConLog("* SPU2-X: Voice Off by EndPoint: %d \n", voiceidx);
}
}
}
@ -173,7 +173,7 @@ static __forceinline s32 __fastcall GetNextDataBuffered( V_Core& thiscore, uint
vc.Prev1 = vc.SBuffer[27];
vc.Prev2 = vc.SBuffer[26];
//ConLog( " * SPU2 : Cache Hit! NextA=0x%x, cacheIdx=0x%x\n", vc.NextA, cacheIdx );
//ConLog( "* SPU2-X: Cache Hit! NextA=0x%x, cacheIdx=0x%x\n", vc.NextA, cacheIdx );
if( IsDevBuild )
g_counter_cache_hits++;
@ -344,7 +344,7 @@ static __forceinline void CalculateADSR( V_Core& thiscore, uint voiceidx )
{
if( IsDevBuild )
{
if(MsgVoiceOff()) ConLog(" * SPU2: Voice Off by ADSR: %d \n", voiceidx);
if(MsgVoiceOff()) ConLog("* SPU2-X: Voice Off by ADSR: %d \n", voiceidx);
}
vc.Stop();
thiscore.Regs.ENDX |= (1 << voiceidx);

View File

@ -113,6 +113,9 @@ static bool cpu_detected = false;
static bool CheckSSE()
{
return true;
#if 0
if( !cpu_detected )
{
cpudetectInit();
@ -124,6 +127,7 @@ static bool CheckSSE()
return false;
}
return true;
#endif
}
EXPORT_C_(u32) PS2EgetLibType()
@ -298,7 +302,14 @@ EXPORT_C_(s32) SPU2init()
{
assert( regtable[0x400] == NULL );
//s32 c=0,v=0;
if (IsInitialized)
{
printf( " * SPU2-X: Already initialized - Ignoring SPU2init signal." );
return 0;
}
IsInitialized = true;
ReadSettings();
#ifdef SPU2_LOG
@ -311,14 +322,6 @@ EXPORT_C_(s32) SPU2init()
#endif
srand((unsigned)time(NULL));
if (IsInitialized)
{
ConLog( " * SPU2: Already initialized - Ignoring SPU2init signal." );
return 0;
}
IsInitialized = true;
spu2regs = (s16*)malloc(0x010000);
_spu2mem = (s16*)malloc(0x200000);
@ -333,7 +336,7 @@ EXPORT_C_(s32) SPU2init()
if( (spu2regs == NULL) || (_spu2mem == NULL) || (pcm_cache_data == NULL) )
{
SysMessage("SPU2: Error allocating Memory\n"); return -1;
SysMessage("SPU2-X: Error allocating Memory\n"); return -1;
}
// Patch up a copy of regtable that directly maps "NULLs" to SPU2 memory.
@ -424,7 +427,7 @@ EXPORT_C_(void) SPU2shutdown()
if(!IsInitialized) return;
IsInitialized = false;
ConLog( " * SPU2: Shutting down.\n" );
ConLog( "* SPU2-X: Shutting down.\n" );
SPU2close();
@ -542,7 +545,7 @@ EXPORT_C_(u16) SPU2read(u32 rmem)
else if( (mem&0xFFFF) >= 0x800 )
{
ret = spu2Ru16(mem);
ConLog(" * SPU2: Read from reg>=0x800: %x value %x\n",mem,ret);
ConLog("* SPU2-X: Read from reg>=0x800: %x value %x\n",mem,ret);
}
else
{

View File

@ -93,23 +93,23 @@ void SPU2writeLog( const char* action, u32 rmem, u16 value )
RegLog(2,"SPDIF_IRQINFO",rmem,-1,value);
break;
case 0x7c4:
if(Spdif.Unknown1 != value) ConLog(" * SPU2: SPDIF Unknown Register 1 set to %04x\n",value);
if(Spdif.Unknown1 != value) ConLog("* SPU2-X: SPDIF Unknown Register 1 set to %04x\n",value);
RegLog(2,"SPDIF_UNKNOWN1",rmem,-1,value);
break;
case SPDIF_MODE:
if(Spdif.Mode != value) ConLog(" * SPU2: SPDIF Mode set to %04x\n",value);
if(Spdif.Mode != value) ConLog("* SPU2-X: SPDIF Mode set to %04x\n",value);
RegLog(2,"SPDIF_MODE",rmem,-1,value);
break;
case SPDIF_MEDIA:
if(Spdif.Media != value) ConLog(" * SPU2: SPDIF Media set to %04x\n",value);
if(Spdif.Media != value) ConLog("* SPU2-X: SPDIF Media set to %04x\n",value);
RegLog(2,"SPDIF_MEDIA",rmem,-1,value);
break;
case 0x7ca:
if(Spdif.Unknown2 != value) ConLog(" * SPU2: SPDIF Unknown Register 2 set to %04x\n",value);
if(Spdif.Unknown2 != value) ConLog("* SPU2-X: SPDIF Unknown Register 2 set to %04x\n",value);
RegLog(2,"SPDIF_UNKNOWN2",rmem,-1,value);
break;
case SPDIF_PROTECT:
if(Spdif.Protection != value) ConLog(" * SPU2: SPDIF Copy set to %04x\n",value);
if(Spdif.Protection != value) ConLog("* SPU2-X: SPDIF Copy set to %04x\n",value);
RegLog(2,"SPDIF_PROTECT",rmem,-1,value);
break;
}
@ -185,11 +185,11 @@ void SPU2writeLog( const char* action, u32 rmem, u16 value )
RegLog(2,"TSAL",rmem,core,value);
break;
case REG_S_ENDX:
//ConLog(" * SPU2: Core %d ENDX cleared!\n",core);
//ConLog("* SPU2-X: Core %d ENDX cleared!\n",core);
RegLog(2,"ENDX0",rmem,core,value);
break;
case (REG_S_ENDX + 2):
//ConLog(" * SPU2: Core %d ENDX cleared!\n",core);
//ConLog("* SPU2-X: Core %d ENDX cleared!\n",core);
RegLog(2,"ENDX1",rmem,core,value);
break;
case REG_P_MVOLL:
@ -200,7 +200,7 @@ void SPU2writeLog( const char* action, u32 rmem, u16 value )
break;
case REG_S_ADMAS:
RegLog(3,"ADMAS",rmem,core,value);
//ConLog(" * SPU2: Core %d AutoDMAControl set to %d\n",core,value);
//ConLog("* SPU2-X: Core %d AutoDMAControl set to %d\n",core,value);
break;
case REG_P_STATX:
RegLog(3,"STATX",rmem,core,value);

View File

@ -102,14 +102,14 @@ public:
PaError err = Pa_Initialize();
if( err != paNoError )
{
fprintf(stderr," * SPU2: PortAudio error: %s\n", Pa_GetErrorText( err ) );
fprintf(stderr,"* SPU2-X: PortAudio error: %s\n", Pa_GetErrorText( err ) );
return -1;
}
started=true;
int deviceIndex = -1;
fprintf(stderr," * SPU2: Enumerating PortAudio devices:");
fprintf(stderr,"* SPU2-X: Enumerating PortAudio devices:");
for(int i=0;i<Pa_GetDeviceCount();i++)
{
const PaDeviceInfo * info = Pa_GetDeviceInfo(i);
@ -211,7 +211,7 @@ public:
}
if( err != paNoError )
{
fprintf(stderr," * SPU2: PortAudio error: %s\n", Pa_GetErrorText( err ) );
fprintf(stderr,"* SPU2-X: PortAudio error: %s\n", Pa_GetErrorText( err ) );
Pa_Terminate();
return -1;
}
@ -219,7 +219,7 @@ public:
err = Pa_StartStream( stream );
if( err != paNoError )
{
fprintf(stderr," * SPU2: PortAudio error: %s\n", Pa_GetErrorText( err ) );
fprintf(stderr,"* SPU2-X: PortAudio error: %s\n", Pa_GetErrorText( err ) );
Pa_CloseStream(stream);
stream=NULL;
Pa_Terminate();
@ -240,19 +240,19 @@ public:
{
err = Pa_StopStream(stream);
if( err != paNoError )
fprintf(stderr," * SPU2: PortAudio error: %s\n", Pa_GetErrorText( err ) );
fprintf(stderr,"* SPU2-X: PortAudio error: %s\n", Pa_GetErrorText( err ) );
}
err = Pa_CloseStream(stream);
if( err != paNoError )
fprintf(stderr," * SPU2: PortAudio error: %s\n", Pa_GetErrorText( err ) );
fprintf(stderr,"* SPU2-X: PortAudio error: %s\n", Pa_GetErrorText( err ) );
stream=NULL;
}
PaError err = Pa_Terminate();
if( err != paNoError )
fprintf(stderr," * SPU2: PortAudio error: %s\n", Pa_GetErrorText( err ) );
fprintf(stderr,"* SPU2-X: PortAudio error: %s\n", Pa_GetErrorText( err ) );
started=false;
}

View File

@ -171,7 +171,7 @@ void SndBuffer::UpdateTempoChangeSoundTouch()
pSoundTouch->setTempo( eTempo = (float)newTempo );
ts_stats_stretchblocks++;
/*ConLog(" * SPU2: [Nominal %d%%] [Emergency: %d%%] (baseTempo: %d%% ) (newTempo: %d%%) (buffer: %d%%)\n",
/*ConLog("* SPU2-X: [Nominal %d%%] [Emergency: %d%%] (baseTempo: %d%% ) (newTempo: %d%%) (buffer: %d%%)\n",
//(relation < 0.0) ? "Normalize" : "",
(int)(tempoChange * 100.0 * 0.03),
(int)(emergencyAdj * 100.0),

View File

@ -94,8 +94,8 @@ void ReadSettings()
if( mods[OutputModule] == NULL )
{
// Unsupported or legacy module.
fprintf( stderr, " * SPU2: Unknown output module '%s' specified in configuration file.\n", omodid );
fprintf( stderr, " * SPU2: Defaulting to DirectSound (%S).\n", DSoundOut->GetIdent() );
fprintf( stderr, "* SPU2-X: Unknown output module '%s' specified in configuration file.\n", omodid );
fprintf( stderr, "* SPU2-X: Defaulting to DirectSound (%S).\n", DSoundOut->GetIdent() );
OutputModule = FindOutputModuleById( DSoundOut->GetIdent() );
}
}

View File

@ -86,7 +86,7 @@ private:
if( FAILED(buffer->Lock(poffset,BufferSizeBytes,(LPVOID*)&p1,&s1,&p2,&s2,0) ) )
{
assert( 0 );
fputs( " * SPU2 : Directsound Warning > Buffer lock failure. You may need to increase\n\tyour configured DSound buffer count.\n", stderr );
fputs( "* SPU2-X: Directsound Warning > Buffer lock failure. You may need to increase\n\tyour configured DSound buffer count.\n", stderr );
continue;
}
oldp1 = p1;
@ -224,7 +224,7 @@ public:
void Close()
{
// Stop Thread
fprintf(stderr," * SPU2: Waiting for DSound thread to finish...");
fprintf(stderr,"* SPU2-X: Waiting for DSound thread to finish...");
dsound_running=false;
WaitForSingleObject(thread,INFINITE);

View File

@ -179,7 +179,7 @@ public:
void Close()
{
// Stop Thread
fprintf(stderr," * SPU2: Waiting for waveOut thread to finish...");
fprintf(stderr,"* SPU2-X: Waiting for waveOut thread to finish...");
waveout_running=false;
WaitForSingleObject(thread,INFINITE);

View File

@ -75,7 +75,7 @@ __forceinline void __fastcall spu2M_Write( u32 addr, s16 value )
const int cacheIdx = addr / pcm_WordsPerBlock;
pcm_cache_data[cacheIdx].Validated = false;
ConLog( " * SPU2 : PcmCache Block Clear at 0x%x (cacheIdx=0x%x)\n", addr, cacheIdx);
ConLog( "* SPU2-X: PcmCache Block Clear at 0x%x (cacheIdx=0x%x)\n", addr, cacheIdx);
}
*GetMemPtr( addr ) = value;
}
@ -109,7 +109,7 @@ V_Core::~V_Core() throw()
void V_Core::Reset( int index )
{
ConLog( " * SPU2: RESET SPU2 core%d \n", index );
ConLog( "* SPU2-X: RESET SPU2 core%d \n", index );
memset( this, 0, sizeof(V_Core) );
const int c = Index = index;
@ -303,7 +303,7 @@ __forceinline void TimeUpdate(u32 cClocks)
{
if(has_to_call_irq)
{
ConLog(" * SPU2: Irq Called (%04x) at cycle %d.\n", Spdif.Info, Cycles);
ConLog("* SPU2-X: Irq Called (%04x) at cycle %d.\n", Spdif.Info, Cycles);
has_to_call_irq=false;
if(_irqcallback) _irqcallback();
}
@ -386,7 +386,7 @@ __forceinline void UpdateSpdifMode()
if(Spdif.Out&0x4) // use 24/32bit PCM data streaming
{
PlayMode=8;
ConLog(" * SPU2: WARNING: Possibly CDDA mode set!\n");
ConLog("* SPU2-X: WARNING: Possibly CDDA mode set!\n");
return;
}
@ -406,7 +406,7 @@ __forceinline void UpdateSpdifMode()
}
if(OPM!=PlayMode)
{
ConLog(" * SPU2: Play Mode Set to %s (%d).\n",
ConLog("* SPU2-X: Play Mode Set to %s (%d).\n",
(PlayMode==0) ? "Normal" : ((PlayMode==1) ? "PCM Clone" : ((PlayMode==2) ? "PCM Bypass" : "BitStream Bypass")),PlayMode);
}
}
@ -853,7 +853,7 @@ static void __fastcall RegWrite_Core( u16 value )
{
// When we have exact cycle update info from the Pcsx2 IOP unit, then use
// the more accurate delayed initialization system.
ConLog( " * SPU2: Runtime core%d reset\n", core );
ConLog( "* SPU2-X: Runtime core%d reset\n", core );
// Async mixing can cause a scheduled reset to happen untimely, ff12 hates it and dies.
// So do the next best thing and reset the core directly.
@ -887,16 +887,16 @@ static void __fastcall RegWrite_Core( u16 value )
if(value&0x000E)
{
ConLog(" * SPU2: Core %d ATTR unknown bits SET! value=%04x\n",core,value);
ConLog("* SPU2-X: Core %d ATTR unknown bits SET! value=%04x\n",core,value);
}
if(thiscore.AttrBit0!=bit0)
{
ConLog(" * SPU2: ATTR bit 0 set to %d\n",thiscore.AttrBit0);
ConLog("* SPU2-X: ATTR bit 0 set to %d\n",thiscore.AttrBit0);
}
if(thiscore.IRQEnable!=irqe)
{
ConLog(" * SPU2: IRQ %s at cycle %d\n",((thiscore.IRQEnable==0)?"disabled":"enabled"), Cycles);
ConLog("* SPU2-X: IRQ %s at cycle %d\n",((thiscore.IRQEnable==0)?"disabled":"enabled"), Cycles);
if(!thiscore.IRQEnable)
Spdif.Info &= ~(4 << thiscore.Index);
}
@ -1049,7 +1049,7 @@ static void __fastcall RegWrite_Core( u16 value )
break;
case REG_S_ADMAS:
//ConLog(" * SPU2: Core %d AutoDMAControl set to %d (%d)\n",core,value, Cycles);
//ConLog("* SPU2-X: Core %d AutoDMAControl set to %d (%d)\n",core,value, Cycles);
thiscore.AutoDMACtrl=value;
if(value==0)
@ -1452,7 +1452,7 @@ void StartVoices(int core, u32 value)
{
V_Voice& thisvc( Cores[core].Voices[vc] );
if(MsgKeyOnOff()) ConLog(" * SPU2: KeyOn: C%dV%02d: SSA: %8x; M: %s%s%s%s; H: %02x%02x; P: %04x V: %04x/%04x; ADSR: %04x%04x\n",
if(MsgKeyOnOff()) ConLog("* SPU2-X: KeyOn: C%dV%02d: SSA: %8x; M: %s%s%s%s; H: %02x%02x; P: %04x V: %04x/%04x; ADSR: %04x%04x\n",
core,vc,thisvc.StartA,
(Cores[core].VoiceGates[vc].DryL)?"+":"-",(Cores[core].VoiceGates[vc].DryR)?"+":"-",
(Cores[core].VoiceGates[vc].WetL)?"+":"-",(Cores[core].VoiceGates[vc].WetR)?"+":"-",
@ -1472,7 +1472,7 @@ void StopVoices(int core, u32 value)
if( !((value>>vc) & 1) ) continue;
Cores[core].Voices[vc].ADSR.Releasing = true;
//if(MsgKeyOnOff()) ConLog(" * SPU2: KeyOff: Core %d; Voice %d.\n",core,vc);
//if(MsgKeyOnOff()) ConLog("* SPU2-X: KeyOff: Core %d; Voice %d.\n",core,vc);
}
}