Apologies if this is the wrong community, happy to remove and post elsewhere.

I’m essentially a beginner to programming. I know some python (made a game of hangman with ASCII art for example) but nothing more complicated than that.

I’ve been wanting to learn some programming, whether it’s python or something else, and I think I’ve decided on a project I want to make (if possible?).

I aiming to make an emulation front end/GUI selector. I know there are things like RetroArch that are great, but it doesn’t have access to all emulation tools (e.g. doesn’t have Xbox/PS2/switch).

I’d picture just opening one program GUI that can select the “system” you want to use, then it provides a list of games.

The complexity that I can see is that even if I can run the actual emulator in a container or use a custom GUI to open the emulator it won’t 1) be able to show a games list within the same GUI and 2) it won’t be an easy back and forth to change emulators.

Not looking for anyone to solve the problem for me, just hoping for some advice on where to start like languages and what I should be trying to learn etc. or if it’s even possible. I’m aware there’s a high chance it’s not!

I’ve got years to learn and build before my kid might use it, not in a rush.

Thanks!

  • GetOffMyLan@programming.dev
    link
    fedilink
    arrow-up
    5
    ·
    edit-2
    2 months ago

    I imagine most of the emulators have a way to pass it a rom to open on launch.

    So the game library etc. could just be a list of files in a directory that you manage in your UI. When one is selected you launch the emulator with that file.

    This will likely be different for each emulator but should be achievable. So you’ll need some way to configure what to launch and which args to use. Or just hard ode it tbh.

    As for getting back to the menu you could likely use some global hot key to signal your application to kill the emulator and return to the menu.

    What language you use shouldn’t make a huge difference here. Any with a GUI framework should allow you to do it.