Ticket #8220: advmame3x.diff

File advmame3x.diff, 6.0 KB (added by eriktorbjorn, 18 years ago)

Patch against a May 9 CVS (trunk) snapshot

  • scummvm/README

    diff -ur --exclude=CVS ScummVM/scummvm/README ScummVM+hack/scummvm/README
    old new  
    346346        Ctrl-z OR Alt-x        - quit
    347347        Keyboard Arrow Keys    - simulate mouse movement
    348348        Ctrl-f                 - runs in fast mode.
    349         Ctrl-Alt 1-9           - Switch between graphics filters
     349        Ctrl-Alt 0-9           - Switch between graphics filters
    350350        Ctrl-Alt 1             - Switch beetwen bilinear and non-linear filtering [OpenGL backend]
    351351        Ctrl-Alt 2             - Don't fit the game in the whole screen (black borders) [OpenGL backend]
    352352        Ctrl-Alt 3             - Fit the game in the whole screen (no black borders) [OpenGL backend]
     
    408408        super2xsai - Enhanced 2xsai filtering. 640x400 screen/window size
    409409        supereagle - Less blurry than 2xsai, but slower. Also 640x400
    410410        advmame2x  - 640x400 scaling. Doesn't rely on blurring like 2xSAI.
     411        advmame3x  - 960x600 scaling. Doesn't rely on blurring like 2xSAI.
    411412        tv2x       - 640x400 scaling. Horizontal scanlines.
    412413        dotmatrix  - 640x400 scaling. Dot matrix effect.
    413414
  • scummvm/backends/sdl/sdl-common.cpp

    diff -ur --exclude=CVS ScummVM/scummvm/backends/sdl/sdl-common.cpp ScummVM+hack/scummvm/backends/sdl/sdl-common.cpp
    old new  
    544544                                break;
    545545                        }
    546546#endif
    547                         // Ctr-Alt-1 till Ctrl-Alt-9 will change the GFX mode
    548                         if (b == (KBD_CTRL|KBD_ALT) &&
    549                                 (ev.key.keysym.sym>='1') && (ev.key.keysym.sym<='9')) {
    550                                 Property prop;
    551                                 prop.gfx_mode = ev.key.keysym.sym - '1';
    552                                 property(PROP_SET_GFX_MODE, &prop);
    553                                 break;
     547                        // Ctr-Alt-<key> will change the GFX mode
     548                        if (b == (KBD_CTRL|KBD_ALT)) {
     549                                char keys[] = "1234567890";
     550                                char *ptr;
     551
     552                                ptr = strchr(keys, ev.key.keysym.sym);
     553                                if (ptr != NULL) {
     554                                        Property prop;
     555
     556                                        prop.gfx_mode = ptr - keys;
     557                                        property(PROP_SET_GFX_MODE, &prop);
     558                                        break;
     559                                }
    554560                        }
    555561
    556562#ifdef QTOPIA
  • scummvm/backends/sdl/sdl.cpp

    diff -ur --exclude=CVS ScummVM/scummvm/backends/sdl/sdl.cpp ScummVM+hack/scummvm/backends/sdl/sdl.cpp
    old new  
    9999                _scaleFactor = 2;
    100100                _scaler_proc = AdvMame2x;
    101101                break;
     102        case GFX_ADVMAME3X:
     103                _scaleFactor = 3;
     104                _scaler_proc = AdvMame3x;
     105                break;
    102106        case GFX_TV2X:
    103107                _scaleFactor = 2;
    104108                _scaler_proc = TV2x;
     
    360364#endif
    361365                return 1;
    362366        } else if (param == PROP_SET_GFX_MODE) {
    363                 if (value->gfx_mode >= 9)
     367                if (value->gfx_mode >= 10)
    364368                        return 0;
    365369
    366370                _mode = value->gfx_mode;
  • scummvm/backends/sdl/sdl_gl.cpp

    diff -ur --exclude=CVS ScummVM/scummvm/backends/sdl/sdl_gl.cpp ScummVM+hack/scummvm/backends/sdl/sdl_gl.cpp
    old new  
    570570                                _glScreenStart = 0;
    571571                                break;
    572572                        default: // SDL backend
    573                                 if (value->gfx_mode >= 9)
     573                                if (value->gfx_mode >= 10)
    574574                                  return 0;
    575575
    576576                                _mode = value->gfx_mode;
  • scummvm/common/gameDetector.cpp

    diff -ur --exclude=CVS ScummVM/scummvm/common/gameDetector.cpp ScummVM+hack/scummvm/common/gameDetector.cpp
    old new  
    9090        {"super2xsai", "Super2xSAI", GFX_SUPER2XSAI},
    9191        {"supereagle", "SuperEagle", GFX_SUPEREAGLE},
    9292        {"advmame2x", "AdvMAME2x", GFX_ADVMAME2X},
     93        {"advmame3x", "AdvMAME3x", GFX_ADVMAME3X},
    9394        {"tv2x", "TV2x", GFX_TV2X},
    9495        {"dotmatrix", "DotMatrix", GFX_DOTMATRIX},
    9596#else
  • scummvm/common/scaler.cpp

    diff -ur --exclude=CVS ScummVM/scummvm/common/scaler.cpp ScummVM+hack/scummvm/common/scaler.cpp
    old new  
    746746        }
    747747}
    748748
     749void AdvMame3x(uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch,
     750                                                         int width, int height) {
     751        unsigned int nextlineSrc = srcPitch / sizeof(uint16);
     752        uint16 *p = (uint16 *)srcPtr;
     753
     754        unsigned int nextlineDst = dstPitch / sizeof(uint16);
     755        uint16 *q = (uint16 *)dstPtr;
     756       
     757        uint16 A, B, C;
     758        uint16 D, E, F;
     759        uint16 G, H, I;
     760
     761        while (height--) {
     762                B = C = *(p - nextlineSrc);
     763                E = F = *(p);
     764                H = I = *(p + nextlineSrc);
     765                for (int i = 0; i < width; ++i) {
     766                        p++;
     767                        A = B; B = C; C = *(p - nextlineSrc);
     768                        D = E; E = F; F = *(p);
     769                        G = H; H = I; I = *(p + nextlineSrc);
     770
     771                        *(q) = D == B && B != F && D != H ? D : E;
     772                        *(q + 1) = E;
     773                        *(q + 2) = B == F && B != D && F != H ? F : E;
     774                        *(q + nextlineDst) = E;
     775                        *(q + nextlineDst + 1) = E;
     776                        *(q + nextlineDst + 2) = E;
     777                        *(q + 2 * nextlineDst) = D == H && D != B && H != F ? D : E;
     778                        *(q + 2 * nextlineDst + 1) = E;
     779                        *(q + 2 * nextlineDst + 2) = H == F && D != H && B != F ? F : E;
     780                        q += 3;
     781                }
     782                p += nextlineSrc - width;
     783                q += (nextlineDst - width) * 3;
     784        }
     785}
     786
    749787void Normal1x(uint8 *srcPtr, uint32 srcPitch, uint8 *dstPtr, uint32 dstPitch,
    750788                                                        int width, int height) {
    751789        while (height--) {
  • scummvm/common/scaler.h

    diff -ur --exclude=CVS ScummVM/scummvm/common/scaler.h ScummVM+hack/scummvm/common/scaler.h
    old new  
    3131DECLARE_SCALER(Super2xSaI);
    3232DECLARE_SCALER(SuperEagle);
    3333DECLARE_SCALER(AdvMame2x);
     34DECLARE_SCALER(AdvMame3x);
    3435DECLARE_SCALER(Normal1x);
    3536DECLARE_SCALER(Normal2x);
    3637DECLARE_SCALER(Normal3x);
     
    4647        GFX_SUPER2XSAI = 4,
    4748        GFX_SUPEREAGLE = 5,
    4849        GFX_ADVMAME2X = 6,
    49         GFX_TV2X = 7,
    50         GFX_DOTMATRIX = 8,
     50        GFX_ADVMAME3X = 7,
     51        GFX_TV2X = 8,
     52        GFX_DOTMATRIX = 9,
    5153       
    5254        GFX_FLIPPING = 100,     // Palmos
    5355        GFX_DOUBLEBUFFER = 101  // Palmos