VOGONS

Common searches


Reply 20 of 89, by vetz

User metadata
Rank l33t
Rank
l33t
realnc wrote:
Scali wrote:

MIDI files aren't very large, and a MIDI playback routine is only a handful of bytes.

Well, someone would need to make the MIDI files. That means composing a new, MT-32 specific soundtrack. If you have an AdLib specific soundtrack, you can't just "support" the MT-32. You actually need to compose new music specifically for it.

The Adlib music is based on the MT32. As far as I know, the "master" for the music was composed on the MT32 (which is why it is getting a tape release) and then scaled back to fit on PC speaker, Adlib and Tandy.
What I read was that inclusion of MT32 ingame would make the system requirements higher and there were a resource limit on the time 8bit guy had for coding. I get that for the CGA version, but for the VGA it should be fine. Would love to hear exactly the reason from one of the guys on this project, as I would imagine MT-32 support to be one of the highest requested features.

3D Accelerated Games List (Proprietary APIs - No 3DFX/Direct3D)
3D Acceleration Comparison Episodes

Reply 21 of 89, by Scali

User metadata
Rank l33t
Rank
l33t
realnc wrote:

Well, someone would need to make the MIDI files.

Well, the OP here includes an MT-32 version of the teaser song. I was under the assumption that SpeedySPCFan created MT-32 versions of all music in the game (which will be released as mp3 recordings with the game).

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 22 of 89, by realnc

User metadata
Rank Oldbie
Rank
Oldbie

I see. That's indeed strange then. I think he should update the game later, or make an "MT-32 expansion" disk for it for people who install it on HD.

I thought the music was AdLib specific. If it's scaled down from MT-32 music, it would be almost a crime to not be able to play the game using the best music that was made for it. I mean, 8-Bit Guy isn't a publisher or anything. He can do whatever he wants, there's no one pressuring him for budget reasons.

Reply 23 of 89, by root42

User metadata
Rank l33t
Rank
l33t

So the MT32 score was done by Anders Enger Jensen. Alex Semenov wrote 3 voice tracker for Tandy sound, but also supports AdLib and PC Speaker. He and Noah Aman ported Anders' songs over to the 3-voice tracker format. I think they did an awesome job. You really have to play the game and listen to the music to appreciate their work.

I think the limitation to AdLib, Tandy and PC speaker is down to time resources on the guys and also to disk and memory constraints on the hardware side, as explained earlier. Of course you can still leave a comment on kickstarter, if you supported this project and ask if MT32 support will still happen, maybe even as an afterthought. But let's see...

YouTube and Bonus
80486DX@33 MHz, 16 MiB RAM, Tseng ET4000 1 MiB, SnarkBarker & GUSar Lite, PC MIDI Card+X2+SC55+MT32, OSSC

Reply 25 of 89, by root42

User metadata
Rank l33t
Rank
l33t

You can ask. 😀 At most they can only say "no, thanks".

YouTube and Bonus
80486DX@33 MHz, 16 MiB RAM, Tseng ET4000 1 MiB, SnarkBarker & GUSar Lite, PC MIDI Card+X2+SC55+MT32, OSSC

Reply 26 of 89, by SpeedySPCFan

User metadata
Rank Member
Rank
Member

For everyone asking: MT-32 support was wanted by the whole team, but the target computers for the game was always the lower end XT and Tandy type machines (VGA mode was only added because people constantly requested it... and I'll admit that I'm very happy it was added 🤣). So between it being impossible to work on those, the extra coding required to get MIDI support in the game, and the fact that the game is barely squeezing onto the 360k and 720k floppies with compression, it likely won't make it into Planet X3 at any point, especially not since the game is getting ready to go into production. That said, I'm a huge advocate for games going open source after release and I would be happy to see the game go OS and for someone to mod support in.

Scali wrote:

How is the MT-32 music done by the way? Is it just a regular .mid file? And what player did you use to record this? Does it use any sort of quantization to (a multiple of) the framerate or such (60, 120, 240 Hz or such)?

I think Anders used Logic Pro X on a newer Mac. I have never been much of a DAW fan so as always with my MIDI work, I used Sekaiju to compose and kbMedia Player to record.

realnc wrote:

I thought the music was AdLib specific.

9 out of the 10 in-game tracks were made on the Tandy 3-voice and ported over to the AdLib and PC Speaker. I would have originally composed all of it on the AdLib, but it has the same issue as the MT-32 where the ehhanced instrument quality can make it easy to make a track that sounds good there but doesn't work on lower end hardware. The MT-32 versions of my music that I did aren't better than the AdLib and Tandy renditions in my mind, they're just different.

Musician & music gear/game reviewer.

MIDI hardware: JD-990, SC-55, SC-880, SD-90, VL70-m, Motif ES, Trinity, TS-10, Proteus 2000, XK-6, E6400U

Reply 27 of 89, by Scali

User metadata
Rank l33t
Rank
l33t
SpeedySPCFan wrote:

For everyone asking: MT-32 support was wanted by the whole team, but the target computers for the game was always the lower end XT and Tandy type machines (VGA mode was only added because people constantly requested it... and I'll admit that I'm very happy it was added 🤣). So between it being impossible to work on those, the extra coding required to get MIDI support in the game, and the fact that the game is barely squeezing onto the 360k and 720k floppies with compression, it likely won't make it into Planet X3 at any point, especially not since the game is getting ready to go into production. That said, I'm a huge advocate for games going open source after release and I would be happy to see the game go OS and for someone to mod support in.

Well, while it's true that MT-32 was expensive at the time, I would say that MT-32 is less resource-hungry than OPL2.
MIDI requires only one byte to play a note really (you can re-use the note-on command bytes via 'running state', and note-on with a velocity of 0 is equal to a note-off, so note-on is all you need for the most part).
So you need to write less data to an MT-32 than you do to an OPL2. Aside from that, OPL2 is very slow, and requires a lot of delays on the CPU side. A MIDI UART is much faster to write to, and the microprocessor inside the MIDI module takes care of the rest.

I would also think that a MIDI file is more compact than an OPL2 tracker file, unless perhaps you use a lot of custom MT-32 instruments encoded in SysEx banks (but if the instruments are shared between songs, you could just create one SysEx bank for all).

Heck, I wrote a MIDI player for a PCjr with just 128 kb (slower than even a standard IBM PC 5150), using the Dreamblaster S2P on a printerport (slower than an MPU-401): https://youtu.be/u0wOJAWFsOQ

Would be a shame if MT-32 was never added.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 28 of 89, by keropi

User metadata
Rank l33t++
Rank
l33t++

Well I hope they offer a download with mt-32 support so anyone with the needed hardware can enjoy the game this way if they prefer. I can see the cga version goal to be a "1 disk" deal for xt class systems but since we also have vga graphics then support for all audio hardware should go with that IMHO

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website

Reply 29 of 89, by Scali

User metadata
Rank l33t
Rank
l33t
keropi wrote:

Well I hope they offer a download with mt-32 support so anyone with the needed hardware can enjoy the game this way if they prefer. I can see the cga version goal to be a "1 disk" deal for xt class systems but since we also have vga graphics then support for all audio hardware should go with that IMHO

Well, if someone can provide me with all the MIDI data, I could hack in MT-32 support myself, I suppose. First version might be "harddisk only" then, depending on the total size. Perhaps later versions could be fitted onto a disk with compression or whatever.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 30 of 89, by SpeedySPCFan

User metadata
Rank Member
Rank
Member
Scali wrote:

Well, while it's true that MT-32 was expensive at the time, I would say that MT-32 is less resource-hungry than OPL2.
MIDI requires only one byte to play a note really (you can re-use the note-on command bytes via 'running state', and note-on with a velocity of 0 is equal to a note-off, so note-on is all you need for the most part).

Does that remain true even when the MIDI file contains additional data? Such as panning, expression, volume, etc... bear in mind that all of this has to run while the processor is boggled down with AI routines, graphics, etc.
There was also a custom SysEx bank in use, but it's just a single file that should be loaded before playing the music. That said if you want to hack MIDI support into the game, I have no objections to that. At the very least I plan to distribute my source files and would be happy to assist you in any way that I can.
Also, bear in mind that my explanations is just based on what I've been told. I'm not a programmer myself, the only people who can give you exact answers are the programmers (Jim, Alex, and David).

Musician & music gear/game reviewer.

MIDI hardware: JD-990, SC-55, SC-880, SD-90, VL70-m, Motif ES, Trinity, TS-10, Proteus 2000, XK-6, E6400U

Reply 31 of 89, by Scali

User metadata
Rank l33t
Rank
l33t
SpeedySPCFan wrote:

Does that remain true even when the MIDI file contains additional data? Such as panning, expression, volume, etc... bear in mind that all of this has to run while the processor is boggled down with AI routines, graphics, etc.

In practice, yes I suppose so. OPL2 or OPL3 would require more data to do the same things, in most cases.
There may be exceptions in theory, but in practice I don't think panning, volume and pitch bend are changed all that much in realtime. Generally it's fire-and-forget.
And as I said, it is faster to write MIDI data than OPL2 or OPL3, because of the insanely high delays you need to add between writes to OPLx chips, especially the OPL2.

And if you were to use intelligent MPU-401, you may be able to reduce CPU load a bit more, but games back then generally didn't bother to use much of the intelligent features, if at all (Sierra didn't, for example, and they were the frontrunners of MT-32 support).

SpeedySPCFan wrote:

There was also a custom SysEx bank in use, but it's just a single file that should be loaded before playing the music. That said if you want to hack MIDI support into the game, I have no objections to that. At the very least I plan to distribute my source files and would be happy to assist you in any way that I can.

If the game just plays music in the background, no sound effects or anything, it shouldn't be too difficult to replace eg AdLib routines with MIDI routines.
I suppose it depends a bit on how it uses the timer, and what resolution of music you have. For 8-bit stuff, it was common to have the music routines run at the display refresh rate (which would already be an issue, since CGA and EGA run at 60 Hz, where VGA runs at 70 Hz). Trackers are designed for this. With MIDI you have to carefully choose your tempo and PPQN values to match the framerate/music routine rate.

My MIDI routine, as demonstrated on the PCjr above, is rather unique in that it doesn't synchronize to (a multiple of) the framerate, but plays at maximum timer precision.
The downside is that you can't easily use the timer for anything else, so your game logic would have to be timed in another way.
In practice however, MIDI tends to sound 'good enough' at about 120 Hz, so you could just fire two timer interrupts per frame, and play the MIDI data on there.
But as said, if the MIDI is synced properly, 60 Hz is all you need.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 32 of 89, by keropi

User metadata
Rank l33t++
Rank
l33t++

I would gladly send PCMIDI card(s) to the person/team that would make this happen.
All this time I was under the impression that MT-32 soundtrack would be on disk, not some recording... it's a shame IMHO but now at least we can hope for a patched version thanks to Scali 😀

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website

Reply 33 of 89, by xjas

User metadata
Rank l33t
Rank
l33t

Yeah, I'd love to see MT-32 support in-game too. I can totally understand why it had to be cut for the disk release though.

A post-release patch for HDD users would be awesome, even just to the VGA version. Seems like the best of both worlds that way.

twitch.tv/oldskooljay - playing the obscure, forgotten & weird - most Tuesdays & Thursdays @ 6:30 PM PDT. Bonus streams elsewhen!

Reply 34 of 89, by SpeedySPCFan

User metadata
Rank Member
Rank
Member
Scali wrote:

In practice, yes I suppose so. OPL2 or OPL3 would require more data to do the same things, in most cases.
There may be exceptions in theory, but in practice I don't think panning, volume and pitch bend are changed all that much in realtime. Generally it's fire-and-forget.
And as I said, it is faster to write MIDI data than OPL2 or OPL3, because of the insanely high delays you need to add between writes to OPLx chips, especially the OPL2.

I took a picture of one of my tunes from the game so you can see how data is used - the lines around the middle are note data and anything stemming from the bottom is from a CC. But you are right, that data isn't set that much in most cases (I have a few tunes I did for my EPs that go ham on them, but that's another topic).

Scali wrote:

If the game just plays music in the background, no sound effects or anything, it shouldn't be too difficult to replace eg AdLib routines with MIDI routines.

The game has SFX provided by the PC Speaker in the background, if Tandy or AdLib mode is select then those chips are only used for music. PC Speaker music is interrupted by SFX.

Scali wrote:

I suppose it depends a bit on how it uses the timer, and what resolution of music you have.

I think Jim mentioned before the tracker is timed to a locked 72Hz. My MIDIs are all at the default 120 PPQN that my sequencer uses so I don't know what modifications, if any, would need to be made.

keropi wrote:

I would gladly send PCMIDI card(s) to the person/team that would make this happen.
All this time I was under the impression that MT-32 soundtrack would be on disk, not some recording... it's a shame IMHO but now at least we can hope for a patched version thanks to Scali 😀

Trust me, I was a bit disappointed too when I heard it wouldn't be possible in the game currently. I was actually all ready to gear up and make MIDI versions for all of the relevant standards - GM, GS, XG... I do have SC-55 versions of the tunes that will be released (not on the cassette but elsewhere). If Scali works some magic and gets support working in the game, then maybe XG will follow suit so everyone can enjoy some music regardless of their synth of choice. Even if it takes me a month to get done, I would love to add one more game to the very small list of Yamaha XG compatible titles... plus it gives me something to talk about when I make my eventual retrospective on the format 🤣

Last edited by SpeedySPCFan on 2018-12-17, 23:05. Edited 2 times in total.

Musician & music gear/game reviewer.

MIDI hardware: JD-990, SC-55, SC-880, SD-90, VL70-m, Motif ES, Trinity, TS-10, Proteus 2000, XK-6, E6400U

Reply 35 of 89, by root42

User metadata
Rank l33t
Rank
l33t

@speedyspcfan will you get in touch with the team, to ask for possible MT32 support, maybe after release? I doubt Dave will change anything now.

YouTube and Bonus
80486DX@33 MHz, 16 MiB RAM, Tseng ET4000 1 MiB, SnarkBarker & GUSar Lite, PC MIDI Card+X2+SC55+MT32, OSSC

Reply 36 of 89, by SpeedySPCFan

User metadata
Rank Member
Rank
Member
root42 wrote:

@speedyspcfan will you get in touch with the team, to ask for possible MT32 support, maybe after release? I doubt Dave will change anything now.

I can ask if it's possible though I don't think a lot will happen post-release, besides maybe bug fixes... though everyone was pretty thorough in testing. Again though, if someone can find a way to hack support into the game then I don't see why that couldn't be made official as an update.

Musician & music gear/game reviewer.

MIDI hardware: JD-990, SC-55, SC-880, SD-90, VL70-m, Motif ES, Trinity, TS-10, Proteus 2000, XK-6, E6400U

Reply 37 of 89, by Scali

User metadata
Rank l33t
Rank
l33t
SpeedySPCFan wrote:

I took a picture of one of my tunes from the game so you can see how data is used - the lines around the middle are note data and anything stemming from the bottom is from a CC. But you are right, that data isn't set that much in most cases (I have a few tunes I did for my EPs that go ham on them, but that's another topic).

Also, CC data can be quantized and interpolated as well.
For example, if you would quickly turn the pitchbend wheel, it may generate values of 0, 1, 2, 3, 4 etc at a very high rate.
But if you only plan to play your MIDI data at 72 Hz for example, you could 'smooth' it , and perhaps just use 0, 2, 4 instead. You won't hear the difference.

SpeedySPCFan wrote:

The game has SFX provided by the PC Speaker in the background, if Tandy or AdLib mode is select then those chips are only used for music. PC Speaker music is interrupted by SFX.

Okay, so that means that MIDI music wouldn't have to worry about the PC speaker, and can use the same approach as Tandy/AdLib mode.

SpeedySPCFan wrote:

I think Jim mentioned before the tracker is timed to a locked 72Hz. My MIDIs are all at the default 120 PPQN that my sequencer uses so I don't know what modifications, if any, would need to be made.

If I'm correct, the formula was like this:
cycles per minute == (bpm * PPQN).

So we'd have (72*60) == (bpm * 120).
bpm == (72*60)/120 == 36.

So I suppose your PPQN is slightly too high. If we assume a bpm of 120, PPQN should have been:
PPQN == (72*60)/120 == 36.

Assuming you want a PPQN of 120 and a bpm of 120, you'd need a rate of:
rate == (bpm * PPQN) / 60 == 120*120 / 60 = 240 Hz.

But in practice you may get away with just re-quantizing it to 72 Hz (or else 144 Hz).
If you want to play around with that, here is my MIDI player for Windows:
https://www.dropbox.com/s/u5zhsn9pt5qnj5d/Mid … antize.zip?dl=0
It allows you to set a quantize interval in Hz, so you can try it at 72 Hz (and 144 Hz) and see how badly the timing gets messed up (it doesn't try to smooth CC commands and such though, it merely 'snaps' the MIDI events to the desired rate).

Or, if the game is not timed to the tracker routine, we could use my 'free running' MIDI player, which doesn't quantize at all.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 38 of 89, by SpeedySPCFan

User metadata
Rank Member
Rank
Member

The amount of stuff you know about this astounds me... if you get any MIDI routines working in the game when it release then please let me know and I'll try to adapt my files to work with it.

Musician & music gear/game reviewer.

MIDI hardware: JD-990, SC-55, SC-880, SD-90, VL70-m, Motif ES, Trinity, TS-10, Proteus 2000, XK-6, E6400U

Reply 39 of 89, by keropi

User metadata
Rank l33t++
Rank
l33t++

I just got the kickstarter progress email - it seems MT-32 support wasn't the only thing that got canned, the intro and some maps also got removed. At least the extra maps will be available in the "full" digital version but it is my understanding that the intro will never be coded.
Way too many compromises for my taste... 😐

🎵 🎧 PCMIDI MPU , OrpheusII , Action Rewind , Megacard and 🎶GoldLib soundcard website