VOGONS

Common searches


First post, by Beatfox

User metadata
Rank Newbie
Rank
Newbie

Hello! This is a bit of a niche case, but I'm using RetroArch with the DOSBox-SVN core to emulate a system with a CGA display. With the CRT-Royale shader, it does an incredible job at simulating a CRT display on my 4K monitor, but the problem I'm running into is getting it to simulate a single scanline per pixel row across all modes. It works great for 320x200 graphics mode, but for 80x25 text mode it's like it's always stuck on normal2x no matter what scaler option I select (see attached screenshots).

Anyone have any ideas?

Attachments

Reply 1 of 8, by Beatfox

User metadata
Rank Newbie
Rank
Newbie

Ok, so after some more testing, I found out it's not a matter of graphics vs. text mode, but of horizontal resolution: each mode with 320 pixels reflects whatever scaler is selected, but each 640 pixel mode is seemingly locked to normal2x. Not sure if that helps for coming up with a solution...

Reply 3 of 8, by Beatfox

User metadata
Rank Newbie
Rank
Newbie

Well, a few things:

  1. The normal2x scaler does come in handy for simulating the scanline doubling on VGA and other computer displays. I haven't found a way to make that happen with just CRT-Royale by itself.
  2. In this instance, however, I'm trying to force the scaler off, rather than on. From what I read in some other threads, DOSBox overrides the user's scaler selection with normal2x (even if that selection is "none") for certain modes.
  3. I did read about appending "forced" and attempted to use "none forced" in the dosbox_svn_scaler setting in my .opt file, but it sees it as an invalid value and reverts it to "none". Same with any other scaler selection.

Reply 4 of 8, by ripsaw8080

User metadata
Rank DOSBox Author
Rank
DOSBox Author

With the machine=cga setting there is an internal line-doubling scaler on 640x200 modes, which includes mode 6 graphics and text modes. The internal scaler overrides any user scaler setting (even "none") and can't be disabled.

Reply 5 of 8, by Beatfox

User metadata
Rank Newbie
Rank
Newbie

Ah, that's a bummer. I imagine it was implemented that way to simplify the displaying of 640x200's oblong pixels when running pure DOSBox.

Thanks for the reply, though - and thanks for all your contributions to DOSBox!

Reply 6 of 8, by Beatfox

User metadata
Rank Newbie
Rank
Newbie

I got it to work!

Thank goodness for FOSS ^^ All I ended up doing was replacing the contents of ScaleNormalDh (I figured Dh = Double height) with the contents of ScaleNormal1x in render_scalers.cpp.

Looks so much more like the real thing now!

Attachments

Reply 7 of 8, by leileilol

User metadata
Rank l33t++
Rank
l33t++

I think another workaround, since you're using RetroArch, is to have a shader preset manually altered to scale the height down, i.e.:

scale_type_y0 = "absolute"
scale_y0 = "200"

with a 'stock' shader

apsosig.png
long live PCem