Implement multiplayer #2

Merged
SonicSwordcane merged 21 commits from multiplayer into main 2024-11-30 00:31:10 +00:00

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.
SonicSwordcane added 21 commits 2024-11-30 00:30:50 +00:00
SonicSwordcane merged commit 5627e41835 into main 2024-11-30 00:31:10 +00:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: PVB/lemur#2
No description provided.