Core: Revert Unaligned DMA to fix some hacks
This commit is contained in:
parent
f380d326fe
commit
f6e4443dda
File diff suppressed because it is too large
Load Diff
|
@ -287,6 +287,7 @@
|
|||
# 538# "32-বিট ইঞ্জিন" "
|
||||
# 539# "বিলম্ব ডিপি বাধা"
|
||||
# 5400# "ওভারক্লক মডিফায়ার:"
|
||||
# 5410# "স্বীকৃত ডিএমএ"
|
||||
# 5420# "এলোমেলো সি/পিআই বাধা"
|
||||
# 5440# "ডিস্কের সময় নির্ধারণ করুন:"
|
||||
# 5441# "টার্বো"
|
||||
|
|
|
@ -287,6 +287,7 @@
|
|||
#538# "Motor de 32 bits"
|
||||
#539# "Atrasar a interrupção do DP"
|
||||
#5400# "Modificador overclock:"
|
||||
#5410# "DMA desalinhado"
|
||||
#5420# "Aleatorizar as interrupções SI/PI"
|
||||
#5440# "Tempo de busca no disco:"
|
||||
#5441# "Turbo"
|
||||
|
|
|
@ -307,6 +307,7 @@
|
|||
#538# "32 位引擎"
|
||||
#539# "延迟 DP 中断"
|
||||
#5400# "超频修改器:"
|
||||
#5410# "不对齐 DMA"
|
||||
#5420# "随机化 SI/PI 中断"
|
||||
#5440# "磁盘搜索计时:"
|
||||
#5441# "快速"
|
||||
|
|
|
@ -287,6 +287,7 @@
|
|||
#538# "32-bit engine"
|
||||
#539# "Delay DP interrupt"
|
||||
#5400# "Overclock modifier:"
|
||||
#5410# "Unaligned DMA"
|
||||
#5420# "Randomize SI/PI interrupts"
|
||||
#5440# "Disk seek timing:"
|
||||
#5441# "Turbo"
|
||||
|
|
|
@ -309,6 +309,8 @@
|
|||
#5441# "Rapide"
|
||||
#5442# "Lente"
|
||||
|
||||
#5410# "DMA non alignée"
|
||||
|
||||
//Core Styles
|
||||
#540# "Interpréteur"
|
||||
#541# "Recompilateur"
|
||||
|
|
|
@ -287,6 +287,7 @@
|
|||
#538# "mesin 32-bit"
|
||||
#539# "Menunda interupsi DP"
|
||||
#5400# "Pengubah overclock:"
|
||||
#5410# "DMA Tidak Sejajar"
|
||||
#5420# "Acak interupsi SI/PI"
|
||||
#5440# "Waktu pencarian disk:"
|
||||
#5441# "Turbo"
|
||||
|
|
|
@ -287,6 +287,7 @@
|
|||
#538# "32bitエンジン"
|
||||
#539# "DP割り込み遅延"
|
||||
#5400# "Overclock modifier:"
|
||||
#5410# "非整列DMA"
|
||||
#5420# "SI/PI割り込みのランダム化"
|
||||
#5440# "ディスクシークのタイミング:"
|
||||
#5441# "ターボ"
|
||||
|
|
|
@ -287,6 +287,7 @@
|
|||
#538# "Engine de 32 bits"
|
||||
#539# "Atrasar a interrupção do DP"
|
||||
#5400# "Modificador overclock:"
|
||||
#5410# "DMA desalinhado"
|
||||
#5420# "Aleatorizar as interrupções SI/PI"
|
||||
#5440# "Tempo de busca em disco:"
|
||||
#5441# "Turbo"
|
||||
|
|
|
@ -287,6 +287,7 @@
|
|||
#538# "32-ਬਿੱਟ ਇੰਜਣ"
|
||||
#539# "ਡੀਪੀ ਰੁਕਾਵਟ ਵਿੱਚ ਦੇਰੀ"
|
||||
#5400# "ਓਵਰਕਲਾਕ ਮੋਡੀਫਾਇਰ:"
|
||||
#5410# "ਅਨਲਾਈਨ ਡੀਐਮਏ"
|
||||
#5420# "SI/PI ਰੁਕਾਵਟਾਂ ਨੂੰ ਰੈਂਡਮਾਈਜ਼ ਕਰੋ"
|
||||
#5440# "ਡਿਸਕ ਖੋਜ ਸਮਾਂ:"
|
||||
#5441# "ਟਰਬੋ"
|
||||
|
|
|
@ -290,6 +290,8 @@
|
|||
#5441# "Turbo"
|
||||
#5442# "Lento"
|
||||
|
||||
#5410# "DMA desalineado"
|
||||
|
||||
// Core styles
|
||||
#540# "Interpretador"
|
||||
#541# "Recompilador"
|
||||
|
|
|
@ -287,6 +287,7 @@
|
|||
# 538 # "Động cơ 32-bit"
|
||||
# 539 # "Trì hoãn ngắt DP"
|
||||
# 5400 # "Công cụ sửa đổi ép xung:"
|
||||
# 5410 # "DMA không dấu"
|
||||
# 5420 # "Ngẫu nhiên ngắt SI / PI"
|
||||
# 5440 # "Thời gian tìm kiếm đĩa:"
|
||||
# 5441 # "Turbo"
|
||||
|
|
|
@ -323,6 +323,7 @@ enum LanguageStringID
|
|||
ROM_32BIT = 538,
|
||||
ROM_DELAY_DP = 539,
|
||||
ROM_OVER_CLOCK_MODIFIER = 5400,
|
||||
ROM_UNALIGNED_DMA = 5410,
|
||||
ROM_RANDOMIZE_SIPI_INTERRUPTS = 5420,
|
||||
ROM_DISK_SEEK_TIMING = 5440,
|
||||
ROM_DISK_SEEK_TIMING_TURBO = 5441,
|
||||
|
|
|
@ -271,6 +271,7 @@ void CLanguage::LoadDefaultStrings(void)
|
|||
DEF_STR(ROM_32BIT, "32-bit engine:");
|
||||
DEF_STR(ROM_DELAY_DP, "Delay DP interrupt:");
|
||||
DEF_STR(ROM_OVER_CLOCK_MODIFIER, "Overclock modifier:");
|
||||
DEF_STR(ROM_UNALIGNED_DMA, "Unaligned DMA");
|
||||
DEF_STR(ROM_RANDOMIZE_SIPI_INTERRUPTS, "Randomize SI/PI interrupts");
|
||||
DEF_STR(ROM_DISK_SEEK_TIMING, "Disk seek timing:");
|
||||
DEF_STR(ROM_DISK_SEEK_TIMING_TURBO, "Turbo");
|
||||
|
|
|
@ -126,7 +126,7 @@ bool PeripheralInterfaceHandler::Write32(uint32_t Address, uint32_t Value, uint3
|
|||
{
|
||||
case 0x04600000: PI_DRAM_ADDR_REG = ((PI_DRAM_ADDR_REG & ~Mask) | (Value & Mask)) & 0x00FFFFFE; break;
|
||||
case 0x04600004:
|
||||
PI_CART_ADDR_REG = ((PI_CART_ADDR_REG & ~Mask) | (Value & Mask)) & 0xFFFFFFFE;
|
||||
PI_CART_ADDR_REG = ((PI_CART_ADDR_REG & ~Mask) | (Value & Mask)) & (UnalignedDMA() ? 0xFFFFFFFF : 0xFFFFFFFE);
|
||||
if (EnableDisk())
|
||||
{
|
||||
DiskDMACheck();
|
||||
|
|
|
@ -175,6 +175,7 @@ void CSettings::AddHowToHandleSetting(const char * BaseDirectory)
|
|||
AddHandler(Rdb_AudioResetOnLoad, new CSettingTypeRDBYesNo("AudioResetOnLoad", false));
|
||||
AddHandler(Rdb_AllowROMWrites, new CSettingTypeRDBYesNo("AllowROMWrites", false));
|
||||
AddHandler(Rdb_CRC_Recalc, new CSettingTypeRDBYesNo("CRC-Recalc", false));
|
||||
AddHandler(Rdb_UnalignedDMA, new CSettingTypeRomDatabase("Unaligned DMA", false));
|
||||
AddHandler(Rdb_RandomizeSIPIInterrupts, new CSettingTypeRomDatabase("Randomize SI/PI Interrupts", Default_RandomizeSIPIInterrupts));
|
||||
AddHandler(Rdb_DiskSeekTiming, new CSettingTypeRomDatabase("DiskSeekTiming", Default_DiskSeekTiming));
|
||||
|
||||
|
@ -233,6 +234,7 @@ void CSettings::AddHowToHandleSetting(const char * BaseDirectory)
|
|||
AddHandler(Game_LoadSaveAtStart, new CSettingTypeTempBool(false));
|
||||
AddHandler(Game_OverClockModifier, new CSettingTypeGame("OverClockModifier", (uint32_t)1));
|
||||
AddHandler(Game_FullSpeed, new CSettingTypeTempBool(true, "Full Speed"));
|
||||
AddHandler(Game_UnalignedDMA, new CSettingTypeGame("Unaligned DMA", Rdb_UnalignedDMA));
|
||||
AddHandler(Game_RandomizeSIPIInterrupts, new CSettingTypeGame("Randomize SI/PI Interrupts", Rdb_RandomizeSIPIInterrupts));
|
||||
AddHandler(Game_RPCKey, new CSettingTypeTempString(""));
|
||||
AddHandler(Game_DiskSeekTiming, new CSettingTypeGame("DiskSeekTiming", Rdb_DiskSeekTiming));
|
||||
|
|
|
@ -33,6 +33,7 @@ DISK_SEEK_TYPE CGameSettings::m_DiskSeekTimingType = DiskSeek_Turbo;
|
|||
bool CGameSettings::m_EnhancmentOverClock = false;
|
||||
uint32_t CGameSettings::m_EnhancmentOverClockModifier = 1;
|
||||
bool CGameSettings::m_EnableDisk = false;
|
||||
bool CGameSettings::m_UnalignedDMA = false;
|
||||
|
||||
int32_t CGameSettings::m_RefCount = 0;
|
||||
|
||||
|
@ -99,6 +100,7 @@ void CGameSettings::RefreshGameSettings()
|
|||
m_OverClockModifier = 20;
|
||||
}
|
||||
m_DiskSeekTimingType = (DISK_SEEK_TYPE)g_Settings->LoadDword(Game_DiskSeekTiming);
|
||||
m_UnalignedDMA = g_Settings->LoadBool(Game_UnalignedDMA);
|
||||
RefreshSyncToAudio();
|
||||
WriteTrace(TraceN64System, TraceDebug, "Done");
|
||||
}
|
||||
|
|
|
@ -119,6 +119,10 @@ public:
|
|||
{
|
||||
return m_EnableDisk;
|
||||
}
|
||||
inline static bool UnalignedDMA(void)
|
||||
{
|
||||
return m_UnalignedDMA;
|
||||
}
|
||||
|
||||
void RefreshSyncToAudio(void);
|
||||
static void SetOverClockModifier(bool EnhancmentOverClock, uint32_t EnhancmentOverClockModifier);
|
||||
|
@ -163,5 +167,6 @@ private:
|
|||
static bool m_EnhancmentOverClock;
|
||||
static uint32_t m_EnhancmentOverClockModifier;
|
||||
static bool m_EnableDisk;
|
||||
static bool m_UnalignedDMA;
|
||||
static int32_t m_RefCount;
|
||||
};
|
||||
|
|
|
@ -107,6 +107,7 @@ enum SettingID
|
|||
Rdb_AudioResetOnLoad,
|
||||
Rdb_AllowROMWrites,
|
||||
Rdb_CRC_Recalc,
|
||||
Rdb_UnalignedDMA,
|
||||
Rdb_RandomizeSIPIInterrupts,
|
||||
Rdb_RPCKey,
|
||||
Rdb_DiskSeekTiming,
|
||||
|
@ -163,6 +164,7 @@ enum SettingID
|
|||
Game_LoadSaveAtStart,
|
||||
Game_OverClockModifier,
|
||||
Game_FullSpeed,
|
||||
Game_UnalignedDMA,
|
||||
Game_RandomizeSIPIInterrupts,
|
||||
Game_RPCKey,
|
||||
Game_DiskSeekTiming,
|
||||
|
|
|
@ -25,6 +25,7 @@ CGameGeneralPage::CGameGeneralPage(HWND hParent, const RECT & rcDispay)
|
|||
SetDlgItemText(IDC_SYNC_AUDIO, wGS(ROM_SYNC_AUDIO).c_str());
|
||||
SetDlgItemText(IDC_DELAY_SI, 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());
|
||||
|
||||
AddModCheckBox(GetDlgItem(IDC_SYNC_AUDIO), Game_SyncViaAudio);
|
||||
|
@ -32,6 +33,7 @@ CGameGeneralPage::CGameGeneralPage(HWND hParent, const RECT & rcDispay)
|
|||
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);
|
||||
|
||||
CModifiedComboBox * ComboBox;
|
||||
|
|
|
@ -18,6 +18,7 @@ class CGameGeneralPage :
|
|||
COMMAND_ID_HANDLER_EX(IDC_DELAY_DP, CheckBoxChanged);
|
||||
COMMAND_ID_HANDLER_EX(IDC_DELAY_SI, CheckBoxChanged);
|
||||
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);
|
||||
COMMAND_HANDLER_EX(IDC_VIREFRESH, EN_UPDATE, EditBoxChanged);
|
||||
COMMAND_HANDLER_EX(IDC_COUNTPERBYTE, EN_UPDATE, EditBoxChanged);
|
||||
|
|
|
@ -228,6 +228,7 @@ BEGIN
|
|||
CONTROL "RSP Audio Signal",IDC_AUDIO_SIGNAL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,6,143,91,10
|
||||
CONTROL "Randomize SI/PI interrupts",IDC_RANDOMIZE_SIPI_INTERRUPTS,
|
||||
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,143,107,10
|
||||
CONTROL "Unaligned DMA",IDC_UNALIGNED_DMA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,102,154,91,10
|
||||
END
|
||||
|
||||
IDD_Settings_Accelerator DIALOGEX 0, 0, 218, 183
|
||||
|
|
|
@ -331,6 +331,7 @@
|
|||
#define IDC_MEMORY_SIZE_TEXT 1153
|
||||
#define IDC_SAVE_TYPE_TEXT 1154
|
||||
#define IDC_SYNC_AUDIO 1156
|
||||
#define IDC_UNALIGNED_DMA 1158
|
||||
#define IDC_RANDOMIZE_SIPI_INTERRUPTS 1159
|
||||
#define IDC_PROTECT_MEMORY 1160
|
||||
#define IDC_R16_EDIT 1165
|
||||
|
|
Loading…
Reference in New Issue