VOGONS

Common searches


Search results

Display options

Re: Can anyone help me fix my Adlib(OPL2) emulation?

What do you mean with wrong coupling for the modulator and carrier? It's just the modulator output (assumed +/- 0-2047) times 4. That times 4 doesn't apply to the rhythm channels though. Feedback is the averaged of the last two outputs multiplied by 1/32 times the feedback setting(x0 through x32). …

Re: Can anyone help me fix my Adlib(OPL2) emulation?

Should I use the mentioned software to play them (the 8088 one)? You should use any software that correctly plays HSC files. HSC Tracker by Electronic Rats has bugs. I don't know "The 8088 one" will play it without bugs. It's in the post linked last time (https://www.vogons.org/viewtopic.php?p= …

Re: Can anyone help me fix my Adlib(OPL2) emulation?

superfury Record (in 49716 Hz WAV ) your playback form JazzPopMix.HSC and Crystal2.HSC and PM* me I can check you play it correctly. I know these two tracks and there are good test for non-rhythm mode. *) PM bacause of copyright. Nobody will answer you whether you play a track well when you give it …

Re: Can anyone help me fix my Adlib(OPL2) emulation?

OK. Just ran the Dead End [Round 4] song from Rusty on my adlib player. It sounds the same as https://www.youtube.com/watch?v=aLaUDFnNqQc&t=221s ? So that might mean that the implementation is correct? It just sounds softer, but that might be the difference between the low-pass filter types used for …

Re: Can anyone help me fix my Adlib(OPL2) emulation?

I've just implemented looping into the player. Although somehow when the loop occurs, the playback suffers because of hanging notes and/or a hiccup somehow (sounds like timings being skipped somehow or notes not finished when they should)? I see nothing weird happening in the player itself. Once the …

Re: Can anyone help me fix my Adlib(OPL2) emulation?

superfury I propose play on your emulator old-title-tune.hsc and crystal2.hsc. You will find them in cta-adlib.zip found by google. This zip has badly signed authors (including these tracks). The old-title-tune.hsc helped me with attack/decay problems (there will be hearable differences if badly …

Re: Can anyone help me fix my Adlib(OPL2) emulation?

OK. So there's a LFO AM and PM table that's used in the chip? https://github.com/gtaylormb/opl3_fpga/blob/master/docs/ymf262.c The AM depth not being set divides it by 2. It's directly added to the attentuation from the volume envelope? The PM table is an different case? It should adjust the fnum …

Re: Can anyone help me fix my Adlib(OPL2) emulation?

The formula seems to run fine. So that probably happens on the real chip as well? Now the next questions: - Why do some Megarace effects (like the high sweeps at the start of the Factory Land) sound incorrect? It's mostly pure sine waves now? - How do the Tremolo/Vibrato work on the real chip? I'd …

Re: Can anyone help me fix my Adlib(OPL2) emulation?

Because the other parts were already written from scratch and it's fun to learn to do it with accuracy? As of a seperate note, I've been thinking about the formula used to calculate the increment from the fnum and block number. It might be way more simple than the whole floating point math being …

Re: Drums on truly real OPL2

Playing various VGM YM3812 made me find a small bug in the OPL2 as well. The BD register had some instruments mapped to the wrong operators (the two bits were swapped with the Snare drum and Hi-Hat triggering each other's signals to start/stop instead of the right way around).

Re: Drums on truly real OPL2

After reading your comments, I've now implemented a VGM player into UniPCemu. It's based on https://vgmrips.net/wiki/VGM_Specification Although I don't have any VGM files to test it with. You will find files in this topic It theoretically (as in untested so far) supports playing VGM files for both …

Re: Drums on truly real OPL2

superfury , I propose you should make code review after so many changes. Review the waveforms with use of FOLK102. FOLK102 allows you to set each parameter but you need additional program to switch bit 0x20 in register 0x01 (for example SBTimbre) to use other waveforms than sinus. FOLK102 also has …

Re: Drums on truly real OPL2

Hmmm... The special effects at the start of Megarace's Factory Land (comparing to this: https://www.youtube.com/watch?v=-QfdgQPqwr0 ) sounds a bit weird? Just some high tones going through each other? Nothing like what the video sounds like?

Re: Drums on truly real OPL2

But the data from the exponent table stage is floating point, isn't it? Yes, it isn't. This document should help you to understand. You really use cannon to shoot a fly. out = exp(logsin(phase2 + exp(logsin(phase1) + gain1)) + gain2) Exponential table (store this as static const int16_t[] array): x …

Re: Drums on truly real OPL2

Modulator/feedback output - there is needed only int32_t. Why do you use floats/doubles? It has no sense to calculate feedback and modulation on double instead of int32_t. Does the original chip calculated it in double/int64 mode or 32-bit? No. 20 bits - it was the precision of this chip. If you …

Re: Drums on truly real OPL2

I'm using the Rhythm.DRO from this post: Do not use DRO files with percussion enabled. DosBox sucks and records them incorrectly to DRO file (bad values of B7 and B8). I finally checked percussion with VGZ. 1) Uncompress it with PHP command gzdecode. 2) String 5A xx yy means: write yy to register …

Re: Drums on truly real OPL2

I eventually experimented a bit. Adjusted the increment to be 1/388 of the original value (instead of the 64 in the code). It sounded a bit off. Then adjusted it to 1/384(which is a division of a power of 2 and multiple of the used 64 in the OPL3EMU), which does seem to sound correct? Also adjusted …

Re: Can anyone help me fix my Adlib(OPL2) emulation?

I've adjusted the factor it uses to create a OPL2 phase increase depending on the fnum number a bit. Now it increases the phase(0-1024 being a full sine wave) by the following increment each sample: adlibop[adliboperators[0][channel]].increment = ((((uint_32)(adlibch[channel].m_fnum*(1.0/388.0)*( …

Page 1 of 247