mirror of
https://github.com/gopher64/gopher64.git
synced 2026-04-26 07:25:58 +03:00
[GH-ISSUE #45] Better GUI #5
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/gopher64#5
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @loganmc10 on GitHub (Jan 31, 2024).
Original GitHub issue: https://github.com/gopher64/gopher64/issues/45
Originally assigned to: @loganmc10 on GitHub.
@DarthSidious666 commented on GitHub (Oct 18, 2024):
I've managed to clone the Simple64 UI using e-gui, I'm not sure which parts I would need to edit in your file so please adapt the code to fit.
@loganmc10 commented on GitHub (Mar 5, 2025):
@DarthSidious666 sorry I never got around to responding about this. It does look very nice.
Part of the problem, though, is that the emulation opens in a new window. I'm not sure that it is possible to embed an SDL window inside the egui window, so for the time being, it spawns a new window.
This means that the area under the menu is sort of "dead", which I think would seem strange. It would be alright if it had a ROM browser or something (I don't mean that I am asking you to do this, I am just commenting generally on the design).
I'm still hoping someone takes on this task of creating a new GUI for the app. It doesn't even need to be written in egui, if someone wants to delete the current GUI and use a different framework, that is also fine
@DarthSidious666 commented on GitHub (Mar 6, 2025):
@loganmc10 No worries, I hadn't realised that the emulation window was using SDL and I'm not all that competent in Rust to be able to help more.
If someone does manage to pick up the gauntlet then at least they'll have a starting point with the code posted here.
It should be adaptable enough for other frameworks.
@bluchip-studio-official commented on GitHub (Mar 21, 2025):
would it work to modify the emulator to render to an offscreen framebuffer or texture instead of a window.
you could then extract the framebuffer pixels as a Vec or GPU texture then pass the pixel buffer to egui using its Image widget via Texture Handle.
I know it would create overhead copying pixels from CPU especially at higher frame rates but i am not sure if a lot of n64 games make it over the 30-40 fps?
@Quackdoc commented on GitHub (Mar 21, 2025):
I know sdl2 can do texture rendering which should eperformant enough.
https://github.com/Rust-SDL2/rust-sdl2/issues/1178
https://docs.rs/sdl2/latest/sdl2/render/struct.Canvas.html#method.with_texture_canvas
https://docs.rs/sdl3/latest/sdl3/render/struct.Canvas.html#method.with_texture_canvas
@loganmc10 commented on GitHub (Mar 22, 2025):
All NTSC N64 games output (roughly) 60 images per second regardless of the internal framerate. On PAL it is roughly 50.
You are correct that copying the image from an offscreen framebuffer to the window would cause a performance hit.
Honestly, I don't think that the external game window is that big of a problem. Dolphin does this by default, although they do offer an option to render to the main window. I am more concerned about having an easy-to-use GUI for configuring controllers, setting options, choosing a game, etc... It would also be nice to have an interface for cheats as well
@PixelPenguin123143 commented on GitHub (Mar 26, 2025):
@loganmc10
Hi Logan, I wanted to let you know I'd be up to help you on the GUI of this emulator. I'm currently going to school for CS, I have experience coding mostly in python and java. I've worked as a UI developer intern on a web application written in python.
@loganmc10 commented on GitHub (Mar 27, 2025):
Hi @PixelPenguin123143 that's good to hear. There is another person that goes by "wumput" on Discord that offered to help, but I don't know how much progress they've made. I would suggest joining the Discord server and getting in touch with wumput
@loganmc10 commented on GitHub (Jun 12, 2025):
https://slint.dev/