FBNeo icon indicating copy to clipboard operation
FBNeo copied to clipboard

SDL2 port first thoughts

Open aboutafter opened this issue 4 years ago • 23 comments

I'm trying the new SDL2 port on Fedora but I find the menu too hard to navigate. After scanning the roms with F1 you can see the ones you have, marked with white letters, but you still need to go one by one (or 10 by 10 if you use the left/right keys).

The menu needs basically 3 options:

  • a way to filter missing games
  • an option to only show parent roms
  • a separate menu for each console

It would also be very useful if we could go the entered name directly, like MAME does. So, for example, writing "metal" should put the list where the Metal Slug games are.

A basic scanlines option would be very welcome too.

aboutafter avatar Jan 27 '20 10:01 aboutafter

Thanks for the feedback. :)

Filtering out missing games should be easy enough to add, so expect that fairly soon. I'd like to get to the point where we can filter by system and the search function would also be very useful.

I do also want to add scanlines. There is a very basic overlay system that can sort of load retropi overlays, and that would be very easy to extend to add scanline and other overlays. I will try and prioritise that, as it's also something I want. Longer term I would like to get it to the point where we have full shader.

tmaul avatar Jan 27 '20 11:01 tmaul

RetroArch uses the Q & W keys (and in controllers, the shoulder buttons I think) to scroll by letter, which is very useful for very long lists like FBNeo and MAME roms. So, when you press W once it goes to the first name starting with A, a second one and it goes to the roms starting with B, etc...

It's very useful and maybe easy to add.

Thank you for making this port!

aboutafter avatar Jan 27 '20 11:01 aboutafter

@aboutafter I have added some code to filter out missing games on a new branch (sdl-menu-improvement). It's not been tested much but seems to work. I will do some further testing and see if I can hook up the Q & W key functionality before merging it in.

tmaul avatar Jan 27 '20 18:01 tmaul

@aboutafter I have commit to master some changes. Now: q/w and hopefully the bumpers on joypads will skip by letter F2 will enable/disable filtering out missing games and the system filter F3 will skip to the next system.

Could you please check it out if you have chance and let me know what you think?

tmaul avatar Feb 02 '20 22:02 tmaul

I might need to do ca clean build but i do need to catch some shut eye for work. It displaying other systems when i choose the console systems i want. Ill test more later it could be the show missing filter is on and that is causing this will do more testing.

Note my console roms are named different I would need to test this in my personal build to see if the console games are filtering properly for me because im keeping my roms in one directory and named like the driver.

So for you to test this i guess you would need to remove the paths for say megadrive rescan and show missing on the megadrive to see if you can reproduce this(go through all console system once youve done this. Ill do a clean build in tomorrow and test more.

The navigation and keys are working well though. It could just be i need a clean build just point out what ive seen it very nice to be able to scroll through the list so fast though

ghost avatar Feb 02 '20 23:02 ghost

I will test thoroughly later, but from what I could see, it works as intended. Good job.

aboutafter avatar Feb 03 '20 09:02 aboutafter

Ok updated my personal build so i could load system other than arcades in the same directory.This works properly but the moment you hit f2 to show missing it shows all missing games not the ones for that system only. But if you dont view the missing ones it works as intended.

I think we might need to make a little list of files not to show unless they are missing to hide the bios files are available because you cant really do anything with them.

I found another bug as well in show everything when you exit the game you are at the same game you selected. Because of the filters it seems when you exit on a system the index is wrong. None of these things are major its 100% more usable as is great job again!

ghost avatar Feb 03 '20 19:02 ghost

Cool, thanks both for testing.

I'll take a look to see if I can clean up those issues. It's not been the best tested set of changes I've made :) also want to look at scanlines, just to see how they look.

tmaul avatar Feb 03 '20 22:02 tmaul

I could finally try it on my main PC with a complete romset of arcade and consoles and the first error is that I can't scan the console roms folders.

I tried using the first 10 folder paths on the fbneo.ini and the last ones to no avail. Maybe the console rompaths are hard-coded somehow in a specific order to add a prefix to the roms and I have it in a different order? it's the only thing I can think of. I think I had a problem like that years ago when I was using Windows. If that's the problem it should be easy to add a comment on the ini for each system rompath so the user knows which one goes where.

The other problem that I found is that the menu seems to be receiving inputs while playing a game, so when you go back to the menu after playing, you have the focus on another game on the list.

  • And a couple of proposed enhancements more:

There is no "arcade" system filter. There are filters for different arcade machines, consoles and "everything", but not one for all the arcade games (the /roms folder without the consoles).

Add please another filter for hiding the clones if it's not a big problem. For people with complete romsets it is really useful.

And the big question: do you think it would be doable to have part of the screen reserved to show images from the /previews and /titles folders? or that could only be possible if someday there is some kind of GUI made with QT or something like that?

aboutafter avatar Feb 03 '20 23:02 aboutafter

I had a go at fixing the menu going back to the wrong game but just made it worse, so I will have a rethink about that a bit.

The console roms missing might be down to the naming of the zips. It's working here on linux and widows. Just make sure that the prefixes are not in the zip name. so e.g. when its showing a missing rom that is called md_sonic make sure that the game is in a zip called sonic.zip. There is a -dat option if you have a rom auditing tool.

Hiding clones is a good idea, I will look into that as well as the filters suggestions. I might also change the filtering to a menu so you can turn systems on and off. In fact that might work better as an addition to the current filtering as just pressing a button to swap to the next system is quite nice, but it would also be good to filter roms by genre.

Titles will display currently if a png with the same romname exists in \support\titles on windows or /usr/local/share/titles/ on *nix based systems. Keep in mind that it doesn't look great at the moment as it's not aspect ratio correcting the images, and only titles are supported currently. It would be good to display the other available images if someone can come up with a screen layout as it will always look terrible if left to me :) If you need a title set you can download the nice packs Gab75 put together from the forums here https://neo-source.com/index.php?topic=2838.0

tmaul avatar Feb 03 '20 23:02 tmaul

I've got the /roms folder for the arcade roms and the others are /coleco /megadriv etc... with .zip's on the inside. Each console folder is on a different line on the fbneo.ini's "szAppRomPaths". If it recognizes the arcade roms, why doesn't do the same with the others?

And yes, they are .zip, for example /megadriv/sonic.zip

I've just tried adding the "titles" path and it doesn't read it either. How odd.

aboutafter avatar Feb 04 '20 13:02 aboutafter

@aboutafter Yea, that is weird. Any chance you could upload your fbneo.ini file? at some point in the next day or so I might be able to replicate your setup to see if I can see the problem.

tmaul avatar Feb 04 '20 13:02 tmaul

... my bad. I was missing the last forward slash. Sorry.

I saw another problem though. When you press F2 to show/hide missing roms while you are navigating, for example, Mega Drive. It shows the arcade roms too.

aboutafter avatar Feb 04 '20 13:02 aboutafter

Oh yeah, I see that too. I will take a look after work, that should be easy to fix.

tmaul avatar Feb 04 '20 15:02 tmaul

Please pull the latest code, I should have all the bugs fixed (at least the ones I could find) and I have added F4 for filtering out the clones. Seems to work ok but let me know if you notice any more bugs.

tmaul avatar Feb 04 '20 19:02 tmaul

Some systems, but not all, lose the first parent when hiding clones. For example, selecting the system CPS1/2/3, the first parent is 1941 Counter Attack, but if I press F4 for hiding the clones, the first parent game that I can see is 1944 The Loop Master. Another example, in PGM the first parent should be BeeStorm Dodonpachi II, but pressing F4, that game disappears and the first that I can see is Chaos.

Another bug, in this case with the Q and W letters is that when there is no game with one specific letter it still tries to go to that letter. For example, if I have one game that starts with A and the next game starts with E, I need to press the W key 4 times to reach the E letter, even if there are no games that start from B,C or D.

One little annoyance that I have is that if you have a game selected and press F4 to hide (or show) clones, you lose the game that you had selected and you go to another one on the list. The expected behaviour should be to stay in the game that you were (and if it is a clone, go the parent or the next parent one).

And the last thing I could think of. It would be nice that pressing up on the first game looped back to the last game and vice-versa.

All in all, very good job and exciting times ahead for FBNeo on Linux!

Now I need to fix why it's not showing the titles images for me. They need to be on /usr/local/share/titles/ or can I change the folder on the .ini like with the rompaths? because that's what I did. Oh well.

aboutafter avatar Feb 04 '20 21:02 aboutafter

Thanks for the bug reports, I will take a look at those.

And yes, currently the titles are hard coded to /usr/local/share/titles/ on linux. I will get that put in the ini file so it can be overridden at some point in the near future :)

tmaul avatar Feb 04 '20 22:02 tmaul

I have fixed the missing first game. it was actually missing from all the menus all the time. Annoyingly when I wrote that bit of code I wrote it incorrectly on purpose for testing with the intention of fixing it before committing it and I didn't. Ooops.

EDIT: also I have added page up/down/home/end for jumping around the list

tmaul avatar Feb 04 '20 23:02 tmaul

In the latest build I can't select the first game on any list.

aboutafter avatar Feb 05 '20 08:02 aboutafter

@aboutafter interesting. I will take a look when I get chance.

tmaul avatar Feb 05 '20 08:02 tmaul

I have fixed that issue now.

tmaul avatar Feb 05 '20 23:02 tmaul

tested good here as well thank god its the weekend!

ghost avatar Feb 07 '20 17:02 ghost

@tmaul been looking at sdl2 gui libs this one seems to hit all the main platforms looks pretty decent https://github.com/mozeal/SDL_gui

ghost avatar Feb 23 '20 23:02 ghost