diff --git a/.gitignore b/.gitignore index 72a128650..77fdc2e0b 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,14 @@ *.sdf *.suo *.user + +# compiler-generated sources (MSVC, GCC) +*.asm +*.s + +# assembled linker objects (GCC) +*.o + Thumbs.db /Bin/Debug /Bin/Debug64 diff --git a/Artwork/publisherlogo.psd b/Artwork/publisherlogo.psd new file mode 100644 index 000000000..2eeaaed6f Binary files /dev/null and b/Artwork/publisherlogo.psd differ diff --git a/Lang/Chinese (Simplified).pj.Lang b/Lang/Chinese (Simplified).pj.Lang index 3ac06bd97..41a77dbcb 100644 --- a/Lang/Chinese (Simplified).pj.Lang +++ b/Lang/Chinese (Simplified).pj.Lang @@ -88,6 +88,7 @@ #198# "插槽 8" #199# "插槽 9" #200# "插槽 10" +#201# "插槽 (%ws) 被选" //Pop up Menu #210# "运行游戏" @@ -224,7 +225,7 @@ #452# " 选择材质包目录" //Options Dialog -#460# "当窗口处于非活动状态时暂停模拟器" +#460# "当模拟器窗口不是处于屏幕最上方,暂停模拟器" #461# "载入ROM后切换为全屏模式" #462# "隐藏高级设置" #463# "记住已选择的金手指" @@ -255,7 +256,7 @@ #503# "自我修改码方案:" #504# "默认存档容量:" #505# "高级模块连接" -#506# "当ROM加载后,开始模拟" +#506# "当读取完ROM后,开始模拟" #507# "总是从 RDB 中覆盖默认设置" #508# "自动压缩即时存档文件" #509# "开启调试器" diff --git a/Lang/English.pj.Lang b/Lang/English.pj.Lang index 07465641d..ea3a5e8ac 100644 --- a/Lang/English.pj.Lang +++ b/Lang/English.pj.Lang @@ -88,6 +88,7 @@ #198# "Slot 8" #199# "Slot 9" #200# "Slot 10" +#201# "Save Slot (%ws) selected" //Pop up Menu #210# "Play Game" diff --git a/Project64.sln b/Project64.sln index 3c73f1127..25ada1938 100644 Binary files a/Project64.sln and b/Project64.sln differ diff --git a/PropertySheets/Platform.props b/PropertySheets/Platform.props index add82bd1a..8e043f9db 100644 --- a/PropertySheets/Platform.props +++ b/PropertySheets/Platform.props @@ -2,7 +2,7 @@ - v140_xp + $(DefaultPlatformToolset)_xp diff --git a/Source/Common/File Class.cpp b/Source/Common/File Class.cpp index 48acd893a..cc73de345 100644 --- a/Source/Common/File Class.cpp +++ b/Source/Common/File Class.cpp @@ -79,16 +79,11 @@ bool CFile::Open(const char * lpszFileName, uint32_t nOpenFlags) sa.bInheritHandle = (nOpenFlags & modeNoInherit) == 0; // map creation flags - ULONG dwCreateFlag = 0; + ULONG dwCreateFlag = OPEN_EXISTING; if (nOpenFlags & modeCreate) { - if (nOpenFlags & modeNoTruncate) - dwCreateFlag = OPEN_ALWAYS; - else - dwCreateFlag = CREATE_ALWAYS; + dwCreateFlag = ((nOpenFlags & modeNoTruncate) != 0) ? OPEN_ALWAYS : CREATE_ALWAYS; } - else - dwCreateFlag = OPEN_EXISTING; // attempt file creation HANDLE hFile = ::CreateFile(lpszFileName, dwAccess, dwShareMode, &sa, dwCreateFlag, FILE_ATTRIBUTE_NORMAL, NULL); @@ -140,19 +135,15 @@ bool CFile::Flush() return ::FlushFileBuffers(m_hFile) != 0; } -bool CFile::Write(const void* lpBuf, size_t nCount) +bool CFile::Write(const void* lpBuf, uint32_t nCount) { if (nCount == 0) { return true; // avoid Win32 "null-write" option } - if (nCount > ULONG_MAX) - { - nCount = ULONG_MAX; /* Or should we loop WriteFile() every 2 GB? */ - } - DWORD nWritten = 0; - if (!::WriteFile(m_hFile, lpBuf, (DWORD)nCount, &nWritten, NULL)) + ULONG nWritten = 0; + if (!::WriteFile(m_hFile, lpBuf, nCount, &nWritten, NULL)) { return false; } @@ -165,23 +156,19 @@ bool CFile::Write(const void* lpBuf, size_t nCount) return true; } -size_t CFile::Read(void* lpBuf, size_t nCount) +uint32_t CFile::Read(void* lpBuf, uint32_t nCount) { if (nCount == 0) { return 0; // avoid Win32 "null-read" } - if (nCount > ULONG_MAX) - { - nCount = ULONG_MAX; /* Or should we loop ReadFile() every 2 GB? */ - } DWORD dwRead = 0; - if (!::ReadFile(m_hFile, lpBuf, (DWORD)nCount, &dwRead, NULL)) + if (!::ReadFile(m_hFile, lpBuf, nCount, &dwRead, NULL)) { return 0; } - return (dwRead); + return (uint32_t)dwRead; } long CFile::Seek(long lOff, SeekPosition nFrom) diff --git a/Source/Common/File Class.h b/Source/Common/File Class.h index c61730450..fc734f633 100644 --- a/Source/Common/File Class.h +++ b/Source/Common/File Class.h @@ -40,8 +40,8 @@ public: virtual bool SetLength(uint32_t dwNewLen) = 0; virtual uint32_t GetLength() const = 0; - virtual size_t Read(void* lpBuf, size_t nCount) = 0; - virtual bool Write(const void* lpBuf, size_t nCount) = 0; + virtual uint32_t Read(void* lpBuf, uint32_t nCount) = 0; + virtual bool Write(const void* lpBuf, uint32_t nCount) = 0; virtual bool Flush() = 0; virtual bool Close() = 0; @@ -78,8 +78,8 @@ public: virtual bool SetLength(uint32_t dwNewLen); virtual uint32_t GetLength() const; - virtual size_t Read(void* lpBuf, size_t nCount); - virtual bool Write(const void* lpBuf, size_t nCount); + virtual uint32_t Read(void* lpBuf, uint32_t nCount); + virtual bool Write(const void* lpBuf, uint32_t nCount); virtual bool Flush(); virtual bool Close(); diff --git a/Source/Common/Log Class.cpp b/Source/Common/Log Class.cpp index a0a9560fd..95f001dba 100644 --- a/Source/Common/Log Class.cpp +++ b/Source/Common/Log Class.cpp @@ -120,7 +120,7 @@ void CLog::LogArgs(const char * Message, va_list & args ) void CLog::Log( const char * Message ) { if (!m_hLogFile.IsOpen()) { return; } - m_hLogFile.Write(Message, strlen(Message)*sizeof(TCHAR)); + m_hLogFile.Write(Message,(uint32_t)strlen(Message)*sizeof(TCHAR)); if (m_FlushOnWrite) { m_hLogFile.Flush(); @@ -145,13 +145,13 @@ void CLog::Log( const char * Message ) m_hLogFile.Seek((end - m_MaxFileSize) + m_FileChangeSize,CFile::begin); // Find next end of line - size_t NextEnter = 0, dwRead = 0; + uint32_t NextEnter = 0, dwRead = 0; do { BYTE Data[300]; - size_t dwRead; + uint32_t dwRead; - dwRead = m_hLogFile.Read(Data, sizeof(Data)); + dwRead = m_hLogFile.Read(Data,sizeof(Data)); if (dwRead == 0) { break; @@ -170,9 +170,8 @@ void CLog::Log( const char * Message ) } while(dwRead != 0); // copy content of log to the new file - size_t ReadPos = (end - m_MaxFileSize) + m_FileChangeSize + NextEnter; - uint32_t WritePos = 0; - size_t SizeToRead; + uint32_t ReadPos = (end - m_MaxFileSize) + m_FileChangeSize + NextEnter; + uint32_t SizeToRead, WritePos = 0; do { enum { fIS_MvSize = 0x5000 }; @@ -183,8 +182,8 @@ void CLog::Log( const char * Message ) m_hLogFile.Seek(ReadPos,CFile::begin); - size_t dwRead; - dwRead = m_hLogFile.Read(Data, SizeToRead); + uint32_t dwRead; + dwRead = m_hLogFile.Read(Data,SizeToRead); m_hLogFile.Seek(WritePos,CFile::begin); diff --git a/Source/Common/Log Class.h b/Source/Common/Log Class.h index 1b155da5d..69d322cb1 100644 --- a/Source/Common/Log Class.h +++ b/Source/Common/Log Class.h @@ -15,8 +15,8 @@ class CLog bool m_FlushOnWrite; stdstr m_FileName; bool m_TruncateFileLog; - size_t m_MaxFileSize; - size_t m_FileChangeSize; + uint32_t m_MaxFileSize; + uint32_t m_FileChangeSize; public: CLog ( void ); @@ -29,10 +29,10 @@ public: bool Empty ( void ); void Close ( void ); - inline void SetMaxFileSize(size_t Size) - { - m_MaxFileSize = Size; - m_FileChangeSize = (size_t)(Size * 0.1); + inline void SetMaxFileSize ( uint32_t Size ) + { + m_MaxFileSize = Size; + m_FileChangeSize = (uint32_t)(Size * 0.1); } inline void SetTruncateFile( bool Truncate ) { m_TruncateFileLog = Truncate; } inline void SetFlush ( bool Always ) { m_FlushOnWrite = Always; } diff --git a/Source/Common/std string.h b/Source/Common/std string.h index 8b61aa99b..c7ebd007e 100644 --- a/Source/Common/std string.h +++ b/Source/Common/std string.h @@ -51,5 +51,22 @@ public: } }; +class stdwstr_f : public std::wstring +{ +public: + stdwstr_f(const wchar_t * strFormat, ...) + { + va_list args; + va_start(args, strFormat); + + wchar_t Msg[1000]; + _vsnwprintf(Msg, sizeof(Msg) - 1, strFormat, args); + + va_end(args); + + this->assign(Msg); + } +}; + typedef std::list strlist; typedef strlist::iterator strlist_iter; diff --git a/Source/Installer/Installer.iss b/Source/Installer/Installer.iss index b212f81fa..64e5d21df 100644 --- a/Source/Installer/Installer.iss +++ b/Source/Installer/Installer.iss @@ -5,7 +5,7 @@ [Setup] AppId={{BEB5FB69-4080-466F-96C4-F15DF271718B} -AppName=Project 64 +AppName=Project64 AppVersion={#AppVersion} DefaultDirName={pf}\Project64 2.2 VersionInfoVersion={#AppVersion} @@ -21,7 +21,7 @@ UninstallDisplayIcon={uninstallexe} SetupIconFile={#BaseDir}\Source\Project64\User Interface\Icons\pj64.ico [Run] -Filename: "{app}\Project64.exe"; Description: "{cm:LaunchProgram,{#StringChange('Project 64', '&', '&&')}}"; Flags: nowait postinstall skipifsilent +Filename: "{app}\Project64.exe"; Description: "{cm:LaunchProgram,{#StringChange('Project64', '&', '&&')}}"; Flags: nowait postinstall skipifsilent [Files] Source: "{#BaseDir}\Bin\{#Configuration}\Project64.exe"; DestDir: "{app}"; Flags: ignoreversion @@ -44,9 +44,9 @@ Name: "{app}\Screenshots"; Permissions: users-modify Name: "{app}\Textures"; Permissions: users-modify [Icons] -Name: "{commonprograms}\Project 64 2.2\Project 64"; Filename: "{app}\Project64.exe" -Name: "{commonprograms}\Project 64 2.2\Uninstall Project64 2.2"; Filename: "{uninstallexe}"; Parameters: "/LOG" -Name: "{commonprograms}\Project 64 2.2\Support"; Filename: "http://forum.pj64-emu.com" +Name: "{commonprograms}\Project64 2.2\Project64"; Filename: "{app}\Project64.exe" +Name: "{commonprograms}\Project64 2.2\Uninstall Project64 2.2"; Filename: "{uninstallexe}"; Parameters: "/LOG" +Name: "{commonprograms}\Project64 2.2\Support"; Filename: "http://forum.pj64-emu.com" [Code] function HaveCommandlineParam (inParam: String): Boolean; diff --git a/Source/Project64/AppInit.cpp b/Source/Project64/AppInit.cpp new file mode 100644 index 000000000..9937de1c9 --- /dev/null +++ b/Source/Project64/AppInit.cpp @@ -0,0 +1,139 @@ +#include "stdafx.h" +#include + +void FixDirectories(void); +void FixLocale(void); + +static void IncreaseThreadPriority(void); + +static CTraceFileLog * g_LogFile = NULL; + +void LogLevelChanged(CTraceFileLog * LogFile) +{ + LogFile->SetTraceLevel((TraceLevel)g_Settings->LoadDword(Debugger_AppLogLevel)); +} + +void LogFlushChanged(CTraceFileLog * LogFile) +{ + LogFile->SetFlushFile(g_Settings->LoadDword(Debugger_AppLogFlush) != 0); +} + +void InitializeLog(void) +{ + CPath LogFilePath(CPath::MODULE_DIRECTORY); + LogFilePath.AppendDirectory("Logs"); + if (!LogFilePath.DirectoryExists()) + { + LogFilePath.DirectoryCreate(); + } + LogFilePath.SetNameExtension("Project64.log"); + + g_LogFile = new CTraceFileLog(LogFilePath, g_Settings->LoadDword(Debugger_AppLogFlush) != 0, Log_New, 500); +#ifdef VALIDATE_DEBUG + g_LogFile->SetTraceLevel((TraceLevel)(g_Settings->LoadDword(Debugger_AppLogLevel) | TraceValidate | TraceDebug)); +#else + g_LogFile->SetTraceLevel((TraceLevel)g_Settings->LoadDword(Debugger_AppLogLevel)); +#endif + AddTraceModule(g_LogFile); + + g_Settings->RegisterChangeCB(Debugger_AppLogLevel, g_LogFile, (CSettings::SettingChangedFunc)LogLevelChanged); + g_Settings->RegisterChangeCB(Debugger_AppLogFlush, g_LogFile, (CSettings::SettingChangedFunc)LogFlushChanged); +} + +void AppInit(CNotification * Notify) +{ + try + { + g_Notify = Notify; + + FixDirectories(); + FixLocale(); + + stdstr_f AppName("Project64 %s", VER_FILE_VERSION_STR); + IncreaseThreadPriority(); + + g_Settings = new CSettings; + g_Settings->Initialize(AppName.c_str()); + + if (g_Settings->LoadBool(Setting_CheckEmuRunning) && + pjutil::TerminatedExistingExe()) + { + delete g_Settings; + g_Settings = new CSettings; + g_Settings->Initialize(AppName.c_str()); + } + + InitializeLog(); + + WriteTrace(TraceDebug, __FUNCTION__ ": Application Starting"); + CMipsMemoryVM::ReserveMemory(); + + //Create the plugin container + WriteTrace(TraceDebug, __FUNCTION__ ": Create Plugins"); + g_Plugins = new CPlugins(g_Settings->LoadStringVal(Directory_Plugin)); + + g_Lang = new CLanguage(); + g_Lang->LoadCurrentStrings(); + g_Notify->AppInitDone(); + } + catch (...) + { + g_Notify->DisplayError(stdstr_f("Exception caught\nFile: %s\nLine: %d", __FILE__, __LINE__).ToUTF16().c_str()); + } +} + +void AppCleanup(void) +{ + g_Settings->UnregisterChangeCB(Debugger_AppLogLevel, g_LogFile, (CSettings::SettingChangedFunc)LogLevelChanged); + g_Settings->UnregisterChangeCB(Debugger_AppLogFlush, g_LogFile, (CSettings::SettingChangedFunc)LogFlushChanged); + WriteTrace(TraceDebug, __FUNCTION__ ": cleaning up global objects"); + + if (g_Rom) { delete g_Rom; g_Rom = NULL; } + if (g_Plugins) { delete g_Plugins; g_Plugins = NULL; } + if (g_Settings) { delete g_Settings; g_Settings = NULL; } + if (g_Lang) { delete g_Lang; g_Lang = NULL; } + + CMipsMemoryVM::FreeReservedMemory(); + + WriteTrace(TraceDebug, __FUNCTION__ ": Done"); + CloseTrace(); +} + +void FixDirectories(void) +{ + CPath Directory(CPath::MODULE_DIRECTORY); + Directory.AppendDirectory("Config"); + if (!Directory.DirectoryExists()) Directory.DirectoryCreate(); + + Directory.UpDirectory(); + Directory.AppendDirectory("Logs"); + if (!Directory.DirectoryExists()) Directory.DirectoryCreate(); + + Directory.UpDirectory(); + Directory.AppendDirectory("Save"); + if (!Directory.DirectoryExists()) Directory.DirectoryCreate(); + + Directory.UpDirectory(); + Directory.AppendDirectory("Screenshots"); + if (!Directory.DirectoryExists()) Directory.DirectoryCreate(); + + Directory.UpDirectory(); + Directory.AppendDirectory("textures"); + if (!Directory.DirectoryExists()) Directory.DirectoryCreate(); +} + +#include +void FixLocale(void) +{ + char *lbuffer = new char[10]; + if (GetLocaleInfoA(LOCALE_SYSTEM_DEFAULT, LOCALE_SABBREVLANGNAME, lbuffer, 10)) + { + setlocale(LC_ALL, lbuffer); + } + delete[] lbuffer; +} + +void IncreaseThreadPriority(void) +{ + SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_ABOVE_NORMAL); +} \ No newline at end of file diff --git a/Source/Project64/AppInit.h b/Source/Project64/AppInit.h new file mode 100644 index 000000000..6c62a2395 --- /dev/null +++ b/Source/Project64/AppInit.h @@ -0,0 +1,6 @@ +#pragma once + +#include + +void AppInit(CNotification * Notify); +void AppCleanup(void); diff --git a/Source/Project64/Debugger.h b/Source/Project64/Debugger.h index 7b9637ef9..e80f8e1b6 100644 --- a/Source/Project64/Debugger.h +++ b/Source/Project64/Debugger.h @@ -1 +1,16 @@ -#pragma once \ No newline at end of file +/**************************************************************************** +* * +* Project 64 - A Nintendo 64 emulator. * +* http://www.pj64-emu.com/ * +* Copyright (C) 2012 Project64. All rights reserved. * +* * +* License: * +* GNU/GPLv2 http://www.gnu.org/licenses/gpl-2.0.html * +* * +****************************************************************************/ +#pragma once + +__interface CDebugger +{ + virtual void TLBChanged(void) = 0; +}; diff --git a/Source/Project64/Logging.cpp b/Source/Project64/Logging.cpp deleted file mode 100644 index 5f22e34ee..000000000 --- a/Source/Project64/Logging.cpp +++ /dev/null @@ -1,919 +0,0 @@ -/**************************************************************************** -* * -* Project 64 - A Nintendo 64 emulator. * -* http://www.pj64-emu.com/ * -* Copyright (C) 2012 Project64. All rights reserved. * -* * -* License: * -* GNU/GPLv2 http://www.gnu.org/licenses/gpl-2.0.html * -* * -****************************************************************************/ -#include "stdafx.h" - -#include - -void LoadLogSetting (HKEY hKey,char * String, bool * Value); -void SaveLogOptions (void); - -LRESULT CALLBACK LogGeneralProc ( HWND, UINT, WPARAM, LPARAM ); -LRESULT CALLBACK LogPifProc ( HWND, UINT, WPARAM, LPARAM ); -LRESULT CALLBACK LogRegProc ( HWND, UINT, WPARAM, LPARAM ); - -static HANDLE g_hLogFile = NULL; -LOG_OPTIONS g_LogOptions, TempOptions; - -void EnterLogOptions(HWND hwndOwner) -{ - PROPSHEETPAGE psp[3]; - PROPSHEETHEADER psh; - - psp[0].dwSize = sizeof(PROPSHEETPAGE); - psp[0].dwFlags = PSP_USETITLE; - psp[0].hInstance = GetModuleHandle(NULL); - psp[0].pszTemplate = MAKEINTRESOURCE(IDD_Logging_Registers); - psp[0].pfnDlgProc = (DLGPROC)LogRegProc; - psp[0].pszTitle = "Registers"; - psp[0].lParam = 0; - psp[0].pfnCallback = NULL; - - psp[1].dwSize = sizeof(PROPSHEETPAGE); - psp[1].dwFlags = PSP_USETITLE; - psp[1].hInstance = GetModuleHandle(NULL); - psp[1].pszTemplate = MAKEINTRESOURCE(IDD_Logging_PifRam); - psp[1].pfnDlgProc = (DLGPROC)LogPifProc; - psp[1].pszTitle = "Pif Ram"; - psp[1].lParam = 0; - psp[1].pfnCallback = NULL; - - psp[2].dwSize = sizeof(PROPSHEETPAGE); - psp[2].dwFlags = PSP_USETITLE; - psp[2].hInstance = GetModuleHandle(NULL); - psp[2].pszTemplate = MAKEINTRESOURCE(IDD_Logging_General); - psp[2].pfnDlgProc = (DLGPROC)LogGeneralProc; - psp[2].pszTitle = "General"; - psp[2].lParam = 0; - psp[2].pfnCallback = NULL; - - psh.dwSize = sizeof(PROPSHEETHEADER); - psh.dwFlags = PSH_PROPSHEETPAGE | PSH_NOAPPLYNOW; - psh.hwndParent = hwndOwner; - psh.hInstance = GetModuleHandle(NULL); - psh.pszCaption = (LPSTR) "Log Options"; - psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE); - psh.nStartPage = 0; - psh.ppsp = (LPCPROPSHEETPAGE) &psp; - psh.pfnCallback = NULL; - - LoadLogOptions(&TempOptions,TRUE); -#if defined(WINDOWS_UI) - PropertySheet(&psh); -#else - g_Notify -> BreakPoint(__FILEW__, __LINE__); -#endif - SaveLogOptions(); - LoadLogOptions(&g_LogOptions, FALSE); - return; -} - -void LoadLogOptions (LOG_OPTIONS * LogOptions, bool AlwaysFill) -{ - int32_t lResult; - HKEY hKeyResults = 0; - char String[200]; - - sprintf(String,"Software\\N64 Emulation\\%s\\Logging",g_Settings->LoadStringVal(Setting_ApplicationName).c_str()); - lResult = RegOpenKeyEx( HKEY_CURRENT_USER,String,0,KEY_ALL_ACCESS, - &hKeyResults); - - if (lResult == ERROR_SUCCESS) - { - //LoadLogSetting(hKeyResults,"Generate Log File",&LogOptions->GenerateLog); - if (LogOptions->GenerateLog || AlwaysFill) - { - LoadLogSetting(hKeyResults,"Log RDRAM",&LogOptions->LogRDRamRegisters); - LoadLogSetting(hKeyResults,"Log SP",&LogOptions->LogSPRegisters); - LoadLogSetting(hKeyResults,"Log DP Command",&LogOptions->LogDPCRegisters); - LoadLogSetting(hKeyResults,"Log DP Span",&LogOptions->LogDPSRegisters); - LoadLogSetting(hKeyResults,"Log MIPS Interface (MI)",&LogOptions->LogMIPSInterface); - LoadLogSetting(hKeyResults,"Log Video Interface (VI)",&LogOptions->LogVideoInterface); - LoadLogSetting(hKeyResults,"Log Audio Interface (AI)",&LogOptions->LogAudioInterface); - LoadLogSetting(hKeyResults,"Log Peripheral Interface (PI)",&LogOptions->LogPerInterface); - LoadLogSetting(hKeyResults,"Log RDRAM Interface (RI)",&LogOptions->LogRDRAMInterface); - LoadLogSetting(hKeyResults,"Log Serial Interface (SI)",&LogOptions->LogSerialInterface); - LoadLogSetting(hKeyResults,"Log PifRam DMA Operations",&LogOptions->LogPRDMAOperations); - LoadLogSetting(hKeyResults,"Log PifRam Direct Memory Loads",&LogOptions->LogPRDirectMemLoads); - LoadLogSetting(hKeyResults,"Log PifRam DMA Memory Loads",&LogOptions->LogPRDMAMemLoads); - LoadLogSetting(hKeyResults,"Log PifRam Direct Memory Stores",&LogOptions->LogPRDirectMemStores); - LoadLogSetting(hKeyResults,"Log PifRam DMA Memory Stores",&LogOptions->LogPRDMAMemStores); - LoadLogSetting(hKeyResults,"Log Controller Pak",&LogOptions->LogControllerPak); - LoadLogSetting(hKeyResults,"Log CP0 changes",&LogOptions->LogCP0changes); - LoadLogSetting(hKeyResults,"Log CP0 reads",&LogOptions->LogCP0reads); - LoadLogSetting(hKeyResults,"Log Exceptions",&LogOptions->LogExceptions); - LoadLogSetting(hKeyResults,"No Interrupts",&LogOptions->NoInterrupts); - LoadLogSetting(hKeyResults,"Log TLB",&LogOptions->LogTLB); - LoadLogSetting(hKeyResults,"Log Cache Operations",&LogOptions->LogCache); - LoadLogSetting(hKeyResults,"Log Rom Header",&LogOptions->LogRomHeader); - LoadLogSetting(hKeyResults,"Log Unknown access",&LogOptions->LogUnknown); - return; - } - } - - LogOptions->GenerateLog = FALSE; - LogOptions->LogRDRamRegisters = FALSE; - LogOptions->LogSPRegisters = FALSE; - LogOptions->LogDPCRegisters = FALSE; - LogOptions->LogDPSRegisters = FALSE; - LogOptions->LogMIPSInterface = FALSE; - LogOptions->LogVideoInterface = FALSE; - LogOptions->LogAudioInterface = FALSE; - LogOptions->LogPerInterface = FALSE; - LogOptions->LogRDRAMInterface = FALSE; - LogOptions->LogSerialInterface = FALSE; - - LogOptions->LogPRDMAOperations = FALSE; - LogOptions->LogPRDirectMemLoads = FALSE; - LogOptions->LogPRDMAMemLoads = FALSE; - LogOptions->LogPRDirectMemStores = FALSE; - LogOptions->LogPRDMAMemStores = FALSE; - LogOptions->LogControllerPak = FALSE; - - LogOptions->LogCP0changes = FALSE; - LogOptions->LogCP0reads = FALSE; - LogOptions->LogCache = FALSE; - LogOptions->LogExceptions = FALSE; - LogOptions->NoInterrupts = FALSE; - LogOptions->LogTLB = FALSE; - LogOptions->LogRomHeader = FALSE; - LogOptions->LogUnknown = FALSE; -} - -void LoadLogSetting (HKEY hKey,char * String, bool * Value) -{ - DWORD Type, dwResult, Bytes = 4; - int32_t lResult; - - lResult = RegQueryValueEx(hKey,String,0,&Type,(LPBYTE)(&dwResult),&Bytes); - if (Type == REG_DWORD && lResult == ERROR_SUCCESS) - { - *Value = dwResult != 0; - } - else - { - *Value = FALSE; - } -} - -LRESULT CALLBACK LogGeneralProc (HWND hDlg, UINT uMsg, WPARAM /*wParam*/, LPARAM lParam) -{ - switch (uMsg) - { - case WM_INITDIALOG: - if (TempOptions.LogCP0changes) { CheckDlgButton(hDlg,IDC_CP0_WRITE,BST_CHECKED); } - if (TempOptions.LogCP0reads) { CheckDlgButton(hDlg,IDC_CP0_READ,BST_CHECKED); } - if (TempOptions.LogCache) { CheckDlgButton(hDlg,IDC_CACHE,BST_CHECKED); } - if (TempOptions.LogExceptions) { CheckDlgButton(hDlg,IDC_EXCEPTIONS,BST_CHECKED); } - if (TempOptions.NoInterrupts) { CheckDlgButton(hDlg,IDC_INTERRUPTS,BST_CHECKED); } - if (TempOptions.LogTLB) { CheckDlgButton(hDlg,IDC_TLB,BST_CHECKED); } - if (TempOptions.LogRomHeader) { CheckDlgButton(hDlg,IDC_ROM_HEADER,BST_CHECKED); } - if (TempOptions.LogUnknown) { CheckDlgButton(hDlg,IDC_UNKOWN,BST_CHECKED); } - break; - case WM_NOTIFY: - if (((NMHDR FAR *) lParam)->code != PSN_APPLY) { break; } - TempOptions.LogCP0changes = IsDlgButtonChecked(hDlg,IDC_CP0_WRITE) == BST_CHECKED?TRUE:FALSE; - TempOptions.LogCP0reads = IsDlgButtonChecked(hDlg,IDC_CP0_READ) == BST_CHECKED?TRUE:FALSE; - TempOptions.LogCache = IsDlgButtonChecked(hDlg,IDC_CACHE) == BST_CHECKED?TRUE:FALSE; - TempOptions.LogExceptions = IsDlgButtonChecked(hDlg,IDC_EXCEPTIONS) == BST_CHECKED?TRUE:FALSE; - TempOptions.NoInterrupts = IsDlgButtonChecked(hDlg,IDC_INTERRUPTS) == BST_CHECKED?TRUE:FALSE; - TempOptions.LogTLB = IsDlgButtonChecked(hDlg,IDC_TLB) == BST_CHECKED?TRUE:FALSE; - TempOptions.LogRomHeader = IsDlgButtonChecked(hDlg,IDC_ROM_HEADER) == BST_CHECKED?TRUE:FALSE; - TempOptions.LogUnknown = IsDlgButtonChecked(hDlg,IDC_UNKOWN) == BST_CHECKED?TRUE:FALSE; - break; - default: - return FALSE; - } - return TRUE; -} - -void Log_LW (uint32_t PC, uint32_t VAddr) -{ - if (!g_LogOptions.GenerateLog) - { - return; - } - - if ( VAddr < 0xA0000000 || VAddr >= 0xC0000000 ) - { - uint32_t PAddr; - if (!g_TransVaddr->TranslateVaddr(VAddr,PAddr)) - { - if (g_LogOptions.LogUnknown) - { - LogMessage("%08X: read from unknown ??? (%08X)",PC,VAddr); - } - return; - } - VAddr = PAddr + 0xA0000000; - } - - uint32_t Value; - if ( VAddr >= 0xA0000000 && VAddr < (0xA0000000 + g_MMU->RdramSize())) - { - return; - } - if ( VAddr >= 0xA3F00000 && VAddr <= 0xA3F00024) - { - if (!g_LogOptions.LogRDRamRegisters) - { - return; - } - g_MMU->LW_VAddr(VAddr,Value); - - switch (VAddr) - { - case 0xA3F00000: LogMessage("%08X: read from RDRAM_CONFIG_REG/RDRAM_DEVICE_TYPE_REG (%08X)",PC, Value); return; - case 0xA3F00004: LogMessage("%08X: read from RDRAM_DEVICE_ID_REG (%08X)",PC, Value); return; - case 0xA3F00008: LogMessage("%08X: read from RDRAM_DELAY_REG (%08X)",PC, Value); return; - case 0xA3F0000C: LogMessage("%08X: read from RDRAM_MODE_REG (%08X)",PC, Value); return; - case 0xA3F00010: LogMessage("%08X: read from RDRAM_REF_INTERVAL_REG (%08X)",PC, Value); return; - case 0xA3F00014: LogMessage("%08X: read from RDRAM_REF_ROW_REG (%08X)",PC, Value); return; - case 0xA3F00018: LogMessage("%08X: read from RDRAM_RAS_INTERVAL_REG (%08X)",PC, Value); return; - case 0xA3F0001C: LogMessage("%08X: read from RDRAM_MIN_INTERVAL_REG (%08X)",PC, Value); return; - case 0xA3F00020: LogMessage("%08X: read from RDRAM_ADDR_SELECT_REG (%08X)",PC, Value); return; - case 0xA3F00024: LogMessage("%08X: read from RDRAM_DEVICE_MANUF_REG (%08X)",PC, Value); return; - } - } - - if ( VAddr >= 0xA4000000 && VAddr <= 0xA4001FFC ) - { - return; - } - if ( VAddr >= 0xA4040000 && VAddr <= 0xA404001C ) - { - if (!g_LogOptions.LogSPRegisters) - { - return; - } - g_MMU->LW_VAddr(VAddr,Value); - - switch (VAddr) - { - case 0xA4040000: LogMessage("%08X: read from SP_MEM_ADDR_REG (%08X)",PC, Value); break; - case 0xA4040004: LogMessage("%08X: read from SP_DRAM_ADDR_REG (%08X)",PC, Value); break; - case 0xA4040008: LogMessage("%08X: read from SP_RD_LEN_REG (%08X)",PC, Value); break; - case 0xA404000C: LogMessage("%08X: read from SP_WR_LEN_REG (%08X)",PC, Value); break; - case 0xA4040010: LogMessage("%08X: read from SP_STATUS_REG (%08X)",PC, Value); break; - case 0xA4040014: LogMessage("%08X: read from SP_DMA_FULL_REG (%08X)",PC, Value); break; - case 0xA4040018: LogMessage("%08X: read from SP_DMA_BUSY_REG (%08X)",PC, Value); break; - case 0xA404001C: LogMessage("%08X: read from SP_SEMAPHORE_REG (%08X)",PC, Value); break; - } - return; - } - if ( VAddr == 0xA4080000) - { - if (!g_LogOptions.LogSPRegisters) - { - return; - } - g_MMU->LW_VAddr(VAddr,Value); - LogMessage("%08X: read from SP_PC (%08X)",PC, Value); - return; - } - if (VAddr >= 0xA4100000 && VAddr <= 0xA410001C) - { - if (!g_LogOptions.LogDPCRegisters) - { - return; - } - g_MMU->LW_VAddr(VAddr,Value); - - switch (VAddr) - { - case 0xA4100000: LogMessage("%08X: read from DPC_START_REG (%08X)",PC, Value); return; - case 0xA4100004: LogMessage("%08X: read from DPC_END_REG (%08X)",PC, Value); return; - case 0xA4100008: LogMessage("%08X: read from DPC_CURRENT_REG (%08X)",PC, Value); return; - case 0xA410000C: LogMessage("%08X: read from DPC_STATUS_REG (%08X)",PC, Value); return; - case 0xA4100010: LogMessage("%08X: read from DPC_CLOCK_REG (%08X)",PC, Value); return; - case 0xA4100014: LogMessage("%08X: read from DPC_BUFBUSY_REG (%08X)",PC, Value); return; - case 0xA4100018: LogMessage("%08X: read from DPC_PIPEBUSY_REG (%08X)",PC, Value); return; - case 0xA410001C: LogMessage("%08X: read from DPC_TMEM_REG (%08X)",PC, Value); return; - } - } - if (VAddr >= 0xA4300000 && VAddr <= 0xA430000C) - { - if (!g_LogOptions.LogMIPSInterface) - { - return; - } - g_MMU->LW_VAddr(VAddr,Value); - - switch (VAddr) - { - case 0xA4300000: LogMessage("%08X: read from MI_INIT_MODE_REG/MI_MODE_REG (%08X)",PC, Value); return; - case 0xA4300004: LogMessage("%08X: read from MI_VERSION_REG/MI_NOOP_REG (%08X)",PC, Value); return; - case 0xA4300008: LogMessage("%08X: read from MI_INTR_REG (%08X)",PC, Value); return; - case 0xA430000C: LogMessage("%08X: read from MI_INTR_MASK_REG (%08X)",PC, Value); return; - } - } - if (VAddr >= 0xA4400000 && VAddr <= 0xA4400034) - { - if (!g_LogOptions.LogVideoInterface) - { - return; - } - g_MMU->LW_VAddr(VAddr,Value); - - switch (VAddr) - { - case 0xA4400000: LogMessage("%08X: read from VI_STATUS_REG/VI_CONTROL_REG (%08X)",PC, Value); return; - case 0xA4400004: LogMessage("%08X: read from VI_ORIGIN_REG/VI_DRAM_ADDR_REG (%08X)",PC, Value); return; - case 0xA4400008: LogMessage("%08X: read from VI_WIDTH_REG/VI_H_WIDTH_REG (%08X)",PC, Value); return; - case 0xA440000C: LogMessage("%08X: read from VI_INTR_REG/VI_V_INTR_REG (%08X)",PC, Value); return; - case 0xA4400010: LogMessage("%08X: read from VI_CURRENT_REG/VI_V_CURRENT_LINE_REG (%08X)",PC, Value); return; - case 0xA4400014: LogMessage("%08X: read from VI_BURST_REG/VI_TIMING_REG (%08X)",PC, Value); return; - case 0xA4400018: LogMessage("%08X: read from VI_V_SYNC_REG (%08X)",PC, Value); return; - case 0xA440001C: LogMessage("%08X: read from VI_H_SYNC_REG (%08X)",PC, Value); return; - case 0xA4400020: LogMessage("%08X: read from VI_LEAP_REG/VI_H_SYNC_LEAP_REG (%08X)",PC, Value); return; - case 0xA4400024: LogMessage("%08X: read from VI_H_START_REG/VI_H_VIDEO_REG (%08X)",PC, Value); return; - case 0xA4400028: LogMessage("%08X: read from VI_V_START_REG/VI_V_VIDEO_REG (%08X)",PC, Value); return; - case 0xA440002C: LogMessage("%08X: read from VI_V_BURST_REG (%08X)",PC, Value); return; - case 0xA4400030: LogMessage("%08X: read from VI_X_SCALE_REG (%08X)",PC, Value); return; - case 0xA4400034: LogMessage("%08X: read from VI_Y_SCALE_REG (%08X)",PC, Value); return; - } - } - if (VAddr >= 0xA4500000 && VAddr <= 0xA4500014) - { - if (!g_LogOptions.LogAudioInterface) - { - return; - } - g_MMU->LW_VAddr(VAddr,Value); - - switch (VAddr) - { - case 0xA4500000: LogMessage("%08X: read from AI_DRAM_ADDR_REG (%08X)",PC, Value); return; - case 0xA4500004: LogMessage("%08X: read from AI_LEN_REG (%08X)",PC, Value); return; - case 0xA4500008: LogMessage("%08X: read from AI_CONTROL_REG (%08X)",PC, Value); return; - case 0xA450000C: LogMessage("%08X: read from AI_STATUS_REG (%08X)",PC, Value); return; - case 0xA4500010: LogMessage("%08X: read from AI_DACRATE_REG (%08X)",PC, Value); return; - case 0xA4500014: LogMessage("%08X: read from AI_BITRATE_REG (%08X)",PC, Value); return; - } - } - if (VAddr >= 0xA4600000 && VAddr <= 0xA4600030) - { - if (!g_LogOptions.LogPerInterface) - { - return; - } - g_MMU->LW_VAddr(VAddr,Value); - - switch (VAddr) - { - case 0xA4600000: LogMessage("%08X: read from PI_DRAM_ADDR_REG (%08X)",PC, Value); return; - case 0xA4600004: LogMessage("%08X: read from PI_CART_ADDR_REG (%08X)",PC, Value); return; - case 0xA4600008: LogMessage("%08X: read from PI_RD_LEN_REG (%08X)",PC, Value); return; - case 0xA460000C: LogMessage("%08X: read from PI_WR_LEN_REG (%08X)",PC, Value); return; - case 0xA4600010: LogMessage("%08X: read from PI_STATUS_REG (%08X)",PC, Value); return; - case 0xA4600014: LogMessage("%08X: read from PI_BSD_DOM1_LAT_REG/PI_DOMAIN1_REG (%08X)",PC, Value); return; - case 0xA4600018: LogMessage("%08X: read from PI_BSD_DOM1_PWD_REG (%08X)",PC, Value); return; - case 0xA460001C: LogMessage("%08X: read from PI_BSD_DOM1_PGS_REG (%08X)",PC, Value); return; - case 0xA4600020: LogMessage("%08X: read from PI_BSD_DOM1_RLS_REG (%08X)",PC, Value); return; - case 0xA4600024: LogMessage("%08X: read from PI_BSD_DOM2_LAT_REG/PI_DOMAIN2_REG (%08X)",PC, Value); return; - case 0xA4600028: LogMessage("%08X: read from PI_BSD_DOM2_PWD_REG (%08X)",PC, Value); return; - case 0xA460002C: LogMessage("%08X: read from PI_BSD_DOM2_PGS_REG (%08X)",PC, Value); return; - case 0xA4600030: LogMessage("%08X: read from PI_BSD_DOM2_RLS_REG (%08X)",PC, Value); return; - } - } - if (VAddr >= 0xA4700000 && VAddr <= 0xA470001C) - { - if (!g_LogOptions.LogRDRAMInterface) - { - return; - } - g_MMU->LW_VAddr(VAddr,Value); - - switch (VAddr) - { - case 0xA4700000: LogMessage("%08X: read from RI_MODE_REG (%08X)",PC, Value); return; - case 0xA4700004: LogMessage("%08X: read from RI_CONFIG_REG (%08X)",PC, Value); return; - case 0xA4700008: LogMessage("%08X: read from RI_CURRENT_LOAD_REG (%08X)",PC, Value); return; - case 0xA470000C: LogMessage("%08X: read from RI_SELECT_REG (%08X)",PC, Value); return; - case 0xA4700010: LogMessage("%08X: read from RI_REFRESH_REG/RI_COUNT_REG (%08X)",PC, Value); return; - case 0xA4700014: LogMessage("%08X: read from RI_LATENCY_REG (%08X)",PC, Value); return; - case 0xA4700018: LogMessage("%08X: read from RI_RERROR_REG (%08X)",PC, Value); return; - case 0xA470001C: LogMessage("%08X: read from RI_WERROR_REG (%08X)",PC, Value); return; - } - } - if ( VAddr == 0xA4800000) - { - if (!g_LogOptions.LogSerialInterface) - { - return; - } - g_MMU->LW_VAddr(VAddr,Value); - LogMessage("%08X: read from SI_DRAM_ADDR_REG (%08X)",PC, Value); - return; - } - if ( VAddr == 0xA4800004) - { - if (!g_LogOptions.LogSerialInterface) - { - return; - } - g_MMU->LW_VAddr(VAddr,Value); - LogMessage("%08X: read from SI_PIF_ADDR_RD64B_REG (%08X)",PC, Value); - return; - } - if ( VAddr == 0xA4800010) - { - if (!g_LogOptions.LogSerialInterface) - { - return; - } - g_MMU->LW_VAddr(VAddr,Value); - LogMessage("%08X: read from SI_PIF_ADDR_WR64B_REG (%08X)",PC, Value); - return; - } - if ( VAddr == 0xA4800018) - { - if (!g_LogOptions.LogSerialInterface) - { - return; - } - g_MMU->LW_VAddr(VAddr,Value); - LogMessage("%08X: read from SI_STATUS_REG (%08X)",PC, Value); - return; - } - if ( VAddr >= 0xBFC00000 && VAddr <= 0xBFC007C0 ) - { - return; - } - if ( VAddr >= 0xBFC007C0 && VAddr <= 0xBFC007FC ) - { - if (!g_LogOptions.LogPRDirectMemLoads) - { - return; - } - g_MMU->LW_VAddr(VAddr,Value); - LogMessage("%08X: read word from Pif Ram at 0x%X (%08X)",PC,VAddr - 0xBFC007C0, Value); - return; - } - if ( VAddr >= 0xB0000040 && ((VAddr - 0xB0000000) < g_Rom->GetRomSize())) - { - return; - } - if ( VAddr >= 0xB0000000 && VAddr < 0xB0000040) - { - if (!g_LogOptions.LogRomHeader) - { - return; - } - - g_MMU->LW_VAddr(VAddr,Value); - switch (VAddr) - { - case 0xB0000004: LogMessage("%08X: read from Rom Clock Rate (%08X)",PC, Value); break; - case 0xB0000008: LogMessage("%08X: read from Rom Boot address offset (%08X)",PC, Value); break; - case 0xB000000C: LogMessage("%08X: read from Rom Release offset (%08X)",PC, Value); break; - case 0xB0000010: LogMessage("%08X: read from Rom CRC1 (%08X)",PC, Value); break; - case 0xB0000014: LogMessage("%08X: read from Rom CRC2 (%08X)",PC, Value); break; - default: LogMessage("%08X: read from Rom header 0x%X (%08X)",PC, VAddr & 0xFF,Value); break; - } - return; - } - if (!g_LogOptions.LogUnknown) - { - return; - } - LogMessage("%08X: read from unknown ??? (%08X)",PC,VAddr); -} - -void Log_SW (uint32_t PC, uint32_t VAddr, uint32_t Value) -{ - if (!g_LogOptions.GenerateLog) - { - return; - } - - if ( VAddr < 0xA0000000 || VAddr >= 0xC0000000 ) - { - uint32_t PAddr; - if (!g_TransVaddr->TranslateVaddr(VAddr,PAddr)) - { - if (g_LogOptions.LogUnknown) - { - LogMessage("%08X: Writing 0x%08X to %08X",PC, Value, VAddr ); - } - return; - } - VAddr = PAddr + 0xA0000000; - } - - if ( VAddr >= 0xA0000000 && VAddr < (0xA0000000 + g_MMU->RdramSize())) - { - return; - } - if ( VAddr >= 0xA3F00000 && VAddr <= 0xA3F00024) - { - if (!g_LogOptions.LogRDRamRegisters) - { - return; - } - switch (VAddr) - { - case 0xA3F00000: LogMessage("%08X: Writing 0x%08X to RDRAM_CONFIG_REG/RDRAM_DEVICE_TYPE_REG",PC, Value ); return; - case 0xA3F00004: LogMessage("%08X: Writing 0x%08X to RDRAM_DEVICE_ID_REG",PC, Value ); return; - case 0xA3F00008: LogMessage("%08X: Writing 0x%08X to RDRAM_DELAY_REG",PC, Value ); return; - case 0xA3F0000C: LogMessage("%08X: Writing 0x%08X to RDRAM_MODE_REG",PC, Value ); return; - case 0xA3F00010: LogMessage("%08X: Writing 0x%08X to RDRAM_REF_INTERVAL_REG",PC, Value ); return; - case 0xA3F00014: LogMessage("%08X: Writing 0x%08X to RDRAM_REF_ROW_REG",PC, Value ); return; - case 0xA3F00018: LogMessage("%08X: Writing 0x%08X to RDRAM_RAS_INTERVAL_REG",PC, Value ); return; - case 0xA3F0001C: LogMessage("%08X: Writing 0x%08X to RDRAM_MIN_INTERVAL_REG",PC, Value ); return; - case 0xA3F00020: LogMessage("%08X: Writing 0x%08X to RDRAM_ADDR_SELECT_REG",PC, Value ); return; - case 0xA3F00024: LogMessage("%08X: Writing 0x%08X to RDRAM_DEVICE_MANUF_REG",PC, Value ); return; - } - } - if ( VAddr >= 0xA4000000 && VAddr <= 0xA4001FFC ) - { - return; - } - - if ( VAddr >= 0xA4040000 && VAddr <= 0xA404001C) - { - if (!g_LogOptions.LogSPRegisters) - { - return; - } - switch (VAddr) - { - case 0xA4040000: LogMessage("%08X: Writing 0x%08X to SP_MEM_ADDR_REG",PC, Value ); return; - case 0xA4040004: LogMessage("%08X: Writing 0x%08X to SP_DRAM_ADDR_REG",PC, Value ); return; - case 0xA4040008: LogMessage("%08X: Writing 0x%08X to SP_RD_LEN_REG",PC, Value ); return; - case 0xA404000C: LogMessage("%08X: Writing 0x%08X to SP_WR_LEN_REG",PC, Value ); return; - case 0xA4040010: LogMessage("%08X: Writing 0x%08X to SP_STATUS_REG",PC, Value ); return; - case 0xA4040014: LogMessage("%08X: Writing 0x%08X to SP_DMA_FULL_REG",PC, Value ); return; - case 0xA4040018: LogMessage("%08X: Writing 0x%08X to SP_DMA_BUSY_REG",PC, Value ); return; - case 0xA404001C: LogMessage("%08X: Writing 0x%08X to SP_SEMAPHORE_REG",PC, Value ); return; - } - } - if ( VAddr == 0xA4080000) - { - if (!g_LogOptions.LogSPRegisters) - { - return; - } - LogMessage("%08X: Writing 0x%08X to SP_PC",PC, Value ); return; - } - - if ( VAddr >= 0xA4100000 && VAddr <= 0xA410001C) - { - if (!g_LogOptions.LogDPCRegisters) - { - return; - } - switch (VAddr) - { - case 0xA4100000: LogMessage("%08X: Writing 0x%08X to DPC_START_REG",PC, Value ); return; - case 0xA4100004: LogMessage("%08X: Writing 0x%08X to DPC_END_REG",PC, Value ); return; - case 0xA4100008: LogMessage("%08X: Writing 0x%08X to DPC_CURRENT_REG",PC, Value ); return; - case 0xA410000C: LogMessage("%08X: Writing 0x%08X to DPC_STATUS_REG",PC, Value ); return; - case 0xA4100010: LogMessage("%08X: Writing 0x%08X to DPC_CLOCK_REG",PC, Value ); return; - case 0xA4100014: LogMessage("%08X: Writing 0x%08X to DPC_BUFBUSY_REG",PC, Value ); return; - case 0xA4100018: LogMessage("%08X: Writing 0x%08X to DPC_PIPEBUSY_REG",PC, Value ); return; - case 0xA410001C: LogMessage("%08X: Writing 0x%08X to DPC_TMEM_REG",PC, Value ); return; - } - } - - if ( VAddr >= 0xA4200000 && VAddr <= 0xA420000C) - { - if (!g_LogOptions.LogDPSRegisters) - { - return; - } - switch (VAddr) - { - case 0xA4200000: LogMessage("%08X: Writing 0x%08X to DPS_TBIST_REG",PC, Value ); return; - case 0xA4200004: LogMessage("%08X: Writing 0x%08X to DPS_TEST_MODE_REG",PC, Value ); return; - case 0xA4200008: LogMessage("%08X: Writing 0x%08X to DPS_BUFTEST_ADDR_REG",PC, Value ); return; - case 0xA420000C: LogMessage("%08X: Writing 0x%08X to DPS_BUFTEST_DATA_REG",PC, Value ); return; - } - } - - if ( VAddr >= 0xA4300000 && VAddr <= 0xA430000C) - { - if (!g_LogOptions.LogMIPSInterface) - { - return; - } - switch (VAddr) - { - case 0xA4300000: LogMessage("%08X: Writing 0x%08X to MI_INIT_MODE_REG/MI_MODE_REG",PC, Value ); return; - case 0xA4300004: LogMessage("%08X: Writing 0x%08X to MI_VERSION_REG/MI_NOOP_REG",PC, Value ); return; - case 0xA4300008: LogMessage("%08X: Writing 0x%08X to MI_INTR_REG",PC, Value ); return; - case 0xA430000C: LogMessage("%08X: Writing 0x%08X to MI_INTR_MASK_REG",PC, Value ); return; - } - } - if ( VAddr >= 0xA4400000 && VAddr <= 0xA4400034) - { - if (!g_LogOptions.LogVideoInterface) - { - return; - } - switch (VAddr) - { - case 0xA4400000: LogMessage("%08X: Writing 0x%08X to VI_STATUS_REG/VI_CONTROL_REG",PC, Value ); return; - case 0xA4400004: LogMessage("%08X: Writing 0x%08X to VI_ORIGIN_REG/VI_DRAM_ADDR_REG",PC, Value ); return; - case 0xA4400008: LogMessage("%08X: Writing 0x%08X to VI_WIDTH_REG/VI_H_WIDTH_REG",PC, Value ); return; - case 0xA440000C: LogMessage("%08X: Writing 0x%08X to VI_INTR_REG/VI_V_INTR_REG",PC, Value ); return; - case 0xA4400010: LogMessage("%08X: Writing 0x%08X to VI_CURRENT_REG/VI_V_CURRENT_LINE_REG",PC, Value ); return; - case 0xA4400014: LogMessage("%08X: Writing 0x%08X to VI_BURST_REG/VI_TIMING_REG",PC, Value ); return; - case 0xA4400018: LogMessage("%08X: Writing 0x%08X to VI_V_SYNC_REG",PC, Value ); return; - case 0xA440001C: LogMessage("%08X: Writing 0x%08X to VI_H_SYNC_REG",PC, Value ); return; - case 0xA4400020: LogMessage("%08X: Writing 0x%08X to VI_LEAP_REG/VI_H_SYNC_LEAP_REG",PC, Value ); return; - case 0xA4400024: LogMessage("%08X: Writing 0x%08X to VI_H_START_REG/VI_H_VIDEO_REG",PC, Value ); return; - case 0xA4400028: LogMessage("%08X: Writing 0x%08X to VI_V_START_REG/VI_V_VIDEO_REG",PC, Value ); return; - case 0xA440002C: LogMessage("%08X: Writing 0x%08X to VI_V_BURST_REG",PC, Value ); return; - case 0xA4400030: LogMessage("%08X: Writing 0x%08X to VI_X_SCALE_REG",PC, Value ); return; - case 0xA4400034: LogMessage("%08X: Writing 0x%08X to VI_Y_SCALE_REG",PC, Value ); return; - } - } - - if ( VAddr >= 0xA4500000 && VAddr <= 0xA4500014) - { - if (!g_LogOptions.LogAudioInterface) - { - return; - } - switch (VAddr) - { - case 0xA4500000: LogMessage("%08X: Writing 0x%08X to AI_DRAM_ADDR_REG",PC, Value ); return; - case 0xA4500004: LogMessage("%08X: Writing 0x%08X to AI_LEN_REG",PC, Value ); return; - case 0xA4500008: LogMessage("%08X: Writing 0x%08X to AI_CONTROL_REG",PC, Value ); return; - case 0xA450000C: LogMessage("%08X: Writing 0x%08X to AI_STATUS_REG",PC, Value ); return; - case 0xA4500010: LogMessage("%08X: Writing 0x%08X to AI_DACRATE_REG",PC, Value ); return; - case 0xA4500014: LogMessage("%08X: Writing 0x%08X to AI_BITRATE_REG",PC, Value ); return; - } - } - - if ( VAddr >= 0xA4600000 && VAddr <= 0xA4600030) - { - if (!g_LogOptions.LogPerInterface) - { - return; - } - switch (VAddr) - { - case 0xA4600000: LogMessage("%08X: Writing 0x%08X to PI_DRAM_ADDR_REG",PC, Value ); return; - case 0xA4600004: LogMessage("%08X: Writing 0x%08X to PI_CART_ADDR_REG",PC, Value ); return; - case 0xA4600008: LogMessage("%08X: Writing 0x%08X to PI_RD_LEN_REG",PC, Value ); return; - case 0xA460000C: LogMessage("%08X: Writing 0x%08X to PI_WR_LEN_REG",PC, Value ); return; - case 0xA4600010: LogMessage("%08X: Writing 0x%08X to PI_STATUS_REG",PC, Value ); return; - case 0xA4600014: LogMessage("%08X: Writing 0x%08X to PI_BSD_DOM1_LAT_REG/PI_DOMAIN1_REG",PC, Value ); return; - case 0xA4600018: LogMessage("%08X: Writing 0x%08X to PI_BSD_DOM1_PWD_REG",PC, Value ); return; - case 0xA460001C: LogMessage("%08X: Writing 0x%08X to PI_BSD_DOM1_PGS_REG",PC, Value ); return; - case 0xA4600020: LogMessage("%08X: Writing 0x%08X to PI_BSD_DOM1_RLS_REG",PC, Value ); return; - case 0xA4600024: LogMessage("%08X: Writing 0x%08X to PI_BSD_DOM2_LAT_REG/PI_DOMAIN2_REG",PC, Value ); return; - case 0xA4600028: LogMessage("%08X: Writing 0x%08X to PI_BSD_DOM2_PWD_REG",PC, Value ); return; - case 0xA460002C: LogMessage("%08X: Writing 0x%08X to PI_BSD_DOM2_PGS_REG",PC, Value ); return; - case 0xA4600030: LogMessage("%08X: Writing 0x%08X to PI_BSD_DOM2_RLS_REG",PC, Value ); return; - } - } - if ( VAddr >= 0xA4700000 && VAddr <= 0xA470001C) - { - if (!g_LogOptions.LogRDRAMInterface) - { - return; - } - switch (VAddr) - { - case 0xA4700000: LogMessage("%08X: Writing 0x%08X to RI_MODE_REG",PC, Value ); return; - case 0xA4700004: LogMessage("%08X: Writing 0x%08X to RI_CONFIG_REG",PC, Value ); return; - case 0xA4700008: LogMessage("%08X: Writing 0x%08X to RI_CURRENT_LOAD_REG",PC, Value ); return; - case 0xA470000C: LogMessage("%08X: Writing 0x%08X to RI_SELECT_REG",PC, Value ); return; - case 0xA4700010: LogMessage("%08X: Writing 0x%08X to RI_REFRESH_REG/RI_COUNT_REG",PC, Value ); return; - case 0xA4700014: LogMessage("%08X: Writing 0x%08X to RI_LATENCY_REG",PC, Value ); return; - case 0xA4700018: LogMessage("%08X: Writing 0x%08X to RI_RERROR_REG",PC, Value ); return; - case 0xA470001C: LogMessage("%08X: Writing 0x%08X to RI_WERROR_REG",PC, Value ); return; - } - } - if ( VAddr == 0xA4800000) - { - if (!g_LogOptions.LogSerialInterface) - { - return; - } - LogMessage("%08X: Writing 0x%08X to SI_DRAM_ADDR_REG",PC, Value ); return; - } - if ( VAddr == 0xA4800004) - { - if (g_LogOptions.LogPRDMAOperations) - { - LogMessage("%08X: A DMA transfer from the PIF ram has occured",PC ); - } - if (!g_LogOptions.LogSerialInterface) - { - return; - } - LogMessage("%08X: Writing 0x%08X to SI_PIF_ADDR_RD64B_REG",PC, Value ); return; - } - if ( VAddr == 0xA4800010) - { - if (g_LogOptions.LogPRDMAOperations) - { - LogMessage("%08X: A DMA transfer to the PIF ram has occured",PC ); - } - if (!g_LogOptions.LogSerialInterface) - { - return; - } - LogMessage("%08X: Writing 0x%08X to SI_PIF_ADDR_WR64B_REG",PC, Value ); return; - } - if ( VAddr == 0xA4800018) - { - if (!g_LogOptions.LogSerialInterface) - { - return; - } - LogMessage("%08X: Writing 0x%08X to SI_STATUS_REG",PC, Value ); return; - } - - if ( VAddr >= 0xBFC007C0 && VAddr <= 0xBFC007FC ) - { - if (!g_LogOptions.LogPRDirectMemStores) - { - return; - } - LogMessage("%08X: Writing 0x%08X to Pif Ram at 0x%X",PC,Value, VAddr - 0xBFC007C0); - return; - } - if (!g_LogOptions.LogUnknown) - { - return; - } - LogMessage("%08X: Writing 0x%08X to %08X ????",PC, Value, VAddr ); -} - -LRESULT CALLBACK LogPifProc (HWND hDlg, UINT uMsg, WPARAM /*wParam*/, LPARAM lParam) -{ - switch (uMsg) - { - case WM_INITDIALOG: - if (TempOptions.LogPRDMAOperations) { CheckDlgButton(hDlg,IDC_SI_DMA,BST_CHECKED); } - if (TempOptions.LogPRDirectMemLoads) { CheckDlgButton(hDlg,IDC_DIRECT_WRITE,BST_CHECKED); } - if (TempOptions.LogPRDMAMemLoads) { CheckDlgButton(hDlg,IDC_DMA_WRITE,BST_CHECKED); } - if (TempOptions.LogPRDirectMemStores) { CheckDlgButton(hDlg,IDC_DIRECT_READ,BST_CHECKED); } - if (TempOptions.LogPRDMAMemStores) { CheckDlgButton(hDlg,IDC_DMA_READ,BST_CHECKED); } - if (TempOptions.LogControllerPak) { CheckDlgButton(hDlg,IDC_CONT_PAK,BST_CHECKED); } - break; - case WM_NOTIFY: - if (((NMHDR FAR *) lParam)->code != PSN_APPLY) - { - break; - } - TempOptions.LogPRDMAOperations = IsDlgButtonChecked(hDlg,IDC_SI_DMA) == BST_CHECKED?TRUE:FALSE; - TempOptions.LogPRDirectMemLoads = IsDlgButtonChecked(hDlg,IDC_DIRECT_WRITE) == BST_CHECKED?TRUE:FALSE; - TempOptions.LogPRDMAMemLoads = IsDlgButtonChecked(hDlg,IDC_DMA_WRITE) == BST_CHECKED?TRUE:FALSE; - TempOptions.LogPRDirectMemStores = IsDlgButtonChecked(hDlg,IDC_DIRECT_READ) == BST_CHECKED?TRUE:FALSE; - TempOptions.LogPRDMAMemStores = IsDlgButtonChecked(hDlg,IDC_DMA_READ) == BST_CHECKED?TRUE:FALSE; - TempOptions.LogControllerPak = IsDlgButtonChecked(hDlg,IDC_CONT_PAK) == BST_CHECKED?TRUE:FALSE; - break; - default: - return FALSE; - } - return TRUE; -} - -LRESULT CALLBACK LogRegProc (HWND hDlg, UINT uMsg, WPARAM /*wParam*/, LPARAM lParam) -{ - switch (uMsg) - { - case WM_INITDIALOG: - if (TempOptions.LogRDRamRegisters) { CheckDlgButton(hDlg,IDC_RDRAM,BST_CHECKED); } - if (TempOptions.LogSPRegisters) { CheckDlgButton(hDlg,IDC_SP_REG,BST_CHECKED); } - if (TempOptions.LogDPCRegisters) { CheckDlgButton(hDlg,IDC_DPC_REG,BST_CHECKED); } - if (TempOptions.LogDPSRegisters) { CheckDlgButton(hDlg,IDC_DPS_REG,BST_CHECKED); } - if (TempOptions.LogMIPSInterface) { CheckDlgButton(hDlg,IDC_MI_REG,BST_CHECKED); } - if (TempOptions.LogVideoInterface) { CheckDlgButton(hDlg,IDC_VI_REG,BST_CHECKED); } - if (TempOptions.LogAudioInterface) { CheckDlgButton(hDlg,IDC_AI_REG,BST_CHECKED); } - if (TempOptions.LogPerInterface) { CheckDlgButton(hDlg,IDC_PI_REG,BST_CHECKED); } - if (TempOptions.LogRDRAMInterface) { CheckDlgButton(hDlg,IDC_RI_REG,BST_CHECKED); } - if (TempOptions.LogSerialInterface) { CheckDlgButton(hDlg,IDC_SI_REG,BST_CHECKED); } - break; - case WM_NOTIFY: - if (((NMHDR FAR *) lParam)->code != PSN_APPLY) - { - break; - } - TempOptions.LogRDRamRegisters = IsDlgButtonChecked(hDlg,IDC_RDRAM) == BST_CHECKED?TRUE:FALSE; - TempOptions.LogSPRegisters = IsDlgButtonChecked(hDlg,IDC_SP_REG) == BST_CHECKED?TRUE:FALSE; - TempOptions.LogDPCRegisters = IsDlgButtonChecked(hDlg,IDC_DPC_REG) == BST_CHECKED?TRUE:FALSE; - TempOptions.LogDPSRegisters = IsDlgButtonChecked(hDlg,IDC_DPS_REG) == BST_CHECKED?TRUE:FALSE; - TempOptions.LogMIPSInterface = IsDlgButtonChecked(hDlg,IDC_MI_REG) == BST_CHECKED?TRUE:FALSE; - TempOptions.LogVideoInterface = IsDlgButtonChecked(hDlg,IDC_VI_REG) == BST_CHECKED?TRUE:FALSE; - TempOptions.LogAudioInterface = IsDlgButtonChecked(hDlg,IDC_AI_REG) == BST_CHECKED?TRUE:FALSE; - TempOptions.LogPerInterface = IsDlgButtonChecked(hDlg,IDC_PI_REG) == BST_CHECKED?TRUE:FALSE; - TempOptions.LogRDRAMInterface = IsDlgButtonChecked(hDlg,IDC_RI_REG) == BST_CHECKED?TRUE:FALSE; - TempOptions.LogSerialInterface = IsDlgButtonChecked(hDlg,IDC_SI_REG) == BST_CHECKED?TRUE:FALSE; - break; - default: - return FALSE; - } - return TRUE; -} - -void SaveLogSetting (HKEY hKey,char * String, BOOL Value) -{ - DWORD StoreValue = Value; - RegSetValueEx(hKey,String,0,REG_DWORD,(CONST BYTE *)&StoreValue,sizeof(DWORD)); -} - -void SaveLogOptions (void) -{ - long lResult; - HKEY hKeyResults = 0; - DWORD Disposition = 0; - char String[200]; - - sprintf(String,"Software\\N64 Emulation\\%s\\Logging",g_Settings->LoadStringVal(Setting_ApplicationName).c_str()); - lResult = RegCreateKeyEx( HKEY_CURRENT_USER,String,0,"", REG_OPTION_NON_VOLATILE, - KEY_ALL_ACCESS,NULL,&hKeyResults,&Disposition); - - SaveLogSetting(hKeyResults,"Log RDRAM",TempOptions.LogRDRamRegisters); - SaveLogSetting(hKeyResults,"Log SP",TempOptions.LogSPRegisters); - SaveLogSetting(hKeyResults,"Log DP Command",TempOptions.LogDPCRegisters); - SaveLogSetting(hKeyResults,"Log DP Span",TempOptions.LogDPSRegisters); - SaveLogSetting(hKeyResults,"Log MIPS Interface (MI)",TempOptions.LogMIPSInterface); - SaveLogSetting(hKeyResults,"Log Video Interface (VI)",TempOptions.LogVideoInterface); - SaveLogSetting(hKeyResults,"Log Audio Interface (AI)",TempOptions.LogAudioInterface); - SaveLogSetting(hKeyResults,"Log Peripheral Interface (PI)",TempOptions.LogPerInterface); - SaveLogSetting(hKeyResults,"Log RDRAM Interface (RI)",TempOptions.LogRDRAMInterface); - SaveLogSetting(hKeyResults,"Log Serial Interface (SI)",TempOptions.LogSerialInterface); - SaveLogSetting(hKeyResults,"Log PifRam DMA Operations",TempOptions.LogPRDMAOperations); - SaveLogSetting(hKeyResults,"Log PifRam Direct Memory Loads",TempOptions.LogPRDirectMemLoads); - SaveLogSetting(hKeyResults,"Log PifRam DMA Memory Loads",TempOptions.LogPRDMAMemLoads); - SaveLogSetting(hKeyResults,"Log PifRam Direct Memory Stores",TempOptions.LogPRDirectMemStores); - SaveLogSetting(hKeyResults,"Log PifRam DMA Memory Stores",TempOptions.LogPRDMAMemStores); - SaveLogSetting(hKeyResults,"Log Controller Pak",TempOptions.LogControllerPak); - SaveLogSetting(hKeyResults,"Log CP0 changes",TempOptions.LogCP0changes); - SaveLogSetting(hKeyResults,"Log CP0 reads",TempOptions.LogCP0reads); - SaveLogSetting(hKeyResults,"Log Exceptions",TempOptions.LogExceptions); - SaveLogSetting(hKeyResults,"No Interrupts",TempOptions.NoInterrupts); - SaveLogSetting(hKeyResults,"Log TLB",TempOptions.LogTLB); - SaveLogSetting(hKeyResults,"Log Cache Operations",TempOptions.LogCache); - SaveLogSetting(hKeyResults,"Log Rom Header",TempOptions.LogRomHeader); - SaveLogSetting(hKeyResults,"Log Unknown access",TempOptions.LogUnknown); - - RegCloseKey(hKeyResults); -} - -void LogMessage (const char * Message, ...) -{ - DWORD dwWritten; - char Msg[400]; - va_list ap; - - if (!g_Settings->LoadBool(Debugger_Enabled)) - { - return; - } - if (g_hLogFile == NULL) - { - return; - } - - va_start( ap, Message ); - vsprintf( Msg, Message, ap ); - va_end( ap ); - - strcat(Msg,"\r\n"); - - WriteFile( g_hLogFile,Msg,strlen(Msg),&dwWritten,NULL ); -} - -void StartLog (void) -{ - if (!g_LogOptions.GenerateLog) - { - StopLog(); - return; - } - if (g_hLogFile) - { - return; - } - - CPath LogFile(CPath::MODULE_DIRECTORY); - LogFile.AppendDirectory("Logs"); - LogFile.SetNameExtension("cpudebug.log"); - - g_hLogFile = CreateFile(LogFile,GENERIC_WRITE, FILE_SHARE_READ,NULL,CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_SEQUENTIAL_SCAN, NULL); - SetFilePointer(g_hLogFile,0,NULL,FILE_BEGIN); -} - -void StopLog (void) -{ - if (g_hLogFile) - { - CloseHandle(g_hLogFile); - } - g_hLogFile = NULL; -} diff --git a/Source/Project64/Logging.h b/Source/Project64/Logging.h index c36aba4d4..3a98a5a06 100644 --- a/Source/Project64/Logging.h +++ b/Source/Project64/Logging.h @@ -1,56 +1,28 @@ -/**************************************************************************** -* * -* Project 64 - A Nintendo 64 emulator. * -* http://www.pj64-emu.com/ * -* Copyright (C) 2012 Project64. All rights reserved. * -* * -* License: * -* GNU/GPLv2 http://www.gnu.org/licenses/gpl-2.0.html * -* * -****************************************************************************/ -#pragma once - -typedef struct -{ - bool GenerateLog; - - /* Registers Log */ - bool LogRDRamRegisters; - bool LogSPRegisters; - bool LogDPCRegisters; - bool LogDPSRegisters; - bool LogMIPSInterface; - bool LogVideoInterface; - bool LogAudioInterface; - bool LogPerInterface; - bool LogRDRAMInterface; - bool LogSerialInterface; - - /* Pif Ram Log */ - bool LogPRDMAOperations; - bool LogPRDirectMemLoads; - bool LogPRDMAMemLoads; - bool LogPRDirectMemStores; - bool LogPRDMAMemStores; - bool LogControllerPak; - - /* Special Log */ - bool LogCP0changes; - bool LogCP0reads; - bool LogTLB; - bool LogExceptions; - bool NoInterrupts; - bool LogCache; - bool LogRomHeader; - bool LogUnknown; -} LOG_OPTIONS; - -extern LOG_OPTIONS g_LogOptions; - -void EnterLogOptions ( HWND hwndOwner ); -void StartLog ( void ); -void StopLog ( void ); -void LoadLogOptions ( LOG_OPTIONS * LogOptions, bool AlwaysFill ); -void Log_LW ( uint32_t PC, uint32_t VAddr ); -void Log_SW ( uint32_t PC, uint32_t VAddr, uint32_t Value ); -void LogMessage ( const char * Message, ... ); +/**************************************************************************** +* * +* Project64 - A Nintendo 64 emulator. * +* http://www.pj64-emu.com/ * +* Copyright (C) 2012 Project64. All rights reserved. * +* * +* License: * +* GNU/GPLv2 http://www.gnu.org/licenses/gpl-2.0.html * +* * +****************************************************************************/ +#pragma once +#include +#include + +class CLogging : + public CLogSettings +{ +public: + static void StartLog(void); + static void StopLog(void); + + static void Log_LW(uint32_t PC, uint32_t VAddr); + static void Log_SW(uint32_t PC, uint32_t VAddr, uint32_t Value); + static void LogMessage(const char * Message, ...); + +private: + static CFile * m_hLogFile; +}; \ No newline at end of file diff --git a/Source/Project64/Multilanguage.h b/Source/Project64/Multilanguage.h index d0cf68ff3..9b37d1418 100644 --- a/Source/Project64/Multilanguage.h +++ b/Source/Project64/Multilanguage.h @@ -1,6 +1,6 @@ /**************************************************************************** * * -* Project 64 - A Nintendo 64 emulator. * +* Project64 - A Nintendo 64 emulator. * * http://www.pj64-emu.com/ * * Copyright (C) 2012 Project64. All rights reserved. * * * @@ -11,520 +11,521 @@ #pragma once enum LanguageStringID{ - EMPTY_STRING = 0, + EMPTY_STRING = 0, -/********************************************************************************* -* Meta Information * -*********************************************************************************/ -//About DLL - LANGUAGE_NAME = 1, - LANGUAGE_AUTHOR =2, - LANGUAGE_VERSION =3, - LANGUAGE_DATE =4, + /********************************************************************************* + * Meta Information * + *********************************************************************************/ + //About DLL + LANGUAGE_NAME = 1, + LANGUAGE_AUTHOR = 2, + LANGUAGE_VERSION = 3, + LANGUAGE_DATE = 4, -//About DLL Dialog - INI_CURRENT_LANG =5, - INI_AUTHOR =6, - INI_VERSION =7, - INI_DATE =8, - INI_HOMEPAGE =9, - INI_CURRENT_RDB =10, - INI_CURRENT_CHT =11, - INI_CURRENT_RDX =12, + //About DLL Dialog + INI_CURRENT_LANG = 5, + INI_AUTHOR = 6, + INI_VERSION = 7, + INI_DATE = 8, + INI_HOMEPAGE = 9, + INI_CURRENT_RDB = 10, + INI_CURRENT_CHT = 11, + INI_CURRENT_RDX = 12, -//About INI title - INI_TITLE =20, + //About INI title + INI_TITLE = 20, -/********************************************************************************* -* Numbers * -*********************************************************************************/ - NUMBER_0 =50, - NUMBER_1 = 51, - NUMBER_2 = 52, - NUMBER_3 = 53, - NUMBER_4 = 54, - NUMBER_5 = 55, - NUMBER_6 = 56, - NUMBER_7 = 57, - NUMBER_8 = 58, - NUMBER_9 = 59, + /********************************************************************************* + * Numbers * + *********************************************************************************/ + NUMBER_0 = 50, + NUMBER_1 = 51, + NUMBER_2 = 52, + NUMBER_3 = 53, + NUMBER_4 = 54, + NUMBER_5 = 55, + NUMBER_6 = 56, + NUMBER_7 = 57, + NUMBER_8 = 58, + NUMBER_9 = 59, -/********************************************************************************* -* Menu * -*********************************************************************************/ -//File Menu - MENU_FILE =100, - MENU_OPEN =101, - MENU_ROM_INFO =102, - MENU_START =103, - MENU_END =104, - MENU_CHOOSE_ROM =105, - MENU_REFRESH =106, - MENU_RECENT_ROM =107, - MENU_RECENT_DIR =108, - MENU_EXIT =109, + /********************************************************************************* + * Menu * + *********************************************************************************/ + //File Menu + MENU_FILE = 100, + MENU_OPEN = 101, + MENU_ROM_INFO = 102, + MENU_START = 103, + MENU_END = 104, + MENU_CHOOSE_ROM = 105, + MENU_REFRESH = 106, + MENU_RECENT_ROM = 107, + MENU_RECENT_DIR = 108, + MENU_EXIT = 109, -//System Menu - MENU_SYSTEM =120, - MENU_RESET =121, - MENU_PAUSE =122, - MENU_BITMAP =123, - MENU_LIMIT_FPS =124, - MENU_SAVE =125, - MENU_SAVE_AS =126, - MENU_RESTORE =127, - MENU_LOAD =128, - MENU_CURRENT_SAVE =129, - MENU_CHEAT =130, - MENU_GS_BUTTON =131, - MENU_RESUME =132, - MENU_RESET_SOFT =133, //added in build 1.7.50 - MENU_RESET_HARD =134, //added in build 1.7.50 + //System Menu + MENU_SYSTEM = 120, + MENU_RESET = 121, + MENU_PAUSE = 122, + MENU_BITMAP = 123, + MENU_LIMIT_FPS = 124, + MENU_SAVE = 125, + MENU_SAVE_AS = 126, + MENU_RESTORE = 127, + MENU_LOAD = 128, + MENU_CURRENT_SAVE = 129, + MENU_CHEAT = 130, + MENU_GS_BUTTON = 131, + MENU_RESUME = 132, + MENU_RESET_SOFT = 133, //added in build 1.7.50 + MENU_RESET_HARD = 134, //added in build 1.7.50 -//Options Menu - MENU_OPTIONS = 140, - MENU_FULL_SCREEN= 141, - MENU_ON_TOP = 142, - MENU_CONFG_GFX = 143, - MENU_CONFG_AUDIO= 144, - MENU_CONFG_CTRL = 145, - MENU_CONFG_RSP = 146, - MENU_SHOW_CPU = 147, - MENU_SETTINGS = 148, + //Options Menu + MENU_OPTIONS = 140, + MENU_FULL_SCREEN = 141, + MENU_ON_TOP = 142, + MENU_CONFG_GFX = 143, + MENU_CONFG_AUDIO = 144, + MENU_CONFG_CTRL = 145, + MENU_CONFG_RSP = 146, + MENU_SHOW_CPU = 147, + MENU_SETTINGS = 148, -//Debugger Menu - MENU_DEBUGGER = 160, + //Debugger Menu + MENU_DEBUGGER = 160, -//Language Menu - MENU_LANGUAGE = 175, + //Language Menu + MENU_LANGUAGE = 175, -//Help Menu - MENU_HELP = 180, - MENU_ABOUT_INI = 181, - MENU_ABOUT_PJ64 = 182, - MENU_FORUM = 183, - MENU_HOMEPAGE = 184, + //Help Menu + MENU_HELP = 180, + MENU_ABOUT_INI = 181, + MENU_ABOUT_PJ64 = 182, + MENU_FORUM = 183, + MENU_HOMEPAGE = 184, -//Current Save Slot menu - MENU_SLOT_DEFAULT = 190, - MENU_SLOT_1 = 191, - MENU_SLOT_2 = 192, - MENU_SLOT_3 = 193, - MENU_SLOT_4 = 194, - MENU_SLOT_5 = 195, - MENU_SLOT_6 = 196, - MENU_SLOT_7 = 197, - MENU_SLOT_8 = 198, - MENU_SLOT_9 = 199, - MENU_SLOT_10 = 200, + //Current Save Slot menu + MENU_SLOT_DEFAULT = 190, + MENU_SLOT_1 = 191, + MENU_SLOT_2 = 192, + MENU_SLOT_3 = 193, + MENU_SLOT_4 = 194, + MENU_SLOT_5 = 195, + MENU_SLOT_6 = 196, + MENU_SLOT_7 = 197, + MENU_SLOT_8 = 198, + MENU_SLOT_9 = 199, + MENU_SLOT_10 = 200, + MENU_SLOT_SAVE = 201, -//Pop up Menu - POPUP_PLAY = 210, - POPUP_INFO = 211, - POPUP_SETTINGS = 212, - POPUP_CHEATS = 213, - POPUP_GFX_PLUGIN = 214, + //Pop up Menu + POPUP_PLAY = 210, + POPUP_INFO = 211, + POPUP_SETTINGS = 212, + POPUP_CHEATS = 213, + POPUP_GFX_PLUGIN = 214, -//selecting save slot - SAVE_SLOT_DEFAULT = 220, - SAVE_SLOT_1 = 221, - SAVE_SLOT_2 = 222, - SAVE_SLOT_3 = 223, - SAVE_SLOT_4 = 224, - SAVE_SLOT_5 = 225, - SAVE_SLOT_6 = 226, - SAVE_SLOT_7 = 227, - SAVE_SLOT_8 = 228, - SAVE_SLOT_9 = 229, - SAVE_SLOT_10 = 230, + //selecting save slot + SAVE_SLOT_DEFAULT = 220, + SAVE_SLOT_1 = 221, + SAVE_SLOT_2 = 222, + SAVE_SLOT_3 = 223, + SAVE_SLOT_4 = 224, + SAVE_SLOT_5 = 225, + SAVE_SLOT_6 = 226, + SAVE_SLOT_7 = 227, + SAVE_SLOT_8 = 228, + SAVE_SLOT_9 = 229, + SAVE_SLOT_10 = 230, -// Menu Descriptions (TODO: unused ? implement or remove) - MENUDES_OPEN = 250, - MENUDES_ROM_INFO = 251, - MENUDES_START = 252, - MENUDES_END = 253, - MENUDES_CHOOSE_ROM = 254, - MENUDES_REFRESH = 255, - MENUDES_EXIT = 256, - MENUDES_RESET = 257, - MENUDES_PAUSE = 258, - MENUDES_BITMAP = 259, - MENUDES_LIMIT_FPS = 260, - MENUDES_SAVE = 261, - MENUDES_SAVE_AS = 262, - MENUDES_RESTORE = 263, - MENUDES_LOAD = 264, - MENUDES_CHEAT = 265, - MENUDES_GS_BUTTON = 266, - MENUDES_FULL_SCREEN = 267, - MENUDES_ON_TOP = 268, - MENUDES_CONFG_GFX = 269, - MENUDES_CONFG_AUDIO = 270, - MENUDES_CONFG_CTRL = 271, - MENUDES_CONFG_RSP = 272, - MENUDES_SHOW_CPU = 273, - MENUDES_SETTINGS = 274, - MENUDES_USER_MAN = 275, - MENUDES_GAME_FAQ = 276, - MENUDES_ABOUT_INI = 277, - MENUDES_ABOUT_PJ64 = 278, - MENUDES_RECENT_ROM = 279, - MENUDES_RECENT_DIR = 280, - MENUDES_LANGUAGES = 281, - MENUDES_GAME_SLOT = 282, - MENUDES_PLAY_GAME = 283, - MENUDES_GAME_INFO = 284, - MENUDES_GAME_SETTINGS= 285, - MENUDES_GAME_CHEATS = 286, + // Menu Descriptions (TODO: unused ? implement or remove) + MENUDES_OPEN = 250, + MENUDES_ROM_INFO = 251, + MENUDES_START = 252, + MENUDES_END = 253, + MENUDES_CHOOSE_ROM = 254, + MENUDES_REFRESH = 255, + MENUDES_EXIT = 256, + MENUDES_RESET = 257, + MENUDES_PAUSE = 258, + MENUDES_BITMAP = 259, + MENUDES_LIMIT_FPS = 260, + MENUDES_SAVE = 261, + MENUDES_SAVE_AS = 262, + MENUDES_RESTORE = 263, + MENUDES_LOAD = 264, + MENUDES_CHEAT = 265, + MENUDES_GS_BUTTON = 266, + MENUDES_FULL_SCREEN = 267, + MENUDES_ON_TOP = 268, + MENUDES_CONFG_GFX = 269, + MENUDES_CONFG_AUDIO = 270, + MENUDES_CONFG_CTRL = 271, + MENUDES_CONFG_RSP = 272, + MENUDES_SHOW_CPU = 273, + MENUDES_SETTINGS = 274, + MENUDES_USER_MAN = 275, + MENUDES_GAME_FAQ = 276, + MENUDES_ABOUT_INI = 277, + MENUDES_ABOUT_PJ64 = 278, + MENUDES_RECENT_ROM = 279, + MENUDES_RECENT_DIR = 280, + MENUDES_LANGUAGES = 281, + MENUDES_GAME_SLOT = 282, + MENUDES_PLAY_GAME = 283, + MENUDES_GAME_INFO = 284, + MENUDES_GAME_SETTINGS = 285, + MENUDES_GAME_CHEATS = 286, -/********************************************************************************* -* Rom Browser * -*********************************************************************************/ -//Rom Browser Fields - RB_FILENAME = 300, - RB_INTERNALNAME = 301, - RB_GOODNAME = 302, - RB_STATUS = 303, - RB_ROMSIZE = 304, - RB_NOTES_CORE = 305, - RB_NOTES_PLUGIN = 306, - RB_NOTES_USER = 307, - RB_CART_ID = 308, - RB_MANUFACTUER = 309, - RB_COUNTRY = 310, - RB_DEVELOPER = 311, - RB_CRC1 = 312, - RB_CRC2 = 313, - RB_CICCHIP = 314, - RB_RELEASE_DATE = 315, - RB_GENRE = 316, - RB_PLAYERS = 317, - RB_FORCE_FEEDBACK = 318, - RB_FILE_FORMAT = 319, + /********************************************************************************* + * Rom Browser * + *********************************************************************************/ + //Rom Browser Fields + RB_FILENAME = 300, + RB_INTERNALNAME = 301, + RB_GOODNAME = 302, + RB_STATUS = 303, + RB_ROMSIZE = 304, + RB_NOTES_CORE = 305, + RB_NOTES_PLUGIN = 306, + RB_NOTES_USER = 307, + RB_CART_ID = 308, + RB_MANUFACTUER = 309, + RB_COUNTRY = 310, + RB_DEVELOPER = 311, + RB_CRC1 = 312, + RB_CRC2 = 313, + RB_CICCHIP = 314, + RB_RELEASE_DATE = 315, + RB_GENRE = 316, + RB_PLAYERS = 317, + RB_FORCE_FEEDBACK = 318, + RB_FILE_FORMAT = 319, -//Select Rom - SELECT_ROM_DIR = 320, + //Select Rom + SELECT_ROM_DIR = 320, -//Messages - RB_NOT_GOOD_FILE = 340, + //Messages + RB_NOT_GOOD_FILE = 340, -/********************************************************************************* -* Options * -*********************************************************************************/ -//Options Title - OPTIONS_TITLE = 400, + /********************************************************************************* + * Options * + *********************************************************************************/ + //Options Title + OPTIONS_TITLE = 400, -//Tabs - TAB_PLUGIN = 401, - TAB_DIRECTORY = 402, - TAB_OPTIONS = 403, - TAB_ROMSELECTION = 404, - TAB_ADVANCED = 405, - TAB_ROMSETTINGS = 406, - TAB_SHELLINTERGATION= 407, - TAB_ROMNOTES = 408, - TAB_SHORTCUTS = 409, - TAB_ROMSTATUS = 410, - TAB_RECOMPILER = 411, //Added in 1.7.0.50 + //Tabs + TAB_PLUGIN = 401, + TAB_DIRECTORY = 402, + TAB_OPTIONS = 403, + TAB_ROMSELECTION = 404, + TAB_ADVANCED = 405, + TAB_ROMSETTINGS = 406, + TAB_SHELLINTERGATION = 407, + TAB_ROMNOTES = 408, + TAB_SHORTCUTS = 409, + TAB_ROMSTATUS = 410, + TAB_RECOMPILER = 411, //Added in 1.7.0.50 -//Plugin Dialog - PLUG_ABOUT = 420, - PLUG_RSP = 421, - PLUG_GFX = 422, - PLUG_AUDIO = 423, - PLUG_CTRL = 424, - PLUG_HLE_GFX = 425, - PLUG_HLE_AUDIO = 426, - PLUG_DEFAULT = 427, + //Plugin Dialog + PLUG_ABOUT = 420, + PLUG_RSP = 421, + PLUG_GFX = 422, + PLUG_AUDIO = 423, + PLUG_CTRL = 424, + PLUG_HLE_GFX = 425, + PLUG_HLE_AUDIO = 426, + PLUG_DEFAULT = 427, -//Directory Dialog - DIR_PLUGIN = 440, - DIR_ROM = 441, - DIR_AUTO_SAVE = 442, - DIR_INSTANT_SAVE = 443, - DIR_SCREEN_SHOT = 444, - DIR_ROM_DEFAULT = 445, - DIR_SELECT_PLUGIN = 446, - DIR_SELECT_ROM = 447, - DIR_SELECT_AUTO = 448, - DIR_SELECT_INSTANT = 449, - DIR_SELECT_SCREEN = 450, - DIR_TEXTURE = 451, - DIR_SELECT_TEXTURE = 452, + //Directory Dialog + DIR_PLUGIN = 440, + DIR_ROM = 441, + DIR_AUTO_SAVE = 442, + DIR_INSTANT_SAVE = 443, + DIR_SCREEN_SHOT = 444, + DIR_ROM_DEFAULT = 445, + DIR_SELECT_PLUGIN = 446, + DIR_SELECT_ROM = 447, + DIR_SELECT_AUTO = 448, + DIR_SELECT_INSTANT = 449, + DIR_SELECT_SCREEN = 450, + DIR_TEXTURE = 451, + DIR_SELECT_TEXTURE = 452, -//Options (general) Tab - OPTION_AUTO_SLEEP =460, - OPTION_AUTO_FULLSCREEN =461, - OPTION_BASIC_MODE =462, - OPTION_REMEMBER_CHEAT =463, - OPTION_DISABLE_SS =464, - OPTION_DISPLAY_FR =465, - OPTION_CHANGE_FR =466, - OPTION_CHECK_RUNNING =467, + //Options (general) Tab + OPTION_AUTO_SLEEP = 460, + OPTION_AUTO_FULLSCREEN = 461, + OPTION_BASIC_MODE = 462, + OPTION_REMEMBER_CHEAT = 463, + OPTION_DISABLE_SS = 464, + OPTION_DISPLAY_FR = 465, + OPTION_CHANGE_FR = 466, + OPTION_CHECK_RUNNING = 467, -//Rom Browser Tab - RB_MAX_ROMS = 480, - RB_ROMS = 481, - RB_MAX_DIRS = 482, - RB_DIRS = 483, - RB_USE = 484, - RB_DIR_RECURSION = 485, - RB_AVALIABLE_FIELDS = 486, - RB_SHOW_FIELDS = 487, - RB_ADD = 488, - RB_REMOVE = 489, - RB_UP = 490, - RB_DOWN = 491, - RB_REFRESH = 492, + //Rom Browser Tab + RB_MAX_ROMS = 480, + RB_ROMS = 481, + RB_MAX_DIRS = 482, + RB_DIRS = 483, + RB_USE = 484, + RB_DIR_RECURSION = 485, + RB_AVALIABLE_FIELDS = 486, + RB_SHOW_FIELDS = 487, + RB_ADD = 488, + RB_REMOVE = 489, + RB_UP = 490, + RB_DOWN = 491, + RB_REFRESH = 492, -//Advanced Options - ADVANCE_INFO = 500, - ADVANCE_DEFAULTS = 501, - ADVANCE_CPU_STYLE = 502, - ADVANCE_SMCM = 503, - ADVANCE_MEM_SIZE = 504, - ADVANCE_ABL = 505, - ADVANCE_AUTO_START = 506, - ADVANCE_OVERWRITE = 507, - ADVANCE_COMPRESS = 508, - ADVANCE_DEBUGGER = 509, - ADVANCE_SMM_CACHE = 510, - ADVANCE_SMM_PIDMA = 511, - ADVANCE_SMM_VALIDATE= 512, - ADVANCE_SMM_PROTECT = 513, - ADVANCE_SMM_TLB = 514, + //Advanced Options + ADVANCE_INFO = 500, + ADVANCE_DEFAULTS = 501, + ADVANCE_CPU_STYLE = 502, + ADVANCE_SMCM = 503, + ADVANCE_MEM_SIZE = 504, + ADVANCE_ABL = 505, + ADVANCE_AUTO_START = 506, + ADVANCE_OVERWRITE = 507, + ADVANCE_COMPRESS = 508, + ADVANCE_DEBUGGER = 509, + ADVANCE_SMM_CACHE = 510, + ADVANCE_SMM_PIDMA = 511, + ADVANCE_SMM_VALIDATE = 512, + ADVANCE_SMM_PROTECT = 513, + ADVANCE_SMM_TLB = 514, -//Rom Options - ROM_CPU_STYLE = 520, - ROM_VIREFRESH = 521, - ROM_MEM_SIZE = 522, - ROM_ABL = 523, - ROM_SAVE_TYPE = 524, - ROM_COUNTER_FACTOR = 525, - ROM_LARGE_BUFFER = 526, - ROM_USE_TLB = 527, - ROM_REG_CACHE = 528, - ROM_DELAY_SI = 529, - ROM_FAST_SP = 530, - ROM_DEFAULT = 531, - ROM_AUDIO_SIGNAL = 532, - ROM_FIXED_AUDIO = 533, - ROM_FUNC_FIND = 534, - ROM_CUSTOM_SMM = 535, - ROM_SYNC_AUDIO = 536, - ROM_COUNTPERBYTE = 537, - ROM_32BIT = 538, - ROM_DELAY_DP = 539, + //Rom Options + ROM_CPU_STYLE = 520, + ROM_VIREFRESH = 521, + ROM_MEM_SIZE = 522, + ROM_ABL = 523, + ROM_SAVE_TYPE = 524, + ROM_COUNTER_FACTOR = 525, + ROM_LARGE_BUFFER = 526, + ROM_USE_TLB = 527, + ROM_REG_CACHE = 528, + ROM_DELAY_SI = 529, + ROM_FAST_SP = 530, + ROM_DEFAULT = 531, + ROM_AUDIO_SIGNAL = 532, + ROM_FIXED_AUDIO = 533, + ROM_FUNC_FIND = 534, + ROM_CUSTOM_SMM = 535, + ROM_SYNC_AUDIO = 536, + ROM_COUNTPERBYTE = 537, + ROM_32BIT = 538, + ROM_DELAY_DP = 539, -//Core Styles - CORE_INTERPTER = 540, - CORE_RECOMPILER = 541, - CORE_SYNC = 542, + //Core Styles + CORE_INTERPTER = 540, + CORE_RECOMPILER = 541, + CORE_SYNC = 542, -//Self Mod Methods - SMCM_NONE = 560, - SMCM_CACHE = 561, - SMCM_PROECTED = 562, - SMCM_CHECK_MEM = 563, - SMCM_CHANGE_MEM = 564, - SMCM_CHECK_ADV = 565, - SMCM_CACHE2 = 566, + //Self Mod Methods + SMCM_NONE = 560, + SMCM_CACHE = 561, + SMCM_PROECTED = 562, + SMCM_CHECK_MEM = 563, + SMCM_CHANGE_MEM = 564, + SMCM_CHECK_ADV = 565, + SMCM_CACHE2 = 566, -//Function Lookup memthod - FLM_PLOOKUP = 570, - FLM_VLOOKUP = 571, - FLM_CHANGEMEM = 572, + //Function Lookup memthod + FLM_PLOOKUP = 570, + FLM_VLOOKUP = 571, + FLM_CHANGEMEM = 572, -//RDRAM Size - RDRAM_4MB = 580, - RDRAM_8MB = 581, + //RDRAM Size + RDRAM_4MB = 580, + RDRAM_8MB = 581, -//Advanced Block Linking - ABL_ON = 600, - ABL_OFF = 601, + //Advanced Block Linking + ABL_ON = 600, + ABL_OFF = 601, -//Save Type - SAVE_FIRST_USED = 620, - SAVE_4K_EEPROM = 621, - SAVE_16K_EEPROM = 622, - SAVE_SRAM = 623, - SAVE_FLASHRAM = 624, + //Save Type + SAVE_FIRST_USED = 620, + SAVE_4K_EEPROM = 621, + SAVE_16K_EEPROM = 622, + SAVE_SRAM = 623, + SAVE_FLASHRAM = 624, -//Shell Integration Tab - SHELL_TEXT = 640, + //Shell Integration Tab + SHELL_TEXT = 640, -//Rom Notes - NOTE_STATUS = 660, - NOTE_CORE = 661, - NOTE_PLUGIN = 662, + //Rom Notes + NOTE_STATUS = 660, + NOTE_CORE = 661, + NOTE_PLUGIN = 662, -// Accelerator Selector - ACCEL_CPUSTATE_TITLE = 680, - ACCEL_MENUITEM_TITLE = 681, - ACCEL_CURRENTKEYS_TITLE = 682, - ACCEL_SELKEY_TITLE = 683, - ACCEL_ASSIGNEDTO_TITLE = 684, - ACCEL_ASSIGN_BTN = 685, - ACCEL_REMOVE_BTN = 686, - ACCEL_RESETALL_BTN = 687, - ACCEL_CPUSTATE_1 = 688, - ACCEL_CPUSTATE_2 = 689, - ACCEL_CPUSTATE_3 = 690, - ACCEL_CPUSTATE_4 = 691, - ACCEL_DETECTKEY = 692, + // Accelerator Selector + ACCEL_CPUSTATE_TITLE = 680, + ACCEL_MENUITEM_TITLE = 681, + ACCEL_CURRENTKEYS_TITLE = 682, + ACCEL_SELKEY_TITLE = 683, + ACCEL_ASSIGNEDTO_TITLE = 684, + ACCEL_ASSIGN_BTN = 685, + ACCEL_REMOVE_BTN = 686, + ACCEL_RESETALL_BTN = 687, + ACCEL_CPUSTATE_1 = 688, + ACCEL_CPUSTATE_2 = 689, + ACCEL_CPUSTATE_3 = 690, + ACCEL_CPUSTATE_4 = 691, + ACCEL_DETECTKEY = 692, -// Frame Rate Option - STR_FR_VIS = 700, - STR_FR_DLS = 701, - STR_FR_PERCENT = 702, + // Frame Rate Option + STR_FR_VIS = 700, + STR_FR_DLS = 701, + STR_FR_PERCENT = 702, -// Increase speed - STR_INSREASE_SPEED = 710, - STR_DECREASE_SPEED = 711, + // Increase speed + STR_INSREASE_SPEED = 710, + STR_DECREASE_SPEED = 711, -//Bottom page buttons - BOTTOM_RESET_PAGE = 720, - BOTTOM_RESET_ALL = 721, - BOTTOM_APPLY = 722, - BOTTOM_CLOSE = 723, + //Bottom page buttons + BOTTOM_RESET_PAGE = 720, + BOTTOM_RESET_ALL = 721, + BOTTOM_APPLY = 722, + BOTTOM_CLOSE = 723, -/********************************************************************************* -* ROM Information * -*********************************************************************************/ -//Rom Info Title Title - INFO_TITLE = 800, + /********************************************************************************* + * ROM Information * + *********************************************************************************/ + //Rom Info Title Title + INFO_TITLE = 800, -//Rom Info Text - INFO_ROM_NAME_TEXT = 801, - INFO_FILE_NAME_TEXT = 802, - INFO_LOCATION_TEXT = 803, - INFO_SIZE_TEXT = 804, - INFO_CART_ID_TEXT = 805, - INFO_MANUFACTURER_TEXT= 806, - INFO_COUNTRY_TEXT = 807, - INFO_CRC1_TEXT = 808, - INFO_CRC2_TEXT = 809, - INFO_CIC_CHIP_TEXT = 810, - INFO_MD5_TEXT = 811, + //Rom Info Text + INFO_ROM_NAME_TEXT = 801, + INFO_FILE_NAME_TEXT = 802, + INFO_LOCATION_TEXT = 803, + INFO_SIZE_TEXT = 804, + INFO_CART_ID_TEXT = 805, + INFO_MANUFACTURER_TEXT = 806, + INFO_COUNTRY_TEXT = 807, + INFO_CRC1_TEXT = 808, + INFO_CRC2_TEXT = 809, + INFO_CIC_CHIP_TEXT = 810, + INFO_MD5_TEXT = 811, -/********************************************************************************* -* Cheats * -*********************************************************************************/ -//Cheat List - CHEAT_TITLE = 1000, - CHEAT_LIST_FRAME = 1001, - CHEAT_NOTES_FRAME = 1002, - CHEAT_MARK_ALL = 1003, - CHEAT_MARK_NONE = 1004, + /********************************************************************************* + * Cheats * + *********************************************************************************/ + //Cheat List + CHEAT_TITLE = 1000, + CHEAT_LIST_FRAME = 1001, + CHEAT_NOTES_FRAME = 1002, + CHEAT_MARK_ALL = 1003, + CHEAT_MARK_NONE = 1004, -//Add Cheat - CHEAT_ADDCHEAT_FRAME =1005, - CHEAT_ADDCHEAT_NAME =1006, - CHEAT_ADDCHEAT_CODE = 1007, - CHEAT_ADDCHEAT_INSERT= 1008, - CHEAT_ADDCHEAT_CLEAR= 1009, - CHEAT_ADDCHEAT_NOTES= 1010, - CHEAT_ADD_TO_DB = 1011, + //Add Cheat + CHEAT_ADDCHEAT_FRAME = 1005, + CHEAT_ADDCHEAT_NAME = 1006, + CHEAT_ADDCHEAT_CODE = 1007, + CHEAT_ADDCHEAT_INSERT = 1008, + CHEAT_ADDCHEAT_CLEAR = 1009, + CHEAT_ADDCHEAT_NOTES = 1010, + CHEAT_ADD_TO_DB = 1011, -//Code extension - CHEAT_CODE_EXT_TITLE =1012, - CHEAT_CODE_EXT_TXT =1013, - CHEAT_OK =1014, - CHEAT_CANCEL =1015, + //Code extension + CHEAT_CODE_EXT_TITLE = 1012, + CHEAT_CODE_EXT_TXT = 1013, + CHEAT_OK = 1014, + CHEAT_CANCEL = 1015, -//Digital Value - CHEAT_QUANTITY_TITLE =1016, - CHEAT_CHOOSE_VALUE =1017, - CHEAT_VALUE =1018, - CHEAT_FROM =1019, - CHEAT_TO =1020, - CHEAT_NOTES =1021, - CHEAT_ADDCHEAT_ADD = 1022, - CHEAT_ADDCHEAT_NEW = 1023, - CHEAT_ADDCHEAT_CODEDES =1024, - CHEAT_ADDCHEAT_OPT =1025, - CHEAT_ADDCHEAT_OPTDES =1026, + //Digital Value + CHEAT_QUANTITY_TITLE = 1016, + CHEAT_CHOOSE_VALUE = 1017, + CHEAT_VALUE = 1018, + CHEAT_FROM = 1019, + CHEAT_TO = 1020, + CHEAT_NOTES = 1021, + CHEAT_ADDCHEAT_ADD = 1022, + CHEAT_ADDCHEAT_NEW = 1023, + CHEAT_ADDCHEAT_CODEDES = 1024, + CHEAT_ADDCHEAT_OPT = 1025, + CHEAT_ADDCHEAT_OPTDES = 1026, -//Edit Cheat - CHEAT_EDITCHEAT_WINDOW =1027, - CHEAT_EDITCHEAT_UPDATE =1028, - CHEAT_CHANGED_MSG =1029, - CHEAT_CHANGED_TITLE =1030, + //Edit Cheat + CHEAT_EDITCHEAT_WINDOW = 1027, + CHEAT_EDITCHEAT_UPDATE = 1028, + CHEAT_CHANGED_MSG = 1029, + CHEAT_CHANGED_TITLE = 1030, -//Cheat Popup Menu - CHEAT_ADDNEW =1040, - CHEAT_EDIT = 1041, - CHEAT_DELETE = 1042, + //Cheat Popup Menu + CHEAT_ADDNEW = 1040, + CHEAT_EDIT = 1041, + CHEAT_DELETE = 1042, -// short cut editor - STR_SHORTCUT_RESET_TITLE = 1100, - STR_SHORTCUT_RESET_TEXT = 1101, - STR_SHORTCUT_FILEMENU = 1102, - STR_SHORTCUT_SYSTEMMENU = 1103, - STR_SHORTCUT_OPTIONS = 1104, - STR_SHORTCUT_SAVESLOT = 1105, + // short cut editor + STR_SHORTCUT_RESET_TITLE = 1100, + STR_SHORTCUT_RESET_TEXT = 1101, + STR_SHORTCUT_FILEMENU = 1102, + STR_SHORTCUT_SYSTEMMENU = 1103, + STR_SHORTCUT_OPTIONS = 1104, + STR_SHORTCUT_SAVESLOT = 1105, -/********************************************************************************* -* Messages * -*********************************************************************************/ - MSG_CPU_PAUSED = 2000, - MSG_CPU_RESUMED = 2001, - MSG_PERM_LOOP = 2002, - MSG_MEM_ALLOC_ERROR = 2003, - MSG_FAIL_INIT_GFX = 2004, - MSG_FAIL_INIT_AUDIO = 2005, - MSG_FAIL_INIT_RSP = 2006, - MSG_FAIL_INIT_CONTROL = 2007, - MSG_FAIL_LOAD_PLUGIN = 2008, - MSG_FAIL_LOAD_WORD = 2009, - MSG_FAIL_OPEN_SAVE = 2010, - MSG_FAIL_OPEN_EEPROM = 2011, - MSG_FAIL_OPEN_FLASH = 2012, - MSG_FAIL_OPEN_MEMPAK = 2013, - MSG_FAIL_OPEN_ZIP = 2014, - MSG_FAIL_OPEN_IMAGE = 2015, - MSG_FAIL_ZIP = 2016, - MSG_FAIL_IMAGE = 2017, - MSG_UNKNOWN_COUNTRY = 2018, - MSG_UNKNOWN_CIC_CHIP = 2019, - MSG_UNKNOWN_FILE_FORMAT= 2020, - MSG_UNKNOWN_MEM_ACTION = 2021, - MSG_UNHANDLED_OP = 2022, - MSG_NONMAPPED_SPACE = 2023, - MSG_SAVE_STATE_HEADER = 2024, - MSG_MSGBOX_TITLE =2025, - MSG_PIF2_ERROR = 2026, - MSG_PIF2_TITLE = 2027, - MSG_PLUGIN_CHANGE = 2028, - MSG_PLUGIN_CHANGE_TITLE= 2029, - MSG_EMULATION_ENDED = 2030, - MSG_EMULATION_STARTED = 2031, - MSG_UNABLED_LOAD_STATE = 2032, - MSG_LOADED_STATE = 2033, - MSG_SAVED_STATE = 2034, - MSG_SAVE_SLOT = 2035, - MSG_BYTESWAP =2036, - MSG_CHOOSE_IMAGE = 2037, - MSG_LOADED = 2038, - MSG_LOADING = 2039, - MSG_PLUGIN_NOT_INIT = 2040, - MSG_DEL_SURE = 2041, - MSG_DEL_TITLE = 2042, - MSG_CHEAT_NAME_IN_USE = 2043, - MSG_MAX_CHEATS = 2044, - MSG_PLUGIN_INIT = 2045, //Added in pj64 1.6 - MSG_NO_SHORTCUT_SEL = 2046, //Added in pj64 1.6 - MSG_NO_MENUITEM_SEL = 2047, //Added in pj64 1.6 - MSG_MENUITEM_ASSIGNED = 2048, //Added in pj64 1.6 - MSG_NO_SEL_SHORTCUT = 2049, //Added in pj64 1.6 - MSG_WAITING_FOR_START = 2050, //Added in pj64 1.7 - MSG_INVALID_EXE = 2051, //Added in pj64 1.7 - MSG_INVALID_EXE_TITLE = 2052, //Added in pj64 1.7 - MSG_7Z_FILE_NOT_FOUND = 2053, //Added in pj64 1.7 - MSG_SET_LLE_GFX_TITLE = 2054, //Added in pj64 1.7 - MSG_SET_LLE_GFX_MSG = 2055, //Added in pj64 1.7 - MSG_SET_HLE_AUD_TITLE = 2056, //Added in pj64 1.7 - MSG_SET_HLE_AUD_MSG = 2057, //Added in pj64 1.7 + /********************************************************************************* + * Messages * + *********************************************************************************/ + MSG_CPU_PAUSED = 2000, + MSG_CPU_RESUMED = 2001, + MSG_PERM_LOOP = 2002, + MSG_MEM_ALLOC_ERROR = 2003, + MSG_FAIL_INIT_GFX = 2004, + MSG_FAIL_INIT_AUDIO = 2005, + MSG_FAIL_INIT_RSP = 2006, + MSG_FAIL_INIT_CONTROL = 2007, + MSG_FAIL_LOAD_PLUGIN = 2008, + MSG_FAIL_LOAD_WORD = 2009, + MSG_FAIL_OPEN_SAVE = 2010, + MSG_FAIL_OPEN_EEPROM = 2011, + MSG_FAIL_OPEN_FLASH = 2012, + MSG_FAIL_OPEN_MEMPAK = 2013, + MSG_FAIL_OPEN_ZIP = 2014, + MSG_FAIL_OPEN_IMAGE = 2015, + MSG_FAIL_ZIP = 2016, + MSG_FAIL_IMAGE = 2017, + MSG_UNKNOWN_COUNTRY = 2018, + MSG_UNKNOWN_CIC_CHIP = 2019, + MSG_UNKNOWN_FILE_FORMAT = 2020, + MSG_UNKNOWN_MEM_ACTION = 2021, + MSG_UNHANDLED_OP = 2022, + MSG_NONMAPPED_SPACE = 2023, + MSG_SAVE_STATE_HEADER = 2024, + MSG_MSGBOX_TITLE = 2025, + MSG_PIF2_ERROR = 2026, + MSG_PIF2_TITLE = 2027, + MSG_PLUGIN_CHANGE = 2028, + MSG_PLUGIN_CHANGE_TITLE = 2029, + MSG_EMULATION_ENDED = 2030, + MSG_EMULATION_STARTED = 2031, + MSG_UNABLED_LOAD_STATE = 2032, + MSG_LOADED_STATE = 2033, + MSG_SAVED_STATE = 2034, + MSG_SAVE_SLOT = 2035, + MSG_BYTESWAP = 2036, + MSG_CHOOSE_IMAGE = 2037, + MSG_LOADED = 2038, + MSG_LOADING = 2039, + MSG_PLUGIN_NOT_INIT = 2040, + MSG_DEL_SURE = 2041, + MSG_DEL_TITLE = 2042, + MSG_CHEAT_NAME_IN_USE = 2043, + MSG_MAX_CHEATS = 2044, + MSG_PLUGIN_INIT = 2045, //Added in pj64 1.6 + MSG_NO_SHORTCUT_SEL = 2046, //Added in pj64 1.6 + MSG_NO_MENUITEM_SEL = 2047, //Added in pj64 1.6 + MSG_MENUITEM_ASSIGNED = 2048, //Added in pj64 1.6 + MSG_NO_SEL_SHORTCUT = 2049, //Added in pj64 1.6 + MSG_WAITING_FOR_START = 2050, //Added in pj64 1.7 + MSG_INVALID_EXE = 2051, //Added in pj64 1.7 + MSG_INVALID_EXE_TITLE = 2052, //Added in pj64 1.7 + MSG_7Z_FILE_NOT_FOUND = 2053, //Added in pj64 1.7 + MSG_SET_LLE_GFX_TITLE = 2054, //Added in pj64 1.7 + MSG_SET_LLE_GFX_MSG = 2055, //Added in pj64 1.7 + MSG_SET_HLE_AUD_TITLE = 2056, //Added in pj64 1.7 + MSG_SET_HLE_AUD_MSG = 2057, //Added in pj64 1.7 }; #include ".\\Multilanguage\Language Class.h" diff --git a/Source/Project64/Multilanguage/Language Class.cpp b/Source/Project64/Multilanguage/Language Class.cpp index dab71accb..0321de0fc 100644 --- a/Source/Project64/Multilanguage/Language Class.cpp +++ b/Source/Project64/Multilanguage/Language Class.cpp @@ -1,6 +1,6 @@ /**************************************************************************** * * -* Project 64 - A Nintendo 64 emulator. * +* Project64 - A Nintendo 64 emulator. * * http://www.pj64-emu.com/ * * Copyright (C) 2012 Project64. All rights reserved. * * * @@ -14,499 +14,500 @@ CLanguage * g_Lang = NULL; -void CLanguage::LoadDefaultStrings (void) +void CLanguage::LoadDefaultStrings(void) { #define DEF_STR(ID,str) m_DefaultStrings.insert(LANG_STRINGS::value_type(ID,str)) - DEF_STR(EMPTY_STRING, L"" ); + DEF_STR(EMPTY_STRING, L""); /********************************************************************************* * Meta Information * *********************************************************************************/ //About DLL - DEF_STR(LANGUAGE_NAME, L"" ); - DEF_STR(LANGUAGE_AUTHOR, L"" ); - DEF_STR(LANGUAGE_VERSION, L"" ); - DEF_STR(LANGUAGE_DATE, L"" ); + DEF_STR(LANGUAGE_NAME, L""); + DEF_STR(LANGUAGE_AUTHOR, L""); + DEF_STR(LANGUAGE_VERSION, L""); + DEF_STR(LANGUAGE_DATE, L""); //About DLL Dialog - DEF_STR(INI_CURRENT_LANG, L"Current Language" ); - DEF_STR(INI_AUTHOR, L"Author" ); - DEF_STR(INI_VERSION, L"Version" ); - DEF_STR(INI_DATE, L"Date" ); - DEF_STR(INI_HOMEPAGE, L"Visit Home Page" ); - DEF_STR(INI_CURRENT_RDB, L"ROM Database (.RDB)" ); - DEF_STR(INI_CURRENT_CHT, L"Cheat Code File (.CHT)" ); - DEF_STR(INI_CURRENT_RDX, L"Extended ROM Info (.RDX)"); + DEF_STR(INI_CURRENT_LANG, L"Current Language"); + DEF_STR(INI_AUTHOR, L"Author"); + DEF_STR(INI_VERSION, L"Version"); + DEF_STR(INI_DATE, L"Date"); + DEF_STR(INI_HOMEPAGE, L"Visit Home Page"); + DEF_STR(INI_CURRENT_RDB, L"ROM Database (.RDB)"); + DEF_STR(INI_CURRENT_CHT, L"Cheat Code File (.CHT)"); + DEF_STR(INI_CURRENT_RDX, L"Extended ROM Info (.RDX)"); //About INI title - DEF_STR(INI_TITLE, L"About Config Files" ); + DEF_STR(INI_TITLE, L"About Config Files"); /********************************************************************************* * Numbers * *********************************************************************************/ - DEF_STR(NUMBER_0, L"0" ); - DEF_STR(NUMBER_1, L"1" ); - DEF_STR(NUMBER_2, L"2" ); - DEF_STR(NUMBER_3, L"3" ); - DEF_STR(NUMBER_4, L"4" ), - DEF_STR(NUMBER_5, L"5" ); - DEF_STR(NUMBER_6, L"6" ); - DEF_STR(NUMBER_7, L"7" ); - DEF_STR(NUMBER_8, L"8" ); - DEF_STR(NUMBER_9, L"9" ); + DEF_STR(NUMBER_0, L"0"); + DEF_STR(NUMBER_1, L"1"); + DEF_STR(NUMBER_2, L"2"); + DEF_STR(NUMBER_3, L"3"); + DEF_STR(NUMBER_4, L"4"), + DEF_STR(NUMBER_5, L"5"); + DEF_STR(NUMBER_6, L"6"); + DEF_STR(NUMBER_7, L"7"); + DEF_STR(NUMBER_8, L"8"); + DEF_STR(NUMBER_9, L"9"); /********************************************************************************* * Menu * *********************************************************************************/ //File Menu - DEF_STR(MENU_FILE, L"&File" ); - DEF_STR(MENU_OPEN, L"&Open ROM" ); - DEF_STR(MENU_ROM_INFO, L"ROM &Info...." ); - DEF_STR(MENU_START, L"Start Emulation" ); - DEF_STR(MENU_END, L"&End Emulation" ); - DEF_STR(MENU_CHOOSE_ROM, L"Choose ROM Directory..." ); - DEF_STR(MENU_REFRESH, L"Refresh ROM List" ); - DEF_STR(MENU_RECENT_ROM, L"Recent ROM" ); - DEF_STR(MENU_RECENT_DIR, L"Recent ROM Directories" ); - DEF_STR(MENU_EXIT, L"E&xit" ); + DEF_STR(MENU_FILE, L"&File"); + DEF_STR(MENU_OPEN, L"&Open ROM"); + DEF_STR(MENU_ROM_INFO, L"ROM &Info...."); + DEF_STR(MENU_START, L"Start Emulation"); + DEF_STR(MENU_END, L"&End Emulation"); + DEF_STR(MENU_CHOOSE_ROM, L"Choose ROM Directory..."); + DEF_STR(MENU_REFRESH, L"Refresh ROM List"); + DEF_STR(MENU_RECENT_ROM, L"Recent ROM"); + DEF_STR(MENU_RECENT_DIR, L"Recent ROM Directories"); + DEF_STR(MENU_EXIT, L"E&xit"); //System Menu - DEF_STR(MENU_SYSTEM, L"&System" ); - DEF_STR(MENU_RESET, L"&Reset" ); - DEF_STR(MENU_PAUSE, L"&Pause" ); - DEF_STR(MENU_BITMAP, L"Generate Bitmap" ); - DEF_STR(MENU_LIMIT_FPS, L"Limit FPS" ); - DEF_STR(MENU_SAVE, L"&Save State" ); - DEF_STR(MENU_SAVE_AS, L"Save As..." ); - DEF_STR(MENU_RESTORE, L"&Load State" ); - DEF_STR(MENU_LOAD, L"Load..." ); - DEF_STR(MENU_CURRENT_SAVE,L"Current Save S&tate" ); - DEF_STR(MENU_CHEAT, L"Cheats..." ); - DEF_STR(MENU_GS_BUTTON, L"GS Button" ); - DEF_STR(MENU_RESUME, L"R&esume" ); - DEF_STR(MENU_RESET_SOFT, L"&Soft Reset" ); - DEF_STR(MENU_RESET_HARD, L"&Hard Reset" ); + DEF_STR(MENU_SYSTEM, L"&System"); + DEF_STR(MENU_RESET, L"&Reset"); + DEF_STR(MENU_PAUSE, L"&Pause"); + DEF_STR(MENU_BITMAP, L"Generate Bitmap"); + DEF_STR(MENU_LIMIT_FPS, L"Limit FPS"); + DEF_STR(MENU_SAVE, L"&Save State"); + DEF_STR(MENU_SAVE_AS, L"Save As..."); + DEF_STR(MENU_RESTORE, L"&Load State"); + DEF_STR(MENU_LOAD, L"Load..."); + DEF_STR(MENU_CURRENT_SAVE, L"Current Save S&tate"); + DEF_STR(MENU_CHEAT, L"Cheats..."); + DEF_STR(MENU_GS_BUTTON, L"GS Button"); + DEF_STR(MENU_RESUME, L"R&esume"); + DEF_STR(MENU_RESET_SOFT, L"&Soft Reset"); + DEF_STR(MENU_RESET_HARD, L"&Hard Reset"); //Options Menu - DEF_STR(MENU_OPTIONS, L"&Options" ); - DEF_STR(MENU_FULL_SCREEN, L"&Full Screen" ); - DEF_STR(MENU_ON_TOP, L"&Always on &Top" ); - DEF_STR(MENU_CONFG_GFX, L"Configure Graphics Plugin..." ); - DEF_STR(MENU_CONFG_AUDIO, L"Configure Audio Plugin..." ); - DEF_STR(MENU_CONFG_CTRL, L"Configure Controller Plugin..." ); - DEF_STR(MENU_CONFG_RSP, L"Configure RSP Plugin..." ); - DEF_STR(MENU_SHOW_CPU, L"Show CPU Usage" ); - DEF_STR(MENU_SETTINGS, L"&Settings..." ); + DEF_STR(MENU_OPTIONS, L"&Options"); + DEF_STR(MENU_FULL_SCREEN, L"&Full Screen"); + DEF_STR(MENU_ON_TOP, L"&Always on &Top"); + DEF_STR(MENU_CONFG_GFX, L"Configure Graphics Plugin..."); + DEF_STR(MENU_CONFG_AUDIO, L"Configure Audio Plugin..."); + DEF_STR(MENU_CONFG_CTRL, L"Configure Controller Plugin..."); + DEF_STR(MENU_CONFG_RSP, L"Configure RSP Plugin..."); + DEF_STR(MENU_SHOW_CPU, L"Show CPU Usage"); + DEF_STR(MENU_SETTINGS, L"&Settings..."); //Debugger Menu - DEF_STR(MENU_DEBUGGER, L"&Debugger" ); + DEF_STR(MENU_DEBUGGER, L"&Debugger"); //Language Menu - DEF_STR(MENU_LANGUAGE, L"&Language" ); + DEF_STR(MENU_LANGUAGE, L"&Language"); //Help Menu - DEF_STR(MENU_HELP, L"&Help" ); - DEF_STR(MENU_ABOUT_INI, L"About Conf&ig Files" ); - DEF_STR(MENU_ABOUT_PJ64, L"&About Project64" ); - DEF_STR(MENU_FORUM, L"Support &Forum" ); - DEF_STR(MENU_HOMEPAGE, L"&Homepage" ); + DEF_STR(MENU_HELP, L"&Help"); + DEF_STR(MENU_ABOUT_INI, L"About Conf&ig Files"); + DEF_STR(MENU_ABOUT_PJ64, L"&About Project64"); + DEF_STR(MENU_FORUM, L"Support &Forum"); + DEF_STR(MENU_HOMEPAGE, L"&Homepage"); //Current Save Slot menu - DEF_STR(MENU_SLOT_DEFAULT,L"Default" ); - DEF_STR(MENU_SLOT_1, L"Slot 1" ); - DEF_STR(MENU_SLOT_2, L"Slot 2" ); - DEF_STR(MENU_SLOT_3, L"Slot 3" ); - DEF_STR(MENU_SLOT_4, L"Slot 4" ); - DEF_STR(MENU_SLOT_5, L"Slot 5" ); - DEF_STR(MENU_SLOT_6, L"Slot 6" ); - DEF_STR(MENU_SLOT_7, L"Slot 7" ); - DEF_STR(MENU_SLOT_8, L"Slot 8" ); - DEF_STR(MENU_SLOT_9, L"Slot 9" ); - DEF_STR(MENU_SLOT_10, L"Slot 10" ); + DEF_STR(MENU_SLOT_DEFAULT, L"Default"); + DEF_STR(MENU_SLOT_1, L"Slot 1"); + DEF_STR(MENU_SLOT_2, L"Slot 2"); + DEF_STR(MENU_SLOT_3, L"Slot 3"); + DEF_STR(MENU_SLOT_4, L"Slot 4"); + DEF_STR(MENU_SLOT_5, L"Slot 5"); + DEF_STR(MENU_SLOT_6, L"Slot 6"); + DEF_STR(MENU_SLOT_7, L"Slot 7"); + DEF_STR(MENU_SLOT_8, L"Slot 8"); + DEF_STR(MENU_SLOT_9, L"Slot 9"); + DEF_STR(MENU_SLOT_10, L"Slot 10"); + DEF_STR(MENU_SLOT_SAVE, L"Save slot (%ws) selected"); //Pop up Menu - DEF_STR(POPUP_PLAY, L"Play Game" ); - DEF_STR(POPUP_INFO, L"ROM Information" ); - DEF_STR(POPUP_SETTINGS, L"Edit Game Settings" ); - DEF_STR(POPUP_CHEATS, L"Edit Cheats" ); - DEF_STR(POPUP_GFX_PLUGIN,L"Graphics Plugin" ); + DEF_STR(POPUP_PLAY, L"Play Game"); + DEF_STR(POPUP_INFO, L"ROM Information"); + DEF_STR(POPUP_SETTINGS, L"Edit Game Settings"); + DEF_STR(POPUP_CHEATS, L"Edit Cheats"); + DEF_STR(POPUP_GFX_PLUGIN, L"Graphics Plugin"); //Alternate Name to save Slot - DEF_STR(SAVE_SLOT_DEFAULT,L"Save Slot - Default" ); - DEF_STR(SAVE_SLOT_1, L"Save Slot - 1" ); - DEF_STR(SAVE_SLOT_2, L"Save Slot - 2" ); - DEF_STR(SAVE_SLOT_3, L"Save Slot - 3" ); - DEF_STR(SAVE_SLOT_4, L"Save Slot - 4" ); - DEF_STR(SAVE_SLOT_5, L"Save Slot - 5" ); - DEF_STR(SAVE_SLOT_6, L"Save Slot - 6" ); - DEF_STR(SAVE_SLOT_7, L"Save Slot - 7" ); - DEF_STR(SAVE_SLOT_8, L"Save Slot - 8" ); - DEF_STR(SAVE_SLOT_9, L"Save Slot - 9" ); - DEF_STR(SAVE_SLOT_10, L"Save Slot - 10" ); + DEF_STR(SAVE_SLOT_DEFAULT, L"Save Slot - Default"); + DEF_STR(SAVE_SLOT_1, L"Save Slot - 1"); + DEF_STR(SAVE_SLOT_2, L"Save Slot - 2"); + DEF_STR(SAVE_SLOT_3, L"Save Slot - 3"); + DEF_STR(SAVE_SLOT_4, L"Save Slot - 4"); + DEF_STR(SAVE_SLOT_5, L"Save Slot - 5"); + DEF_STR(SAVE_SLOT_6, L"Save Slot - 6"); + DEF_STR(SAVE_SLOT_7, L"Save Slot - 7"); + DEF_STR(SAVE_SLOT_8, L"Save Slot - 8"); + DEF_STR(SAVE_SLOT_9, L"Save Slot - 9"); + DEF_STR(SAVE_SLOT_10, L"Save Slot - 10"); /********************************************************************************* * ROM Browser * *********************************************************************************/ //ROM Browser Fields - DEF_STR(RB_FILENAME, L"File Name" ); - DEF_STR(RB_INTERNALNAME, L"Internal Name" ); - DEF_STR(RB_GOODNAME, L"Good Name" ); - DEF_STR(RB_STATUS, L"Status" ); - DEF_STR(RB_ROMSIZE, L"ROM Size" ); - DEF_STR(RB_NOTES_CORE, L"Notes (core)" ); - DEF_STR(RB_NOTES_PLUGIN, L"Notes (default plugins)" ); - DEF_STR(RB_NOTES_USER, L"Notes (user)" ); - DEF_STR(RB_CART_ID, L"Cartridge ID" ); - DEF_STR(RB_MANUFACTUER, L"Manufacturer" ); - DEF_STR(RB_COUNTRY, L"Country" ); - DEF_STR(RB_DEVELOPER, L"Developer" ); - DEF_STR(RB_CRC1, L"CRC1" ); - DEF_STR(RB_CRC2, L"CRC2" ); - DEF_STR(RB_CICCHIP, L"CIC Chip" ); - DEF_STR(RB_RELEASE_DATE, L"Release Date" ); - DEF_STR(RB_GENRE, L"Genre" ); - DEF_STR(RB_PLAYERS, L"Players" ); - DEF_STR(RB_FORCE_FEEDBACK,L"Force Feedback" ); - DEF_STR(RB_FILE_FORMAT, L"File Format" ); + DEF_STR(RB_FILENAME, L"File Name"); + DEF_STR(RB_INTERNALNAME, L"Internal Name"); + DEF_STR(RB_GOODNAME, L"Good Name"); + DEF_STR(RB_STATUS, L"Status"); + DEF_STR(RB_ROMSIZE, L"ROM Size"); + DEF_STR(RB_NOTES_CORE, L"Notes (core)"); + DEF_STR(RB_NOTES_PLUGIN, L"Notes (default plugins)"); + DEF_STR(RB_NOTES_USER, L"Notes (user)"); + DEF_STR(RB_CART_ID, L"Cartridge ID"); + DEF_STR(RB_MANUFACTUER, L"Manufacturer"); + DEF_STR(RB_COUNTRY, L"Country"); + DEF_STR(RB_DEVELOPER, L"Developer"); + DEF_STR(RB_CRC1, L"CRC1"); + DEF_STR(RB_CRC2, L"CRC2"); + DEF_STR(RB_CICCHIP, L"CIC Chip"); + DEF_STR(RB_RELEASE_DATE, L"Release Date"); + DEF_STR(RB_GENRE, L"Genre"); + DEF_STR(RB_PLAYERS, L"Players"); + DEF_STR(RB_FORCE_FEEDBACK, L"Force Feedback"); + DEF_STR(RB_FILE_FORMAT, L"File Format"); //Select ROM - DEF_STR(SELECT_ROM_DIR, L"Select current ROM directory" ); + DEF_STR(SELECT_ROM_DIR, L"Select current ROM directory"); //Messages - DEF_STR(RB_NOT_GOOD_FILE,L"Bad ROM? Use GoodN64 & check for updated RDB." ); + DEF_STR(RB_NOT_GOOD_FILE, L"Bad ROM? Use GoodN64 & check for updated RDB."); /********************************************************************************* * Options * *********************************************************************************/ //Options Title - DEF_STR(OPTIONS_TITLE,L"Settings"); + DEF_STR(OPTIONS_TITLE, L"Settings"); //Tabs - DEF_STR(TAB_PLUGIN, L"Plugins"); - DEF_STR(TAB_DIRECTORY, L"Directories"); - DEF_STR(TAB_OPTIONS, L"Options"); - DEF_STR(TAB_ROMSELECTION,L"ROM Selection"); - DEF_STR(TAB_ADVANCED, L"Advanced"); + DEF_STR(TAB_PLUGIN, L"Plugins"); + DEF_STR(TAB_DIRECTORY, L"Directories"); + DEF_STR(TAB_OPTIONS, L"Options"); + DEF_STR(TAB_ROMSELECTION, L"ROM Selection"); + DEF_STR(TAB_ADVANCED, L"Advanced"); DEF_STR(TAB_ROMSETTINGS, L"General Settings"); - DEF_STR(TAB_SHELLINTERGATION,L"Shell Integration"); - DEF_STR(TAB_ROMNOTES, L"Notes"); - DEF_STR(TAB_SHORTCUTS, L"Keyboard Shortcuts"); - DEF_STR(TAB_ROMSTATUS, L"Status"); - DEF_STR(TAB_RECOMPILER, L"Recompiler"); + DEF_STR(TAB_SHELLINTERGATION, L"Shell Integration"); + DEF_STR(TAB_ROMNOTES, L"Notes"); + DEF_STR(TAB_SHORTCUTS, L"Keyboard Shortcuts"); + DEF_STR(TAB_ROMSTATUS, L"Status"); + DEF_STR(TAB_RECOMPILER, L"Recompiler"); //Plugin Dialog - DEF_STR(PLUG_ABOUT, L"About"); - DEF_STR(PLUG_RSP, L" RSP (Reality Signal Processor) plugin: "); - DEF_STR(PLUG_GFX, L" Video (graphics) plugin: "); - DEF_STR(PLUG_AUDIO, L" Audio (sound) plugin: "); - DEF_STR(PLUG_CTRL, L" Input (controller) plugin: "); - DEF_STR(PLUG_HLE_GFX, L"Graphics HLE"); - DEF_STR(PLUG_HLE_AUDIO,L"Audio HLE"); - DEF_STR(PLUG_DEFAULT, L"** Use System Plugin **"); + DEF_STR(PLUG_ABOUT, L"About"); + DEF_STR(PLUG_RSP, L" RSP (Reality Signal Processor) plugin: "); + DEF_STR(PLUG_GFX, L" Video (graphics) plugin: "); + DEF_STR(PLUG_AUDIO, L" Audio (sound) plugin: "); + DEF_STR(PLUG_CTRL, L" Input (controller) plugin: "); + DEF_STR(PLUG_HLE_GFX, L"Graphics HLE"); + DEF_STR(PLUG_HLE_AUDIO, L"Audio HLE"); + DEF_STR(PLUG_DEFAULT, L"** Use System Plugin **"); //Directory Dialog - DEF_STR(DIR_PLUGIN, L" Plugin directory: "); - DEF_STR(DIR_ROM, L" ROM directory: "); - DEF_STR(DIR_AUTO_SAVE, L" N64 native saves directory: "); - DEF_STR(DIR_INSTANT_SAVE, L" Saved states directory: "); - DEF_STR(DIR_SCREEN_SHOT, L" Screenshot directory: "); - DEF_STR(DIR_ROM_DEFAULT, L"Last folder that a ROM was open from"); + DEF_STR(DIR_PLUGIN, L" Plugin directory: "); + DEF_STR(DIR_ROM, L" ROM directory: "); + DEF_STR(DIR_AUTO_SAVE, L" N64 native saves directory: "); + DEF_STR(DIR_INSTANT_SAVE, L" Saved states directory: "); + DEF_STR(DIR_SCREEN_SHOT, L" Screenshot directory: "); + DEF_STR(DIR_ROM_DEFAULT, L"Last folder that a ROM was open from"); DEF_STR(DIR_SELECT_PLUGIN, L"Select plugin directory"); - DEF_STR(DIR_SELECT_ROM, L"Select ROM directory"); - DEF_STR(DIR_SELECT_AUTO, L"Select N64 native saves directory"); - DEF_STR(DIR_SELECT_INSTANT,L"Select saved states directory"); + DEF_STR(DIR_SELECT_ROM, L"Select ROM directory"); + DEF_STR(DIR_SELECT_AUTO, L"Select N64 native saves directory"); + DEF_STR(DIR_SELECT_INSTANT, L"Select saved states directory"); DEF_STR(DIR_SELECT_SCREEN, L"Select screenshot directory"); - DEF_STR(DIR_TEXTURE, L" Texture pack directory: "); + DEF_STR(DIR_TEXTURE, L" Texture pack directory: "); DEF_STR(DIR_SELECT_TEXTURE, L"Select texture pack directory"); //Options (general) Tab - DEF_STR(OPTION_AUTO_SLEEP, L"Pause emulation when window is not active"); + DEF_STR(OPTION_AUTO_SLEEP, L"Pause emulation when window is not active"); DEF_STR(OPTION_AUTO_FULLSCREEN, L"Enter full-screen mode when loading a ROM"); - DEF_STR(OPTION_BASIC_MODE, L"Hide advanced settings"); - DEF_STR(OPTION_REMEMBER_CHEAT, L"Remember selected cheats"); - DEF_STR(OPTION_DISABLE_SS, L"Disable screen saver when running a ROM"); - DEF_STR(OPTION_DISPLAY_FR, L"Display speed"); - DEF_STR(OPTION_CHECK_RUNNING, L"Check if Project64 is already running"); - DEF_STR(OPTION_CHANGE_FR, L"Speed display:"); + DEF_STR(OPTION_BASIC_MODE, L"Hide advanced settings"); + DEF_STR(OPTION_REMEMBER_CHEAT, L"Remember selected cheats"); + DEF_STR(OPTION_DISABLE_SS, L"Disable screen saver when running a ROM"); + DEF_STR(OPTION_DISPLAY_FR, L"Display speed"); + DEF_STR(OPTION_CHECK_RUNNING, L"Check if Project64 is already running"); + DEF_STR(OPTION_CHANGE_FR, L"Speed display:"); //ROM Browser Tab - DEF_STR(RB_MAX_ROMS, L"Max # of ROMs remembered (0-10):"); - DEF_STR(RB_ROMS, L"ROMs"); - DEF_STR(RB_MAX_DIRS, L"Max # of ROM dirs remembered (0-10):"); - DEF_STR(RB_DIRS, L"dirs"); - DEF_STR(RB_USE, L"Use ROM browser"); - DEF_STR(RB_DIR_RECURSION, L"Use directory recursion"); + DEF_STR(RB_MAX_ROMS, L"Max # of ROMs remembered (0-10):"); + DEF_STR(RB_ROMS, L"ROMs"); + DEF_STR(RB_MAX_DIRS, L"Max # of ROM dirs remembered (0-10):"); + DEF_STR(RB_DIRS, L"dirs"); + DEF_STR(RB_USE, L"Use ROM browser"); + DEF_STR(RB_DIR_RECURSION, L"Use directory recursion"); DEF_STR(RB_AVALIABLE_FIELDS, L"Available fields:"); - DEF_STR(RB_SHOW_FIELDS, L"Order of fields:"); - DEF_STR(RB_ADD, L"Add ->"); - DEF_STR(RB_REMOVE, L"<- Remove"); - DEF_STR(RB_UP, L"Up"); - DEF_STR(RB_DOWN, L"Down"); - DEF_STR(RB_REFRESH, L"Automatically refresh browser"); + DEF_STR(RB_SHOW_FIELDS, L"Order of fields:"); + DEF_STR(RB_ADD, L"Add ->"); + DEF_STR(RB_REMOVE, L"<- Remove"); + DEF_STR(RB_UP, L"Up"); + DEF_STR(RB_DOWN, L"Down"); + DEF_STR(RB_REFRESH, L"Automatically refresh browser"); //Advanced Options - DEF_STR(ADVANCE_INFO, L"Most of these changes will not take effect until a new ROM is opened or current ROM is reset."); - DEF_STR(ADVANCE_DEFAULTS, L"Core Defaults"); - DEF_STR(ADVANCE_CPU_STYLE, L"CPU core style:"); - DEF_STR(ADVANCE_SMCM, L"Self-mod methods:"); - DEF_STR(ADVANCE_MEM_SIZE, L"Default memory size:"); - DEF_STR(ADVANCE_ABL, L"Advanced block linking"); - DEF_STR(ADVANCE_AUTO_START, L"Start emulation when ROM is opened"); - DEF_STR(ADVANCE_OVERWRITE, L"Always override default settings with ones from RDB"); - DEF_STR(ADVANCE_COMPRESS, L"Automatically compress saved states"); - DEF_STR(ADVANCE_DEBUGGER, L"Enable debugger"); - DEF_STR(ADVANCE_SMM_CACHE, L"Cache"); - DEF_STR(ADVANCE_SMM_PIDMA, L"PI DMA"); - DEF_STR(ADVANCE_SMM_VALIDATE,L"Start changed"); + DEF_STR(ADVANCE_INFO, L"Most of these changes will not take effect until a new ROM is opened or current ROM is reset."); + DEF_STR(ADVANCE_DEFAULTS, L"Core Defaults"); + DEF_STR(ADVANCE_CPU_STYLE, L"CPU core style:"); + DEF_STR(ADVANCE_SMCM, L"Self-mod methods:"); + DEF_STR(ADVANCE_MEM_SIZE, L"Default memory size:"); + DEF_STR(ADVANCE_ABL, L"Advanced block linking"); + DEF_STR(ADVANCE_AUTO_START, L"Start emulation when ROM is opened"); + DEF_STR(ADVANCE_OVERWRITE, L"Always override default settings with ones from RDB"); + DEF_STR(ADVANCE_COMPRESS, L"Automatically compress saved states"); + DEF_STR(ADVANCE_DEBUGGER, L"Enable debugger"); + DEF_STR(ADVANCE_SMM_CACHE, L"Cache"); + DEF_STR(ADVANCE_SMM_PIDMA, L"PI DMA"); + DEF_STR(ADVANCE_SMM_VALIDATE, L"Start changed"); DEF_STR(ADVANCE_SMM_PROTECT, L"Protect memory"); - DEF_STR(ADVANCE_SMM_TLB, L"TLB unmapping"); + DEF_STR(ADVANCE_SMM_TLB, L"TLB unmapping"); //ROM Options - DEF_STR(ROM_CPU_STYLE, L"CPU core style:"); - DEF_STR(ROM_VIREFRESH, L"VI refresh rate:"); - DEF_STR(ROM_MEM_SIZE, L"Memory size:"); - DEF_STR(ROM_ABL, L"Advanced block linking"); - DEF_STR(ROM_SAVE_TYPE, L"Default save type:"); - DEF_STR(ROM_COUNTER_FACTOR, L"Counter factor:"); - DEF_STR(ROM_LARGE_BUFFER, L"Larger compile buffer"); - DEF_STR(ROM_USE_TLB, L"Use TLB"); - DEF_STR(ROM_REG_CACHE, L"Register caching"); - DEF_STR(ROM_DELAY_SI, L"Delay SI interrupt"); - DEF_STR(ROM_FAST_SP, L"Fast SP"); - DEF_STR(ROM_DEFAULT, L"Default"); - DEF_STR(ROM_AUDIO_SIGNAL, L"RSP audio signal"); - DEF_STR(ROM_FIXED_AUDIO, L"Fixed audio timing"); - DEF_STR(ROM_FUNC_FIND, L"Function lookup method:"); - DEF_STR(ROM_CUSTOM_SMM, L"Custom self mod Method"); - DEF_STR(ROM_SYNC_AUDIO, L"Sync using audio"); - DEF_STR(ROM_COUNTPERBYTE, L"AI count per byte:"); - DEF_STR(ROM_32BIT, L"32-bit engine:"); - DEF_STR(ROM_DELAY_DP, L"Delay DP interrupt:"); + DEF_STR(ROM_CPU_STYLE, L"CPU core style:"); + DEF_STR(ROM_VIREFRESH, L"VI refresh rate:"); + DEF_STR(ROM_MEM_SIZE, L"Memory size:"); + DEF_STR(ROM_ABL, L"Advanced block linking"); + DEF_STR(ROM_SAVE_TYPE, L"Default save type:"); + DEF_STR(ROM_COUNTER_FACTOR, L"Counter factor:"); + DEF_STR(ROM_LARGE_BUFFER, L"Larger compile buffer"); + DEF_STR(ROM_USE_TLB, L"Use TLB"); + DEF_STR(ROM_REG_CACHE, L"Register caching"); + DEF_STR(ROM_DELAY_SI, L"Delay SI interrupt"); + DEF_STR(ROM_FAST_SP, L"Fast SP"); + DEF_STR(ROM_DEFAULT, L"Default"); + DEF_STR(ROM_AUDIO_SIGNAL, L"RSP audio signal"); + DEF_STR(ROM_FIXED_AUDIO, L"Fixed audio timing"); + DEF_STR(ROM_FUNC_FIND, L"Function lookup method:"); + DEF_STR(ROM_CUSTOM_SMM, L"Custom self mod Method"); + DEF_STR(ROM_SYNC_AUDIO, L"Sync using audio"); + DEF_STR(ROM_COUNTPERBYTE, L"AI count per byte:"); + DEF_STR(ROM_32BIT, L"32-bit engine:"); + DEF_STR(ROM_DELAY_DP, L"Delay DP interrupt:"); //Core Styles - DEF_STR(CORE_INTERPTER, L"Interpreter"); - DEF_STR(CORE_RECOMPILER, L"Recompiler"); - DEF_STR(CORE_SYNC, L"Synchronize cores"); + DEF_STR(CORE_INTERPTER, L"Interpreter"); + DEF_STR(CORE_RECOMPILER, L"Recompiler"); + DEF_STR(CORE_SYNC, L"Synchronize cores"); //Self Mod Methods - DEF_STR(SMCM_NONE, L"None"); - DEF_STR(SMCM_CACHE, L"Cache"); - DEF_STR(SMCM_PROECTED, L"Protect memory"); - DEF_STR(SMCM_CHECK_MEM, L"Check memory & cache"); - DEF_STR(SMCM_CHANGE_MEM, L"Change memory & cache"); - DEF_STR(SMCM_CHECK_ADV, L"Check memory advance"); - DEF_STR(SMCM_CACHE2, L"Clear code on cache"); + DEF_STR(SMCM_NONE, L"None"); + DEF_STR(SMCM_CACHE, L"Cache"); + DEF_STR(SMCM_PROECTED, L"Protect memory"); + DEF_STR(SMCM_CHECK_MEM, L"Check memory & cache"); + DEF_STR(SMCM_CHANGE_MEM, L"Change memory & cache"); + DEF_STR(SMCM_CHECK_ADV, L"Check memory advance"); + DEF_STR(SMCM_CACHE2, L"Clear code on cache"); //Function Lookup method - DEF_STR(FLM_PLOOKUP, L"Physical lookup table"); - DEF_STR(FLM_VLOOKUP, L"Virtual lookup table"); - DEF_STR(FLM_CHANGEMEM, L"Change memory"); + DEF_STR(FLM_PLOOKUP, L"Physical lookup table"); + DEF_STR(FLM_VLOOKUP, L"Virtual lookup table"); + DEF_STR(FLM_CHANGEMEM, L"Change memory"); //RDRAM Size - DEF_STR(RDRAM_4MB, L"4 MB"); - DEF_STR(RDRAM_8MB, L"8 MB"); + DEF_STR(RDRAM_4MB, L"4 MB"); + DEF_STR(RDRAM_8MB, L"8 MB"); //Advanced Block Linking - DEF_STR(ABL_ON, L"On"); - DEF_STR(ABL_OFF, L"Off"); + DEF_STR(ABL_ON, L"On"); + DEF_STR(ABL_OFF, L"Off"); //Save Type - DEF_STR(SAVE_FIRST_USED, L"Use first-used save type"); - DEF_STR(SAVE_4K_EEPROM, L"4-kbit EEPROM"); - DEF_STR(SAVE_16K_EEPROM, L"16-kbit EEPROM"); - DEF_STR(SAVE_SRAM, L"SRAM"); - DEF_STR(SAVE_FLASHRAM, L"Flash RAM"); + DEF_STR(SAVE_FIRST_USED, L"Use first-used save type"); + DEF_STR(SAVE_4K_EEPROM, L"4-kbit EEPROM"); + DEF_STR(SAVE_16K_EEPROM, L"16-kbit EEPROM"); + DEF_STR(SAVE_SRAM, L"SRAM"); + DEF_STR(SAVE_FLASHRAM, L"Flash RAM"); //Shell Integration Tab - DEF_STR(SHELL_TEXT, L"File extension association:"); + DEF_STR(SHELL_TEXT, L"File extension association:"); //ROM Notes - DEF_STR(NOTE_STATUS, L"ROM status:"); - DEF_STR(NOTE_CORE, L"Core note:"); - DEF_STR(NOTE_PLUGIN, L"Plugin note:"); + DEF_STR(NOTE_STATUS, L"ROM status:"); + DEF_STR(NOTE_CORE, L"Core note:"); + DEF_STR(NOTE_PLUGIN, L"Plugin note:"); // Accelerator Selector - DEF_STR(ACCEL_CPUSTATE_TITLE, L"CPU state:"); - DEF_STR(ACCEL_MENUITEM_TITLE, L"Menu item:"); + DEF_STR(ACCEL_CPUSTATE_TITLE, L"CPU state:"); + DEF_STR(ACCEL_MENUITEM_TITLE, L"Menu item:"); DEF_STR(ACCEL_CURRENTKEYS_TITLE, L"Current keys:"); - DEF_STR(ACCEL_SELKEY_TITLE, L"Select new shortcut key:"); - DEF_STR(ACCEL_ASSIGNEDTO_TITLE, L"Currently assigned to:"); - DEF_STR(ACCEL_ASSIGN_BTN, L"Assign"); - DEF_STR(ACCEL_REMOVE_BTN, L"Remove"); - DEF_STR(ACCEL_RESETALL_BTN, L"Reset all"); - DEF_STR(ACCEL_CPUSTATE_1, L"Game not playing"); - DEF_STR(ACCEL_CPUSTATE_2, L"Game playing"); - DEF_STR(ACCEL_CPUSTATE_3, L"Game playing (windowed)"); - DEF_STR(ACCEL_CPUSTATE_4, L"Game playing (full-screen)"); - DEF_STR(ACCEL_DETECTKEY, L"Detect Key"); + DEF_STR(ACCEL_SELKEY_TITLE, L"Select new shortcut key:"); + DEF_STR(ACCEL_ASSIGNEDTO_TITLE, L"Currently assigned to:"); + DEF_STR(ACCEL_ASSIGN_BTN, L"Assign"); + DEF_STR(ACCEL_REMOVE_BTN, L"Remove"); + DEF_STR(ACCEL_RESETALL_BTN, L"Reset all"); + DEF_STR(ACCEL_CPUSTATE_1, L"Game not playing"); + DEF_STR(ACCEL_CPUSTATE_2, L"Game playing"); + DEF_STR(ACCEL_CPUSTATE_3, L"Game playing (windowed)"); + DEF_STR(ACCEL_CPUSTATE_4, L"Game playing (full-screen)"); + DEF_STR(ACCEL_DETECTKEY, L"Detect Key"); // Frame Rate Option - DEF_STR(STR_FR_VIS, L"Vertical interrupts per second"); - DEF_STR(STR_FR_DLS, L"Display lists per second"); - DEF_STR(STR_FR_PERCENT, L"Percentage of full speed"); + DEF_STR(STR_FR_VIS, L"Vertical interrupts per second"); + DEF_STR(STR_FR_DLS, L"Display lists per second"); + DEF_STR(STR_FR_PERCENT, L"Percentage of full speed"); // Increase speed - DEF_STR(STR_INSREASE_SPEED, L"Increase Game Speed"); - DEF_STR(STR_DECREASE_SPEED, L"Decrease Game Speed"); + DEF_STR(STR_INSREASE_SPEED, L"Increase Game Speed"); + DEF_STR(STR_DECREASE_SPEED, L"Decrease Game Speed"); //Bottom page buttons - DEF_STR(BOTTOM_RESET_PAGE, L"Reset Page"); - DEF_STR(BOTTOM_RESET_ALL, L"Reset All"); - DEF_STR(BOTTOM_APPLY, L"Apply"); - DEF_STR(BOTTOM_CLOSE, L"Close"); + DEF_STR(BOTTOM_RESET_PAGE, L"Reset Page"); + DEF_STR(BOTTOM_RESET_ALL, L"Reset All"); + DEF_STR(BOTTOM_APPLY, L"Apply"); + DEF_STR(BOTTOM_CLOSE, L"Close"); /********************************************************************************* * ROM Information * *********************************************************************************/ //ROM Info Title - DEF_STR(INFO_TITLE, L"ROM Information"); + DEF_STR(INFO_TITLE, L"ROM Information"); //ROM Info Text - DEF_STR(INFO_ROM_NAME_TEXT, L"ROM name:"); - DEF_STR(INFO_FILE_NAME_TEXT, L"File name:"); - DEF_STR(INFO_LOCATION_TEXT, L"Location:"); - DEF_STR(INFO_SIZE_TEXT, L"ROM size:"); - DEF_STR(INFO_CART_ID_TEXT, L"Cartridge ID:"); + DEF_STR(INFO_ROM_NAME_TEXT, L"ROM name:"); + DEF_STR(INFO_FILE_NAME_TEXT, L"File name:"); + DEF_STR(INFO_LOCATION_TEXT, L"Location:"); + DEF_STR(INFO_SIZE_TEXT, L"ROM size:"); + DEF_STR(INFO_CART_ID_TEXT, L"Cartridge ID:"); DEF_STR(INFO_MANUFACTURER_TEXT, L"Manufacturer:"); - DEF_STR(INFO_COUNTRY_TEXT, L"Country:"); - DEF_STR(INFO_CRC1_TEXT, L"CRC1:"); - DEF_STR(INFO_CRC2_TEXT, L"CRC2:"); - DEF_STR(INFO_CIC_CHIP_TEXT, L"CIC chip:"); - DEF_STR(INFO_MD5_TEXT, L"MD5:"); + DEF_STR(INFO_COUNTRY_TEXT, L"Country:"); + DEF_STR(INFO_CRC1_TEXT, L"CRC1:"); + DEF_STR(INFO_CRC2_TEXT, L"CRC2:"); + DEF_STR(INFO_CIC_CHIP_TEXT, L"CIC chip:"); + DEF_STR(INFO_MD5_TEXT, L"MD5:"); /********************************************************************************* * Cheats * *********************************************************************************/ //Cheat List - DEF_STR(CHEAT_TITLE, L"Cheats"); - DEF_STR(CHEAT_LIST_FRAME, L"Cheats:"); - DEF_STR(CHEAT_NOTES_FRAME, L" Notes: "); - DEF_STR(CHEAT_MARK_ALL, L"Mark All"); - DEF_STR(CHEAT_MARK_NONE, L"Unmark All"); + DEF_STR(CHEAT_TITLE, L"Cheats"); + DEF_STR(CHEAT_LIST_FRAME, L"Cheats:"); + DEF_STR(CHEAT_NOTES_FRAME, L" Notes: "); + DEF_STR(CHEAT_MARK_ALL, L"Mark All"); + DEF_STR(CHEAT_MARK_NONE, L"Unmark All"); //Add Cheat - DEF_STR(CHEAT_ADDCHEAT_FRAME, L"Add Cheat"); - DEF_STR(CHEAT_ADDCHEAT_NAME, L"Name:"); - DEF_STR(CHEAT_ADDCHEAT_CODE, L"Code:"); + DEF_STR(CHEAT_ADDCHEAT_FRAME, L"Add Cheat"); + DEF_STR(CHEAT_ADDCHEAT_NAME, L"Name:"); + DEF_STR(CHEAT_ADDCHEAT_CODE, L"Code:"); DEF_STR(CHEAT_ADDCHEAT_INSERT, L"Insert"); - DEF_STR(CHEAT_ADDCHEAT_CLEAR, L"Clear"); - DEF_STR(CHEAT_ADDCHEAT_NOTES, L" Cheat Notes: "); - DEF_STR(CHEAT_ADD_TO_DB, L"Add to DB"); + DEF_STR(CHEAT_ADDCHEAT_CLEAR, L"Clear"); + DEF_STR(CHEAT_ADDCHEAT_NOTES, L" Cheat Notes: "); + DEF_STR(CHEAT_ADD_TO_DB, L"Add to DB"); //Code extension - DEF_STR(CHEAT_CODE_EXT_TITLE, L"Code Extensions"); - DEF_STR(CHEAT_CODE_EXT_TXT, L"Please choose a value to be used for:"); - DEF_STR(CHEAT_OK, L"OK"); - DEF_STR(CHEAT_CANCEL, L"Cancel"); + DEF_STR(CHEAT_CODE_EXT_TITLE, L"Code Extensions"); + DEF_STR(CHEAT_CODE_EXT_TXT, L"Please choose a value to be used for:"); + DEF_STR(CHEAT_OK, L"OK"); + DEF_STR(CHEAT_CANCEL, L"Cancel"); //Digital Value - DEF_STR(CHEAT_QUANTITY_TITLE, L"Quantity Digit"); - DEF_STR(CHEAT_CHOOSE_VALUE, L"Please choose a value for:"); - DEF_STR(CHEAT_VALUE, L"&Value"); - DEF_STR(CHEAT_FROM, L"from"); - DEF_STR(CHEAT_TO, L"to"); - DEF_STR(CHEAT_NOTES, L"&Notes:"); - DEF_STR(CHEAT_ADDCHEAT_ADD, L"Add Cheat"); - DEF_STR(CHEAT_ADDCHEAT_NEW, L"New Cheat"); - DEF_STR(CHEAT_ADDCHEAT_CODEDES,L"
"); - DEF_STR(CHEAT_ADDCHEAT_OPT, L"Options:"); + DEF_STR(CHEAT_QUANTITY_TITLE, L"Quantity Digit"); + DEF_STR(CHEAT_CHOOSE_VALUE, L"Please choose a value for:"); + DEF_STR(CHEAT_VALUE, L"&Value"); + DEF_STR(CHEAT_FROM, L"from"); + DEF_STR(CHEAT_TO, L"to"); + DEF_STR(CHEAT_NOTES, L"&Notes:"); + DEF_STR(CHEAT_ADDCHEAT_ADD, L"Add Cheat"); + DEF_STR(CHEAT_ADDCHEAT_NEW, L"New Cheat"); + DEF_STR(CHEAT_ADDCHEAT_CODEDES, L"
"); + DEF_STR(CHEAT_ADDCHEAT_OPT, L"Options:"); DEF_STR(CHEAT_ADDCHEAT_OPTDES, L"