From a3f4830ecdc578ecbf47ea787f51d3a6c4003d7c Mon Sep 17 00:00:00 2001 From: Squall-Leonhart Date: Thu, 24 Jul 2025 02:26:11 +1000 Subject: [PATCH] Make DelaySI Configurable make EOF consistent language update, make control spacing consistent --- Config/Project64.rdb | 34 +++++++++----- .../Project64-core/Multilanguage/Language.cpp | 2 +- .../Project64-core/N64System/Mips/PifRam.cpp | 12 ++--- Source/Project64-core/Settings.cpp | 2 +- .../Project64-core/Settings/GameSettings.cpp | 4 +- Source/Project64-core/Settings/GameSettings.h | 4 +- .../Settings/SettingsPage-Game-General.cpp | 6 ++- .../Settings/SettingsPage-Game-General.h | 2 +- Source/Project64/UserInterface/UIResources.rc | 44 +++++++++---------- Source/Project64/UserInterface/resource.h | 9 ++-- 10 files changed, 66 insertions(+), 53 deletions(-) diff --git a/Config/Project64.rdb b/Config/Project64.rdb index 9cab986a6..da58ae18c 100644 --- a/Config/Project64.rdb +++ b/Config/Project64.rdb @@ -806,7 +806,7 @@ Status=Compatible Clear Frame=2 Counter Factor=1 Culling=1 -Delay SI=Yes +Delay SI=2304 RDRAM Size=4 [5326696F-FE9A99C3-C:45] @@ -817,7 +817,7 @@ Status=Compatible Clear Frame=2 Counter Factor=1 Culling=1 -Delay SI=Yes +Delay SI=2304 RDRAM Size=4 [B3D451C6-E1CB58E2-C:4A] @@ -1256,7 +1256,7 @@ Internal Name=CITY TOUR GP Status=Compatible 32bit=Yes Counter Factor=1 -Delay SI=Yes +Delay SI=2304 Save Type=16kbit Eeprom [FA5A3DFF-B4C9CDB9-C:45] @@ -1392,7 +1392,7 @@ Good Name=Cruis'n USA (E) Internal Name=Cruis'n USA Status=Compatible 32bit=Yes -Delay SI=Yes +Delay SI=2304 RDRAM Size=4 [FF2F2FB4-D161149A-C:45] @@ -1401,7 +1401,7 @@ Internal Name=Cruis'n USA Status=Compatible 32bit=Yes Culling=1 -Delay SI=Yes +Delay SI=2304 RDRAM Size=4 [5306CF45-CBC49250-C:45] @@ -1409,7 +1409,7 @@ Good Name=Cruis'n USA (U) (V1.1) Internal Name=Cruis'n USA Status=Compatible 32bit=Yes -Delay SI=Yes +Delay SI=2304 RDRAM Size=4 [B3402554-7340C004-C:45] @@ -1417,7 +1417,7 @@ Good Name=Cruis'n USA (U) (V1.2) Internal Name=Cruis'n USA Status=Compatible 32bit=Yes -Delay SI=Yes +Delay SI=2304 RDRAM Size=4 [83F3931E-CB72223D-C:50] @@ -2534,7 +2534,7 @@ Internal Name=GT64 Status=Compatible 32bit=Yes Counter Factor=1 -Delay SI=Yes +Delay SI=2304 Save Type=16kbit Eeprom [C49ADCA2-F1501B62-C:45] @@ -2543,7 +2543,7 @@ Internal Name=GT64 Status=Compatible 32bit=Yes Counter Factor=1 -Delay SI=Yes +Delay SI=2304 Save Type=16kbit Eeprom //================ H ================ @@ -4476,7 +4476,7 @@ Good Name=Nightmare Creatures (U) Internal Name=NIGHTMARE CREATURES Status=Compatible 32bit=Yes -Delay SI=Yes +Delay SI=2304 RDRAM Size=4 ViRefresh=2200 @@ -4946,6 +4946,7 @@ Status=Compatible Culling=1 Emulate Clear=1 Linking=Off +Delay SI=8192 RDRAM Size=4 [91C9E05D-AD3AAFB9-C:50] @@ -4956,6 +4957,7 @@ Status=Compatible Culling=1 Emulate Clear=1 Linking=Off +Delay SI=8192 RDRAM Size=4 [A23553A3-42BF2D39-C:46] @@ -4966,6 +4968,7 @@ Status=Compatible Culling=1 Emulate Clear=1 Linking=Off +Delay SI=8192 RDRAM Size=4 [42011E1B-E3552DB5-C:44] @@ -4976,6 +4979,7 @@ Status=Compatible Culling=1 Emulate Clear=1 Linking=Off +Delay SI=8192 RDRAM Size=4 [A53FA82D-DAE2C15D-C:49] @@ -4986,6 +4990,7 @@ Status=Compatible Culling=1 Emulate Clear=1 Linking=Off +Delay SI=8192 RDRAM Size=4 [665E8259-D098BD1D-C:4A] @@ -4996,6 +5001,7 @@ Status=Compatible Culling=1 Emulate Clear=1 Linking=Off +Delay SI=8192 RDRAM Size=4 Save Type=Sram @@ -5007,6 +5013,7 @@ Status=Compatible Culling=1 Emulate Clear=1 Linking=Off +Delay SI=8192 RDRAM Size=4 [90F5D9B3-9D0EDCF0-C:45] @@ -5017,6 +5024,7 @@ Status=Compatible Culling=1 Emulate Clear=1 Linking=Off +Delay SI=8192 RDRAM Size=4 [1A122D43-C17DAF0F-C:45] @@ -5027,6 +5035,7 @@ Status=Compatible Culling=1 Emulate Clear=1 Linking=Off +Delay SI=8192 RDRAM Size=4 [9C8FB2FA-9B84A09B-C:45] @@ -5037,6 +5046,7 @@ Status=Compatible Culling=1 Emulate Clear=1 Linking=Off +Delay SI=8192 RDRAM Size=4 [2952369C-B6E4C3A8-C:50] @@ -5748,7 +5758,7 @@ Good Name=Shin Nihon Pro Wrestling Toukon Road - Brave Spirits (J) Internal Name=TOUKON ROAD Status=Compatible 32bit=Yes -Delay SI=Yes +Delay SI=2304 [551C7F43-9149831C-C:4A] Good Name=Shin Nihon Pro Wrestling Toukon Road 2 - The Next Generation (J) @@ -7150,7 +7160,7 @@ Status=Compatible 32bit=Yes Counter Factor=1 Culling=1 -Delay SI=Yes +Delay SI=2304 RDRAM Size=4 //================ V ================ diff --git a/Source/Project64-core/Multilanguage/Language.cpp b/Source/Project64-core/Multilanguage/Language.cpp index 3def12f22..b0c54eece 100644 --- a/Source/Project64-core/Multilanguage/Language.cpp +++ b/Source/Project64-core/Multilanguage/Language.cpp @@ -259,7 +259,7 @@ void CLanguage::LoadDefaultStrings(void) DEF_STR(ROM_LARGE_BUFFER, "Larger compile buffer"); DEF_STR(ROM_USE_TLB, "Use TLB"); DEF_STR(ROM_REG_CACHE, "Register caching"); - DEF_STR(ROM_DELAY_SI, "Delay SI interrupt"); + DEF_STR(ROM_DELAY_SI, "Delay SI interrupt:"); DEF_STR(ROM_FAST_SP, "Fast SP"); DEF_STR(ROM_DEFAULT, "Default"); DEF_STR(ROM_AUDIO_SIGNAL, "RSP audio signal"); diff --git a/Source/Project64-core/N64System/Mips/PifRam.cpp b/Source/Project64-core/N64System/Mips/PifRam.cpp index ef2f6883a..2bafee049 100644 --- a/Source/Project64-core/N64System/Mips/PifRam.cpp +++ b/Source/Project64-core/N64System/Mips/PifRam.cpp @@ -321,9 +321,9 @@ void CPifRam::SI_DMA_READ() if(g_System->bRandomizeSIPIInterrupts()) { - if(g_System->bDelaySI()) + if (g_System->DelaySI() != 0) { - g_SystemTimer->SetTimer(CSystemTimer::SiTimer, 0x900 + (g_Random->next() % 0x40), false); + g_SystemTimer->SetTimer(CSystemTimer::SiTimer, g_System->DelaySI() + (g_Random->next() % 0x40), false); } else { @@ -332,9 +332,9 @@ void CPifRam::SI_DMA_READ() } else { - if(g_System->bDelaySI()) + if (g_System->DelaySI() != 0) { - g_SystemTimer->SetTimer(CSystemTimer::SiTimer, 0x900, false); + g_SystemTimer->SetTimer(CSystemTimer::SiTimer, g_System->DelaySI(), false); } else { @@ -422,9 +422,9 @@ void CPifRam::SI_DMA_WRITE() PifRamWrite(); - if (g_System->bDelaySI()) + if (g_System->DelaySI() != 0) { - g_SystemTimer->SetTimer(CSystemTimer::SiTimer, 0x900, false); + g_SystemTimer->SetTimer(CSystemTimer::SiTimer, g_System->DelaySI(), false); } else { diff --git a/Source/Project64-core/Settings.cpp b/Source/Project64-core/Settings.cpp index 3f2655287..8d82f9a72 100644 --- a/Source/Project64-core/Settings.cpp +++ b/Source/Project64-core/Settings.cpp @@ -148,7 +148,7 @@ void CSettings::AddHowToHandleSetting(const char * BaseDirectory) AddHandler(Rdb_CounterFactor, new CSettingTypeRomDatabase("Counter Factor", Default_CounterFactor)); AddHandler(Rdb_UseTlb, new CSettingTypeRDBYesNo("Use TLB", Default_UseTlb)); AddHandler(Rdb_DelayDP, new CSettingTypeRDBYesNo("Delay DP", true)); - AddHandler(Rdb_DelaySi, new CSettingTypeRDBYesNo("Delay SI", false)); + AddHandler(Rdb_DelaySi, new CSettingTypeRomDatabase("Delay SI", 0u)); AddHandler(Rdb_32Bit, new CSettingTypeRDBYesNo("32bit", Default_32Bit)); AddHandler(Rdb_FastSP, new CSettingTypeRDBYesNo("Fast SP", true)); AddHandler(Rdb_FixedAudio, new CSettingTypeRomDatabase("Fixed Audio", Default_FixedAudio)); diff --git a/Source/Project64-core/Settings/GameSettings.cpp b/Source/Project64-core/Settings/GameSettings.cpp index e11ba5864..5957635b0 100644 --- a/Source/Project64-core/Settings/GameSettings.cpp +++ b/Source/Project64-core/Settings/GameSettings.cpp @@ -14,7 +14,7 @@ uint32_t CGameSettings::m_CountPerOp = 2; uint32_t CGameSettings::m_ViRefreshRate = 1500; uint32_t CGameSettings::m_AiCountPerBytes = 500; bool CGameSettings::m_DelayDP = false; -bool CGameSettings::m_DelaySI = false; +uint32_t CGameSettings::m_DelaySI = 0; bool CGameSettings::m_bRandomizeSIPIInterrupts = true; uint32_t CGameSettings::m_RdramSize = 0; bool CGameSettings::m_bFixedAudio = true; @@ -48,7 +48,7 @@ void CGameSettings::RefreshGameSettings() m_AiCountPerBytes = g_Settings->LoadDword(Game_AiCountPerBytes); m_CountPerOp = g_Settings->LoadDword(Game_CounterFactor); m_RdramSize = g_Settings->LoadDword(Game_RDRamSize); - m_DelaySI = g_Settings->LoadBool(Game_DelaySI); + m_DelaySI = g_Settings->LoadDword(Game_DelaySI); m_bRandomizeSIPIInterrupts = g_Settings->LoadBool(Game_RandomizeSIPIInterrupts); m_DelayDP = g_Settings->LoadBool(Game_DelayDP); m_bFixedAudio = g_Settings->LoadBool(Game_FixedAudio); diff --git a/Source/Project64-core/Settings/GameSettings.h b/Source/Project64-core/Settings/GameSettings.h index f9cd485d9..157bc2476 100644 --- a/Source/Project64-core/Settings/GameSettings.h +++ b/Source/Project64-core/Settings/GameSettings.h @@ -18,7 +18,7 @@ public: inline static uint32_t ViRefreshRate(void) { return m_ViRefreshRate; } inline static uint32_t AiCountPerBytes(void) { return m_AiCountPerBytes; } inline static bool bDelayDP(void) { return m_DelayDP; } - inline static bool bDelaySI(void) { return m_DelaySI; } + inline static uint32_t DelaySI(void) { return m_DelaySI; } inline static bool bRandomizeSIPIInterrupts(void) { return m_bRandomizeSIPIInterrupts; } inline static uint32_t RdramSize(void) { return m_RdramSize; } inline static bool bFixedAudio(void) { return m_bFixedAudio; } @@ -55,7 +55,7 @@ private: static uint32_t m_ViRefreshRate; static uint32_t m_AiCountPerBytes; static bool m_DelayDP; - static bool m_DelaySI; + static uint32_t m_DelaySI; static bool m_bRandomizeSIPIInterrupts; static uint32_t m_RdramSize; static bool m_bFixedAudio; diff --git a/Source/Project64/UserInterface/Settings/SettingsPage-Game-General.cpp b/Source/Project64/UserInterface/Settings/SettingsPage-Game-General.cpp index 92212abfa..93b3cc1a7 100644 --- a/Source/Project64/UserInterface/Settings/SettingsPage-Game-General.cpp +++ b/Source/Project64/UserInterface/Settings/SettingsPage-Game-General.cpp @@ -25,7 +25,7 @@ CGameGeneralPage::CGameGeneralPage(HWND hParent, const RECT & rcDispay) SetDlgItemText(IDC_DELAY_DP, wGS(ROM_DELAY_DP).c_str()); SetDlgItemText(IDC_SYNC_AUDIO, wGS(ROM_SYNC_AUDIO).c_str()); SetDlgItemText(IDC_USE_TLB, wGS(ROM_USE_TLB).c_str()); - SetDlgItemText(IDC_DELAY_SI, wGS(ROM_DELAY_SI).c_str()); + SetDlgItemText(IDC_DELAY_SI_TEXT, wGS(ROM_DELAY_SI).c_str()); SetDlgItemText(IDC_AUDIO_SIGNAL, wGS(ROM_AUDIO_SIGNAL).c_str()); SetDlgItemText(IDC_UNALIGNED_DMA, wGS(ROM_UNALIGNED_DMA).c_str()); SetDlgItemText(IDC_RANDOMIZE_SIPI_INTERRUPTS, wGS(ROM_RANDOMIZE_SIPI_INTERRUPTS).c_str()); @@ -35,7 +35,6 @@ CGameGeneralPage::CGameGeneralPage(HWND hParent, const RECT & rcDispay) AddModCheckBox(GetDlgItem(IDC_ROM_FIXEDAUDIO), Game_FixedAudio); AddModCheckBox(GetDlgItem(IDC_USE_TLB), Game_UseTlb); AddModCheckBox(GetDlgItem(IDC_DELAY_DP), Game_DelayDP); - AddModCheckBox(GetDlgItem(IDC_DELAY_SI), Game_DelaySI); AddModCheckBox(GetDlgItem(IDC_AUDIO_SIGNAL), Game_RspAudioSignal); AddModCheckBox(GetDlgItem(IDC_UNALIGNED_DMA), Game_UnalignedDMA); AddModCheckBox(GetDlgItem(IDC_RANDOMIZE_SIPI_INTERRUPTS), Game_RandomizeSIPIInterrupts); @@ -82,6 +81,9 @@ CGameGeneralPage::CGameGeneralPage(HWND hParent, const RECT & rcDispay) TxtBox = AddModTextBox(GetDlgItem(IDC_OVER_CLOCK_MODIFIER), Game_OverClockModifier, false); TxtBox->SetTextField(GetDlgItem(IDC_OVER_CLOCK_MODIFIER_TEXT)); + + TxtBox = AddModTextBox(GetDlgItem(IDC_DELAY_SI), Game_DelaySI, false); + TxtBox->SetTextField(GetDlgItem(IDC_DELAY_SI_TEXT)); if (!g_Settings->LoadBool(Setting_SyncViaAudioEnabled)) { diff --git a/Source/Project64/UserInterface/Settings/SettingsPage-Game-General.h b/Source/Project64/UserInterface/Settings/SettingsPage-Game-General.h index e0671b6d2..efac76598 100644 --- a/Source/Project64/UserInterface/Settings/SettingsPage-Game-General.h +++ b/Source/Project64/UserInterface/Settings/SettingsPage-Game-General.h @@ -16,7 +16,7 @@ class CGameGeneralPage : COMMAND_ID_HANDLER_EX(IDC_ROM_FIXEDAUDIO, CheckBoxChanged) COMMAND_ID_HANDLER_EX(IDC_USE_TLB, CheckBoxChanged) COMMAND_ID_HANDLER_EX(IDC_DELAY_DP, CheckBoxChanged) - COMMAND_ID_HANDLER_EX(IDC_DELAY_SI, CheckBoxChanged) + COMMAND_HANDLER_EX(IDC_DELAY_SI, EN_UPDATE, EditBoxChanged); COMMAND_ID_HANDLER_EX(IDC_AUDIO_SIGNAL, CheckBoxChanged) COMMAND_ID_HANDLER_EX(IDC_UNALIGNED_DMA, CheckBoxChanged) COMMAND_ID_HANDLER_EX(IDC_RANDOMIZE_SIPI_INTERRUPTS, CheckBoxChanged) diff --git a/Source/Project64/UserInterface/UIResources.rc b/Source/Project64/UserInterface/UIResources.rc index a2eeb1c4f..8c5dee023 100644 --- a/Source/Project64/UserInterface/UIResources.rc +++ b/Source/Project64/UserInterface/UIResources.rc @@ -208,29 +208,29 @@ BEGIN LTEXT "Good Name:",IDC_GOOD_NAME_TEXT,6,8,91,10 EDITTEXT IDC_GOOD_NAME,102,7,109,12,ES_AUTOHSCROLL | ES_READONLY CONTROL "",IDC_STATIC,"Static",SS_BLACKFRAME | SS_SUNKEN,4,25,208,1 - LTEXT "Memory Size:",IDC_MEMORY_SIZE_TEXT,6,34,91,10 - COMBOBOX IDC_RDRAM_SIZE,102,32,109,49,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT "Default Save type:",IDC_SAVE_TYPE_TEXT,6,49,91,10 - COMBOBOX IDC_SAVE_TYPE,102,47,109,49,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT "Counter Factor:",IDC_COUNTFACT_TEXT,6,64,91,10 - COMBOBOX IDC_COUNTFACT,102,61,109,49,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP - LTEXT "Vi Refresh Rate:",IDC_VIREFESH_TEXT,6,77,91,10 - EDITTEXT IDC_VIREFRESH,102,75,109,12,ES_AUTOHSCROLL | ES_NUMBER - LTEXT "AI Count Per Byte:",IDC_COUNTPERBYTE_TEXT,6,90,91,10 - EDITTEXT IDC_COUNTPERBYTE,102,88,109,12,ES_AUTOHSCROLL | ES_NUMBER - LTEXT "Overclock Modifier",IDC_OVER_CLOCK_MODIFIER_TEXT,6,103,91,10 - EDITTEXT IDC_OVER_CLOCK_MODIFIER,102,101,109,12,ES_AUTOHSCROLL | ES_NUMBER - CONTROL "",IDC_STATIC,"Static",SS_BLACKFRAME | SS_SUNKEN,3,116,208,1 - CONTROL "32 Bit Engine",IDC_ROM_32BIT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,121,91,10 - CONTROL "Use TLB",IDC_USE_TLB,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,121,91,10 - CONTROL "Fixed Audio Timing",IDC_ROM_FIXEDAUDIO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,132,91,10 - CONTROL "Sync using Audio",IDC_SYNC_AUDIO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,132,91,10 - CONTROL "Delay DP Interrupt",IDC_DELAY_DP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,143,91,10 - CONTROL "Delay SI Interrupt",IDC_DELAY_SI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,143,91,10 - CONTROL "RSP Audio Signal",IDC_AUDIO_SIGNAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,154,91,10 + + LTEXT "Memory Size:",IDC_MEMORY_SIZE_TEXT,6,31,91,10 + COMBOBOX IDC_RDRAM_SIZE,102,29,109,49,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "Default Save type:",IDC_SAVE_TYPE_TEXT,6,45,91,10 + COMBOBOX IDC_SAVE_TYPE,102,43,109,49,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "Counter Factor:",IDC_COUNTFACT_TEXT,6,59,91,10 + COMBOBOX IDC_COUNTFACT,102,57,109,49,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP + LTEXT "Vi Refresh Rate:",IDC_VIREFESH_TEXT,6,73,91,10 + EDITTEXT IDC_VIREFRESH,102,71,109,12,ES_AUTOHSCROLL | ES_NUMBER + LTEXT "AI Count Per Byte:",IDC_COUNTPERBYTE_TEXT,6,87,91,10 + EDITTEXT IDC_COUNTPERBYTE,102,85,109,12,ES_AUTOHSCROLL | ES_NUMBER + LTEXT "Overclock Modifier",IDC_OVER_CLOCK_MODIFIER_TEXT,6,101,91,10 + EDITTEXT IDC_OVER_CLOCK_MODIFIER,102,99,109,12,ES_AUTOHSCROLL | ES_NUMBER + LTEXT "Delay SI Interrupt:",IDC_DELAY_SI_TEXT,6,115,91,10 + EDITTEXT IDC_DELAY_SI,102,113,109,12,ES_AUTOHSCROLL | ES_NUMBER + CONTROL "",IDC_STATIC,"Static",SS_BLACKFRAME | SS_SUNKEN,3,129,208,1 + CONTROL "Fixed Audio Timing",IDC_ROM_FIXEDAUDIO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,134,91,10 + CONTROL "Sync using Audio",IDC_SYNC_AUDIO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,134,91,10 + CONTROL "Delay DP Interrupt",IDC_DELAY_DP,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,145,91,10 + CONTROL "RSP Audio Signal",IDC_AUDIO_SIGNAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,156,91,10 CONTROL "Randomize SI/PI interrupts",IDC_RANDOMIZE_SIPI_INTERRUPTS, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,154,107,10 - CONTROL "Unaligned DMA",IDC_UNALIGNED_DMA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,165,91,10 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,145,115,10 + CONTROL "Unaligned DMA",IDC_UNALIGNED_DMA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,167,91,10 END IDD_Settings_Accelerator DIALOGEX 0, 0, 218, 183 diff --git a/Source/Project64/UserInterface/resource.h b/Source/Project64/UserInterface/resource.h index fceac57c2..5710b6b02 100644 --- a/Source/Project64/UserInterface/resource.h +++ b/Source/Project64/UserInterface/resource.h @@ -294,10 +294,11 @@ #define IDC_STEPOVER_BTN 1120 #define IDC_CHEAT_LIST 1121 #define IDC_CHEAT_NAME 1122 -#define IDC_DELAY_SI 1123 -#define IDC_VALUE 1124 -#define IDC_RANGE 1125 -#define IDC_ADD 1126 +#define IDC_DELAY_SI_TEXT 1123 +#define IDC_DELAY_SI 1124 +#define IDC_VALUE 1125 +#define IDC_RANGE 1126 +#define IDC_ADD 1127 #define IDC_CODE_NAME 1130 #define IDC_AUTHOR 1131 #define IDC_CODE_AUTHOR 1132