Closed Amjad50 closed 4 days ago
Attention: Patch coverage is 44.74886%
with 121 lines
in your changes missing coverage. Please review.
Project coverage is 81.83%. Comparing base (
74a3ffc
) to head (8f976a2
). Report is 23 commits behind head on master.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
Very big PR here.
This does several things. 1) Changes how the emulator operates, before this, the emulator struct
NES
was holding everything, and even managing rendering throughUiProvider
trait. I didn't like this design. So I adopted the new design that I also used in my other emulators mizu and trapezoid. This new design is that the emulator is in a crateplastic_core
this makes it much easier for others to just import this and handle emulation without needing to implementUiProvider
. You can think of this new design in that the emulator is now a service provider providing you with pixels and audio and you just provide input and clock it. 2) Removed SFML, GTK, windows native UI, and replaced all of these withegui
. one UI is just better, and non of the above 3 is good for all platforms, tbh not sure ifegui
is good with other platforms but it seems simple so I think it should work with all platforms easily. 3) Updatedtui
ui to work with the new design of the emulator and updated its deps (ratatui) 4) Updated the tests to use the new design, and its much easier to work with now 5) Added tests forsave/load state
6) Updated github actions to work with the new rewrite