[Scummvm-devel] New GFX mode
Gregory Montoir
Gregory.Montoir at ens.insa-rennes.fr
Tue Apr 23 11:47:03 CEST 2002
Hi,
well, I have just added a new GFX mode to scummVM:
the AdvanceMAME scale2x... Not as spectacular as
2xSai and co. but still pretty...
See the patch.
Cheers,
Cyx
-------------- next part --------------
diff -u scummvm/2xsai.cpp scummvm_mod/2xsai.cpp
--- scummvm/2xsai.cpp Thu Apr 18 08:34:48 2002
+++ scummvm_mod/2xsai.cpp Tue Apr 23 15:46:20 2002
@@ -23,6 +23,39 @@
#include "stdafx.h"
#include "scummsys.h"
+
+/* AdvanceMAME Scale2x effect */
+void AdvMame2x(uint8 *srcPtr, uint32 srcPitch, uint8 *null, uint8 *dstPtr, uint32 dstPitch, int width, int height)
+{
+ unsigned int nextlineSrc = srcPitch / sizeof(short);
+ short* p = (short*)srcPtr;
+
+ unsigned nextlineDst = dstPitch / sizeof(short);
+ short* q = (short*)dstPtr;
+
+ for(int j = 0; j < height; ++j) {
+ for(int i = 0; i < width; ++i) {
+ short A = *(p + i - nextlineSrc - 1);
+ short B = *(p + i - nextlineSrc);
+ short C = *(p + i - nextlineSrc + 1);
+ short D = *(p + i - 1);
+ short E = *(p + i );
+ short F = *(p + i + 1);
+ short G = *(p + i + nextlineSrc - 1);
+ short H = *(p + i + nextlineSrc);
+ short I = *(p + i + nextlineSrc + 1);
+
+ *(q + (i << 1)) = D == B && B != F && D != H ? D : E;
+ *(q + (i << 1) + 1) = B == F && B != D && F != H ? F : E;
+ *(q + (i << 1) + nextlineDst) = D == H && D != B && H != F ? D : E;
+ *(q + (i << 1) + nextlineDst + 1) = H == F && D != H && B != F ? F : E;
+ }
+ p += nextlineSrc;
+ q += nextlineDst << 1;
+ }
+}
+
+
/********** 2XSAI Filter *****************/
static uint32 colorMask = 0xF7DEF7DE;
static uint32 lowPixelMask = 0x08210821;
Common subdirectories: scummvm/PocketSCUMM and scummvm_mod/PocketSCUMM
Only in scummvm_mod: Release
Common subdirectories: scummvm/dc and scummvm_mod/dc
Common subdirectories: scummvm/debian and scummvm_mod/debian
diff -u scummvm/gameDetector.cpp scummvm_mod/gameDetector.cpp
--- scummvm/gameDetector.cpp Mon Apr 22 03:04:58 2002
+++ scummvm_mod/gameDetector.cpp Tue Apr 23 15:02:20 2002
@@ -46,7 +46,7 @@
"\te<mode> - set music engine. see readme.txt for details\n"
"\tr - emulate roland mt32 instruments\n"
"\tf - fullscreen mode\n"
- "\tg<mode> - graphics mode. normal,2x,3x,2xsai,super2xsai,supereagle\n"
+ "\tg<mode> - graphics mode. normal,2x,3x,2xsai,super2xsai,supereagle,advmame2x\n"
"\ta - specify game is amiga version\n"
;
@@ -174,6 +174,7 @@
{"2xsai",GFX_2XSAI},
{"super2xsai",GFX_SUPER2XSAI},
{"supereagle",GFX_SUPEREAGLE},
+ {"advmame2x",GFX_ADVMAME2X}
};
const GraphicsModes *gm = gfx_modes;
Common subdirectories: scummvm/mac and scummvm_mod/mac
Common subdirectories: scummvm/macosclassic and scummvm_mod/macosclassic
Common subdirectories: scummvm/morphos and scummvm_mod/morphos
diff -u scummvm/scummvm.dsp scummvm_mod/scummvm.dsp
--- scummvm/scummvm.dsp Wed Apr 17 20:49:58 2002
+++ scummvm_mod/scummvm.dsp Tue Apr 23 15:46:46 2002
@@ -52,7 +52,7 @@
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib sdl.lib winmm.lib wsock32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib sdl.lib winmm.lib wsock32.lib /nologo /subsystem:console /machine:I386 /out:"../../scummvm6.exe"
!ELSEIF "$(CFG)" == "scummvm - Win32 Debug"
Only in scummvm_mod: scummvm.ncb
Only in scummvm_mod: scummvm.opt
Only in scummvm_mod: scummvm___Win32_MP3_Enabled_Debug
diff -u scummvm/sdl.cpp scummvm_mod/sdl.cpp
--- scummvm/sdl.cpp Sun Apr 21 17:46:42 2002
+++ scummvm_mod/sdl.cpp Tue Apr 23 15:40:02 2002
@@ -188,7 +188,8 @@
uint8 *dstPtr, uint32 dstPitch, int width, int height);
void SuperEagle(uint8 *srcPtr, uint32 srcPitch, uint8 *deltaPtr,
uint8 *dstPtr, uint32 dstPitch, int width, int height);
-
+void AdvMame2x(uint8 *srcPtr, uint32 srcPitch, uint8 *null,
+ uint8 *dstPtr, uint32 dstPitch, int width, int height);
void atexit_proc() {
SDL_ShowCursor(SDL_ENABLE);
@@ -250,6 +251,9 @@
break;
case GFX_SUPEREAGLE:
_sai_func = SuperEagle;
+ break;
+ case GFX_ADVMAME2X:
+ _sai_func = AdvMame2x;
break;
case GFX_DOUBLESIZE:
Common subdirectories: scummvm/simon and scummvm_mod/simon
Common subdirectories: scummvm/sound and scummvm_mod/sound
diff -u scummvm/system.h scummvm_mod/system.h
--- scummvm/system.h Sun Apr 21 17:46:42 2002
+++ scummvm_mod/system.h Tue Apr 23 15:34:36 2002
@@ -153,6 +153,7 @@
GFX_2XSAI = 3,
GFX_SUPER2XSAI = 4,
GFX_SUPEREAGLE = 5,
+ GFX_ADVMAME2X = 6,
};
Common subdirectories: scummvm/v3 and scummvm_mod/v3
Common subdirectories: scummvm/v4 and scummvm_mod/v4
Common subdirectories: scummvm/wince and scummvm_mod/wince
More information about the Scummvm-devel
mailing list