A tool of "OpenMPT" with OPL3 VGM Output Mod
BotB Academy Bulletins
Level 26 Chipist
post #137841 :: 2021.03.02 6:00pm :: edit 2021.03.28 10:20pm
  JINTAKE, Robyn, queddd, argarak, gotoandplay, kleeder, goluigi, tennisers and hanna liēkd this
In June 13 2020, dj.tuBIG/MaliceX mentioned about my track.

It was created a new fork of OpenVGM. They made a hardware render
using SBVGM - Played via OPL3 CMI8738.

For those people are interesing about Newer OPL3 Trackers / and Get Prepared for Adlib Techno majors. Here we go

The Tools:

Special Tkanks to dj.tuBIG/MaliceX for building this tool and i have tested on my x86 Windows 7 Machine. (Update: There are new version. Now updated the code and the Patch)
OpenMPT VGM Mod Downloads


DIFF Patch

Batch File
when you're done logging AFTER closes the modded OpenMPT

For IBM PC / MS-DOS Compatible

Compress any VGM File

Chapter 1: How to dump VGM Files from MPTM or S3M Modules

1. Download the modded OpenMPT and the Batch File
2. Place it from the downloaded executable and the batch file into the "C:\Program Files\OpenMPT" folder (Keep it mind I use x86 windows) and make shoutcut to the desktop from the modded OpenMPT and the Batch file.
3. Before opening the program or loading a MPTM/S3M module. a tip of his user

Note that it starts logging as soon as you start playing a track. you may see debug dialogs appear. just ignore them.

and Must be 48000Hz on the Audio Device Output.
Something else go to lower (44100Hz) it may sound really fast after generated the VGM File. (EDIT: Fixed)

4. when you're done logging. Clic "Stop" or the Key for Stopping the song then Please close OpenMPT
5. Open the Batch File "OpenMPT_vgmloghack.bat" and you can see the "opl3vgmlog.vgm" appears on the desktop.

Note That VGM is not optimized.

6. Open vgm_cmp.exe and you can drag n drop from Uncompressed VGM File into the CMD Window, and Press Enter. (This was generated and Duplicated the file. You see the "opl3vgmlog_optimized.vgm"

7. Done

Compatible for VGM Players: VGMPlay, in_vgm or MDPlayer

Chapter 2: Playing VGM on MS-DOS and IBM PC Compatible

Are you excited to do Tracks on Real Hardware?

These are the Requirements:
- OPL3 or OPL2 Compatible Card (AdLib, SoundBlaster or OPL3LPT Card)
- Floopy Drive or USB2Floopy Emulator

1. See the Chapter 1
2. Download SBVGM and Extract all the files. This was been created a new folder "SBVGM"
3. Grab the VGM File and move into the SBVGM folder
4. Copy or Place all the files or SBVGM folder to Floopy Drive or USB.
5. Moving to the IBM PC Machine. Loading a floopy Drive or FD EMU Copy all the SBVGM Folder to Hard Drive. Included the VGM File using xcopy (nevermind i never know how to use ms-dos)
6. To play this VGM on SBVGM, type
"sbvgm -x opl3vgmlog.vgm" on the current "SBVGM" Directory.
(EDIT: That "-x" Parameters should be use for VGM Larger Files with XMS Support)
7. Enjoy! and You can record using the Cable Jack to the New Computer or Laptop then Record on Audacity or an Logic Pro X on Mac

Know Limitations and rules.

- Don't use anything other than opl instruments
- Don't use any samples
- Restricted to Channel 18 for MPTM OPL3
- Restricted to Channel 9 for S3M OPL2
- AdLib / OPL3 instruments only support hard left, center, and hard right panning
- ZXX and /xx OPL Modulator Level
- New Note Action is set to "Note Cut" by default. However "Note Off" and "Continue" is not recommended
- If you're using the AdLib OPL2 Soundcard, I recommend
to make S3M Songs. Not recommended for MPTM due
Limitations about the Soundcard. OPL2 uses 4
Waveforms and OPL3 uses 8 Waveforms
- Oxy Retrigger Commands... [EDIT: Fixed as for the new build]
- Vxx and Xxx doesn't handle with the exported VGM. However it only does control with the OpenMPT "Synth Volume"

For more information about OPL in OpenMPT, Chech the owner's manual.

That's all for now. also sorry for my english was not 100% good
Level 27 Mixist
post #137893 :: 2021.03.03 3:59am :: edit 2021.03.03 4:08am
  Robyn, Yuzu, goluigi and gotoandplay liēkd this
ty for this thread yuzu, this is great news for adlib mptm people and I think this finally closes the debate on mptm being a "true" adlib format as it couldn't be played back on DOS before.

imo people should still be submitting .mptm to adlib compos as it's more useful for other people to open up and look at module files, less so with vgm dumps. however, vgm opens up a way of doing actual renders of mptm modules with sbvgm (even with dosbox which has accurate opl emulation).

going to look into updating the lyceum but first I want to propose a new rule for all adlib mptm users which is to only allow 18 channels or less (as that's the maximum amount of concurrent channels the opl3 supports, at least if you don't take the opl3 percussion track extension into account, which openmpt doesn't support anyway). this will hopefully even out the playing field for everyone using different adlib composition software.
Level 28 Chipist
post #137895 :: 2021.03.03 4:11am :: edit 2021.03.03 4:12am
  argarak liēkd this
Worth adding about filter cutoff Zxx effects and any panning fx that isn’t hard too!

Nb: soft panning is still achievable with the use of two channels
Level 27 Mixist
post #137897 :: 2021.03.03 4:56am
  goluigi and Yuzu liēkd this
though am I right in saying that Zxx when used on an opl instrument acts as a volume control for the modulator?

from the openmpt wiki Zxx macros page: "For AdLib / OPL3 instruments, this macro sets the modulator intensity, which effectively works like a lowpass filter on most instruments."

if this is the case then this seems like it would be similar to the 9xx command in AT2, which changes the modulator volume, so I think I'd be ok with mptm users using Zxx in adlib.

and yeah hard pans only, that's a good shout.
Level 29 Mixist
post #137999 :: 2021.03.04 12:12am
  argarak and goluigi liēkd this
openmpt does already have max polyphony of 18 for opl, so i dont know if specifically changing the number of channels used will impact a render.
Level 21 Criticist
post #138020 :: 2021.03.04 7:41am
Was there ever a way implemented in MPT to use those "6channels 4op + 3 channels 2op + 5 ROM drums" modes and such? Or are we stuck with 2op?
Level 27 Mixist
post #138021 :: 2021.03.04 7:50am
  JonKaruzu and goluigi liēkd this
yeah that does seem to be the case, thanks for letting me know as I actually wasn't aware of that.

i did some testing and yeah openmpt is restricted to 18 voices. it is possible to place more notes but they are inaudible, so seems like the channel limitation is unnecessary. I also tried different panning and it also seems like openmpt is restricted to hard pans with opl instruments as well and will choose hard left for pan values less than 22 and hard right for pan values over 42, with mono being anything between those values. pans render fine with the vgm log openmpt fork + sbvgm.

I also tried Zxx with the setup and it also works and plays back fine under dosbox and so far I haven't seen anything in mpt with the opl instruments that don't oblige by the opl3 limitations.

so overall, it seems like the only rule we need is "don't use anything other than opl instruments" in mpt and that's already in place
Level 27 Mixist
post #138025 :: 2021.03.04 9:56am
Xyz: to my knowledge, mpt doesn't support 4op fm modes like fm-fm (op->op->op->op) though you could do fm+fm (or am+am) 4op by using multiple channels.

the opl percussion modes aren't DPCM ROM, but instead are special fm voices which are tuned to suit some percussive instrument. for example, bass drum is 2op fm and snare is controlled with 1op. openmpt doesn't support them atm.

so I suppose mpt is stuck with 2op, but I would recommend exploring the wide variety of waveforms available in opl3 as imo you can still pull off interesting sound design that's easier to program than 4op
Level 21 Criticist
post #138082 :: 2021.03.04 10:46pm
  argarak liēkd this
Not DPCM ROM, but specific parameters of the 6 operators to create 5 drums. The only things user controlled are: Freq, Octave, volume, key on, key off, ""sustain"" bit.

...Otherwise known as ROM drums.

The Liking Birds! wrote an extremely detailed guide for an alternate means of addressing the ROM drums on the OPLL in mgsdrv other than the usual method on Twitter
(the actual msxplay links are bilingual)
Level 27 Mixist
post #138096 :: 2021.03.05 3:56am
  Xyz liēkd this
right yeah, I think I just got confused with the ROM terminology, especially since there are other yamaha chips that have PCM and built in rhythm sounds like OPNA. I suppose there's quite a lot of things you can store in ROM, which probably includes those fm voice configurations..

those demos are cool! i like how they've managed to make it sound pretty much identical to something like a PSS-140 keyboard, which makes a lot of sense since it has an OPLL inside. might have to challenge myself now to try and recreate that in AT2, previously i've always neglected some of the percussion channels because they were difficult to make them sound good.

i want to say that i'm also able to change the waveform for the specific operator(s) being used, at least on an OPL3 using AT2. might not work for all drum channels though
Level 21 Criticist
post #138114 :: 2021.03.05 10:21am
oh you don't even know the depths of how cool it is. In nearly every OPLx implementation, once you set a drum mode then it becomes permanent throughout the song. In mgsdrv, you set the mode at the top with #OPLL_MODE 1 and then use either channel F or R, set volumes with for bshmc with vb#, vs# etc., then go off with key ons like this: R b4 bs4 b8 h8 bs8 h8

The Liking Birds!'s technique allows you to seemlessly switch between 9ch melody mode and 6ch+5drums mode and uses the otherwise inst volume and inst select commands in order to configure other paramaters of the drums.
Level 26 Chipist
post #138330 :: 2021.03.07 6:34am
New Fork Updated, and x64 Builds. See below!
Level 21 Criticist
post #138374 :: 2021.03.07 2:43pm
Level 26 Chipist
post #139503 :: 2021.03.28 10:07pm :: edit 2021.03.28 10:21pm
Dosbox or Real DOS Pushed the limits about "Failed to allocate memory" It was limited to 600KB.

So i try to load that 767KB of VGM with SBVGM, Never work

EDIT: SBVGM -x lagrersize.vgm Should be work on Real DOS

Used for 1MB+ of VGM File
Level 26 Chipist
post #150258 :: 2021.12.23 7:59am
  argarak liēkd this
An update: As for 1.30.01 adds to log OPL VGMs.
Level 26 Chipist
post #150268 :: 2021.12.23 11:14am
and it comes with a new bug: when we open a s3xmodit file via command line argument, it says that the file doesn't exist... :S

LOGIN or REGISTER to add your own comments!