| .cargo | runner linking and dt for rp2350 | |
| .vscode | runner linking and dt for rp2350 | |
| src | full path loggin breaks dtb parser? | |
| .gitignore | iterator for dtb parsing | |
| build.rs | runner linking and dt for rp2350 | |
| Cargo.lock | bitmap font rendering | |
| Cargo.toml | pluggable drivers; feature gated all drivers | |
| COPYING | readme + license | |
| readme.md | doc design and progress | |
nano32
Retro-style game console in the spirit of PICO-8 and TIC-80 but designed to actually run on low-end hardware.
Design Notes
The console has RISC-V 32-bit architecture with I, M, A and C extensions
(rv32imac). The primary target platform is the RP2350 SoC, so games should
require no more than 512kiB if RAM, ideally less for wider support.
Games are regular ELF binaries. For portability they should be relocatable and dynamically link to the BIOS functions. This way actual hardware does not require a MMU.
Consoles have a "BIOS" that acts as a bootloader loading the game from a cartridge and provides a HAL over display, sound and input peripherals.
Hardware "cartridges" are SD-Cards either directly storing the game in ELF or formatted with a FAT32 filesystem in a DOS partition table containing (multiple) such game files. The BIOS can offer a boot selection menu in the latter case.
Progress
Done:
- BIOS for PC-style consoles like qemu's virt machine
- VGA display driver
To-do:
- Specification of BIOS API
- BIOS for RP2350
- Sample game
- Utility libraries and tools for game development (SDK)
License
GPL-3.0-only