ekeeke / Genesis-Plus-GX

An enhanced port of Genesis Plus - accurate & portable Sega 8/16 bit emulator
Other
698 stars 199 forks source link

Sound problems in Stormlord with any of Nuked options enabled #358

Closed oldghost83 closed 3 years ago

oldghost83 commented 3 years ago

I don't know what part this bug is from - retroarch, your emulator, nuked work, or maybe some naughty things from new versions of Windows 10. I don't know if this was introduced recently or has been there for some time. To check if it was a problem with my machine (retroarch settings, maybe), I downloaded the latest version of retroarch from nightly repository, downloaded the latest genesis plus gx and tried it with default settings. I also tried it on different machine with retroarch 1.8.8. Too bad the version of your emulator is rather fresh there too, so I, again, can't tell if it's the version. The result is the same in all cases. The problem is this: if I turn on any of Nuked sound engines, be it YM2612 or YM3438, there's something wrong. Sound seems to work at the beginning, during the Razor Soft logo, and then it disappears, only occasional cracks are heard. When in game, there are cracks and also some strange micro-slowdowns when you shoot. With the rest of the three Mame sound drivers this game work fine. All of that seems to me like something is broken. Can somebody confirm this?

Sorry if it was stated somewhere, I couldn't find any mentions of this problem during my brief google search.

oldghost83 commented 3 years ago

Um, guys. Is everything alright? Did I do something wrong? I'm just new with github, tell me. It's very uncommon to see a message unanswered for two weeks nowadays. So I thought maybe it's invisible or again maybe I did something wrong. Or maybe it was so that many ammendments in my message made it look suspiciuos... Hmmm, maybe.

Again, can anyone confirm this? Retroarch 1.9.1 came out recently. I tried the game with it and it's still the same. So it shouldn't be my setup. Maybe it's a long topic, I'll understand, we can close this issue, but, please, tell me something to know I'm visible.

ekeeke commented 3 years ago

Sorry but there is just me looking at these issues (Retroarch/Libretro team don't look at issues reported in this repository and are unlikely able to work on this kind of core issue anyway). It's just I didn't have the time to check this one yet as my time to work on this emulator is very limited these days.

Afaik, there are no issues with MAME YM2612 core and no MD games that require cycle accurate YM2612 emulation (besides maybe Earthworm Jim which has some barely noticeable tempo issues on first stage when running on a real MD1, that only nuked core simulates) so not much reason to use it unless you are obsessed by 'cycle accuracy'.

oldghost83 commented 3 years ago

Oh, hi, ekeeke! Glad to see your replied!! Even if it's just you, I'm more than happy! Didn't expect it, actually, as I read somewhere how you wrote about having little time and motivation recently, so I hoped to attract other concerned ones, maybe ) Just for confirmation, who knows, maybe bug comes from my side. Oh, and I thought it was rare not to see replies for some time, but then I saw a mupen64plus core repository and there's an open Issue for BattleTanx not having had any reply since December.

Yes, you are right, I guess I'm an example of extreme perfectionism, so it aches to see something off in what you like. Since I first read about cycle-accuracy, I understood I needed it without knowing what it is, what for and if I'll see or hear any difference. For me accurate means perfect and it should work perfectly. And for this I registered on github. I'd like to help fixing it somehow, just reporting for now, but If you need any testing, please, let me know. Besides, Mega Drive is my favorite console and your nickname is right from my favorite game, by the way. I'll be patiently waiting for the fix. Even with the censorship I think I will prefer this version over Amiga original. Love the sound of FM.

P.S. Today MAME 0.230 came out, and changelog says MAME is putting on new YM drivers. Are they going to Genesis Plus GX? Or is it a different story? I'm not good in technical things and if the ones you use are the same with the ones in current mame. Are the new ones better at all?

ekeeke commented 3 years ago

so I hoped to attract other concerned ones, maybe

Unfortunately, that never happened in 12 years ^^

Today MAME 0.230 came out, and changelog says MAME is putting on new YM drivers. Are they going to Genesis Plus GX? Or is it a different story?

As I said earlier, there is no known issue with the MAME YM2612 core I currently use (which I improved myself among the years following other's discoveries and was at some point backported to MAME I think) so I have no reason to switch to this new core, which also might introduce regressions or emulation bugs as it is fairly new and probably not much tested yet

oldghost83 commented 3 years ago

12 years... You have been developing this emulator for 12 years now? Wow, time flows... Last 10-12 years passed like a flash before my eyes. And I've only started using it since a couple of years ago, I think. Kega ruled before I got into shader world with retroarch. I remember hearing more and more about those nuked cycle-accurate coded chips from different corners of emulation community... Yeah, to think about it, your emulator might be the reason I decided to try Retroarch one day, don't remember exactly, but I think it's how it was.

Oh, so you were improving that sound core yourself? Then I'll be using it too, this sounds reassuring. Until ) I'm really looking forward to Stormlord sound being fixed and hope it won't lead to regressions and will go smooth. Hopefully something like a forgotten column somewhere ^ ^ Even though I doubt it's going to be easy. It just saddens me to buy an expensive computer and not squeeze the best and the most cycle-accurate out of emulation ) Please, share your findings if it's not a secret. I'm very interested how it goes and what caused it that everything except one game works. I honestly haven't encountered another problem, went through the whole Mega Drive library a couple of times within past two years. But, you know what, I think I remember this game running fine before, though I can be mistaken, might had used different sound core, but I definitely remember playing-checking out it some not too long time ago and it sounded fine.

ekeeke commented 3 years ago

I can only confirm the issue you described when using nuked YM2612 or YM3438 core. Analyzing the emulator code (around access to FM cores) did not show any potential cause for this issue and debugging the FM settings used by this game did not show use of specific modes so I assume this is some edge case not handled properly in the Nuked implementation but I cannot confirm it since I am not familiar with his code and I am not maintaining it.

I am afraid I cannot help you on this one and you should rather report it to Nuked in its own repository (https://github.com/nukeykt/Nuked-OPN2) so it could be properly investigated.

oldghost83 commented 3 years ago

I hope I won't reopen this issue with my reply. Just wanted to add that I find it strange that no one reported this until now. I'll forward this to nuked. Thank you very much for your time and clarification where to head next!

ekeeke commented 3 years ago

Looking at nuked upstream repository, it appeared that the current ym2612/ym3438 core used in Genesis Plus GX was not up-to-date and luckily, syncing with the latest changes actually fixed the sound issue you reported in Stormlord (I suspect 1.0.9 changes is the actual fix).

oldghost83 commented 3 years ago

Oh, so that was the case? Many thanks for looking it up and a fix! I knew something was not right here. Looking forward to try new version of GPGX. Shouldn't it be reported to GenesisPlusGX Wide guys too? All the best to you!

ekeeke commented 3 years ago

Libretro windows 32-bit build is available here but it's compiled from this repository so it does not have some of the libretro forks specific features (like runahead or "widescreen" hacks).

Libretro forks always tend to sync with upstream repository after some time so I guess it's just a matter of waiting for someone to merge the latest commits, not just this one.

oldghost83 commented 3 years ago

Thank you, ekeeke, for clarification! I don't know how it works here, I just continuously press "update, update, update" ))) And get nothing, of course. So... 32-bit, eh? I've always used only 64-bit Retroarch. I guess I can't just put it there and rename it whatever I want along with changing the name inside info file for 64-bit file? Do I have to use 32-bit Retroarch? Or maybe it would be easier to wait for the final one? )