Skip to content
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

Open
joepogo opened this issue Sep 12, 2022 · 76 comments

Comments

@joepogo
Copy link

joepogo commented Sep 12, 2022

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!

@riggles1
Copy link

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.

@joepogo
Copy link
Author

joepogo commented Sep 12, 2022

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.

@joepogo
Copy link
Author

joepogo commented Sep 12, 2022

OK, i attached the log file for this. Thanks for the patience riggles.

@joepogo
Copy link
Author

joepogo commented Sep 12, 2022

For some reason i can't edit my comment or attach the file so i uploaded it to tempsend.

https://tempsend.com/gxmcs

@riggles1
Copy link

[libretro INFO] Starting game:D:\Arcade Games\galaga.zip
[libretro INFO] Game name: galaga, Game description: Galaga (Namco rev. B)
[libretro ERROR] System not found: Arcade Games
[libretro WARN] Driver Arcade Games not found -1
[libretro INFO] Creating frontend for game: galaga
[libretro INFO] Softlists: 1
[libretro WARN] Invalid video value opengl; reverting to software
[libretro INFO] SOURCE FILE: ../../../../../src/mame/namco/galaga.cpp

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

@joepogo
Copy link
Author

joepogo commented Sep 14, 2022

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:?

@riggles1
Copy link

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)

@joepogo joepogo changed the title Some games that work on standalone won't work in retroarch (Xbox Series S/X) Some games that work on standalone and pc retroarch mame won't work in retroarch consoles. Sep 15, 2022
@joepogo
Copy link
Author

joepogo commented Sep 15, 2022

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.

@joepogo joepogo changed the title (Xbox Series S/X) Some games that work on standalone and pc retroarch mame won't work in retroarch consoles. (Xbox Series S/X) Some games that work on standalone and pc retroarch current mame do not work on series x/s retroarch. Oct 8, 2022
@greenchili2
Copy link

greenchili2 commented Oct 27, 2022

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.

@joepogo
Copy link
Author

joepogo commented Oct 29, 2022

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.

@joepogo joepogo changed the title (Xbox Series S/X) Some games that work on standalone and pc retroarch current mame do not work on series x/s retroarch. 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. Oct 29, 2022
@joepogo
Copy link
Author

joepogo commented Dec 4, 2022

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?

@barbudreadmon
Copy link

It appears to me that every game affected by that issue is using MAME's threading implementation in one way or another :

  • threading is used for TTL logic (dkong, gyruss, ...)
  • it's used for 3D rendering (crusin usa, ...)
  • it's used in cv1k games (ibara, espgal2, ...)

source

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.

@joepogo
Copy link
Author

joepogo commented Jun 14, 2023

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?

@barbudreadmon
Copy link

I guess this explains why these same games work just fine in FBANEO

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.

@joepogo
Copy link
Author

joepogo commented Jun 14, 2023

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?

@sonninnos
Copy link
Collaborator

sonninnos commented Jun 14, 2023

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.

@barbudreadmon
Copy link

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

It's probably better to forget about that but good luck if you decide to try anyway.

@joepogo
Copy link
Author

joepogo commented Jun 14, 2023

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.

@barbudreadmon
Copy link

barbudreadmon commented Jun 14, 2023

Not that I'm worried but I'm not sure if ill be met with hostility or friendly action if/when i ask. :P

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.

@TheElecPlay
Copy link

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
retroarch__2023_06_14__17_41_36.log

Thanks

@grant2258
Copy link

@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.

mame/src/osd/osdsync.cpp

Lines 89 to 93 in 5e04369

int osd_get_num_processors(bool heavy_mt)
{
#if defined(SDLMAME_EMSCRIPTEN)
// multithreading is not supported at this time
return 1;

and

mame/src/osd/osdsync.cpp

Lines 278 to 281 in 5e04369

#if defined(SDLMAME_EMSCRIPTEN)
// threads are not supported at all
threadnum = 0;
#endif

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.

@joepogo
Copy link
Author

joepogo commented Jun 15, 2023

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.

@joepogo
Copy link
Author

joepogo commented Jun 18, 2023

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.

@grant2258
Copy link

grant2258 commented Jun 18, 2023

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.

diff --git a/src/osd/osdsync.cpp b/src/osd/osdsync.cpp
index bd9a82b0f9f..c81b914aa4e 100644
--- a/src/osd/osdsync.cpp
+++ b/src/osd/osdsync.cpp
@@ -88,14 +88,14 @@ static void spin_while_not(const volatile _AtomType * volatile atom, const _Main
 
 int osd_get_num_processors(bool heavy_mt)
 {
-#if defined(SDLMAME_EMSCRIPTEN)
-       // multithreading is not supported at this time
+
+       // test for xbox
        return 1;
-#else
+
        unsigned int threads = std::thread::hardware_concurrency();
        // max out at 4 for now since scaling above that seems to do poorly
        return heavy_mt ? threads : std::min(std::thread::hardware_concurrency(), 4U);
-#endif
+
 }
 
 //============================================================
@@ -276,10 +276,8 @@ osd_work_queue *osd_work_queue_alloc(int flags)
        if (osdworkqueuemaxthreads != nullptr && sscanf(osdworkqueuemaxthreads, "%d", &osdthreadnum) == 1 && threadnum > osdthreadnum)
                threadnum = osdthreadnum;
 
-#if defined(SDLMAME_EMSCRIPTEN)
-       // threads are not supported at all
+       // threads are not supported at all test for xbox
        threadnum = 0;
-#endif
 
        // clamp to the maximum
        queue->threads = std::min(threadnum, WORK_MAX_THREADS);

@joepogo
Copy link
Author

joepogo commented Jun 19, 2023

Hey @grant2258 we tried compiling this change but it gives errors

Are we missing something?

@grant2258
Copy link

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.

@joepogo
Copy link
Author

joepogo commented Jun 19, 2023

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.

@joepogo
Copy link
Author

joepogo commented Jun 23, 2023

@greenchili2 had the wrong rom. 🤣 It runs for him now too.

@TheElecPlay
Copy link

TheElecPlay commented Jun 23, 2023

Can confirm now.

ALL mame games now work with this toggle available!! This includes cruisin USA/world and all other games I had in my folder that were crashing including chd games. Even ridge racer which I never was able to get working on any core.

Obviously some games that were benefiting from the 3D threading on PC took a small fps nose dive on series x so in the future if Xbox friendly threading can be added, I think those games can be sped back up most likely to full speed.

Firstly, thank you to @barbudreadmon for your very helpful input and insight looking into what could be the problem. Your guess was correct! And I can't thank you enough.

Secondly, thank you @grant2258 for your patches and code and pull request to get the toggle in and committed to mame.

Thank you to @sonninnos for merging the pull request and thank you to @GABO1423 for compiling the mame .255 core for Xbox and putting up with my noob shit on discord lol. 🤣

Thank you to my buddy @greenchili2 for testing as well.

If you @barbudreadmon or @grant2258 want a small challenge in the future maybe you can give some insight as to why maybe shaders are broken on flycast in retroarch on Xbox.

Luckily there's not too many issues plaguing retroarch on Xbox. The mame crashing and flycast issue were my only 2 biggest ones.

I'll probably put up a bounty source for that one. Hoping it's easy.

I'll close this issue soon as the initial problem is now solved. Hoping we can somehow get some Xbox friendly threading in and wash hands of this problem.

Thanks to all of you for your time, input, and patience.

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?

@joepogo
Copy link
Author

joepogo commented Jun 23, 2023

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.

@grant2258
Copy link

grant2258 commented Jun 23, 2023

@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
moment. Mame is really portable just need the right eyes on things like this glad it worked out in the end.

@GABO1423 I avoid building in windows because it takes far too long ive setup mingw cross compiler for testing windows builds much quicker.

@sonninnos
Copy link
Collaborator

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:

For faster building after the initial makefile creation:

make -f Makefile.libretro PREMAKE=0

For Windows install lld for much faster linking.

@grant2258
Copy link

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.

mame/makefile

Lines 952 to 954 in e8c8991

ifdef REGENIE
SCRIPTS+= regenie
endif
thats why it keeps on going like a Duracell battery. The problem I was having was with the speed of gcc compiling.

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.

diff --git a/Makefile.libretro b/Makefile.libretro
index a4e0ef07152..be5e2d7556f 100644
--- a/Makefile.libretro
+++ b/Makefile.libretro
@@ -10,7 +10,6 @@ TARGET ?= mame
 # OS ?= linux
 # TARGETOS ?= linux
 PYTHON_EXECUTABLE ?= python3
-REGENIE ?= 1
 GITHUB_REPO ?= https://github.com/libretro/mame/
 DEBUG ?= 0
 
@@ -69,7 +68,7 @@ endif
 #
 ###########################################################################
 
-BUILDFLAGS = RETRO=$(RETRO) REGENIE=$(REGENIE) VERBOSE=$(VERBOSE) NOWERROR=$(NOWERROR) OSD="retro" NO_USE_MIDI=$(NO_USE_MIDI) NO_USE_PORTAUDIO=$(NO_USE_PORTAUDIO)
+BUILDFLAGS = RETRO=$(RETRO) VERBOSE=$(VERBOSE) NOWERROR=$(NOWERROR) OSD="retro" NO_USE_MIDI=$(NO_USE_MIDI) NO_USE_PORTAUDIO=$(NO_USE_PORTAUDIO)
 
 ifneq ($(PYTHON_EXECUTABLE),)
        BUILDFLAGS += PYTHON_EXECUTABLE=$(PYTHON_EXECUTABLE)

@joepogo
Copy link
Author

joepogo commented Jul 1, 2023

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?

@grant2258
Copy link

All I use is github if its related to RA is best to post here so anyone can pick issues up.

@joepogo
Copy link
Author

joepogo commented Jul 5, 2023

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.

@grant2258
Copy link

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.

@joepogo
Copy link
Author

joepogo commented Jul 8, 2023

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. 😁

@joepogo
Copy link
Author

joepogo commented Aug 22, 2023

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.

@grant2258
Copy link

grant2258 commented Aug 22, 2023

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.

@sonninnos
Copy link
Collaborator

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.

@grant2258
Copy link

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 :)

@joepogo
Copy link
Author

joepogo commented Aug 22, 2023

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. :)

@MistyDreams
Copy link

MistyDreams commented Aug 22, 2023

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.

@joepogo
Copy link
Author

joepogo commented Aug 22, 2023

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

@joepogo
Copy link
Author

joepogo commented Aug 22, 2023

@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.

@sonninnos
Copy link
Collaborator

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.

@joepogo joepogo closed this as completed Aug 22, 2023
@joepogo joepogo reopened this Aug 22, 2023
@joepogo
Copy link
Author

joepogo commented Aug 22, 2023

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?

@grant2258
Copy link

grant2258 commented Aug 22, 2023

src/mame/taito/arkanoid.cpp if you want to mess with the volume.

@MistyDreams
Copy link

@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.

@joepogo
Copy link
Author

joepogo commented Aug 24, 2023

@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?

@greenchili2
Copy link

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.

@grant2258
Copy link

grant2258 commented Sep 10, 2023

@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.

@joepogo
Copy link
Author

joepogo commented Sep 10, 2023

Thanks for the response @grant2258 . Can I use a mame.ini to fix this issue? If so, where can I find an into use?

@grant2258
Copy link

grant2258 commented Sep 10, 2023

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:
just seen this mamedev@1ea0762 Just seen this it allows increase specific chips in your slider menu up to 400% if it just volume you should be able to use this it will be in the next mame.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

9 participants