dborth / fceugx

FCE Ultra GX - Port of FCEUX for Wii
http://wiibrew.org/wiki/FCE_Ultra_GX
284 stars 46 forks source link

Audio skips and hiccups heavily #335

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Start up any one of your favorite games
2. Listen
3. Notice the currently worse skipping, about every 5-10 seconds. 

What is the expected output? What do you see instead?

Audio can and should be smooth just like the SNES9x Wii version, or the Genesis 
GX wii version, but its not. It skips worse with the latest version.

What version are you using? On GameCube or Wii?

Latest Wii Version

Are you using the official build (from the downloads page or auto-update)?

Yes

Please provide any additional information below.

This 3 year old issue has gotten worse with the newest core build. Please you 
guys, someone, anyone who gives a crap, please fix this once and for all! 

P.S. PLEASE DO NOT DELETE THIS ISSUE (even if you refuse to fix it). LEAVE IT 
UP SO THAT SOMEONE WILL SEE IT AND HELP OUT. THANKS

Original issue reported on code.google.com by nintygaming on 12 May 2011 at 6:41

GoogleCodeExporter commented 9 years ago
worse? is 3.2.3 better than 3.2.5? how much better?

you should notice that the Issues tab is now hidden - no-one will see this 
issue.

...and after 3 years, if no-one else fixed it yet do you really think someone 
else will?

Original comment by dborth@gmail.com on 12 May 2011 at 7:45

GoogleCodeExporter commented 9 years ago
I talked about this issue with the author of the PS3 version and he told me 
this problem was solved in the PS3 version by pushing slightly more than 48000 
samples and that he was almost sure the same could be done in the Wii version.

I tried to modify the sample rate in fceuload.cpp (not sure if this is the 
right file to do that), changing "#define SAMPLERATE 48000" to "#define 
SAMPLERATE 48050" and the audio was indeed MUCH better. 

I'm not sure if 48050 is the best value, because I guess I could still hear a 
small sound pop after about 2 minutes (hey, better than every 5-10 seconds), 
but that probably could be fixed with a more optimal value. I will test other 
settings.

Original comment by thiagoalvesdealmeida@gmail.com on 14 May 2011 at 12:27

GoogleCodeExporter commented 9 years ago
@ dborth

Well, I would hope that someone would eventually fix it. I mean, I would think 
that cosmetic appearance of this wonderful alternative (meaning, instead of 
hooking up my old NES console to a HDTV, yuck), would be harder to program. For 
example, the updated GUI (did I say that right?) is over a year or so old, and 
I assume it was harder to program that than it would be to fix the sound. The 
sound fix should have been first, as cosmetics are nice, but not crucial to the 
gameplay experience. Anyway, I'm not trying to start a debate, I'm just merely 
hoping that this gets fixed eventually, or at least before someone implements 
the Box-Cover art on the side of the scrolling box, like Genesis Plus GX. In 
fact, if your wanting a donation to fix the sound, I'll gladly contribute.

@ thiagoalvesdealmeida

I'm truly thankful to see you make mention of the solution. I'm not the only 
one who will appreciate this. Oh and by the way, Thiago Alves is a great 
fighter, just in the wrong weight class!

Original comment by nintygaming on 14 May 2011 at 1:04

GoogleCodeExporter commented 9 years ago
Actually, the sample rate I was talking is 48250, and not 48050. 

Hey nintygaming, try this version and let me know what do you think.

http://www.megaupload.com/?d=SZUQHDY0

(Just extract the file to the emulator folder)

Original comment by thiagoalvesdealmeida@gmail.com on 14 May 2011 at 3:22

GoogleCodeExporter commented 9 years ago
Make sure you are also using the original video mode (240p), instead of 
filtered or unfiltered (480i).

The 480i resolution have a different timing than 240p, so it needs a different 
value.

Original comment by thiagoalvesdealmeida@gmail.com on 14 May 2011 at 3:50

GoogleCodeExporter commented 9 years ago
@ thiagoalvesdealmeida

I tested it with the Original video mode (as this is the only video mode I use, 
I'm a purist!) and now the skipping is only once every 2 minutes. It is very 
noticeable, as it just kinda pops outta nowhere after 2 minutes, but is still 
far FAR better than what it was previously. Perhaps with a few more tweaks you 
can perfect it, much like someone else did with the latest core of SNES9x GX.

It amazes me how these fan-written emulators can be near perfect in their 
sound. Take for example, Nintendo's official Virtual Console emulators. Those 
things (the NES ones) are pathetic. Here's some of the problems I've found so 
far on the Virtual Console when comparing it with the same game on the Original 
NES, both using composite A/V cables. (yes thats right, same game, both 
systems, one Original, one Virtual Consoled)

1. Muffled treble. (sounds like the music/sound is muffled, just as bad or 
worse than the RF Switch that the NES used when not using the A/V outs on the 
side. Games like Zelda II and Ninja Gaiden are almost completely missing 
certain treble heavy sound effects during music as a result)

2. Inaccurate Sound effects (some games, like the Crowd cheering on Punch Out, 
and the sword beam sound on Zelda 1, the helicopter in the opening of 
Startropics, Mario's jumping sound on Mario 1, etc are different from the 
original Cart)

3. Lack of Bass. (the dynamic bass from many NES games is almost entirely gone 
on their VC versions)

4. Tinny Sound (some VC games have Tinny sound effects and/or music, like 
Blaster Masters music)

5. Off center (some VC games have the image a bit off center, like Final 
Fantasy, or Castlevania which is a bit too low)

6. Dark picture (the brightly colored picture of the original NES console looks 
much better than the darker dimmer VC versions. However, I've noticed that the 
VC graphics look a tiny bit cleaner than the NES console on composite wires)

I actually noticed some these problems on Virtual Console first thing while 
playing them, and as a result, I dragged out the old NES and games to compare. 

Yes, I know I'm a purist, possibly even a perfectionist. Regardless, if I'm 
playing my games virtually, I want them to be as accurately emulated as 
possible. Yet, Nintendo's own NES emulators seem to be lazily put together. 
Strangely enough howevever, I haven't noticed any problems with their SNES 
emulators. The N64 VC games seem accurate (minus the higher resolution), except 
for Mario Kart 64, which has a tinny sound to it, and Ocarina of Time, which 
has sound stuttering when you press the start button. I haven't checked the 
Genesis VC games or Master System to their original counterparts.

Again, I'm amazed at how the FCEU developers can make a much better free 
emulator than Nintendo can. I think Nintendo just ported their old sloppy NES 
emulators from Gamecube (zelda collectors disc, animal crossing). And possibly 
built the SNES emulators from scratch. It also seems apparent that they ported 
their old N64 emulators from the Gamecube as well (zelda disc again), as the 
sound issues in Ocarina of Time, as identical on the Wii and Cube.

Anyway thiago, let me know what your next results are, and if you need me to 
test another one, I'll gladly do it! Thanks again!

Original comment by nintygaming on 14 May 2011 at 4:39

GoogleCodeExporter commented 9 years ago
No problem. I also notice this audio hiccup around 1 minute and 30 seconds. 
Hopefully we can find a perfect value. I will try others settings later. If not 
asking too much, maybe dborth could compile a special build in order to easily 
tweak the sample rate and find the correct number, like he did before with 
Snes9x.

About the commercial emulators, you are right. Homebrew emulators are developed 
for years. Commercial emulators don't have the same luxury. So, that's expected 
for me.

You did an excellent comparison. The worst thing for me about the NES emulation 
in the VC is the dark picture. It's so blatant. How come very few people talk 
about it? I also noticed the same problem with Mario 64. Not sure if others N64 
games share the same problem.

The situation about TurboGrafx-16/PC-Engine emulation in VC is even worse. At 
first they released games using 480i and filtered, instead of 240p (like NES, 
SNES and Genesis). Then, they finally released games using 240p, but with bad 
scaling that produce horrible artifacts when the screen is scrolling. It is 
something so easy to fix that I wonder if they really knew what was the 
internal resolution of the system.

I'm also very purist about the picture and nothing beats playing these old 
games using the original resolution with a good and old CRT TV. Games looks 
better than ever using a video component cable with it.

Original comment by thiagoalvesdealmeida@gmail.com on 14 May 2011 at 6:47

GoogleCodeExporter commented 9 years ago
http://www.megaupload.com/?d=SCJZQGEN

Let me know if you can still hear any problem with the sound. Compare it with 
your real NES, if you wish. 

Just for the record, I'm using the sample rate at 48220.

Original comment by thiagoalvesdealmeida@gmail.com on 14 May 2011 at 5:32

GoogleCodeExporter commented 9 years ago
@ thiagoalvesdealmeida

I listened carefully for about 10 minutes (using 2 different skip-heavy games), 
for any skipping in audio. I couldn't find any. It looks as though you fixed 
it! It sounded flawless. Thanks!

I agree with you about the TurboGrafx-16 VC games. I noticed the blurry picture 
of the Bonk games when I first downloaded them. I use a CRT TV and I thought 
something wasn't right. I've heard other people mention inaccurate sound 
effects in the Sonic Genesis games, and Super Metroid, but I haven't done a 
comparison. 

The thing is however, that although I haven't found any issues with the VC SNES 
games, there probably are issues, I would just have to take more time with 
them. The sound and picture looks perfect, but surely Nintendo make a mistake 
somewhere in some of their games. I believe I read that F-Zero has issues with 
the screen or track not flashing black when hit, unlike the original which does.

I still cannot get over how tinny or muffled most of the NES games sound on the 
Virtual Console. Super Mario Bros. 3 sounds very tinny, and its just 
irritating. Kirby's Adventure sounds like the treble is completely missing. 
What were they thinking? And that tinny underwater sound that the VC Mario Kart 
64 has is just annoying.

Perhaps Nintendo will redo the Emulators for their next console? Probably not. 
Just a sloppy port should be enough for them. Not only will that irritate me 
and other purists, but just the fact that we will never get a virtual console 
version of Earthbound, or Rock N' Roll Racing, or Aladdin (Genesis), or 
Duck-Tales or Double Dragon II (Acclaim is dead), are all enough enough reasons 
for me to own the original versions. I've also heard that many PSone classics 
on the PSN store, have issues as well. If you want the real deal, you gotta 
purchase the old dusty one's.

Anyway, I guess the only thing left to fix on the FCEU program is a perfect 
color palette. The brown colors often tend to be red, and the green sometimes 
is light brown, etc etc. Apparently its very difficult to achieve a perfect 
color palette for FCEU. But hey, its still 10 times more accurate than 
Nintendo's costly VC games, so that's good enough for us!

Thanks again!

Original comment by nintygaming on 15 May 2011 at 3:22

GoogleCodeExporter commented 9 years ago
does the sound change depending on if it's set to 240p vs 480i/p? Does the same 
setting work for both?

how's this build (also 48220) - http://tantric.dyndns.org:8080/fceugx.zip

Original comment by dborth@gmail.com on 15 May 2011 at 3:31

GoogleCodeExporter commented 9 years ago
With  thiagoalvesdealmeida's build, If I change my Wii's video output to 480i 
instead of 480p, set the video settings in FCEUGX to Original mode with no 16x9 
correction, I have perfect sound. I tested with Dragon Warrior and Mega Man II. 
Using any other video settings goes from barely glitchy sound to more 
noticeably glitchy. My ideal setting on my TV is 480p on the Wii, FCEUGX 
Unfiltered with 16:9 correction.  That looks and feels the most authentic to 
me. I am assuming we're gonna need a different sample rate for each setting, 
but this is finally the solution to this ancient issue, right?

Original comment by aroun...@adelphia.net on 15 May 2011 at 4:43

GoogleCodeExporter commented 9 years ago
Dborth, the build that you posted above sounds perfectly fine (using 240p). No 
problem with it.

But the 48220 rate is only good for 240p (original video mode). The 480i/p 
needs a different value. I will try to find out which one.

Original comment by thiagoalvesdealmeida@gmail.com on 15 May 2011 at 5:01

GoogleCodeExporter commented 9 years ago
ok, I've added in the code to change the rate depending on the video mode. try 
plugging in the values you find for each in gcvideo.cpp and see if it works :)

Original comment by dborth@gmail.com on 15 May 2011 at 6:34

GoogleCodeExporter commented 9 years ago
I will gladly test a version once the values are in place, today is my video 
game day anyway!

Original comment by aroun...@adelphia.net on 15 May 2011 at 6:45

GoogleCodeExporter commented 9 years ago
http://www.megaupload.com/?d=FM361B5Z

People using 480i or 480p, try this build above and let me know if you can 
still hear any audio crackling.

The samplerate is 48130.

Original comment by thiagoalvesdealmeida@gmail.com on 15 May 2011 at 6:57

GoogleCodeExporter commented 9 years ago
[deleted comment]
GoogleCodeExporter commented 9 years ago
thiagoalvesdealmeida, you fixed it! Working perfectly for me! Using 80p on the 
Wii, FCEUGX Unfiltered with 16:9 correction.  No audio glitches at all! 

Original comment by aroun...@adelphia.net on 15 May 2011 at 7:15

GoogleCodeExporter commented 9 years ago
All right.

240p (original video mode) = 48220 hz
480i/p (filtered or unfiltered) = 48130 hz

Original comment by thiagoalvesdealmeida@gmail.com on 15 May 2011 at 7:49

GoogleCodeExporter commented 9 years ago
ok, here's a final build then, please test that audio is ok on all video modes: 
http://tantric.dyndns.org:8080/fceugx-b2.zip

Original comment by dborth@gmail.com on 15 May 2011 at 8:56

GoogleCodeExporter commented 9 years ago
Yes. It's working perfectly with all video modes. I will wait for the feedback 
of others, but for me the problem is fixed ...and after 3 years. :)

Original comment by thiagoalvesdealmeida@gmail.com on 15 May 2011 at 10:11

GoogleCodeExporter commented 9 years ago

Original comment by dborth@gmail.com on 16 May 2011 at 1:16

GoogleCodeExporter commented 9 years ago
Working great here too!

Original comment by aroun...@adelphia.net on 16 May 2011 at 1:19

GoogleCodeExporter commented 9 years ago
Works perfect, all 3 video modes.

Original comment by nintygaming on 16 May 2011 at 2:38

GoogleCodeExporter commented 9 years ago
Cool! Didn't realize this was fixed! Keep up the good work!

Original comment by nintendonerd1889@gmail.com on 27 May 2011 at 6:50

GoogleCodeExporter commented 9 years ago
Great to see that you got it working in a way, BUT it seems the sampling rate 
values you got the Wii version working (apparently?) has now made the issue 
actually worse with the Gamecube version. I have been using older 3.2.3 version 
which had this issue too, but with 3.2.5 and 3.2.6 it is now much worse. I'm 
using 480p image format with component cable. 

It would be great if people who helped to fix this on Wii could check the 
Gamecube version also, if possible.

I'm just hoping someone fixes this, since it is not just 'cosmetic' issue at 
least for me, it is very distracting that audio keeps twitching and popping 
when you are trying to immerse into a game and childhood memories. Audio plays 
so big part in the whole concept of 8-bit gaming that emulator unable to do it 
properly will always be second-rate. 

Setting this problem aside I have been very impressed with sound quality on FCE 
and Snes9x Gamecube versions, so thank you for the good job!

Original comment by Tilanaat...@gmail.com on 24 Jun 2011 at 10:24