1 (edited by Shiru 2021-01-10 01:40:54)

Topic: Multichannel/unusual PC speaker music

By some reason, PC speaker music most often was limited to the basic square wave. The common best tricks were to interleave a few channels with quite horrible buzz (Lotus III, or occasionally interrupt one channel of sound with another (Monkey Island 2). Rarely a game attempted to put at least some expression into music, like Ski or Die! (slides and vibrato).

There were rare attempts to go beyond this, with true synthesizers/multichannel engines, though, which is totally possible (there is WAV/MOD/MP3 players for PC Speaker, after all), and always interesting to see. Thought to list a ones that I managed to find so far, while I'm researching this field.

Moon Patrol (1983) - a weird one, has three kinds of music, look for end stage and game over
Digger (1983)
Rollo and the Brush Brothers (1984)
Styx (1984) - no music, but unusual sounds
Music Construction Set (1984?)
Karateka (1986)
Saboteur II (1987)
Sid Meier's Pirates (1987)
Blockout (1989)
Budokan (1989)
F-15 Strike Eagle II (1989)
Fantasy World Dizzy (1989)
Hard Drivin' (1989)
Turbo Outrun (1990)
Knightmare (1992)

Should be noted that many of these videos has been made using DosBox, and it does not emulate PC Speaker well enough, introducing noticeable sound distortions in such complex routines. Saboteur II and Hard Drivin' suffered a lot.

website - 1bit music - other music - youtube - bandcamp - patreon (latest news there)

Re: Multichannel/unusual PC speaker music

interesting find. Those 3 tunes reminds of some ZX music to some extends.

Re: Multichannel/unusual PC speaker music

Hey, seems my featured article on PC Speaker on the 1-bit blog has disappeared! Anyway, good find, didn't know about those (except Turbo Outrun).
I wish I could wrap my head around x86 assembly, so I could disassemble some of the old multi-channel tools (especially Note Baron).

4 (edited by Shiru 2017-07-16 09:16:54)

Re: Multichannel/unusual PC speaker music

The list slowly getting longer. Meanwhile, I had thoughts on the matter (not looking to the code, though), and here is what I think so far.

For oldest PCs that runs pure DOS, like XT/AT/386 maybe, the usual timed code approach may be viable, with a delay in the main loop that automatically gets adjusted at startup by measuring actual CPU speed. What is possible to do is limited by the speed of the slowest targeted system with shortest possible delay. So basically a little bit less than a 4.7 MHz 8088 can do, which is the same ballpark as ZX Spectrum. Engine types would be not limited in this case, all approaches should work. Music playing would stop everything else.

However, considering how vastly different PCs and their speeds are, plus the possiblity to run something in background, and that every PC has 8253 PIT to generate interrupts, more universal apporach would be to utilize the interrupts. Now we can have quite good sound loop sample rate (when it runs on a PC that is fast enough), but sound generation methods gets limited. We can either use one-change per loop engines, such as Squeaker or Octode, or PWM like with one pulse at a time (basically the PCM playing trick, just without PCM).

One issue with developing this field is that DosBox isn't terribly accurate in regards of timings and PC Speaker emulation. Considering that Pinball Fantasy sounds reasonable while many of the games listed above is not, I think that the second approach is more accessible at the moment - unless you want to work strictly with old hardware and old tools.

website - 1bit music - other music - youtube - bandcamp - patreon (latest news there)

Re: Multichannel/unusual PC speaker music

Shiru wrote:

For oldest PCs that runs pure DOS, like XT/AT/386 maybe, the usual timed code approach may be viable, with a delay in the main loop that automatically gets adjusted at startup by measuring actual CPU speed.

There's a hacked(?) version of Music Construction Set that does exactly that. I can probably find it somewhere in my collection if you want to reverse-engineer that.

There's also 8088 MPH of course, had some great multi-channel msx in the last section. There's a detailed write-up on the engine tech, which includes a link to the source code of said engine.

Also, luckily archive.org has a copy of my lost pc speaker article. It's quite outdated now, but still there's a few items that are missing in your list wink

6 (edited by castpixel 2018-04-23 09:35:16)

Re: Multichannel/unusual PC speaker music

space quest 4 (the whole series really) had very advanced pc speaker music if I recall correctly

also this: https://www.youtube.com/watch?v=8Ba7eXc9x7c https://www.youtube.com/watch?v=FSe3ysBrXq4