FIX94 / Nintendont

A Wii Homebrew Project to play GC Games on Wii and vWii on Wii U
1.96k stars 326 forks source link

Super Mario Eclipse audio streaming issue #1228

Open SpyrooftheNight opened 2 months ago

SpyrooftheNight commented 2 months ago

Super Mario Eclipse has a lot of its new music go silent in Nintendont on Wii and Wii U. Something to do with audio streaming because turning that off on Swiss on GameCube causes the exact same issue.

staringstar commented 2 months ago

Someone already notified the Nintendon't devs here https://github.com/FIX94/Nintendont/issues/1182 about the issue, but it seems like it went unnoticed.

While Im no expert on Nintendont or GC/Wii in general, fixing this issue seems like it would be a sizeable effort so Im not getting my hopes up for a fix coming soon.

SpyrooftheNight commented 2 months ago

I won't get my hopes up either but my only way to play on my CRT is GameCube or Wii and I was experiencing slowdowns on GameCube not on Wii so if they could get it working it would be the best way to play the game authentically.

carnage702 commented 2 months ago

the thing here is nintendont is not an emulator, its more like a bridge between gc calls and wii hardware and redirects and changes those calls so that the wii/wiiu play them using their hardware.

GC Homebrew does not work on nintendont because of that becuase it doesnt use the expect functions to do so so they dont get redirected correctly same for some mods.

nintendont patches patterns and functions from original nintendo sdk and homebrew just doesn't follow any rules, for nintendont to use audio streaming all the official functions,flags and calls would need to be followed to a T to be like they are on the other audisotreaming games which they arent so nintendont cant patch this mod there really isnt a fix that could be done unless you would manually patch every address for every song and hard coded it on nintendont and forced it in instead of naturally playing it like the other audiostreaming games do and i dont think anyone would do that complex work tbh.

staringstar commented 2 months ago

I just checked SMSBetterEngine's audio system code and it seems like it does import system functions to do its job, so a way to fix this can probably be found.

Something else that seems notable is that that engine's code does seem to not be inserted into the game's executable (or at least not until runtime), so no wonder that Nintendont can't detect and patch the underlying patterns. The SMSBetterEngine module is inserted into the game by a mod loader called Kuribo ( altough Im not entirely sure if this is correct ) so a patch could be done by modifying SMSBetterEngine or Kuribo to do their own patches for Nintendont compatibily or something akin to Majora's Mask Nintendont patches.

carnage702 commented 2 months ago

I just checked SMSBetterEngine's audio system code and it seems like it does import system functions to do its job, so a way to fix this can probably be found.

Something else that seems notable is that that engine's code does seem to not be inserted into the game's executable (or at least not until runtime), so no wonder that Nintendont can't detect and patch the underlying patterns. The SMSBetterEngine module is inserted into the game by a mod loader called Kuribo ( altough Im not entirely sure if this is correct ) so a patch could be done by modifying SMSBetterEngine or Kuribo to do their own patches for Nintendont compatibily or something akin to Majora's Mask Nintendont patches.

Like I said it's a complex codding change so I don't know if anyone is willing to put the effort to learn nintendont code to even know what to fix.

SpyrooftheNight commented 2 months ago

So does that mean that the Eclipse team would have to fix their files?

Extrems commented 2 months ago

the thing here is nintendont is not an emulator, its more like a bridge between gc calls and wii hardware and redirects and changes those calls so that the wii/wiiu play them using their hardware.

Maybe you should make it an emulator then since that worked for Swiss.

carnage702 commented 2 months ago

the thing here is nintendont is not an emulator, its more like a bridge between gc calls and wii hardware and redirects and changes those calls so that the wii/wiiu play them using their hardware.

Maybe you should make it an emulator then since that worked for Swiss.

Swiss runs GC homebrew nintendont does not, it was the way nintendont was made and how it works if a function doesn't do what is expected on the exact place then it won't work

madsl commented 2 months ago

I really hope Nintendont will add this feature, because there's no way of getting swiss-gc to run on a Wii U. I even tried booting swiss from Nintendont just to make sure...

JoshuaMKW commented 2 months ago

I just checked SMSBetterEngine's audio system code and it seems like it does import system functions to do its job, so
way to fix this can probably be found.

Something else that seems notable is that that engine's code does seem to not be inserted into the game's executable (or at least not until runtime), so no wonder that Nintendont can't detect and patch the underlying patterns. The SMSBetterEngine module is inserted into the game by a mod loader called Kuribo ( altough Im not entirely sure if this is correct ) so a patch could be done by modifying SMSBetterEngine or Kuribo to do their own patches for Nintendont compatibily or something akin to Majora's Mask Nintendont patches.

If you can point me to exactly what types of patches I need to do in the code, I'll consider it.

VGBCP3rs0na commented 1 month ago

I can't even hear the music in Erto Rock!!! This is bull!