From 842379c4105954782e1145b919d468e596a090e8 Mon Sep 17 00:00:00 2001 From: RSDuck Date: Mon, 16 Nov 2020 17:22:34 +0100 Subject: harmless DMA micro optimisation --- src/DMA.cpp | 55 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 29 insertions(+), 26 deletions(-) (limited to 'src/DMA.cpp') diff --git a/src/DMA.cpp b/src/DMA.cpp index 18b8a2f..8ad3918 100644 --- a/src/DMA.cpp +++ b/src/DMA.cpp @@ -77,21 +77,6 @@ void DMA::Reset() Running = false; InProgress = false; - - if (NDS::ConsoleType == 1) - { - BusRead16 = (CPU==0) ? DSi::ARM9Read16 : DSi::ARM7Read16; - BusRead32 = (CPU==0) ? DSi::ARM9Read32 : DSi::ARM7Read32; - BusWrite16 = (CPU==0) ? DSi::ARM9Write16 : DSi::ARM7Write16; - BusWrite32 = (CPU==0) ? DSi::ARM9Write32 : DSi::ARM7Write32; - } - else - { - BusRead16 = (CPU==0) ? NDS::ARM9Read16 : NDS::ARM7Read16; - BusRead32 = (CPU==0) ? NDS::ARM9Read32 : NDS::ARM7Read32; - BusWrite16 = (CPU==0) ? NDS::ARM9Write16 : NDS::ARM7Write16; - BusWrite32 = (CPU==0) ? NDS::ARM9Write32 : NDS::ARM7Write32; - } } void DMA::DoSavestate(Savestate* file) @@ -198,13 +183,7 @@ void DMA::Start() NDS::StopCPU(CPU, 1< void DMA::Run9() { if (NDS::ARM9Timestamp >= NDS::ARM9Target) return; @@ -242,7 +221,10 @@ void DMA::Run9() { NDS::ARM9Timestamp += (unitcycles << NDS::ARM9ClockShift); - BusWrite16(CurDstAddr, BusRead16(CurSrcAddr)); + if (ConsoleType == 1) + DSi::ARM9Write16(CurDstAddr, DSi::ARM9Read16(CurSrcAddr)); + else + NDS::ARM9Write16(CurDstAddr, NDS::ARM9Read16(CurSrcAddr)); CurSrcAddr += SrcAddrInc<<1; CurDstAddr += DstAddrInc<<1; @@ -278,7 +260,10 @@ void DMA::Run9() { NDS::ARM9Timestamp += (unitcycles << NDS::ARM9ClockShift); - BusWrite32(CurDstAddr, BusRead32(CurSrcAddr)); + if (ConsoleType == 1) + DSi::ARM9Write32(CurDstAddr, DSi::ARM9Read32(CurSrcAddr)); + else + NDS::ARM9Write32(CurDstAddr, NDS::ARM9Read32(CurSrcAddr)); CurSrcAddr += SrcAddrInc<<2; CurDstAddr += DstAddrInc<<2; @@ -317,6 +302,7 @@ void DMA::Run9() NDS::ResumeCPU(0, 1< void DMA::Run7() { if (NDS::ARM7Timestamp >= NDS::ARM7Target) return; @@ -354,7 +340,10 @@ void DMA::Run7() { NDS::ARM7Timestamp += unitcycles; - BusWrite16(CurDstAddr, BusRead16(CurSrcAddr)); + if (ConsoleType == 1) + DSi::ARM7Write16(CurDstAddr, DSi::ARM7Read16(CurSrcAddr)); + else + NDS::ARM7Write16(CurDstAddr, NDS::ARM7Read16(CurSrcAddr)); CurSrcAddr += SrcAddrInc<<1; CurDstAddr += DstAddrInc<<1; @@ -390,7 +379,10 @@ void DMA::Run7() { NDS::ARM7Timestamp += unitcycles; - BusWrite32(CurDstAddr, BusRead32(CurSrcAddr)); + if (ConsoleType == 1) + DSi::ARM7Write32(CurDstAddr, DSi::ARM7Read32(CurSrcAddr)); + else + NDS::ARM7Write32(CurDstAddr, NDS::ARM7Read32(CurSrcAddr)); CurSrcAddr += SrcAddrInc<<2; CurDstAddr += DstAddrInc<<2; @@ -425,3 +417,14 @@ void DMA::Run7() InProgress = false; NDS::ResumeCPU(1, 1< +void DMA::Run() +{ + if (!Running) return; + if (CPU == 0) return Run9(); + else return Run7(); +} + +template void DMA::Run<0>(); +template void DMA::Run<1>(); \ No newline at end of file -- cgit v1.2.3 From 1dbe69c6bec5e1b8e75108e5ccf11361acedc925 Mon Sep 17 00:00:00 2001 From: Arisotura Date: Thu, 10 Dec 2020 18:09:11 +0100 Subject: remove some debug crap --- src/ARM.cpp | 2 -- src/DMA.cpp | 2 +- src/NDS.cpp | 15 +++------------ src/frontend/qt_sdl/main.cpp | 9 +++++---- 4 files changed, 9 insertions(+), 19 deletions(-) (limited to 'src/DMA.cpp') diff --git a/src/ARM.cpp b/src/ARM.cpp index c6c51ed..29110e5 100644 --- a/src/ARM.cpp +++ b/src/ARM.cpp @@ -570,8 +570,6 @@ void ARMv5::Execute() // actually execute u32 icode = (CurInstr >> 6) & 0x3FF; ARMInterpreter::THUMBInstrTable[icode](this); - - if (R[15]==0x0219A6B0) printf("CAM THREAD MSG: %02X %08X -> %08X\n", R[1], R[0], 0x0219A6B6+R[0]); } else { diff --git a/src/DMA.cpp b/src/DMA.cpp index 8ad3918..cd3465f 100644 --- a/src/DMA.cpp +++ b/src/DMA.cpp @@ -427,4 +427,4 @@ void DMA::Run() } template void DMA::Run<0>(); -template void DMA::Run<1>(); \ No newline at end of file +template void DMA::Run<1>(); diff --git a/src/NDS.cpp b/src/NDS.cpp index b313db0..b8b83f7 100644 --- a/src/NDS.cpp +++ b/src/NDS.cpp @@ -1811,15 +1811,6 @@ void StartSqrt() void debug(u32 param) { - if (param==1312) - { - u32 timer = 0x10000 - (Timers[3].Counter >> 16); - timer *= 16; - timer += (0x10000 - (Timers[2].Counter >> 16)); - printf("TIMER=%d (%04X/%04X)\n", timer, (Timers[2].Counter >> 16), (Timers[3].Counter >> 16)); - return; - } - printf("ARM9 PC=%08X LR=%08X %08X\n", ARM9->R[15], ARM9->R[14], ARM9->R_IRQ[1]); printf("ARM7 PC=%08X LR=%08X %08X\n", ARM7->R[15], ARM7->R[14], ARM7->R_IRQ[1]); @@ -1845,14 +1836,14 @@ void debug(u32 param) fclose(shit);*/ FILE* - shit = fopen("debug/cam9.bin", "wb"); + shit = fopen("debug/power9.bin", "wb"); for (u32 i = 0x02000000; i < 0x04000000; i+=4) { u32 val = DSi::ARM9Read32(i); fwrite(&val, 4, 1, shit); } fclose(shit); - shit = fopen("debug/cam7.bin", "wb"); + shit = fopen("debug/power7.bin", "wb"); for (u32 i = 0x02000000; i < 0x04000000; i+=4) { u32 val = DSi::ARM7Read32(i); @@ -3258,7 +3249,7 @@ void ARM9IOWrite16(u32 addr, u16 val) return; case 0x04000188: - ARM9IOWrite32(addr, val | (val << 16)); + ARM9IOWrite32(addr, val | (val << 16)); return; case 0x040001A0: diff --git a/src/frontend/qt_sdl/main.cpp b/src/frontend/qt_sdl/main.cpp index 6e27d61..0228446 100644 --- a/src/frontend/qt_sdl/main.cpp +++ b/src/frontend/qt_sdl/main.cpp @@ -371,7 +371,7 @@ void EmuThread::run() if (Input::HotkeyPressed(HK_Pause)) emit windowEmuPause(); if (Input::HotkeyPressed(HK_Reset)) emit windowEmuReset(); - + if (Input::HotkeyPressed(HK_FullscreenToggle)) emit windowFullscreenToggle(); if (GBACart::CartInserted && GBACart::HasSolarSensor) @@ -507,7 +507,7 @@ void EmuThread::run() frameLimitError = -practicalFramelimit; if (frameLimitError > practicalFramelimit) frameLimitError = practicalFramelimit; - + if (round(frameLimitError * 1000.0) > 0.0) { SDL_Delay(round(frameLimitError * 1000.0)); @@ -1324,6 +1324,7 @@ void MainWindow::keyPressEvent(QKeyEvent* event) { if (event->isAutoRepeat()) return; + // TODO!! REMOVE ME IN RELEASE BUILDS!! if (event->key() == Qt::Key_F11) NDS::debug(0); Input::KeyPress(event); @@ -1926,9 +1927,9 @@ void MainWindow::onTitleUpdate(QString title) void MainWindow::onFullscreenToggled() { - if (!mainWindow->isFullScreen()) + if (!mainWindow->isFullScreen()) { - mainWindow->showFullScreen(); + mainWindow->showFullScreen(); mainWindow->menuBar()->hide(); } else -- cgit v1.2.3