diff options
author | Jesse Talavera-Greenberg <jesse@jesse.tg> | 2023-11-28 17:16:41 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-28 23:16:41 +0100 |
commit | e973236203292637eb7bd009a4cfbd6fd785181f (patch) | |
tree | 4c348a9927bfa6f8f37cc943291174a1096434b3 /src/MemConstants.h | |
parent | c84cb174628c5a2e8e6cc0179e16de3eab47864a (diff) |
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`
Diffstat (limited to 'src/MemConstants.h')
-rw-r--r-- | src/MemConstants.h | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/MemConstants.h b/src/MemConstants.h new file mode 100644 index 0000000..ab80fab --- /dev/null +++ b/src/MemConstants.h @@ -0,0 +1,35 @@ +/* + Copyright 2016-2023 melonDS team + + This file is part of melonDS. + + melonDS is free software: you can redistribute it and/or modify it under + the terms of the GNU General Public License as published by the Free + Software Foundation, either version 3 of the License, or (at your option) + any later version. + + melonDS is distributed in the hope that it will be useful, but WITHOUT ANY + WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with melonDS. If not, see http://www.gnu.org/licenses/. +*/ + +#ifndef MELONDS_MEMCONSTANTS_H +#define MELONDS_MEMCONSTANTS_H + +#include "types.h" + +namespace melonDS +{ +constexpr u32 MainRAMMaxSize = 0x1000000; +constexpr u32 SharedWRAMSize = 0x8000; +constexpr u32 ARM7WRAMSize = 0x10000; +constexpr u32 NWRAMSize = 0x40000; +constexpr u32 ARM9BIOSSize = 0x1000; +constexpr u32 ARM7BIOSSize = 0x4000; +constexpr u32 DSiBIOSSize = 0x10000; +} + +#endif // MELONDS_MEMCONSTANTS_H
\ No newline at end of file |