Go to file
Amneesh Singh 58a503d2c4
io: add display unit
added rendering for modes 3,4,5
also changed how memory structuring works

Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
2024-06-22 04:16:12 +05:30
.github/workflows massive feat: added a GDB stub for debugging 2024-06-16 07:45:54 +05:30
apps bus: send a weak ptr to io 2024-06-14 20:25:36 +05:30
include io: add display unit 2024-06-22 04:16:12 +05:30
nix io: i really ought to be working on the ppu and apu by now 2024-06-13 03:53:25 +05:30
src io: add display unit 2024-06-22 04:16:12 +05:30
tests massive instruction rewrite 2024-06-20 06:07:00 +05:30
.clang-format initialise a memory structure or smth 2023-09-11 10:53:32 +05:30
.clang-tidy log: encapsulate logger 2023-09-23 21:09:44 +05:30
.clangd initial commit: set up a template 2023-08-15 14:59:53 +05:30
.dir-locals.el initial commit: set up a template 2023-08-15 14:59:53 +05:30
.envrc tests: add tests for internal utilities 2023-09-24 17:36:38 +05:30
.gitignore comeback(?) 2024-06-11 22:46:48 +05:30
LICENSE initial commit: set up a template 2023-08-15 14:59:53 +05:30
README.md [skip ci] readme: update 2024-06-16 21:25:58 +05:30
flake.lock comeback(?) 2024-06-11 22:46:48 +05:30
flake.nix meson: make disassembler feature true by default 2023-09-27 01:33:51 +05:30
meson.build massive feat: added a GDB stub for debugging 2024-06-16 07:45:54 +05:30
meson.options massive feat: added a GDB stub for debugging 2024-06-16 07:45:54 +05:30

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
  • 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