fox33: A WIP fox32 emulator written in c3
Note
It is recommended to build in a nix environment:
$ nix develop --impure
Warning
Don't expect the code to be of great quality for now. I'll clean it up later
- Fix that
0x04000000
bug (so painful :() - Run fox32rom successfully
- Initial Gui & see fox32rom framebuffer
- Implement Gui overlays
- I/O stuff:
- mounting disks
- mouse
- keyboard
- rtc
- Interrupts/Exceptions
- boot fox32os
- Get fox32rom functioning completely
- Get fox32os functioning completely
- get all fox32os apps functioning (only missing some simple instructions)
- Implement all instructions fully
- MMU
- swap sp so I can run minita
- internal refactoring of error handling
- refactor convenience macros to be more convenient & less awfully hacky (they will bever be entirely hack free tho (cry about my overuse of macros lerno >:3))
- Any other things I can think of
$ c3c build -D <build flag> -O5
- DEBUG -> print almost too many debug logs
- PERF -> print the time taken to execute 30M instructions (target <= 1 second for 30Mhz)
- NOWARN -> silence runtime warnings, mostly unimplemented methods
- FOXLOG -> print debug logs in the exact same format as the fox32 reference emulator
- MORE_PERF -> inlines all instructions for a performance boost at the cost of compile-time
$ ./build/fox33 <boot rom> <disk0> <disk1> <disk2> <disk3> <index out of bounds error>