Previous Page | Next Page
- by arbingordon at 1:26 AM EDT on June 6, 2009
- eh as long as you're not off the scale on the uf-ometer you're in the green
- by SmartOne at 10:51 PM EDT on June 7, 2009
- I can't do this. Highly Advanced is Highly Incomprehensible. No wonder why stopping and restarting playback doesn't work. The stop function basically wraps pause functions from the emulator that are empty. Nice.
- by mudlord at 5:35 AM EDT on June 10, 2009
- Yeh, its a mess.
- by SmartOne at 12:54 AM EDT on June 13, 2009
- Why is the Highly Advanced DLL 130 KB and the compiled version without libresample 400 KB?
From the version log:
Version 0.09
* Performance boost introduced a seeking bug, fixed.
* Multiple gsflib support. (some games use 2 completely different sound engines)
If a seeking bug was introduced and then fixed, then seeking must have worked at some point. Who hacked it up, and why?
edited 12:58 AM EDT June 13, 2009
- spoiler alert by unknownfile at 1:24 AM EDT on June 13, 2009
- HA is a Winamp plugin, and seeking works correctly there.
- by mudlord at 8:44 AM EDT on June 13, 2009
- SmartOne: there is always the possiblity that CaitSith UPXed the DLL.
- by SmartOne at 12:43 PM EDT on June 13, 2009
- ...Oh.
- by SmartOne at 1:43 AM EDT on June 15, 2009
- Here's my little custom version of MGME so far:
MGME 1.0 custom
I'm probably supposed to provide the source code because of license stuff. Let me know if you want the source. There really isn't any significant change. Everything I can remember:
*Only plays SPC, VGM, and VGZ (removed unused emulators)
*Removed unused subsong code from in_gme.c
*Removed a few lines of what seemed like equalizer initialization in the VGM emulator
*Removed set_gain(1.4); from SPC emulator
*Added an option to disable use of SPC Rate and instead use 44100 Hz (to avoid lower quality resampling in certain scenarios?)
*Messed around with imperfect seeking. Still seems the same.
*UPX-ed ;) (cut the DLL size in half!)
Basically, I haven't done anything.
The biggest hindrance is not understanding most of C++ syntax, structures, and all the funny scope nuances. I have a burning desire for a GSF plugin up to the quality of VBA-M. Maybe I'll try adding GSF support in its current state in Highly Advanced. We'll see how that goes.
It seems XMPlay's Winamp plugin support handles seeking differently than Winamp. That's fun to deal with. Compare and contrast.
- by ElPenguino at 1:19 PM EDT on June 15, 2009
- smartone, the best way to describe the highly advanced source code in its current incarnation...
"Abandon all hope, ye who enter"
- by mudlord at 8:04 PM EDT on June 15, 2009
- Nice job SmartOne :) I might start working on this again :).
Because of the BSD, people can even sell my code. :)
So feel free to withold the source if you want. I don't care ;)
edited 8:04 PM EDT June 15, 2009
- by mudlord at 8:06 PM EDT on June 15, 2009
- And SmartOne, since you removed all the other emulators, adding per song instrument/channel control should be easy. :)
- by SmartOne at 9:06 PM EDT on June 15, 2009
- I cleaned up the project. Only the files used are present (also contains binary):
MGME 1.0 custom source
- by SmartOne at 2:24 AM EDT on June 16, 2009
- obj\Release\VBA\GBA.o:GBA.cpp:(.text+0x44dd)||undefined reference to `N_FLAG'|
*50+ with different letters. What the heck.
Oh yeah, and the same sort of undefined reference to _emulating. Removing the extern keyword fixed those two. Not sure what's worse: compiling or linking. (Well, linking in this case.)
edited 2:31 AM EDT June 16, 2009
- by SmartOne at 11:40 PM EDT on July 8, 2009
- Mudlord, how do I make MSVC2008 see nasm.exe, so I can finally build VBA-M?
I used the NASM installer, so I have the assembler on my computer. It's obviously in the wrong place:
1>Assembling...
1>'nasm.exe' is not recognized as an internal or external command,
1>operable program or batch file.
1>Project : error PRJ0019: A tool returned an error code from "Assembling..."
About my last post, the N_FLAG, V_FLAG stuff, it seems I'm missing some source file, but I just can't figure it out. Bashing my head against a rock sounds like a better idea.
EDIT: Got it to assemble, then ran into 76 errors due to missing afxwin.h. Is this because I have MSVC2008 Express? (AKA free edition) I'm blocked at every turn.
edited 11:51 PM EDT July 8, 2009
- by SmartOne at 12:51 AM EDT on July 10, 2009
- Posting all my problems here somehow makes me feel better after wasting hours upon hours, in case anyone was wondering.
I can compile in_gsf NO_INTERPOLATION. I can't build the in_gsf portion of my MGME, HA merge project. I swear the two are exactly the same. I'm going to pull my hair out.
I've narrowed it down to 14 unresolved external symbols. A good portion are a bunch of util(...) blah crap that are declared externals in Util.h or cpp, don't remember which. They work for HA, don't know why they aren't now.
edited 12:56 AM EDT July 10, 2009
- by kode54 at 2:23 AM EDT on July 10, 2009
- Per-song instrument/channel control? Where do you propose the mute control information be stored, in a database file?
What more controls do you need than channel muting? I don't think either SPC or VGM will support volume or panning controls, and as both are already stereo, I don't think they need it anyway.
foo_gep already has the channel muting, and supports all of the formats. It just doesn't support saving that information for each individual file. Although that wouldn't be difficult to implement, I just haven't seen any demand for it yet.
- by SmartOne at 12:00 PM EDT on July 10, 2009
- I think mudlord meant an overall plugin channel control, not to be saved per song. Suppose that would be saved in the INI.
That's low priority. The reason I'm doing this is in hopes of VBA-M quality GSF playback. I'm trying to at least get GSFs to play through MGME in their current Highly Advanced form before I start hacking down to the bare guts of playback code in HA.
After that, I'll update to VBA-M source. That's the high hope, anyway.
- by SmartOne at 11:53 PM EDT on July 10, 2009
- MGME uses a recent libz.a.
HA uses zlibMD.lib from 1998 or so.
Clash.
I can't build one DLL while Linking both, it seems. Terrible headache.
- by mudlord at 10:58 PM EDT on July 12, 2009
- Yes Smartone, thats what I meant. A overall channel control, for people like Lunar who do MIDIs.
- by Richter X at 4:14 AM EDT on July 13, 2009
- Slightly OT, but if anyone ever gets GSF working in this. Could someone put it in foo_gep as well? It's the only format besides USF (which probably needs a code overhaul as well) that isn't supported in Foobar currently.
- by SmartOne at 2:22 PM EDT on July 13, 2009
- Where are the MSVC2008 Project Properties saved? I can't figure out how to package this monster. If I copy the folder to another location and load the project, all the Properties are reset.
- by SmartOne at 5:53 PM EDT on July 13, 2009
- I've made some minor improvements to the existing HA.
[Highly Advanced v0.12]
*Cleaned up a whole bunch of crap from main.c, eliminating 410 lines. Organized.
*Removed Registry entries for saved settings and instead use mudlord's sleek INI code. Microsoft says that these functions are "provided only for compatibility with 16-bit Windows-based applications. Applications should store initialization information in the registry." An INI is much easier to uninstall.
*Converted to Ms Shell Dlg 2 for the dialogue resources. HA compiles in Visual Studio 2008 Express! (Free edition.)
*UPX compression
*As funny as "Jinx is a fatty," Pepper (a good boy,) and Pimpbot are, they got the boot.
edited 5:58 PM EDT July 13, 2009
- by mudlord at 6:47 PM EDT on July 13, 2009
- Ritcher X, there is a USF component for FB2K and it works perfectly. You must have missed the version in which Josh encapsulated everything into classes to allow for such a proper port.
- by SmartOne at 9:28 PM EDT on July 13, 2009
- The foobar2000 port has reversed stereo. I'm not sure which is right, but other than that, I think it sounds the same?
Oh, the Winamp plugin plays at a slightly slower tempo...
edited 9:30 PM EDT July 13, 2009
- by SmartOne at 12:07 AM EDT on July 14, 2009
- Adding the VBA-M sound core to Highly Advanced is impossible.
Somebody, please prove me wrong.
Highly Advanced v0.12 source
Creating some kind of plugin from scratch would probably be infinitely easier. I simply lack the knowledge to implement the sexiness of VBA-M. It's just way over my head.
edited 12:22 AM EDT July 14, 2009
- by kode54 at 6:08 PM EDT on July 14, 2009
- If foobar2000 is to see GSF support, it will probably take a lot of rewriting, similar to what happened with 64th Note. Encapsulating various components into classes to support multiple decoder instances would be a good start. As would making the emulator loop exit/resume safe, so the audio output doesn't require a separate thread. (So the decoder calls the emulator loop, rather than the emulator calling something else to output samples.)
Sounds like fun.
- by SmartOne at 9:58 PM EDT on July 15, 2009
- If you plan on implementing the VBA-M core, please, please do. :D I'll be cheering you on.
- by mudlord at 4:04 PM EDT on July 16, 2009
- Then the plugin must be GPL.
The last time something fb2k related was GPL....there was a massive flamefest over it by certain people......
- by SmartOne at 1:43 AM EDT on August 5, 2009
- When I try to load my plugin in Winamp/XMPlay, I get "The ordinal 68 could not be located in the dynamic link library zlib1.dll."
I thought zlib was statically linked... Any idea what the problem is?
I linked to zdll.lib, and now the plugin magically loads in XMPlay, but I get the same error in Winamp.
This is so confusing.
edited 5:07 PM EDT August 5, 2009
- by SmartOne at 1:53 AM EDT on August 6, 2009
- Here's what I have:
VBA-M's GBA core integrated with Highly Advanced's GSF decompressor/reader built using Highly Advanced and VBA-M as templates.
A whole lot of cross-referencing to figure out this mess, let me tell you.
The Winamp plugin itself only loads in XMPlay for some unknown, zlib-related reason. When I play a file, XMPlay says "Opening..." and my CPU usage goes to 100%. There's obviously an infinite loop somewhere. Maybe I should learn how to debug a C++ program...
edited 2:24 AM EDT August 6, 2009
- by SmartOne at 12:05 AM EDT on August 7, 2009

...And then stack overflow. :(
I really need some help. I feel like the I'm only person who cares about an accurate GSF player.
Hey, Winamp won't load the plugin because Winamp depends on the older zlib.dll that it installs in its root directory. Probably conflicting symbols and junk. But when I tried linking zlib statically, the plugin loaded in neither XMPlay nor Winamp. What the hell.
edited 12:23 AM EDT August 7, 2009
- by Mouser X at 1:33 AM EDT on August 7, 2009
- I'm interested in improved GSF audio. Very rarely do I listen to GSFs, since they don't sound very good to me. If your work can help improve that, I'm all for it. Unfortunately, I don't think there's anything I can do to help. I'm providing my support, but as far as I know, that's the only help I can provide. Sorry, and good luck. If you succeed, I'm sure your work will not be in vain. Mouser X over and out.
- by Lunar at 9:43 AM EDT on August 7, 2009
- yea i'm very interested in GSF improvements. i notice the sound coming out of VBA is nicer than the current plugin. that and there's no foobar plugin which i'd really loooove. so i fully support any GSF-related endeavours.
- by SmartOne at 6:33 PM EDT on August 8, 2009
- I disabled most, if not all, Compiler and Linker optimizations. Now remake_stereo_buffer() gets further before an "Unhandled exception" at blip_eq_t::generate(float* out, int count), Line 264 + 0x2c bytes. Don't know what the + hex bytes is about, but the line is:
out [i] *= 0.54f - 0.46f * (float) cos( i * to_fraction );
- by arbingordon at 6:57 PM EDT on August 8, 2009
- I'd help, but I suck at programming in general.
Sorry.
- by SmartOne at 11:44 PM EDT on August 8, 2009
- So do I, it turns out. ;)
for ( int i = count; i--; )
out [i] *= 0.54f - 0.46f * (float) cos( i * to_fraction );
Infinite loop? That's some code in Blip_Buffer.cpp. It's blargg's and is used in many different implementations, so I know it's correct.
count = -32, not that it matters?
- by Mouser X at 12:07 AM EDT on August 9, 2009
- I had my dad look at this, and he says that what the loop is trying to do is to loop, until it reaches 0. But, since count is already -32, it's not going to reach 0 (it's decrementing). It seems to me, that for that for() loop to work, count would need to be a positive number. At least, if what my dad said is correct. Hopefully that helps? Mouser X over and out.
- by SmartOne at 12:14 AM EDT on August 9, 2009
- Thanks, I figured it had to be something like that. I did a search on "for" loops to refresh, but I didn't find that zero rule...
- by arbingordon at 12:49 AM EDT on August 9, 2009
- well, if I'm not mistaken (although I've only tried it in c++ with msvc++ 6.0...), it would actually get back down to 0 from -32 because the (signed) integers loop back such that
int whatever = –2147483648;
while(whatever<0)
whatever--;
the loop would stop after one execution, and whatever would be set as 2147483647
just a point, that that might be the intention of the original coder (although that'd be one long-ass loop to process through)
- by SmartOne at 1:36 AM EDT on August 9, 2009
- blip_eq_t::generate(float* out, int count)
out is a float pointer... an array of float pointers... i think... that would be a lot of pointers...pointers are fun...
It seems the symbol width is never initialized, and I don't know how C++ works if something isn't initialized. This causes:
int const half_size = blip_res / 2 * (width - 1);
Then half_size = -32, somehow. half_size is passed as count, which leads to the Unhandled (array index out of bounds?) exception.
Is there some Sound function I need to call before soundReset() can be safely called? I'm looking into VBA-M's SoundDriver implementations to find out.
edited 1:57 AM EDT August 9, 2009
- C++ and uninitalized values by jurassicPieter at 8:12 AM EDT on August 9, 2009
- C++ is working on speed only, so it has no checks, only in debug. In debug variables get filled with 0xCD in visual C++ but it depends on compiler.
- by SmartOne at 3:52 PM EDT on August 9, 2009
- I don't understand how int const width = 0 when I can't find any initialization. Then width - 1 makes half_size negative.
If I had a debug build of VBA-M r880 (I can't compile VBA-M in MSVC++ Express Edition because of MFC,) I could debug and try to figure out how it works. Reading the source isn't cutting it. I suspect this has something to do with C++ Generics because I found width(w) in the Blip_Synth_ constructor, where w is an int. Didn't know int const width could take parameters.
edited 6:25 PM EDT August 9, 2009
- by SmartOne at 11:20 PM EDT on August 31, 2009
- Hey, looks like the creator/maintainer of NEZplug++ has a build of VBA with the NEZplug++ Gameboy sound core. I wonder if it's VBA-M.
http://offgao.no-ip.org/program/nezplug++.html
- by SmartOne at 1:21 AM EDT on September 19, 2009
- Any programming wizards interested in checking out my source? Want to try and get something to work? It's pretty, at least.
- by Franpa at 1:50 PM EDT on October 3, 2009
- Hey, when will working track seeking be implemented for NSF files? no GUI buttons or features (even in file info) but I can skip the first song by fast forwarding to the end however the next song plays infinite making that trick not work that well :/
edit: OMFG the controls appear when you stop and play the file, controls don't appear when opening the file via file association. I'm using a v1.0 alpha
edited 1:54 PM EDT October 3, 2009
- by SmartOne at 3:11 PM EDT on October 3, 2009
- I won't be working on the NSF support (I even took it out.) NEZPlug++ is the best plugin to use.
- by Franpa at 12:51 PM EDT on October 7, 2009
- I gave up on it, I'm going to use Kode54's Foo_Gep.dll with Foobar2000 instead.
- by SmartOne at 7:37 PM EDT on October 7, 2009
- I know for a fact that foo_gep (GME) is inferior to NEZPlug++ at least for GBS. Try out Pokemon Red/Blue/Yellow.
NEZPlug++ is the best for 8-bit formats.
- by Lunar at 8:07 AM EDT on October 8, 2009
- just less convenient :P fb2k works for most things most of the time, and with the amount of other advantages it makes nezplug (or winamp in general) totally not worth it anymore.
also, i guess the discussion about GSF moved here from this thread at some point (gogo forum organisation), but there is now a viogsf! seems our prayers have been answered.
http://foobar2000.xrea.jp/up/files/up1028.zip
- by SmartOne at 7:15 PM EDT on October 8, 2009
- *cough* XMPlay. My life is complete. For now.
- by kode54 at 12:38 PM EDT on October 10, 2009
- I know for a fact that foo_gep (GME) is inferior to NEZPlug++ at least for GBS. Try out Pokemon Red/Blue/Yellow.
Fixed. :D
- by Franpa at 5:28 AM EST on November 27, 2009
- Oooh, I never knew Nezplug++ was also a Winamp plugin. I was using the very crappy Nezplay interface ._.
- by JILost at 2:11 AM EST on November 28, 2009
- Pluginja? I have a request: vionsf. Or perhaps viopsg would be a more appropriate name. That is, nezplug++ for foobar, with the split-tracks-into-playlists functionality of foo_gme. I realize this is perhaps a ridiculous/redundant request, but it would certainly be a better deal for control than Winamp's nezplug++ and a better deal for accuracy than foo_gme -- extra sound chips for KSS, higher accuracy for NSF and GBS. Perhaps you could also implement some better control scheme in the Winamp version, if there even ends up being a Winamp version at all (see: redundant). But feel free to completely ignore this humble request/suggestion if you don't see it being worth your time. Thank you in advance if you consider it.
- by JFD62780 at 3:32 AM EST on November 28, 2009
- Plugin Dude? Forgive me for adding on to JILost's request, but if the "nonpublic hack" of Vio2SF is any indication, could you please add the ability to select a method of interpolated mixing to said plugin?
Also, could you add Band-limited mixing (a-la Highly Advanced) as an option, even though it wasn't mentioned in the DeSmuME 9.x sources?
Not to mention, would it be too much for you to reveal yourself to the HCS Forumites? ;)
A billion thanks in advance. :D
edited 3:34 AM EST November 28, 2009
- by unknownfile at 12:15 AM EST on November 29, 2009
- Mysterious Plugin Dude does not comprehend our English speak. He is too busy with coding plugins to understand us.
- by JFD62780 at 12:22 AM EST on November 29, 2009
- Nevertheless, UF, to us, he's known as... Pluginja. *mysterious gong*
(Eat your heart out, Top Gear, and your Stig! :P)
- by Franpa at 12:14 AM EST on December 1, 2009
- Who the hell is Pluginja referring to? the Nezplug++ Winamp plugin works fine, you push the "next track" or "previous track" buttons to skip forward/back between tracks in a NSF file.
- by Mouser X at 1:50 AM EST on December 1, 2009
- They're referring to the guy who codes vio2SF, aoDSF, aoSSF, and vioGSF. If there's an official place this guy hangs out at, no one who speaks English knows where it is, or who they might be. As for the NEZplug++ requests, I really can't say what they're for, since NEZplug++ works pretty good as-is for me. Though, apparently, it's more directed toward NEZplug++ being ported for use in Foobar2000 than anything.
I assume this is what you were wondering about? Mouser X over and out.
- by JILost at 3:21 AM EST on December 1, 2009
- It's for NEZplug in foobar, both so I can abandon Winamp and so I can have the insta-playlists that I've seen in foobar rather than the somewhat clunky control in Winamp.
- by Lunar at 5:51 AM EST on December 1, 2009
- maybe just encourage kode54 to improve playback for the formats nezplug would cover :3 which i'm sure he will, gradually
- by mudlord at 11:37 PM EST on December 11, 2009
- Bump.
Next version will bring it in line with foo_gep.
So yeah. That includes the Genesis stuff too.
- by mudlord at 2:35 PM EST on December 13, 2009
- mudlord.xtemu.com/files/in_mgme.dll
So there.
- by SmartOne at 4:02 PM EST on December 13, 2009
- Cool. On to blackbox testing! ;)
MGME 1.5 beta = foo_gep 1.77
Any idea why VGZ doesn't work?
File info doesn't work for the currently playing SPC track. I was trying to figure that one out before. Maybe it's a GME issue?
edited 4:02 PM EST December 13, 2009
- by mudlord at 4:45 PM EST on December 13, 2009
- Forgot to enable Zlib. Now try that VGZ.
I checked the SPC issue. Its weird. :O
- by Franpa at 10:30 AM EST on December 16, 2009
- SPC file info works here for the currently played file, though I only ever have one in the list at any time. It isn't that hard to have Windows Explorer as your library/play list.
edit: actually, even with multiple files in the playlist it works fine.
edit: doesn't play SPC at 32khz.
edited 10:47 AM EST December 16, 2009
- by Franpa at 8:19 AM EST on December 17, 2009
- 1.5 Beta Plugin doesn't get initialized with the newly released Winamp 5.57.
- by Franpa at 9:22 AM EST on December 18, 2009
- I take that back, I reinstalled without Modern Skin support (was causing me crashes) and MGME 1.5 beta initializes now.
- by Franpa at 9:43 AM EST on December 18, 2009
- NSF song selection is still broken.
- by JFD62780 at 7:08 PM EST on December 18, 2009
- Mudlord: Is there a way to disable portions of MGME? For example, I only want the VGM portion to work, seeing as Maxim's VGM player has done nothing, but crash, crash, CRASH under Winamp 5.57. x.x
- by Mouser X at 7:42 PM EST on December 18, 2009
- D: @ Maxim VGM crashing.... I've been using that for ages. However, I must say, I have in_mgme installed on one of my computers (I think it's on my laptop, I can't remember right now), and I was very impressed with it. It replaces a huge slew of plugins I've been using for a long time. The biggest issue I've encountered though, is that NSF/NSFe/GBS support, while it does work, doesn't work as I would expect it too. Specifically, I noticed it with NSFe files, but it seems to effect all sub-song files. It recognizes the first song/time, but any song after that point plays continuously forever, and requires user intervention for it to skip to the next song.
I haven't put it under extensive testing, or tried to break it yet, but with the (fairly brief) time I used it, it seemed like a very nearly viable replacement for NotsoFatso, NEZplug++, SNESamp, and Maxim's VGM plugin (and very likely others that I haven't even encountered yet). So far, awesome work. I appreciate it, and greatly look forward to your continued efforts. Mouser X over and out.
- by mudlord at 4:46 AM EST on December 19, 2009
- @Mouser X: It seems that the specialised *.pls support is needed. I will add it as soon as I have enough files to test with.
XMPlay has somewhat decent native subsong support, so I am going to ask for assistance for a official XMPlay port from someone experienced with XMPlay development.
@JFD62780: So you want extension select?
- by JFD62780 at 7:12 PM EST on December 19, 2009
- Mudlord: heh, not particularly at the mo, but it'd be nice in general. Meanwhile I had to rename the plugin to in_zmgme for a workaround...
- by mudlord at 9:27 PM EST on December 21, 2009
- Started work on a proper XMPlay port, with the official blessing of the XMPlay dev.
The API supports subsongs natively, so yey. No need for that playback selection dialog now.
- by SmartOne at 1:16 AM EST on December 22, 2009
- Any word from kode54 on the YM2612 core?
- by kode54 at 3:43 AM EST on December 22, 2009
- I gave mudlord my Game_Music_Emu source tree, which includes the modified MAME core I use in foo_gep, as well as the latest unreleased version of Game_Music_Emu as a base. Maybe I should bug blargg and see if he's ready to release the library as-is, or if he has further work to finish, heh.
For instance, there's a HES file I have that crashes the player, due to somehow jumping the program counter to an out of bounds address. Not so easy to trace, either, as MSVC doesn't seem to want to break on modification of the pc variable when it's set to the value I want, instead breaking on just about any modification of the value, and executing really slowly at that.
- by SmartOne at 11:33 AM EST on December 22, 2009
- Do you use eke's modifications from genplus-gx? Aside from the bug I reported, it's the most cutting edge, open-source YM2612 out there (as far as I know).
- by cyx at 6:36 PM EST on December 24, 2009
- Glad to see there's plugins like this one in development.
edited 6:42 PM EST December 24, 2009
- by SmartOne at 1:15 PM EST on January 10, 2010
- The Dark Law SPCs don't work in both MGME and foo_gep. GME or SPC issue?
- by mudlord at 7:36 AM EST on January 11, 2010
- SPC issue.
- by Pulstar at 12:06 PM EST on January 23, 2010
- Why is the latest MGME plugin gone? :(
btw currently listening to Bare Knuckle 3's music using Westons custom build.. Great stuff!
- by SmartOne at 1:26 PM EST on January 23, 2010
- Eke's latest Genesis Plus GX core would be much greater stuff. Unfortunately it's not as simple as plopping it in there.
- by Franpa at 8:31 AM EST on January 24, 2010
- Pulstar, http://mudlord.xtemu.com/files/in_mgme.dll
I c... doesn't work :/
edited 8:32 AM EST January 24, 2010
- by Franpa at 8:37 AM EST on January 24, 2010
- You can download version "1.0 Alpha" from the below link, do note it is an out dated version that is likely not supported by the author of the project.
http://home.exetel.com.au/franpa/in_mgme.dll
- by Pulstar at 7:47 AM EST on January 25, 2010
- Thanks! the wait for the definitive MD player seems to be a long one.
- by Franpa at 9:20 AM EST on January 25, 2010
- At 00:42 in Donkey Kong Country - Fear Factory, you can tell it is an old version because the note isn't reproduced accurately.
- by SmartOne at 7:12 PM EST on January 25, 2010
- Are you suggesting MGME 1.5 beta fixes that cracked note? It's probably correct. Latest foo_gep (1.88) is the same.
About that foo_gep. Kode54 presumably updated the MAME YM2612 to the latest official MAME. Although an improvement, it's still not as good as Genesis Plus GX's version.
Example problems with straight MAME in foo_gep:
* Zombies Ate My Neighbors is simply messed up
* Castlevania Bloodlines "All Clear" track clips
* Sonic the Hedgehog 2 "Winged Fortress" wrong notes at beginning
* Streets of Rage "The Streets of Rage" oscillating pitches
Problem of GME:
* No DAC panning
None of these are VGM file issues (aka they are perfect in Fusion).
I sound like a broken record, but I have faith that someday we'll have accurate VGM playback.
edited 8:18 PM EST January 25, 2010
- by Pulstar at 9:36 PM EST on January 25, 2010
- So can we use Genesis Plus GX's core to make 'quick & dirty' wave dumps using any apps out there? Wouldn't mind lossy encodes of VGMs as long as the wave rips are sufficiently accurate.
- by SmartOne at 11:25 PM EST on January 25, 2010
- You should stick to Fusion. Eke does have a rough SDL Genesis Plus GX port, but it hasn't been updated in a while. VGM ROM builder:
VGM_PLAY v2.00+
- by Franpa at 11:35 PM EST on January 26, 2010
- Does anyone here have the 1.5 beta of MGME?
- by kode54 at 4:50 AM EST on January 28, 2010
- I've updated foo_gep again, this time against latest revision of ym2612.c from Genesis Plus repository.
> Zombies Ate My Neighbors is simply messed up
Sounds fine to me. Any specific examples?
> Castlevania Bloodlines "All Clear" track clips
Plays loudly here, but doesn't distort audibly.
> Sonic the Hedgehog 2 "Winged Fortress" wrong notes at beginning
Technically, it's one wrong note. Oh, and it's not my fault. Bad rip/trimming job. Try my rip instead.
> Streets of Rage "The Streets of Rage" oscillating pitches
Again, not sure what's wrong here. Maybe I fixed it?
> No DAC panning
Huh, I didn't know the DAC supported panning. Maybe you should e-mail blargg about it?
- by SmartOne at 3:04 PM EST on January 28, 2010
- foo_gep 1.89
"The Street of Rage"
Mute all but FM 4. You'll hear the oscillating pitches.
Zombies Ate My Neighbors:
"Konami Logo" has always been a problem in emulators, but it actually seems okay... It's a bit more scratchy than in Fusion, but that's probably due to Snake's filtering behind the scenes. Maybe Castlevania's "All Clear" scratchiness is because of this as well.
"Zombie Panic"
Listen to the lead during the first seven seconds. The distortion is obvious. It happens throughout this game and many others. Comix Zone, ToeJam and Earl "Funkotronic Beat," etc.
Thank you for fixing "Winged Fortress." Funny how the old one played fine in Fusion using a ROM builder...
Unfortunately I can't test Genesis Plus GX right now other than possibly the SDL port.
edited 3:12 PM EST January 28, 2010
A Project2612 user reported issues with the Dune: The Battle for Arrakis set. I noticed that "Opening (German)" introduces clicking that appears in subsequent tracks and progressively worsens.
edited 10:41 PM EST January 28, 2010
- by blargg at 3:03 PM EST on January 29, 2010
- Could some FM problems be caused by the differing timing accuracy of a Genesis emulator and the VGM format? Is there any way we can even determine this? I get the idea that lots of fixes for FM sound problems are really introduction of a second problem that cancels out the observed effect of the first, all the while creating yet another problem. Note that the original problem might be in the emulator or the FM sound core, and the fix in the other of these two.
Due to my lack of knowledge of or interest in FM, I'm having to let others work out those issues with GME (huge thanks to kode54 for his work on GME in this regard!). My goal right now is to get the GME code more understandable to others, and make sure it's really easy to swap out sound cores. Currently I'm de-optimizing all the CPU emulators :)
- by mudlord at 6:08 PM EST on January 29, 2010
- @Franpa: mudlord.hcs64.com/audplugins would be the best place to find them.....
The current version is in a rewrite, again, to accommodate the XMPlay port so there is at least common plugin code, leaving only Winamp/XMPlay specific implementations that are minimalist.
- by SmartOne at 11:05 PM EST on January 29, 2010
- Blargg, could that easy "swap-ability" of sound cores include the emulation of DAC panning? :D
- by Franpa at 11:12 PM EST on January 29, 2010
- You mean http://mudlord.hcs64.com/audplugins.html, right?
edited 11:13 PM EST January 29, 2010
- by kode54 at 7:46 PM EST on January 30, 2010
- Actually, DAC is handled outside of the FM emulator core, so DAC panning would have to be handled externally as well.
Perhaps you could also provide an example of a VGM that utilizes DAC panning to make it easier to test?
- by SmartOne at 9:36 PM EST on January 30, 2010
- Sonic the Hedgehog 3 "Hydrocity Zone 2"
Uh, shouldn't that be "Act 2?" I understand that DAC panning is a "GME-system" related thing. ;)
- by SmartOne at 11:54 AM EST on January 31, 2010
- I asked eke about the issues we have been experiencing. Maybe this information will help:
"crackling should not be related to the emulation core but to the audio backend and the way samples are mixed/output"
"yes, timings are important
basically, there are two way to emulate the chip:
1/ at a slower speed so it can output at the desired samplerate (eg. 48kHz): in this case, the samplerate and input clock passed as parameters of the Init() function are used to apply a ratio to all internal counters (FM timers, EG timer, LFO timer, frequency increments, etc) in relation with the amount of rendered samples. See OPN_SetPres function and the "frequency" variable
2/ at the original speed, which is exactly one sample each 144 m68k cycles (144*7 M-Cycles), this is what High Quality FM mode is doing. In this case, the internal frequency ratio is 1.0, which means everything run at the original rate and the frequency increment value are not altered. This makes some high-frequency sounds more accurate. In this case, however, more samples are rendered per frames (and per seconds) so resampling is required.
Another thing to get right are the timings of write to the chips (from BOTH z80 & m68k cpu) regarding to chip execution (i.e samples rendering). For example, when the chip receives a write command that could affect one internal register (and sound ouput), you should also pass the number of FM cycles that have been executed so far (based on the CPU clocks count generally) and run the FM chip up to this point BEFORE actually applying the write.
I could not think about other timing issues,I don't have distorted sound in Genesis Plus, so I don't see how changes I've made recently could have introduced that, that's why I think it has do with the audio back-end or the way writes are synced with chip execution."
"Before I forget, you can also tell them that timings of CPU reads are also important: some games actually use the internal FM timers and poll the FM status flag to synchronize their writes. Without emulating that properly (i.e running the FM chip for the correct amount of samples before processing the read), you can get some badly pitched music."
- by blargg at 2:03 PM EST on January 31, 2010
- See, timing's an issue that cannot be eliminated with VGM, since the file format rounds times to 1/44100 second accuracy. I'm glad you've actually confirmed that timing inaccuracies cause audible glitches. It shows that VGM is doomed to have these problems, unfortunately.
Re: PCM, I thought most of the FM sound emulators handled that as well. The two main reasons I had GME do it its own way is because FM sound emulators are really slow, so calling it much more often would only make things worse, and because of VGM's timing resolution. Doing PCM myself, I can have the sample writes at the times specified in the VGM, so there's only one level of (time) quantization noise. If done with the FM sound chip, you get an extra layer. Maybe it wouldn't matter for drum samples, being inherently full of noise anyway.
I definitely regret ever having messed with FM sound emulators. They're an endless source of problems, ugh.
- by Knurek at 3:04 PM EST on January 31, 2010
- Blargg, actually even the 44100 Hz in VGM is more ample than enough. Since VGM logs just the emulated reads/writes, which most of the time are happening way less frequent (say, 50 Hz or somewhere around that).
You only need to emulate the FM chip at it's native frequency to have the sounds... well, sound properly.
At least that's what helped the in_vgm beta to play the problematic songs correctly.
edited 3:05 PM EST January 31, 2010
Previous Page | Next Page
Go to Page 0 1 2 3
Search this thread
Show all threads
Reply to this thread:
HCS Forum Index
Halley's Comet Software
forum source