How to become a dev

How would I go about becoming a developer? I don’t want to work on cores or anything like that, purely the UI. After only a week of consistently using retroarch, the UI is already starting to give me a headache over how obtuse it is, and nobody seems interested in fixing it. So, how would I go about fixing it myself?

Fork the repo on github, make your changes, submit a pull request. It’s written in ANSI C.

Ok. It might take me a bit to learn some things, since I’m relatively new to coding, but I’ll hopefully have learned enough by the end of the month to clean up at least one or two things.

1 Like

Just out of curiosity, what would you want to refine? It’s come a long way in the last few years. I’ve been extremely impressed with what everyone has been doing with the UI.

The only thing that I’ve wished I could change is the control mapping. Specifically in that A.) it’s (understandably-so) still based on Nintendo’s backwards-ass button placements lol and, more importantly, B.) It’s 2-inputs short of a TRUE full controller map.

ie.

  • D-Pad
  • Start+Select
  • ABC-XYZ
  • L1/2/3-R1/2/3
  • Left+Right Sticks

Those missing Z & C buttons in the mapping interface are a much bigger deal than everyone realizes. It’s extremely hard to explain without literally showing someone the problem - but once you get it, it’s BIG. I don’t expect anyone to fix it, and I get why it’s this way, but I can’t ‘not’ bring this up whenever possible - not just in relation to RetroArch but for gaming in general.

Playlists. Why should I have to load into an ENTIRELY DIFFERENT UI to do anything with playlists. Here is my roadmap for what I want to accomplish here:

1: Clean up the basic display

I want to have 3 different options for the UI itself: Classic, default, and compact.

Classic: Classic is how it looks right now. That way the people who like it as is can keep it as is.

Default: A new, less cluttered UI. Now, when you boot up Retroarch, you will only see 4 categories: Boot, Settings, Online, and Playlists. Boot will contain everything that that the first category already contains, except for the online updater, which will be moved to the online category. Settings will remain the same as it currently is. Online, at the beginning, will simply be a renamed version of the currently existing netplay category, but more will be added later on. The playlists category would be the biggest change, with an entirely new setup. The playlists menu would be divided into 3 sections: Default, Console, and Custom. Each one would be fairly self explanatory, with default containing the recent, favorites, pictures, music, and videos playlists. Consoles would contain any Retroarch built playlists. Custom is self explanatory, containing any custom playlists that you make.

Compact: Basically everything is handled by sub-menus now.

Part 2: Playlist QoL

This is the bigger part of the roadmap, completely overhauling playlists. Here are some big things:

Grid view: Self explanatory. You can now have items in a playlist display in a grid.

Per Playlist Customization: Each playlist now has its own settings page. From here you can use a bunch of new features that will be added.

Custom Sorting: You can now sort your playlists by A-Z, Release Date, Publisher, and your own custom sorting. This can be toggled PER PLAYLIST, unlike the current all or nothing approach.

In App Playlist Modification: The desktop UI is now completely optional. You can now, within the regular UI, add, remove, and edit games in playlists. You can also set another heavily revamped feature in here.

Dynamic UI: This is the other customizable feature within the individual playlist settings. This will allow you to set custom Wallpapers, Background Music, Sound Effects, and Fonts for each individual playlist.

Quick Thumbnails: This will allow you to, within the run page for a playlist entry, choose any PNG on your computer and automatically set it as a Boxart, Title Screen, or Screenshot.

Duplicate Entry From Playlist:

This will allow you to copy and paste entries from one playlist to another.

UI Blending: This will allow you to pick and choose which elements you want from each UI, allowing for further customization.

Part 3: Other things

These are the things that I might get around to, if have the determination to do so:

Retroachivements UI: This is the other thing that would show up in the online menu. This would give you a list or grid of every Retroachivements compatible game that you’ve played, and will show which achievements you’ve earned from each game when you enter it’s sub-menu.

Revamped Profiles: Profiles would actually be more than just a username. You can now have more than one profile, and saves and achievements will be separated by account. This would, in theory, be the same account that you have here.

Easy User Database Recommendations: This would allow users to send thumbnails, title screens, screenshots, and game hashes? (Games not already in the database, mainly for rom hacks) to be checked by the mods for approval.

New database additions?: I’m not sure if this would be possible on my scale, but I would love to add saves and rom hacks to the database, allowing for everything but the roms themselves to come directly from retroarch. The database stuff would be locked behind your level on the forums, preventing spam.

This is what I want to do with the UI.