VOGONS

Common searches


First post, by VileR

User metadata
Rank Oldbie
Rank
Oldbie

Attached appears to be a fixed-up diff.
However, compiling with mingw results in screen corruption on CLS *if* normal6x is used (no issue with 4x, 5x). Wonder what's up with that.

(Edit by Dominus: on request the patches have been split off the topic Re: normal4x, normal5x, one day ? and put into the patches forum)

Attachments

  • Filename
    normal4x_5x_6x.diff
    File size
    10.87 KiB
    Downloads
    176 downloads
    File license
    Fair use/fair dealing exception

Reply 1 of 4, by VileR

User metadata
Rank Oldbie
Rank
Oldbie

Added feature: "normal2x" and "normal3x" now work in double-width/double-height modes too.

Normally the internal scalers have zero effect on:

  • CGA/EGA 640x200
  • Composite CGA
  • CGA/pcjr/tandy 80-column text (incl. "160x100" games like Round 42)
  • EGA/VGA 40-column text
  • various tweaked VGA modes (320x400, 360x480/350, etc.)

The updated patch allows simple 2x/3x scaling for all of the above. You have to specify the 'forced' parameter (e.g. "scaler=normal2x forced"); this is a deliberate choice, mainly for consistency's sake.

(Moderators: could this thread be moved to the patches section?)

Attachments

  • Filename
    enh_normal_scalers.zip
    File size
    1.35 MiB
    Downloads
    115 downloads
    File comment
    Win32 build
    File license
    Fair use/fair dealing exception
  • Filename
    enh_normal_scalers.diff
    File size
    16.95 KiB
    Downloads
    100 downloads
    File comment
    Patch against DOSBox SVN r3850
    File license
    Fair use/fair dealing exception

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

Reply 2 of 4, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

Sorry, removed the reply.
Not sure about which index to increase.
But the problem is that you are probably outside the writecache for normal6x

Water flows down the stream
How to ask questions the smart way!

Reply 3 of 4, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

This might fix the problem you had with normal6x

Index: render_scalers.cpp
===================================================================
--- render_scalers.cpp (revision 4254)
+++ render_scalers.cpp (working copy)
@@ -30,9 +30,9 @@
Bitu Scaler_ChangedLineIndex;

static union {
- Bit32u b32 [4][SCALER_MAXWIDTH*3];
- Bit16u b16 [4][SCALER_MAXWIDTH*3];
- Bit8u b8 [4][SCALER_MAXWIDTH*3];
+ Bit32u b32 [5][SCALER_MAXWIDTH*3];
+ Bit16u b16 [5][SCALER_MAXWIDTH*3];
+ Bit8u b8 [5][SCALER_MAXWIDTH*3];
} scalerWriteCache;
//scalerFrameCache_t scalerFrameCache;
scalerSourceCache_t scalerSourceCache;

Water flows down the stream
How to ask questions the smart way!

Reply 4 of 4, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

the times 3 might be needed to increased as well (to times 6). But I have to double check that.
Seems to make sense to do that as well..

Index: render_scalers.cpp
===================================================================
--- render_scalers.cpp (revision 4254)
+++ render_scalers.cpp (working copy)
@@ -30,9 +30,9 @@
Bitu Scaler_ChangedLineIndex;

static union {
- Bit32u b32 [4][SCALER_MAXWIDTH*3];
- Bit16u b16 [4][SCALER_MAXWIDTH*3];
- Bit8u b8 [4][SCALER_MAXWIDTH*3];
+ Bit32u b32 [5][SCALER_MAXWIDTH*6];
+ Bit16u b16 [5][SCALER_MAXWIDTH*6];
+ Bit8u b8 [5][SCALER_MAXWIDTH*6];
} scalerWriteCache;
//scalerFrameCache_t scalerFrameCache;
scalerSourceCache_t scalerSourceCache;

Water flows down the stream
How to ask questions the smart way!