VOGONS


8088 MPH: We Break All Your Emulators

Topic actions

Reply 40 of 136, by Scali

User metadata
Rank l33t
Rank
l33t
SquallStrife wrote:

It does have a trimmer near the 14.318MHz crystal, and that was the first thing I went for, but adjusting this only gets me from a stable, clear picture in the centre, to an unstable picture at either extreme.

Perhaps the crystal is just too far off?
You could try replacing it with a known good crystal. Is the one in your 5150 socketed by any chance?

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

Reply 41 of 136, by SquallStrife

User metadata
Rank l33t
Rank
l33t
Scali wrote:
SquallStrife wrote:

It does have a trimmer near the 14.318MHz crystal, and that was the first thing I went for, but adjusting this only gets me from a stable, clear picture in the centre, to an unstable picture at either extreme.

Perhaps the crystal is just too far off?
You could try replacing it with a known good crystal. Is the one in your 5150 socketed by any chance?

Possibly. I'll check it out tonight.

VogonsDrivers.com | Link | News Thread

Reply 42 of 136, by SquallStrife

User metadata
Rank l33t
Rank
l33t

OK, no luck, I took the ISA clock crystal from a donor board, installed it in the XT clone board, and still no colour.

And now I think it never will. While I was adjusting the trimmer on this board, I heard a little "snap" sound, and now the trimmer does nothing.

I think I'll just get a 1MB RAM card for my 5150 from Lo-tech. 😜

VogonsDrivers.com | Link | News Thread

Reply 43 of 136, by Scali

User metadata
Rank l33t
Rank
l33t

Here is a long-overdue capture of the final version of 8088 MPH on new CGA, showcasing the new graphics: https://youtu.be/uZ6LcSv3NH4
WARNING: Audio is loud.

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

Reply 45 of 136, by SquallStrife

User metadata
Rank l33t
Rank
l33t

Scali, what program was the Swinging Waste tune originally composed in?

https://soundcloud.com/phoenix-dc5/swinging-w … channel-version <-- is that the original, or is the MONOTONE composition the original, and the former is "based on" the latter?

If the above composition is available in some "list of notes" kind of format, it would be cool to get it playing on a Tandy 3-voice.

VogonsDrivers.com | Link | News Thread

Reply 46 of 136, by Scali

User metadata
Rank l33t
Rank
l33t
SquallStrife wrote:

Scali, what program was the Swinging Waste tune originally composed in?

https://soundcloud.com/phoenix-dc5/swinging-w … channel-version <-- is that the original, or is the MONOTONE composition the original, and the former is "based on" the latter?

If the above composition is available in some "list of notes" kind of format, it would be cool to get it playing on a Tandy 3-voice.

Yes, it is composed in MONOTONE. This version actually *is* the MONOTONE song, but with MONOTONE using the Adlib driver I believe, which makes it multi-channel.
There is Tandy support in MONOTONE as well, but note that the SN76489 chip can not play notes lower than a certain frequency. I'm not sure what the limit was exactly, but I recall something like 110 Hz or so. So you can't play all PC speaker stuff on Tandy.

MONOTONE files are actually 'list of notes' files, more or less. They are similar to ProTracker mods in structure (I have actually made a MOD-to-MON conversion tool to convert patterns. Although Swinging Waste is based on a MOD file (Sleeping Waste by Mem'o'ree), it was converted manually, I did not have the tool yet). The multiplexing of the channels is done at runtime. Which is why you can play the song with Adlib, without multiplexing.
For our demo, we preprocessed the songs to a stream of notes, so that there was no multiplexing overhead during the demo (we need every CPU cycle we can get).

I have recently done some fixes/updates to MONOTONE, which include better playback of music from within the editor (notes used to skip somewhat, if your machine was too slow), and a standalone player for files: https://github.com/MobyGamer/MONOTONE/commit/ … e8c07789a286d11

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

Reply 47 of 136, by SquallStrife

User metadata
Rank l33t
Rank
l33t
Scali wrote:

This version actually *is* the MONOTONE song, but with MONOTONE using the Adlib driver I believe, which makes it multi-channel.

Oh rad!

Scali wrote:

MONOTONE files are actually 'list of notes' files, more or less.

I figured as much. That question was more in case aimed at a scenario where the version on Soundcloud wasn't from MONOTONE.

All fascinating stuff though, are the MON files from the demo available somewhere?

VogonsDrivers.com | Link | News Thread

Reply 48 of 136, by DracoNihil

User metadata
Rank Oldbie
Rank
Oldbie

How the hell do you get FM Synthesis to produce such beeps? I always wondered that even when I first started playing System Shock and Terra Nova with OPL3 music...

“I am the dragon without a name…”
― Κυνικός Δράκων

Reply 49 of 136, by VileR

User metadata
Rank l33t
Rank
l33t
DracoNihil wrote:

How the hell do you get FM Synthesis to produce such beeps? I always wondered that even when I first started playing System Shock and Terra Nova with OPL3 music...

OPL3 lets you use square waves, if that's what you're referring to. With OPL2, I believe you just overdrive a sine wave until it clips into a square wave, pretty much. 😉

SquallStrife wrote:

are the MON files from the demo available somewhere?

Here you go (plus the end credits song in its original .mod form):

Filename
8088mph_music.zip
File size
7.84 KiB
Downloads
243 downloads
File license
Fair use/fair dealing exception

[ WEB ] - [ BLOG ] - [ TUBE ] - [ CODE ]

Reply 50 of 136, by Scali

User metadata
Rank l33t
Rank
l33t
SquallStrife wrote:

All fascinating stuff though, are the MON files from the demo available somewhere?

Yes, they are included on Github: https://github.com/MobyGamer/MONOTONE
See SWINGIN1.MON and NO_ROADS.MON.

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

Reply 51 of 136, by DracoNihil

User metadata
Rank Oldbie
Rank
Oldbie
VileRancour wrote:

With OPL2, I believe you just overdrive a sine wave until it clips into a square wave, pretty much. 😉

Ah of course... Feedback. Thanks for jogging my mind.

“I am the dragon without a name…”
― Κυνικός Δράκων

Reply 52 of 136, by SquallStrife

User metadata
Rank l33t
Rank
l33t
VileRancour wrote:
OPL3 lets you use square waves, if that's what you're referring to. With OPL2, I believe you just overdrive a sine wave until i […]
Show full quote
DracoNihil wrote:

How the hell do you get FM Synthesis to produce such beeps? I always wondered that even when I first started playing System Shock and Terra Nova with OPL3 music...

OPL3 lets you use square waves, if that's what you're referring to. With OPL2, I believe you just overdrive a sine wave until it clips into a square wave, pretty much. 😉

SquallStrife wrote:

are the MON files from the demo available somewhere?

Here you go (plus the end credits song in its original .mod form):

8088mph_music.zip

Legend! Thanks!

Scali wrote:
SquallStrife wrote:

All fascinating stuff though, are the MON files from the demo available somewhere?

Yes, they are included on Github: https://github.com/MobyGamer/MONOTONE
See SWINGIN1.MON and NO_ROADS.MON.

I noticed that when I went to try out the app in DOSBox. 😊

Edit: I put this together, since it didn't seem to exist elsewhere on the Tubes. https://youtu.be/l6s7Ts1nZG4

Hope y'all don't mind!

VogonsDrivers.com | Link | News Thread

Reply 53 of 136, by HunterZ

User metadata
Rank l33t++
Rank
l33t++
DracoNihil wrote:
VileRancour wrote:

With OPL2, I believe you just overdrive a sine wave until it clips into a square wave, pretty much. 😉

Ah of course... Feedback. Thanks for jogging my mind.

I've played a few games (mostly from Silmarils but also Wizardry 7 from Sir-Tech) that somehow used OPL2 as a DAC for playing digitized sounds. This isn't supported well in DOSBox.

Reply 54 of 136, by Scali

User metadata
Rank l33t
Rank
l33t
HunterZ wrote:

I've played a few games (mostly from Silmarils but also Wizardry 7 from Sir-Tech) that somehow used OPL2 as a DAC for playing digitized sounds. This isn't supported well in DOSBox.

Yes, there is some trick to setting up just the right waveform at just the right frequency so you effectively get a 0 Hz tone playing, with endless sustain. Then you can just adjust the volume register to use it as a pseudo-DAC, very similar to how it's done on SN76489 or SID for example.
Here is a description of that trick: http://repetae.net/computer/opledit/tech/adlib2.txt

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

Reply 55 of 136, by Jepael

User metadata
Rank Oldbie
Rank
Oldbie

That documentation is a bit awkward, it does not explain much and it does not write all the registers for the both operators of a channel, so maybe it assumes them to be zero. Also the last time I read that, I calculated if the timing in the document did really delay the correct amount to wait for the sine wave to be at the peak, and my calculations indicated it was not right at the peak. But really any value that is enough away from zero is enough to be heard at smaller volume though.

In reality, starting a sine wave and halting it at the peak is not a mystery. Let me know if you want a better description 😀 On an OPL3, it's even easier, as you can just use a square wave to begin with. And as writes are faster on OPL3 too, so you can write more in the same time.

Due to the logarithmic nature of the 6-bit volume register, playing back linear PCM sounds pretty awful. Which does gives ideas how to do it better 😀

Reply 56 of 136, by Scali

User metadata
Rank l33t
Rank
l33t
Jepael wrote:

Due to the logarithmic nature of the 6-bit volume register, playing back linear PCM sounds pretty awful. Which does gives ideas how to do it better 😀

The same goes for SN76489, it has a 4-bit logarithmic-like volume scale.
It is best to have some empirical measurements of the volume levels, especially on such old hardware, because they generally were designed to be cheap and simple, so corners are often cut in the design, meaning you won't get a 'perfect' mathematical curve.
In some cases, there are even differences from one chip to another. So it would be nice to have measurements from a range of OPL2 cards, to get a good average of what the actual volume curve is.

I found a list of values for the SN76489 online, not sure how they arrived at those exact values, but the resulting quality is quite good.

Getting back to DOSBox... I know DOSBox doesn't evaluate the sound card registers at every cycle. This meant that the SN76489 sample playback wasn't emulated properly. Codeholio did a sample-accurate patch to DOSBox-X which made it work perfectly. It may also solve the problems with the Adlib, because it's basically the same idea.

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

Reply 57 of 136, by Jepael

User metadata
Rank Oldbie
Rank
Oldbie
Scali wrote:

The same goes for SN76489, it has a 4-bit logarithmic-like volume scale.
It is best to have some empirical measurements of the volume levels, especially on such old hardware, because they generally were designed to be cheap and simple, so corners are often cut in the design, meaning you won't get a 'perfect' mathematical curve.
In some cases, there are even differences from one chip to another. So it would be nice to have measurements from a range of OPL2 cards, to get a good average of what the actual volume curve is.

OPL2/OPL3 output is digital, not analog, so curve does not vary. How volume register affects output PCM value is known bit-accurately. After that, yes, there will be DAC, and who knows what in analog domain after it (maybe DAC filter, maybe mixer on SB and compatible cards, maybe speaker amplifier chip, etc..)

Scali wrote:

Getting back to DOSBox... I know DOSBox doesn't evaluate the sound card registers at every cycle. This meant that the SN76489 sample playback wasn't emulated properly. Codeholio did a sample-accurate patch to DOSBox-X which made it work perfectly. It may also solve the problems with the Adlib, because it's basically the same idea.

Yes, I recall having issues with some Sierra games with this, and IIRC the Adlib issue is known and possibly there will be some improvement.

Reply 58 of 136, by Scali

User metadata
Rank l33t
Rank
l33t
Jepael wrote:

How volume register affects output PCM value is known bit-accurately. After that, yes, there will be DAC, and who knows what in analog domain after it (maybe DAC filter, maybe mixer on SB and compatible cards, maybe speaker amplifier chip, etc..)

Yea, that's what I mean.
OPL2/3 themselves are more consistent than most other chips from the 80s, but the cards themselves can still mess it up considerably 😀
After all, what is important is the sound coming from the speakers, not from the OPL2 chip itself.

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