Jump to content

Experimenting with WinUI


Robert
 Share

Recommended Posts

Although MESSUI and MAMEUI  are officially dead, similar technology is used by HBMAMEUI, which is still alive. So I wanted to find out what could be done to get WinUI working with a compiler newer than GCC 10.1. For whatever reason, ARCADE64 is fine with GCC 11.2 and has been using this version for some time.

Since MESSUI is extremely unlikely to be seen again (since nobody has said anything since it was cancelled), I've done my experiments with it. The main issues with a newer GCC are:

- Crash while building the tree (the things in the left pane)

- All icons missing

- A crash when a certain invalid screenshot was encountered.

The screenshot issue was the first thing to fix. apexc.png was internally a wav file, so the code thought it was a jpeg and ran out of memory. This has been fixed, so now it will think the file doesn't exist.

The treeview crash - I couldn't locate the exact bad code, so I used the version from ARCADE64 and then had to make extensive modifications to get it to fit in. But finally it's working.

Lastly - the icon problem. Again, I haven't found the exact line of code, but I did learn quite a bit of how a listview works (or is supposed to work). MESSUI and MAMEUI have 3 listviews (main game list, loose software, swlist software), while ARCADE64 and HBMAMEUI only have 1 (main game list). A listview can have a choice of displays (small icons, large icons, list-only, and report (various columns)). We also have a variation of report called grouped (the clones are indented).

When tested, the small icons and large icons were very slow to work, and in MAMEUI it appeared to hang. This stuff has been removed from ARCADE64, you just get report mode only, with a choice of small or large icons, and a further choice of indented or not. This works quite well. With a listview in report mode you can either have WIndows do the work for you, or you can have code to do it yourself, if it's something that is outside the scope of what Windows does. The loss of icons happens in this custom code, but I'm not sure exactly where yet. ARCADE64 gets Windows to do it, so the custom code doesn't exist.

I decided to make the icon displays in MESSUI (main game list) the same as ARCADE64, as it is much faster. However this means that the choice of clone colour no longer does anything, so it will have to be removed.

For the software lists, if you chose a different icon display for the main list, the software lists went a bit crazy, because of a bug joining them together when they should have been separate. This has now been fixed. I've left the software lists with the custom code, so their icons will be blank with the newer GCC. Everything else works the same as before.

So, at this stage, MESSUI is working fine with the newer GCC, except that

- You can't choose a separate colour for the clones

- No icons in the "SW Files" tab (they will show if compiled with older GCC)

I'll keep working on this, because eventually it will need to be transferred into HBMAMEUI.

  • Like 2
  • Thanks 1
Link to comment
Share on other sites

Thanks for working on it :)

But in fact I think it's time to do an external UI working with all actual MAME versions (official or not)

It could be quite easy to do a frontend somehow like MAMEUI. I tried myself and I got promising results. but I stopped because in fact there is a needed and missing info we can't get nor extract from MAME....

In fact MAME's configuration uses machine type (arcade, console, computer, others) but this "type" info isn't provided by MAME and without we can't do any accurate configuration tool... that's a shame... ;(

Link to comment
Share on other sites

I'm not interested in an external UI - there's heaps of them around already.

Using the internal join gives access to all kinds of things, and there's no need to rely on messy xml interfaces that lack important info.

 

Link to comment
Share on other sites

2 hours ago, Robert said:

HBMAME is for homebrew arcade. That's its purpose. I'm not sure what else you're expecting it to do.

 

there are many hacks, homebrews and bootlegs of console/computer games too :)

Edited by Houb
Link to comment
Share on other sites

Yes, but they can be loaded into MAME as loose software, or if they are fussy you can update the software lists with them. MAME isn't locked into software lists exclusively. Alternatively, FBNeo has a lot of homebrew console roms enabled.

Besides, in the end, I don't want to spend time on it. Sorry.

  • Like 1
Link to comment
Share on other sites

16 minutes ago, Robert said:

Yes, but they can be loaded into MAME as loose software, or if they are fussy you can update the software lists with them. MAME isn't locked into software lists exclusively. Alternatively, FBNeo has a lot of homebrew console roms enabled.

Besides, in the end, I don't want to spend time on it. Sorry.

You asked, I gave you my opinion. Arcade64 is the past MAMEUIFX/MAMEPLUS have now not so much interrest, most of their interresting features are now in MAME and the few improvements (mostly driver hacks) can be done in the original MAME. For the rest there is no need of cutting MAME to only arcade as it's not faster nor less consumming nor anything. In fact it's just a limited version without the full power of MAME. softlist support is the futur as for now having to launch softlist games using command line is only good for dev or linux users :D

 

Link to comment
Share on other sites

Please make compatible with mash's info too: https://mameinfo.mameworld.info/

I always use this to see the new games.

I can create .ini files with my favorite games.

I hope this UI it have a source folder list to guide the what's new on mame for example neogeo.cpp and i check the new fixes of the especific game.

This is the only things i use arcadeui.

Thank you. 

Edited by Hyperscorpio
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...