Amneesh Singh
58a503d2c4
added rendering for modes 3,4,5 also changed how memory structuring works Signed-off-by: Amneesh Singh <natto@weirdnatto.in> |
||
---|---|---|
.github/workflows | ||
apps | ||
include | ||
nix | ||
src | ||
tests | ||
.clang-format | ||
.clang-tidy | ||
.clangd | ||
.dir-locals.el | ||
.envrc | ||
.gitignore | ||
LICENSE | ||
README.md | ||
flake.lock | ||
flake.nix | ||
meson.build | ||
meson.options |
README.md
nothing to be seen here yet. LEAVE
But if you are curious (probably not), read ahead
Dependencies
Tested toolchains
- LLVM 18.1.7
- GCC 14.1.0
In theory, any toolchain supporting at least the c++23 standard should work. I am using LLVM's clang and libcxx as the primary toolchain.
Static libraries
Name | Version | Required? | Purpose |
---|---|---|---|
catch2 | >= 3.4 | no | for tests |
This goes without saying but using a different toolchain to compile these libraries before linking probably won't work.
Status
-
CPU
-
Arm
- Dissassembler
- Execution
-
Thumb
- Dissassembler
- Execution
-
-
Bus
- Cycle counting with CPU
- Reading memory
- Writing memory
-
Scheduler (maybe?)
- Sync PPU and CPU
- Sync APU and CPU
- Sync other stuff
-
I/O
- PPU
- APU
- Timers
- DMA
- Keypad
-
Debugging
- GDB Remote Serial Protocol support
-
Misc
- Save/Load states
- Header Parsing
-
Internal utilities
- Bit manipulation
- A global logger
- TCP Server (for GDB RSP)
- SHA256 hash (why? idk)
Available unit tests so far
- CPU
- Arm
- Disassembler
- Execution
- Thumb
- Disassembler
- Execution
- Arm
- Bus
- Memory read/writes
- Cycle Counting
- Some internal utility tests (idk why)
LOG
- June 11, 2024: After almost an year, I have come back to this silly abandoned project, will probably complete it soon.
- June 16, 2024: I ought to complete this soon