-
Notifications
You must be signed in to change notification settings - Fork 0
Development
mewzers edited this page Mar 27, 2026
·
1 revision
This chapter is for contributors or anyone working on Oxide from source.
- Rust toolchain
- Desktop environment supported by
eframe - Audio output device if buzzer testing matters
cargo checkcargo runcargo build --release-
src/: application source -
src/ui/: UI modules -
src/debug/: debug localization -
src/assets/: bundled fonts, icons, splash logo -
docs/: repository technical docs -
images/: repository/project visuals -
logs/: generated local logs -
savestates/: generated local save states
Main rendering files:
src/ui/top_bar.rssrc/ui/bottom_bar.rssrc/ui/main_panel.rssrc/ui/settings.rssrc/ui/debug_terminal.rs
Theme visuals are centralized through visuals_for_theme() and the custom Kiwano setup in src/app.rs.
UI strings:
src/i18n/common.jsonsrc/i18n/<lang>.json
Debug strings:
src/debug/i18n/common.jsonsrc/debug/i18n/<lang>.json
Save-state logic is centered in src/app.rs.
Keep in mind:
- save states are ROM-specific
- settings persistence and save-state persistence are separate systems
The repository is configured to reduce mojibake risk through:
.editorconfig.gitattributes- UTF-8-oriented editor setup
Recommended on Windows:
- UTF-8-capable terminal
- PowerShell 7
- Switch to your working branch
- Run
cargo checkbefore and after changes - Update docs when behavior changes
- Keep user-facing strings in i18n JSON files
- Keep technical constants in Rust code
- Verify detached viewports still behave correctly
- Commit once code and docs match reality