Ticket #7985: scumm-zaurus-0.2.0.patch

File scumm-zaurus-0.2.0.patch, 7.2 KB (added by (none), 22 years ago)

the patch!, applies to 0.2.0 release

  • Makefile

    diff -u ../scummvm/Makefile ./Makefile
    old new  
    11# $Header: /cvsroot/scummvm/scummvm/Makefile,v 1.41 2002/04/27 16:58:28 ender Exp $
    22
    3 CC      = g++
     3CC      = arm-linux-g++
    44CFLAGS  = -g -O -Wall -Wstrict-prototypes -Wuninitialized -Wno-long-long -Wno-multichar
    5 DEFINES = -DUNIX
     5DEFINES = -DUNIX -DCOMPRESSED_SOUND_FILE -DBYPASS_COPY_PROT -DQTOPIA
    66LDFLAGS :=
    7 INCLUDES:= `sdl-config --cflags` -I./ -I./sound
     7INCLUDES:= `/opt/Qtopia/sharp/bin/sdl-config --cflags` -I./ -I./sound
    88CPPFLAGS= $(DEFINES) $(INCLUDES)
    99
    1010# Add -lmad for -DCOMPRESSED_SOUND_FILE
    11 LIBS    = `sdl-config --libs` -lncurses
     11LIBS    = `/opt/Qtopia/sharp/bin/sdl-config --libs` -lmad
     12#-lncurses
    1213
    1314OBJS    = sdl.o
    1415
  • config-file.cpp

    diff -u ../scummvm/config-file.cpp ./config-file.cpp
    old new  
    7676
    7777hashconfig::~hashconfig()
    7878{
     79        #ifndef QTOPIA
    7980        xfree(domain);
     81        #endif
    8082}
    8183
    8284bool hashconfig::is_domain(const char *d) const
     
    210212
    211213Config::~Config()
    212214{
     215        #ifndef QTOPIA
    213216        int i;
    214217
    215218        xfree(filename);
     
    219222                delete hash[i];
    220223        }
    221224        xfree(hash);
     225        #endif
    222226}
    223227
    224228const char *Config::get(const char *key, const char *d) const
  • main.cpp

    Common subdirectories: ../scummvm/dc and ./dc
    Common subdirectories: ../scummvm/debian and ./debian
    Common subdirectories: ../scummvm/mac and ./mac
    Common subdirectories: ../scummvm/macosclassic and ./macosclassic
    diff -u ../scummvm/main.cpp ./main.cpp
    old new  
    2828#include "simon/simon.h"
    2929#include "config-file.h"
    3030
     31
    3132GameDetector detector;
    3233Gui gui;
    3334
     
    3839
    3940#if defined(MACOSX) && defined(UNIX)
    4041#include <SDL.h>
    41 #elif !defined(__MORPHOS__)
     42#elif !defined(QTOPIA)
     43//#elif !defined(QTOPIA) || !defined(__MORPHOS__)
     44// someone please explain to me why the above doesn't work
    4245#undef main
    4346#endif
    4447
     48
    4549#if defined(UNIX) || defined(UNIX_X11)
    4650#include <sys/param.h>
    4751#ifndef MAXPATHLEN
     
    5559#if defined(UNIX) || defined(UNIX_X11)
    5660#include <signal.h>
    5761
     62#ifdef QTOPIA
     63#include <SDL.h>
     64extern "C" int main(int argc, char *argv[]);
     65#endif
     66
     67
    5868static void handle_errors(int sig_num) {
    5969        error("Your system does not support unaligned memory accesses. Please rebuild with SCUMM_NEED_ALIGNMENT ");
    6070}
     
    92102
    93103#endif
    94104
     105#ifdef main
     106#warning "main defined"
     107#endif
     108
    95109int main(int argc, char *argv[])
    96110{
    97 /*
     111printf("entering scummvm main\n");
     112        /*
    98113Disabled this for now. What good does it do, anyway, we now have real config
    99114files, and a proper port to MacOS classic should offer a dialog or so for any
    100115game settings!
  • scummsys.h

    Common subdirectories: ../scummvm/morphos and ./morphos
    diff -u ../scummvm/scummsys.h ./scummsys.h
    old new  
    107107#endif
    108108#endif
    109109
     110#ifdef QTOPIA
     111#define SCUMM_NEED_ALIGNMENT
     112#endif
     113
    110114#define FORCEINLINE inline
    111115#define CDECL
    112116
  • sdl.cpp

    diff -u ../scummvm/sdl.cpp ./sdl.cpp
    old new  
    748748        for(;;) {
    749749                if (!SDL_PollEvent(&ev))
    750750                        return false;
    751 
     751               
    752752                switch(ev.type) {
    753753                case SDL_KEYDOWN: {
    754754                                byte b = 0;
     
    767767                                        quit();
    768768                                        break;
    769769                                }
    770 
    771770                                if (b == (KBD_CTRL|KBD_ALT) &&
    772771                                    (ev.key.keysym.sym>='1') && (ev.key.keysym.sym<='7')) {
    773772                                        Property prop;
     
    775774                                        property(PROP_SET_GFX_MODE, &prop);
    776775                                        break;
    777776                                }
    778 
    779 
     777                                #ifdef QTOPIA
     778                                // quit on fn+backspace on zaurus
     779                                if (ev.key.keysym.sym==127) {
     780                                        quit();
     781                                        break;
     782                                        }
     783                                // map menu key (f11) to f5 (scumm menu)
     784                                if (ev.key.keysym.sym==292) {
     785                                        event->event_code = EVENT_KEYDOWN;
     786                                        event->kbd.keycode = 286;
     787                                        event->kbd.ascii = mapKey(286, ev.key.keysym.mod);
     788                                        }
     789                                // map center (space) to tab (default action )
     790                                // i wanted to map the calendar button but the calendar comes up
     791                                //
     792                                else if (ev.key.keysym.sym==32) {
     793                                        event->event_code = EVENT_KEYDOWN;
     794                                        event->kbd.keycode = 9;
     795                                        event->kbd.ascii = mapKey(9, ev.key.keysym.mod);
     796                                        }
     797                                // since we stole space (pause) above we'll rebind it to the tab key on the keyboard
     798                                else if (ev.key.keysym.sym==9) {
     799                                        event->event_code = EVENT_KEYDOWN;
     800                                        event->kbd.keycode = 32;
     801                                        event->kbd.ascii = mapKey(32, ev.key.keysym.mod);
     802                                }
     803                                else {
     804                                // let the events fall through if we didn't change them, this may not be the best way to
     805                                // set it up, but i'm not sure how sdl would like it if we let if fall through then redid it though.
     806                                // and yes i have an huge terminal size so i dont wrap soon enough.
     807                                        event->event_code = EVENT_KEYDOWN;
     808                                        event->kbd.keycode = ev.key.keysym.sym;
     809                                        event->kbd.ascii = mapKey(ev.key.keysym.sym, ev.key.keysym.mod);
     810                                }
     811                                #endif
     812                                #ifndef QTOPIA
    780813                                event->event_code = EVENT_KEYDOWN;
    781814                                event->kbd.keycode = ev.key.keysym.sym;
    782815                                event->kbd.ascii = mapKey(ev.key.keysym.sym, ev.key.keysym.mod);
     816                                #endif
    783817                                return true;
    784818                        }
    785819
     
    904938                return 1;
    905939
    906940        case PROP_OPEN_CD:
     941                        #ifndef QTOPIA
    907942                if (SDL_InitSubSystem(SDL_INIT_CDROM) == -1)
    908943                        cdrom = NULL;
     944                       
    909945                else {
    910946                        cdrom = SDL_CDOpen(value->cd_num);
    911947                        /* Did if open? Check if cdrom is NULL */
     
    914950                        }
    915951                }
    916952                break;
    917 
     953                        #endif
     954                        #ifdef QTOPIA
     955                        cdrom = NULL;
     956                        break;
     957                        #endif
    918958        case PROP_SET_GFX_MODE:
    919959                if (value->gfx_mode >= 7)
    920960                        return 0;
     
    937977               
    938978void OSystem_SDL::quit() {
    939979  if(cdrom) {
     980  #ifndef QTOPIA
    940981    SDL_CDStop(cdrom);
    941982    SDL_CDClose(cdrom);
     983  #endif
    942984  }
    943985        unload_gfx_mode();             
    944986        exit(1);
     
    10661108        cd_num_loops = num_loops;
    10671109        cd_start_frame = start_frame;
    10681110
     1111        #ifndef QTOPIA
    10691112        SDL_CDStatus(cdrom);   
    10701113        SDL_CDPlayTracks(cdrom, track, start_frame, 0, end_frame);
     1114        #endif
    10711115        cd_end_frame = end_frame;
    10721116        cd_stop_time = 0;
    10731117        cd_end_time = SDL_GetTicks() + cdrom->track[track].length * 1000 / CD_FPS;
     
    10771121        if (!cdrom)
    10781122                return false;
    10791123
     1124        #ifdef QTOPIA
     1125                return (cd_num_loops != 0 && (SDL_GetTicks() < cd_end_time != CD_STOPPED));
     1126        #endif
    10801127        return (cd_num_loops != 0 && (SDL_GetTicks() < cd_end_time || SDL_CDStatus(cdrom) != CD_STOPPED));
    10811128}
    10821129
     
    10851132                return;
    10861133               
    10871134        if (cd_stop_time != 0 && SDL_GetTicks() >= cd_stop_time) {
     1135                #ifndef QTOPIA
    10881136                SDL_CDStop(cdrom);
     1137                #endif
    10891138                cd_num_loops = 0;
    10901139                cd_stop_time = 0;
    10911140                return;
     
    10941143        if (cd_num_loops == 0 || SDL_GetTicks() < cd_end_time)
    10951144                return;
    10961145
     1146        #ifndef QTOPIA
    10971147        if (cd_num_loops != 1 && SDL_CDStatus(cdrom) != CD_STOPPED) {
    10981148                // Wait another second for it to be done
    10991149                cd_end_time += 1000;
    11001150                return;
    11011151        }
     1152        #endif
    11021153
    11031154        if (cd_num_loops > 0)
    11041155                cd_num_loops--;
    11051156
    11061157        if (cd_num_loops != 0) {
     1158                #ifndef QTOPIA
    11071159                SDL_CDPlayTracks(cdrom, cd_track, cd_start_frame, 0, cd_end_frame);
     1160                #endif
    11081161                cd_end_time = SDL_GetTicks() + cdrom->track[cd_track].length * 1000 / CD_FPS;
    11091162        }
    11101163}