VOGONS


First post, by VileR

User metadata
Rank l33t
Rank
l33t

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)

Reply 1 of 4, by VileR

User metadata
Rank l33t
Rank
l33t

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?)

[ 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!