-
Notifications
You must be signed in to change notification settings - Fork 73
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
UWP/Xbox Series S/X - Some games that work on standalone and pc retroarch current mame core do not work on series x/s retroarch. #326
Comments
They do work, either something is wrong with your settings, or your romset. MAME Current (247) and romset 247 (merged and non merged). Turn on the RA error log function to see what the issue is and post it here. |
Thanks riggles! :) Will do! I know it definitely isn't the romset as i use the exact same one on mame pc 247 and retroarch 247 (current core). I am using/testing these on series/x but that shouldn't matter. When i get home in a little bit ill turn on logging and post the log file here as soon as i get it. |
OK, i attached the log file for this. Thanks for the patience riggles. |
For some reason i can't edit my comment or attach the file so i uploaded it to tempsend. |
[libretro INFO] Starting game:D:\Arcade Games\galaga.zip Show me your MAME options screen in the RA quick menu. https://imgur.com/mlnOFr8 (also enable mame.ini paths at the end) Otherwise it's not finding the system, there's an issue with your directory paths. You'll want to make a mame.ini (enable read configuration for the core), should go in the root of your RA. It's having issues because your MAME romset isn't in root/roms/mame/ which is where mame is expecting it to be (since mame in RA is still like regular mame but with RA functionality, wrapped), regular mame uses a mame.ini. Here's an example mame.ini, edit with the paths you want to use https://pastebin.com/raw/aFzuM8U6 |
Thanks Riggles! When i get home i will try this out. Just started my shift so it might be a little bit. When you say root, do you mean in localstate/system/mame? In that area? I am running all my games off of a usb stick because space on the xbox internal drive is limited to a certain amount. Most of the games run just fine without needing to do anything but i guess that doesnt mean they all will. Is there a way to point the ini to the usb stick in D:? |
Oooh, yeah no idea how it works with xbox, I'm only knowledgeable with how it is in windows. Try ask people in the discord and you'll find someone with a similar setup to you. But with root I mean where the retroarch.exe itself is, but that's how it is in Windows. It's something with the paths going on here, so ask in there and close this issue (and reopen this issue with a new name speficying xbox if it turns out to be some xbox specific bug) |
It's looking more and more like an XBox specific bug so i edited this issue report to reflect it. I turned on mame ini paths and read configuration in the menu. I then edited the mame.ini file to point the ini to the D:drive where my roms are located on the USB Stick and those games still refuse to load for some reason. ALl of the other games i run on mame retroarch xbox for some reason load just fine with no issues at all and mame finds the roms correctly. But when i try to load any of those 7 or 8 games it just crashes back to the dashboard. I'll try a couple more things but it makes no sense really... :/ They DO happen to work just fine in the mame 2015 core, but also crash on the mame 2016 core. |
I did some experimenting with some of these games and lookin at the log it always bombs out when initializing the discrete sound driver. I also noticed that the games listed by Joe Pogo are all games that used to use sound samples and now use the discrete sound drive. So more likely than not that is the issue. Something must have changed in the code that the xbone does not like. |
Crusin usa, ibara, and gradius 4 can now also be added to this list as well. Crusin usa won't load in any core I've tried at all. |
You can add ibara, espgaluda ii, iron horse, time crisis and winding heat to this list. It's incredibly frustrating to have so many random games crashing the RetroArch uwp mame current core. I'm not sure what the issue is as mame 2015 core runs these just fine but the core and emulation is old. What has changed in the mame current core for uwp that is now broken? |
It appears to me that every game affected by that issue is using MAME's threading implementation in one way or another :
So i think it is extremely likely that MAME's threading implementation is the culprit for those crashes on xbox, since threading often requires platform-dependent quirks. |
Thanks so much @barbudreadmon for this helpful reply. Hopefully it is something we can work around as the series x has the grunt to run all these games with ease. I guess this explains why these same games work just fine in FBANEO on xbox AND the mame 2015 core? It's incredibly frustrating to have RETROarch only to be able not play classics like galaga and donkey kong. :) I am assuming that mame must have changed something in after the 2015 core since these games worked just fine until then. The only game thats never worked at all has been ridge racer. The vast majority of mame current games run great and just fine with no issue. Is there anything we can do to get these working on our series x consoles? |
They work with FBNeo because even if they didn't, we (i'm a FBNeo developper) would look into this since we care about cross-platform compatibility. Yes, i'd suppose many things changed in mame over the past 8 years, it could be that they changed something in their threading code, or even that those games weren't using threading at all back in 2015. |
Thanks again for your responses as always @barbudreadmon . It is very appreciated! I guess the best thing (and maybe the only thing) to do is make a request asking the mame devs to possibly look into it or hope someone here with know how sees this and is willing to make a possible fix then and look into it. Luckily it is not a huge list of games, and the majority seem to be the discrete sound core games. I hope eventually someone can take a look at this. I am hoping with all the changes in .255 maybe, just maybe this will work. @sonninnos sorry to ping you, just wondering since you are currently updating mame on retroarch to .255, have you noticed by chance any changes in the threading code since .251? |
No. I've only looked at what failed to compile and work on my machine, and none of that has been related to threading. |
It's probably better to forget about that but good luck if you decide to try anyway. |
Heh, yea, i'm not sure how my report will be met but at least in the meantime i do have FBANEO as well which is just as good for those games. Thank you for all the great work you and others do @barbudreadmon Not that I'm worried but I'm not sure if ill be met with hostility or friendly action if/when i ask. :P Either way, it's good to start getting a better idea of what the issue could be here. This will or could all be moot if xbox can ever move off of UWP, which i think is the real issue here. |
I remember one of their main devs specifically explaining that emulators being available on modern consoles is detrimental and hurts the emulation scene, because it's competing with the game remasters available on those consoles, so i'd be surprised if you didn't encounter some hostility. The MAME team is not monolithic though, and some MAME devs are very open minded. |
Running mame-current on Series X and I've rebuilt my set of MAME roms (mk4.zip, tekken3ja etc) using clrmamepro with the 0.251.dat. Games (along with their bios) will run on MAME 2010-MAME 2015. However, running these games on mame-current (0.251) will crash and boot me back to the Xbox dashboard. Please find attached my logs - perhaps whoever is working on the mame cores could possibly look into a workaround or fix for mame on RetroArch Xbox UWP Thanks |
@sonninnos if this is threaded issues on the xbox it can easily be resolved by fixing a define for the thread handling in osdsync.cpp or the threading can be disabled via a define. Right now it handles windows linux/bsd and mac not sure whats defined in the xbox build. Lines 89 to 93 in 5e04369
and Lines 278 to 281 in 5e04369
is where you would put your define in if you choose to disable it threading and multi core cpu for xbox. Can rule that out as an issue. |
Oh wow! Thank you for digging into this @grant2258 ! Hopefully @sonninnos will be gracious enough to disable this for us and once the pull request is committed we can give it a test to make sure. Running through dev mode we can update our mame current core easily once a commit has been pushed. Once again, thank all of you guys who are even responding on this issue ticket. It's much appreciated. |
Hey @grant2258 if sonninnos can't get to adding the define is it possible to trouble you to get you to make the pull request? I'm in way over my head with code and you seem to know the ins and outs very well. I've got dev mode on series x so any commit made to the main mame branch can immediately be tested. This crashing issue has been an issue since we started getting apps on series consoles a few years back. Anyways, I thank you for your time and everyone else's as well. |
If you can compile here is a patch. Just copy the text and put it in a file the mame source directory where the makefile is then git apply filename your just removing the #if #endif in them two places i posted earlier. That will be enough for you to test if if its works.
|
Hey @grant2258 we tried compiling this change but it gives errors Are we missing something? |
post the error message your getting it could be the compiler being picky about the second return no being reached. No problems compiing in gcc or clang so would really need to see the error to be sure. |
Thanks for continuing to help us troubleshoot and get through this hurdle @grant2258 . He said there was so many errors the command prompt wouldn't let him see them all. He said he is using GCC 13.1.0-6 for the compiler. Since we're on Xbox we're on uwp so I'm assuming he's building it for that. If you compile this by chance please let me know if you have any issues. He tried compiling twice and both times it failed. Anyways, thanks for continuing to look at this and hopefully it'll be sorted soon. If we can get it to compile I can easily test it on Xbox to make sure it fixes the crashing issues. |
@greenchili2 had the wrong rom. 🤣 It runs for him now too. |
Good to hear that most of the games work. Are the latest commits for mame on retroarch series X available via the online updater or are they still being tested? |
Yes, the toggle has been committed so you can get that from the online updater. You will have to load a game first then go into core options and disable it as it is enabled by default. On the xbox discord gabo posted a build in a support topic for mame testing that has .255 AND the toggle so you can get a sneak preview before .255 hits retroarch officially. The only thing left to do now is figure out xbox friendly threading as a few of of the new working 3d games took a hit in the fps area, but a lot of them still run fullspeed. :) @grant2258 I meant to tell you, cruisin usa was crashing for me the first time i tested because i also did not have the updated rom, and the same for ibara. Once i updated my sets, everything now runs as it should. |
@joepogo auto frame skip is not set to on that will help a bit think its f8 or f9 cant remember now the joys of aging memory. I think your issues with the sharers could be the resolution you see it happen on mame too with games like kick. If the resolution goes high its think its interlaced. Also as for the default of the setting being off that because it benefits the other ports that work with threading. I though that was the best approach to go. I cant think of any way to separate this from a windows build its not built separately. Nice to see xbox users can enjoy more games a little je ne sais quoi @GABO1423 I avoid building in windows because it takes far too long ive setup mingw cross compiler for testing windows builds much quicker. |
Hot tip in the readme:
|
Well that wasn't really an issue for me I removed the REGENIE define in the makefile.libretro with the patch below it only creates the files on the first run. The problem is its only checks for the variable being defined and not its value. Lines 952 to 954 in e8c8991
Clang seems to be holding up a lot better speed wise compiling. Its a little I3 mamebox it was an i5 but the cpu went out and I just got a cheap replacement for it so its not ideal to compile on to begin with. I do appreciate the feedback on getting things to run faster.
|
Hey @grant2258 is there a better way to reach out to you rather than my clogging up my issue ticket? 🤣 I have one last thing I wanted to ask you about but rather would discuss in a message or something. Are you on any discords? |
All I use is github if its related to RA is best to post here so anyone can pick issues up. |
Hey @grant2258 thanks for responding and no worries. Thank you again for all of your time. :) Your time is always appreciated. I don't want to bother anyone about this too much anymore we just have one last hurdle in the way: Trying to put the final nail in the mame xbox coffin here with all the xbox uwp mame issues and trying to get someone to help us get the UWP threaded library in and test it to see if it can get us fullspeed on everything. Is it possible to get your help with this maybe? If not, it's totally fine obviously, it would be great to get this long standing issue completely solved and have all of our games working fullspeed. The 3d threaded games need it the most as they all took fps nosedives. I'm willing to set up a bounty if need be to compensate for the time. :) Anyways, thanks to you @grant2258 and @barbudreadmon as always for throwing a bone and helping us xbox peasants out. lol. |
Well I dont know much about the upw framework and its limitations, learning the it inside out would be time consuming on my part. There is no guarantee you will get full speed. The best thing you can do is test a similar processor with threading on and off to see if its something worth pursuing. There is no graphics acceleration for artwork and other effects its just a frame buffer the libretro port is using. Things like game and watch and artwork will suffer due to the frame buffer rendering rather than using acceleration via gl, vulkan, dx ect. Some people think because they pick gl or vulkan there cores are automatically accelerated this is int the case. It would probably best to try contact whoever works on the xbox port. If you seriously want to some progress on this its might be worth posting a bounty for someone well versed in uwp to pick it up. Anyone could test the upw build in windows so you dont need to rely on people having an xbox. |
Thank you for your response @grant2258 ! Yea, I get what you mean. Unfortunately there is no one really working on the Xbox port but I can think of a few people who I might can reach out to. As always thank you for your time. Hey @GABO1423, do you know much of the ins and outs of the uwp framework by chance? I can set up a bounty to compensate your time if you think it's a doable worthwhile endeavor if need be. Have any interest in possibly trying to help us get us the uwp threaded library in for a test for mame? If not, obviously we appreciate all you've done this far for us. 😁 |
Hey @grant2258 just a quick question for you. It isn't related to this issue thread but it's def related to mame on Xbox. On arkanoid for mame the volume is really low and cNt be adjusted higher. On FBNeo the sound is louder. Is there a way to adjust the sound on mame? The db is already at 0 in slider controls. Older versions of mame had louder sound for arkanoid. Is this a change that needs to be made at the driver level? Toggling options in current mame seem to do nothing. |
I don't have any problems hearing it on headphones or my sound bar, or the cheap amplified speakers I have on my workstation. It is pretty low on the tv speaker itself though. I find the volume ok on all my devices accept the tv internal speaker. I suppose it depends what sound device your using if you think its too low, post on mame testers or their git hub page. It`s one of them subject things all you can do is try asking them to increase it as I don't see anything on the service menu to change it. The only other option is the speaker volume in in the slider menu since the volume button isint helping you. If you can test on windows or linux you can see if its a xbox issue or just a general low volume issue. I don't have an xbox so cant test it. |
I added the ability to increase the internal volume a bit just for this reason. Some games have volume adjustment in the "bios", and some do not. Some are at very low volume at default, and some are not. Pretty sure the host platform has absolutely nothing to do with it. |
I tend to agree but I didnt find this this game particularly low though. Im using a decent soundbar though so that might be why im not noticing it as much. I just updated from source I see it goes up to 12db now that should be plenty then some :) |
Thanks guys! Until i update my other xbox series s i am still on mame 251 (that's the one i've been doing my testing on). For my dev xbox though i am on the current mame retroarch. I will have to give @sonninnos options he added a try on that xbox and see it that helps. I just noticed it was louder on FBNeo and on previous versions of mame so i was thinking they made an adjustment at the driver level. BTW, i am trying to figure out how to get someone to help me get the UWP library in so we can test out to see if we can reap any benefits and get fullspeed. Most games are fullspeed but there a good number like time crisis, rave racer, SF rush and others that would benefit from this. Once i can get someone to help me get it in and tested, i can close this issue ticket. Maybe i should change the title to reflect where we are at since ALL games now actually do work. :) |
I dont actually have these chds do they even run full speed on a pc? Try putting autoskip frame skip on to see if it improves. Youll need to enable game focus mode to use the f-keys though. F8 and F9 will increase/decrease the frameskip. |
Hey @MistyDreams , yes from what i have seen and tested. The threading pc mame uses for some games (3d, discrete sound) makes them fullspeed from what i have seen. The xbox series consoles were crashing due to this threading on these games so @grant2258 made a commit where threading can be disabled. The series consoles themselves can almost grunt their way to 60fps with these 3d games but misses the mark by a few hairs which is impressive in itself. It def would help chd games like time crisis, gauntlet legends, SF rush and others but also help other games that aren't CHD like Nba play by play if the UWP threading library could be dropped in as a test. Better yet mickeysoft should just dump the stupid UWP crap regardless and make the option to go vulkan and never look back. :P |
@sonninnos just tried out the volume slider in the settings. The volume doesn't change much (if at all) and even glitches out once you get to about 6db. :( The last time the volume was up was mame 2015 core, sometime after that it was turned down. |
Beats me then. It works fine here, and only starts to distort on high levels depending on how loud the source material is, and sometimes never. |
My phone accidentally closed the issue. Lol. I guess the only thing left for me to try do is bump it up in it's source file then? In this case, arkanoid.cpp? |
src/mame/taito/arkanoid.cpp if you want to mess with the volume. |
@joepogo try a different sound driver if there is more than one. I has issues with sound popping with alsa and it was fine with pulse audio driver in RA. That went away when I replaced linux pulse audio with the pipewire ( alsa and pulse_audio are related in a linux level). The point is if there is another driver it might be worth trying. |
Thanks @MistyDreams Just checked. Only one driver here that i can use. The same arkanoid rom has louder sound in FBNeo, i'll probably just have to ask mame to maybe bump up the volume or try to do it myself when i want to compile my own build. It's weird because older versions of mame run the game with better sound on the same TV. on the same system. I guess they adjusted it at some point or lowered it? |
Just go to the mame repository and do a search on the changes for gyruss.cpp ... ight have to do the same if they have a konami.cpp file? If you go here... http://adb.arcadeitalia.net/lista_mame.php and look up gyruss you can read the whole history specific to gyruss. |
@joepogo if your using a mame.ini set the sample rate in there to match what RA is set too 48000 by default. If your not using a mame.ini feel free to ignore this comment. |
Thanks for the response @grant2258 . Can I use a mame.ini to fix this issue? If so, where can I find an into use? |
If your not using a mame.ini you dont need to worry about it. check the settings->audio->output rate should be 48000. If its set to that and your not using read config and read mame ini in the core options that isint your issue and can safely be ignored. EDIT: |
When using the mame-current core in retroarch, there are a small number of games that will not load and some crash retroarch. The roms have been verified to work in the current standalone mame and verified with the proper mame current dat so it is not the rom.
As stated these exact same roms were tested in the current standalone mame and load with no issue at all.
The games in question are:
Galaga
Pole Position 1 and 2
Gyruss
Donkey Kong
Donkey Kong Jr.
Moon Patrol
Burgertime
Currently, the only way to get these to load at all is to use the 2015 mame core. These exact same games ALL crash even when trying to load them using the Mame 2016 core.
Can someone shed some light as to what is going on with this in retroarch mame? Most mame games on the current core work well within retroarch and have no issue at all but this is a really strange one!
The text was updated successfully, but these errors were encountered: