melonDS/src
Jesse Talavera-Greenberg e973236203
Refactor NDS and DSi to be objects (#1893)
* First crack at refactoring NDS and DSi into objects

- Remove all global/`static` variables in `NDS` and related classes
- Rely more on virtual dispatch when we need to pick methods at runtime
- Pass `NDS&` or `DSi&` to its constituent components where necessary
- Introduce some headers or move some definitions to break `#include` cycles

* Refactor the frontend to accommodate the core's changes

* Move up `SchedList`'s declaration

- Move it to before the components are initialized so the `map`s inside are initialized
- Fields in C++ are initialized in the order they're declared

* Fix a crash when allocating memory

* Fix JIT-free builds

* Fix GDB-free builds

* Fix Linux builds

- Explicitly qualify some member types in NDS, since they share the same name as their classes

* Remove an unnecessary template argument

- This was causing the build to fail on macOS

* Fix ARM and Android builds

* Rename `Constants.h` to `MemConstants.h`

* Add `NDS::IsRunning()`

* Use an `#include` guard instead of `#pragma once`
2023-11-28 23:16:41 +01:00
..
ARMJIT_A64 Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
ARMJIT_x64 Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
debug Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
dolphin Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
fatfs Refactor DSi_NAND (#1844) 2023-10-11 17:20:05 +02:00
frontend Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
sha1 Reduce code stink (#1818) 2023-08-28 20:01:15 +02:00
teakra comment out semaphore shit in teakra 2022-10-25 00:09:43 +02:00
tiny-AES-c add all sorts of shit 2019-06-13 14:41:54 +02:00
xxhash implement block linking + some refactoring 2020-06-16 11:59:06 +02:00
ARCodeFile.cpp Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
ARCodeFile.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
AREngine.cpp Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
AREngine.h Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
ARM_InstrInfo.cpp Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
ARM_InstrInfo.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
ARM_InstrTable.h update copyright years 2023-11-04 00:21:46 +01:00
ARM.cpp Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
ARM.h Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
ARMInterpreter_ALU.cpp Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
ARMInterpreter_ALU.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
ARMInterpreter_Branch.cpp Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
ARMInterpreter_Branch.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
ARMInterpreter_LoadStore.cpp Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
ARMInterpreter_LoadStore.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
ARMInterpreter.cpp Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
ARMInterpreter.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
ARMJIT_Compiler.h Refactor the JIT to be object-oriented (#1879) 2023-11-18 16:40:54 +01:00
ARMJIT_Internal.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
ARMJIT_Memory.cpp Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
ARMJIT_Memory.h Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
ARMJIT_RegisterCache.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
ARMJIT.cpp Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
ARMJIT.h Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
CMakeLists.txt Slight polish to DMA (#1856) 2023-10-24 23:27:55 +02:00
CP15.cpp Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
CRC32.cpp Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
CRC32.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
DMA_Timings.cpp Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
DMA_Timings.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
DMA.cpp Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
DMA.h Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
DSi_AES.cpp Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
DSi_AES.h Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
DSi_Camera.cpp Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
DSi_Camera.h Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
DSi_DSP.cpp Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
DSi_DSP.h Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
DSi_I2C.cpp Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
DSi_I2C.h Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
DSi_NAND.cpp Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
DSi_NAND.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
DSi_NDMA.cpp Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
DSi_NDMA.h Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
DSi_NWifi.cpp Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
DSi_NWifi.h Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
DSi_SD.cpp Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
DSi_SD.h Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
DSi_SPI_TSC.cpp Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
DSi_SPI_TSC.h Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
DSi_TMD.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
DSi.cpp Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
DSi.h Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
FATIO.cpp Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
FATIO.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
FATStorage.cpp Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
FATStorage.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
FIFO.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
FreeBIOS.cpp Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
FreeBIOS.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
GBACart.cpp Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
GBACart.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
GPU2D_Soft.cpp Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
GPU2D_Soft.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
GPU2D.cpp Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
GPU2D.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
GPU3D_OpenGL_shaders.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
GPU3D_OpenGL.cpp Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
GPU3D_OpenGL.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
GPU3D_Soft.cpp only fill edges when translucent if blending is enabled (#1882) 2023-11-25 18:40:07 +01:00
GPU3D_Soft.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
GPU3D.cpp Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
GPU3D.h Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
GPU_OpenGL_shaders.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
GPU_OpenGL.cpp Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
GPU_OpenGL.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
GPU.cpp Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
GPU.h Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
JitBlock.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
melonDLDI.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
MemConstants.h Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
MemRegion.h Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
NDS_Header.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
NDS.cpp Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
NDS.h Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
NDSCart.cpp Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
NDSCart.h Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
NonStupidBitfield.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
OpenGLSupport.cpp Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
OpenGLSupport.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
Platform.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
PlatformOGL.h No more context mess (#1531) 2022-10-17 22:55:11 +02:00
ROMList.cpp Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
ROMList.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
RTC.cpp Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
RTC.h Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
Savestate.cpp Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
Savestate.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
SPI_Firmware.cpp Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
SPI_Firmware.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
SPI.cpp Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
SPI.h Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
SPU.cpp Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
SPU.h Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
TinyVector.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
types.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
version.h update copyright years 2023-11-04 00:21:46 +01:00
Wifi.cpp Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
Wifi.h Refactor NDS and DSi to be objects (#1893) 2023-11-28 23:16:41 +01:00
WifiAP.cpp Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00
WifiAP.h Move all core types into namespaces (#1886) 2023-11-25 18:32:09 +01:00