Previous Page | Next Page

by blargg at 3:56 PM EST on January 31, 2010
I read eke's relayed comments above to indicate that timing differences of less than 1/44100 sec can have a huge effect on the sound. Basically I understand the YM2612 in the Genesis to run at ~53267 Hz. So if a write was originally at clock 100, but got shifted to clock 101, it might have a big effect on the result. Since 44100 Hz is less than 53267 Hz, this can occur. If this is correct, I imagine eke could explain some scenarios with particular registers where this could occur.

I'm not saying that this is the cause of past or current sound issues, just saying that it seems a possibility that hasn't been proven to not be happening. I'm also saying that because of this, one might try to fix the problem by modifying the sound emulator, and think that it was fixed, even though timing was the cause.

Just for the record, all versions of GME have run the YM2612 the proper number of samples (at whatever rate it's running at) before doing writes; they have never bunched all the writes at the beginning of each frame. Obviously this only applies to VGM, and not GYM. :)
by SmartOne at 5:20 PM EST on January 31, 2010
VGM sources play perfectly in Fusion, so how could the current issues with foo_gep be caused by the VGM format? I see you're observing potential issues, but like you say, I don't think it has to do with the current inaccuracies.

edited 5:22 PM EST January 31, 2010
by Pulstar at 8:57 AM EST on February 1, 2010
So is it fair to presume that foo_gep can be used to rip to lossy formats except in cases where anamolies are mentioned here? I like how Foobar2000 retains tags something which Winamp will never be able to (unless they allow for 3rd party codecs in their format converter). It seems FM emulation is quite a mess from blargg's account :D

I'd be willing to sacrifice some small amount of accuracy if it means speedy encodes. Using Fusion to rip my music is tedious enough.. I mean it took me hours to rip Popful Mail and I didn't even bother to tag the tracks :P
by Franpa at 11:59 AM EST on February 1, 2010
SmartOne, perhaps Fusion uses a audio filter to rectify such problems seamlessly?
by SmartOne at 2:13 PM EST on February 1, 2010
Filters don't fix faulty instruments. Plus, foo_gep (MGME) used to play the instruments correctly. It can't be a VGM issue.

edited 2:15 PM EST February 1, 2010
by blargg at 3:25 PM EST on February 2, 2010
OK, I'm starting to look into the VGM issues. The first thing I noticed is that the new one kode54 is using has a ridiculously small threshold it checks within when it rounds the internal rate to exactly 1.0 for correct accuracy. The init function takes the clock and sample rates as integers, so there's no way they will fall within this unless you mess with them first. This means that even when GME thought it was running the chip at its proper native rate, it wasn't. Kode54, the fix is in OPNSetPres(), line 1834. Raising the window from 0.0000001 to 0.0001 seems sufficient. Of course the best fix would be to for it to accept sample rate and clock rate as double values in all places.

My general plan for solving these damn FM issues is to write a bare-bones test VGM player from scratch, that only plays FM (no PSG). This code will be very simple and clean, lessening the chance of bugs in it. That way we can be much more confident that any playback problems are due to the FM core.
by mudlord at 4:44 PM EST on February 2, 2010
Started working more on the XMPlay port.

Sound output, even with blargg's play_siren test code sounds like shit :/ Doesn't help when XMPlay's decoder API is so weird.
by blargg at 6:50 AM EST on February 3, 2010
Hmmm, maybe it was kode54 who added said threshold-checking code. Apologies for my tone to whoever wrote it.

I've got the reimplementation of a minimal FM-only VGM player done. What tracks pose problems in MGME/foo_gep? My real plan is to give this code to kode54/mudlord so they can put up builds of their respective plugins, so anyone can test and find problems with the FM cores/VGM files, or find that they only occur in GME with the same FM core.
by SmartOne at 2:32 PM EST on February 3, 2010
The previous page contains some specific problem-tracks.

I could zip up some files if you would like.

edited 2:40 PM EST February 3, 2010
by Elven Spellmaker at 2:53 PM EST on February 3, 2010
May I ask if its not an idiotic question, what exactly is MGME?

Previous Page | Next Page
Go to Page 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

Search this thread

Show all threads

Reply to this thread:

User Name Tags:

bold: [b]bold[/b]
italics: [i]italics[/i]
emphasis: [em]emphasis[/em]
underline: [u]underline[/u]
small: [small]small[/small]
Link: [url=http://www.google.com]Link[/url]

[img=https://www.hcs64.com/images/mm1.png]
Password
Subject
Message

HCS Forum Index
Halley's Comet Software
forum source