libretro / mame2003-plus-libretro

Updated 2018 version of MAME (0.78) for libretro. with added game support plus many fixes and improvements
Other
194 stars 110 forks source link

Potential Sound Channel Issue in System 32/Multi 32 #1892

Open KMFDManic opened 1 day ago

KMFDManic commented 1 day ago

@mahoneyt944 I tested this on both 2003 Plus/Xtreme. Same issue seems to be present on both. I didn't think too much of it before, when I initially noticed it awhile back. But, today, in testing, I realized exactly the root. I was testing the UnderClock/OverClock, MAME Menu perimeters for Sound+Video, and noticed YM3438 was missing channel 2, as in volume was now set to 0. I loaded up Golden Axe Death Adder on Pre-2003 Plus/Xtreme, prior to ALL of the System 32 Commits, and you can distinctly notice a volume differential, and channels that are obviously present, that no longer have "auto-filled" volume.

The one standout thing I noticed in segas32.c driver ,relating to multi32, is:

One YM3438 is removed, and the RF5c68 is replaced by the far more powerful Sega "MultiPCM" IC.

This could be coincidental, or an unfortunate side effect of merging System32+Multi32 Drivers together. But, it seems HALF the YM3438 Channels are now missing, Volume Wise, by default.

I will demonstrate EXACTLY what I refer to in a video, of course:)

One other side note. This could be an oddity, in itself. The LAST commits you sent as a Pull Request for 2003 Xtreme, built by itself...Core Fails to load. I did a test Revert to directly before the LAST Pull Request, and Core Loads fine. Could be some small conflict somewhere. I tested this WITHOUT my Unsafe Clock Adjust Commit, just to be certain that wasn't the cause.

https://github.com/KMFDManic/mame2003-xtreme/tree/0538e7b52057376f0d4635c865657eccd82fc9b7

This exact point fails to work, upon a seemingly successful compile. BUT, built exact latest 2003 Plus Source, and THAT worked fine. Must just be some minor conflict in the Xtreme Source Base.

In any case, gonna try to get a video up showing the half missing sound channels for both latest 2003 Plus/Xtreme. I can EASILY adjust the volume, on the fly, for Xtreme. But, it would be nice for us to just sort the conflict, so both Repos have more appropriate sound. Sorry I didn't realize channels were missing sooner. It wasn't til I pulled up the MAME Menu Volume Channels, that I immediately noticed something was for sure amiss!

Otherwise, loving everything, System 32 wise!

P.S.: Another slightly off thing I noticed. Not sure if this is just how Hard Dunk Emulates, or a bug. It seems to be the only game in the System 32/Multi 32, that may "start out fast", you can pass, shoot fast, all players move fast...BUT, then, not sure if it is intentional or not...Will have to check some YouTube Videos to compare, as well as "real hardware cabinet" videos...But, it seems gameplay randomly slows down...almost like a "movie where you see the main character take the winning shot", sort of scenario!

I, again, tested on both Plus/Xtreme, and netted similar results. So, not certain if it is just how the game behaves or not.

Chat soon, once you review this post. Will capture a video so you can see the missing sound channels, and a few other things:) And curious, how you might force "channel" 2 of the missing channels to properly function again. I'd have to look back through the commits, to try to see exactly where it may have gotten "bugged" sound behavior.

@grant2258 Your tilde addition is exactly what helped me ascertain the sound bug issue:) Absolutely loving the easy to access Clock Values for CPU0, 1, and Sound Channels! Underclocking Sound helps clean up stuttering on some of the slower games!

@Wilstorm Be sure to let me know if you've ever gotten to check out any of the movie recommendations! I have been on a horror kick lately. Finished up watching Terrifier Short Film, 1, 2, 3. To the "masses", the Xtreme Violence may seem completely new. But, this sort of niche-horror genre has always existed. It has just never ever been mainstream, to the point of Terrifier, as of yet! I am also currently finishing up Smile 2. Interesting concept for a movie. 1st was different enough...Had to check out the 2nd!

Snow came outta nowhere. Stay warm, for any of you who are in "snowbelt" areas, around the world!

Hope all is well with ya all:) 2003 FTW:)

mahoneyt944 commented 1 day ago

I re-forked Xtreme to see that the commit was merged correctly. I don't see any conflicts with those changes. Try completely deleting the your local Xtreme directory and downloading a fresh set of master files, maybe there was an issue with the git pull?

As far as the channels and volume, I know @grant2258 adjusted the volume lower for multi32 games. I think there was some sounds clipping and multi32 doesn't use the 2nd YM3438 chip so that might be normal to see it auto filled on the sliders. We don't have the sliders here so I can't say for sure. As long as your not missing any game sounds, that shouldn't be an issue.

I'll have to see what slowdowns you're referring to in harddunk, to compare how it plays on my platform. But I believe it slows to exaggerate the dunking power, a "in your face", "take that" kind of feel.

Also you might want to clear your cfgs for these games as there maybe differences in the overhaul. Or even between cores

grant2258 commented 1 day ago

@KMFDManic you cores not starting because of an unresolved symbol. undefined symbol: harddunk_kludge have to get ready for work. Outrunners was clipping so the multipcm volume was lowered although that doesnt explain why your volume is sitting at 0. I have a look at your core tonight or tomorrow. Its probably a good idea to delete the game in questions cfg file to make sure its not some input changed thats messed the sound outputs up.

mahoneyt944 commented 1 day ago

Ah good call, must have missed it on the manual copy over. Due to Xtreme being different for "inline" vs "static inline", I usually manually copy over the video driver. https://github.com/KMFDManic/mame2003-xtreme/pull/90

KMFDManic commented 1 day ago

@grant2258 I deleted all the .cfgs for Xtreme in a few tests and sound channels definitely amiss. Ill try same for Plus to verify whether the problem still exists there. Thanks in advance for checking into things. Tested XMen 6P and the other stuff and all is completely awesome.

@mahoneyt944 Title Fight is definitely a gem...Although, it takes getting used to the controls. I can obliterate the first guy with haymakers and jabs. The 2nd opponent is quicker on the offense and takes ya down fast. Fun as hell game, though. I've always love this niche kind of boxing game!

Thanks for the declaration fix for Xtreme. I had actually just noticed that was the missing element when I compared the Repos. Silly, how such a trivial thing can make or break a core!

Thanks again, both of you:)

Ill have to do one more cpu adjustment on Xtreme to fix up minor clipping/vblank/draw issues at 99 Default Clock for OutRunners. I just have to adjust the CPU, math wise, for multi 32 driver, so it behaves as it would at roughly 111, then all will work well for Xtreme. Im pretty set up for a nice before and after demonstration video to showcase stuff I also fixed up for my N64 Fork (memory leak [using over 100 MB less overall RAM for games like Beetle Adventure Racing] fixes, etc), along with all the great 2003 Plus stuff! The before and after definitely stands out:)

mahoneyt944 commented 2 hours ago

@KMFDManic I found that the upper cuts take a fair amount of damage. You have to sweep the joystick down , towards inside then up. Definitely eats the quarters until you nail down a winning combo.

grant2258 commented 1 hour ago

@KMFDManic I can see the issue your talking about seems the ym3438 is set as a YM2612interface which is using the AY8910interface structure. At what point did you say this was working on your core. The sound interfaces seem to match up with system32/multi32 before the split. Will need to look what changed since the point it broke or if its always been the case. There is no way to check this core as it was ripped out. It could be we are using the 21612 instead of the ym3438. The ym on plus is also different from the one on your as well. Can only debug this on yours though.

Looking at the code the only thing that could be changing the volume is this. https://github.com/grant2258/mame2003-xtreme/blob/608d0ab9f84b0d3d4957d89338f7750c0bb0614c/src/sound/2612intf.c#L117 comment that line out and you should be good. It probably wants some sort of mask for some reason.