VOGONS


First post, by NY00123

User metadata
Rank Member
Rank
Member

Hey there,

I'd begin by introducing what I've attached here, and then list a few reasons for working on it, along with some more notes.

A .diff file for a current DOSBox SVN revision is attached. I consider it to be a hack more than an actual patch. The following modifications are applied:
* The "machine" setting has been split into "vidcard" and "system", as described here:

#  vidcard: The type of video card DOSBox tries to emulate.
# Possible values: hercules, cga, tandy, pcjr, ega, vgaonly, svga_s3, svga_et3000, svga_et4000, svga_paradise, vesa_nolfb, vesa_oldvbe.
# system: The type of machine DOSBox tries to emulate.
# Possible values: tandy, pcjr, other.

The defaults are vidcard=svga_s3 and system=other.
* Rather than -machine, you can now pass -vidcard and -system arguments to the DOSBox executable, for manually setting the "vidcard" and "system" values, respectively.
* You can set vidcard to "tandy" only if system is also set to "tandy". Similarly, set system to "pcjr" if you want vidcard=pcjr. If you try any incompatible combination, DOSBox quits with a relevant error message.
* The tandy sound setting works as before, with respect to the system setting. That is, assuming tandy=auto: Tandy sound system is enabled, if system=tandy or system=pcjr; Otherwise, it's disabled.

######

Alright, now ones may ask: Why should that be done anyway? What is the motivation behind it? And, can't the plain tandy sound setting be used at the moment?
Well, I've wondered if by no more than basic "search and replace" kinds of modifications, one could get DOSBox to emulate a Tandy (or PCjr) machine with a non-Tandy/PCjr graphics adapter (like VGA). A little motivation behind this:
* A few later Tandy 1000 models had VGA graphics, and even SVGA. Or, at least, this is what is told here regarding the RLX and RSX: http://en.wikipedia.org/wiki/Tandy_1000
* I've found out that Pickle Wars (well, one of the few shareware versions) can play Tandy 3-voice music, if machine=tandy is set. However, on vanilla DOSBox, it basically implies blind gameplay, as PW doesn't work with Tandy graphics and expects VGA (or compatible).
* Oh, and no, tandy=on doesn't work for Pickle Wars as expected; Well, at least for me it doesn't.

######

At the moment, if you want to try this out with Pickle Wars, I'd suggest setting the following values for DOSBox: sbtype=none, oplmode=auto, vidcard=svga_s3, system=tandy, tandy=auto. Furthermore, assuming the correct version of PW is used, select "Tandy SL/TL & Sensation" for sound effects (basically using the Tandy DAC) and "Tandy 3 Voice Systems" for the music.
As an alternative, you may set sbtype=sb16, and select "SoundBlaster, Creative Labs" for the sound effects in PW.

######

Some notes about this, including test results and a few warnings:
* To begin with, no, I've never used an actual Tandy 1000 computer.
* As hinted before, what I've attached is more of a hack than a patch. In fact, it's far from the truth to say that I understand everything in the code I've touched 😀
* I have zero promises that the results are close to a genuine system. Maybe the diff can still help, though.
* Possible instabilities: These are more than expected, due to the nature of the diff. Most of the time, though, things seem to run with no major issues. To the ones who want to test the diff with a few games, a little warning: Running "4D Prince of Persia" first and "Pickle Wars 1" second seems to be a source of hangs, even on vanilla DOSBox v0.74. If someone wants to reproduce such a hang, a good way to try is based on paying attention to the DOSBox mouse cursor locking mechanism.
* I don't know of a lot of things to try out with the PCjr emulation. It shouldn't be a surprise if a "too modern" game makes DOSBox hang with it (Commander Keen included). This is also the case with v0.74, at least here.
* As told beforehand, I can get Pickle Wars to work with Tandy music and sound effects. While a bit irrelevant, you may receive a warning like this as you're using the salad shooter within PW:

DMA segbound wrapping (read): 70000:10000 size 5 [0] wrap ffff

The warning isn't reproduced when a Sound Blaster is used for the effects.
* There's some less luck when it comes to 4D Prince of Persia. With vidcard=svga_s3 and system=tandy, the Tandy DAC appears to work for the effects, although the music is more of a problem. However, with vidcard=hercules and system=tandy, you do hear 3 voice music. Note that for proper graphics you'd need to start the game with an argument, like this: "4d_prin hercules". vidcard=cga is also ok. Of course, vidcard=tandy gives out the better quality for the graphics.

Lets hope I haven't missed anything in the diff and this post...
NY

Attachments

  • Filename
    dosbox_svn_20120318_vidsys_split.diff
    File size
    75.11 KiB
    Downloads
    201 downloads
    File comment
    Split "machine" setting into "system" and "vidcard"
    File license
    Fair use/fair dealing exception

Reply 2 of 5, by VileR

User metadata
Rank l33t
Rank
l33t
NY00123 wrote:

* I don't know of a lot of things to try out with the PCjr emulation. It shouldn't be a surprise if a "too modern" game makes DOSBox hang with it (Commander Keen included). This is also the case with v0.74, at least here.

an actual PCjr doesn't take ISA graphics cards at all - you're basically stuck with the internal video hardware, so there's no real need to specify a vidcard setting for that machine. There were expansion "sidecars" that provided EGA/VGA, but anything that needs these modes (like Keen) would run better on non-Jr machines anyway.

with Tandy it's a different story, and I like the option of having VGA graphics and tandy sound. If you want to make it less "hackish" though, how about specifying a new machine type (e.g. "tandy_vga") instead of separate system/vidcard settings?

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

Reply 3 of 5, by Great Hierophant

User metadata
Rank l33t
Rank
l33t

Ideally, the system should not need to be tied to the video hardware. Although a hack, the idea is sound, to have separate choices for system and video.

http://nerdlypleasures.blogspot.com/ - Nerdly Pleasures - My Retro Gaming, Computing & Tech Blog

Reply 4 of 5, by NY00123

User metadata
Rank Member
Rank
Member

Hey again and thanks for the support.

IIGS_User wrote:

'Other' needs to be more specific... 😉

Hmm... well, "other" basically stands for anything other than Tandy and PCjr. Maybe "default" sounds better?

VileRancour wrote:

If you want to make it less "hackish" though, how about specifying a new machine type (e.g. "tandy_vga") instead of separate system/vidcard settings?

That could work out. It'd still be "hackish" in a similar manner, only that the settings are different.
One little issue with it is that you wouldn't have the choice of the many emulated VGA/SVGA cards. Although, being a default selection on vanilla DOSBox, svga_s3 appears to be the most compatible in general (well, for Keen 4, it's "more" compatible than vgaonly).

###

Oh, it might be good chance to add another thing that I've forgotten to tell: To the ones who wonder, this hack does not add any dual-monitor emulation (like VGA+Hercules).

Reply 5 of 5, by VileR

User metadata
Rank l33t
Rank
l33t

yeah, hadn't considered all the different SVGA chipsets.

Decoupling the system from the video hardware is actually the more precise solution, true. Even better, a separate choice of monitor type: RGB, monochrome (TTL or VGA), and mono or color composite/TV (the only way to fully emulate composite video - for all CGA modes as well as Tandy/PCjr). But in the context of DOSBox's current approach, that might be a bit much.

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