The emulator can now emulate two sims at once, in separate screens.
Features necessary to make this one work:
Rewrote emulation orchestration to account for two sims at once
The sims can run separate roms and can restart independently (though pausing affects both, for UX reasons)
One or more sims can be muted
Updated the core to pull in many performance improvements (running two sims is twice as slow as running one)
Added gamepad support and improvements to controller mapping
I also replaced imgui-rs, a wrapper around the C++ Dear Imgui library, with egui. The former had pretty unwieldy rust bindings, with lots of glue code and some awkward lifetimes making it hard to hide the glue. The replacement, egui, lets you basically ignore lifetimes and makes it easy to write window/menu code without constantly thinking about shaders and window lifecycles.
The emulator can now emulate two sims at once, in separate screens.
Features necessary to make this one work:
- Rewrote emulation orchestration to account for two sims at once
- The sims can run separate roms and can restart independently (though pausing affects both, for UX reasons)
- One or more sims can be muted
- Updated the core to pull in many performance improvements (running two sims is twice as slow as running one)
- Added gamepad support and improvements to controller mapping
I also replaced [imgui-rs](https://github.com/imgui-rs/imgui-rs), a wrapper around the C++ Dear Imgui library, with [egui](https://www.egui.rs/). The former had pretty unwieldy rust bindings, with lots of glue code and some awkward lifetimes making it hard to hide the glue. The replacement, egui, lets you basically ignore lifetimes and makes it easy to write window/menu code without constantly thinking about shaders and window lifecycles.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
The emulator can now emulate two sims at once, in separate screens.
Features necessary to make this one work:
I also replaced imgui-rs, a wrapper around the C++ Dear Imgui library, with egui. The former had pretty unwieldy rust bindings, with lots of glue code and some awkward lifetimes making it hard to hide the glue. The replacement, egui, lets you basically ignore lifetimes and makes it easy to write window/menu code without constantly thinking about shaders and window lifecycles.