pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/games/raw initial import of raw 0.1.0:



details:   https://anonhg.NetBSD.org/pkgsrc/rev/ebf710cff4b3
branches:  trunk
changeset: 475343:ebf710cff4b3
user:      dillo <dillo%pkgsrc.org@localhost>
date:      Fri May 14 15:42:14 2004 +0000

description:
initial import of raw 0.1.0:

raw is a rewrite of the engine used in the action/adventure game
Another World/Out of this World released for DOS and Amiga. This
program is designed as a cross-platform replacement for the original
executable and uses the SDL library.  You will need the data files
from the DOS version of the game to play.

diffstat:

 games/raw/DESCR            |    5 +
 games/raw/Makefile         |   32 ++++++
 games/raw/PLIST            |    4 +
 games/raw/distinfo         |   17 +++
 games/raw/patches/patch-aa |   26 +++++
 games/raw/patches/patch-ab |   51 ++++++++++
 games/raw/patches/patch-ac |   22 ++++
 games/raw/patches/patch-ad |  219 +++++++++++++++++++++++++++++++++++++++++++++
 games/raw/patches/patch-ae |   54 +++++++++++
 games/raw/patches/patch-af |  124 +++++++++++++++++++++++++
 games/raw/patches/patch-ag |   68 +++++++++++++
 games/raw/patches/patch-ah |   49 ++++++++++
 games/raw/patches/patch-ai |   94 +++++++++++++++++++
 games/raw/patches/patch-aj |   26 +++++
 games/raw/patches/patch-ak |   35 +++++++
 games/raw/patches/patch-al |   28 +++++
 games/raw/patches/patch-am |   16 +++
 17 files changed, 870 insertions(+), 0 deletions(-)

diffs (truncated from 938 to 300 lines):

diff -r 34116a50398d -r ebf710cff4b3 games/raw/DESCR
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/games/raw/DESCR   Fri May 14 15:42:14 2004 +0000
@@ -0,0 +1,5 @@
+raw is a rewrite of the engine used in the action/adventure game
+Another World/Out of this World released for DOS and Amiga. This
+program is designed as a cross-platform replacement for the original
+executable and uses the SDL library.  You will need the data files
+from the DOS version of the game to play.
diff -r 34116a50398d -r ebf710cff4b3 games/raw/Makefile
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/games/raw/Makefile        Fri May 14 15:42:14 2004 +0000
@@ -0,0 +1,32 @@
+# $NetBSD: Makefile,v 1.1.1.1 2004/05/14 15:42:14 dillo Exp $
+#
+
+DISTNAME=              raw-0.1.0
+CATEGORIES=            games
+MASTER_SITES=          http://membres.lycos.fr/cyxdown/raw/
+EXTRACT_SUFX=          .tar.bz2
+
+MAINTAINER=            dillo%NetBSD.org@localhost
+HOMEPAGE=              http://membres.lycos.fr/cyxdown/raw/
+COMMENT=               Engine for playing Another World
+
+USE_BUILDLINK3=                yes
+ALL_TARGET=            raw
+
+.include "../../mk/endian.mk"
+.if ${MACHINE_ENDIAN} == "big"
+CFLAGS+=       -DSYS_BIG_ENDIAN
+.elif ${MACHINE_ENDIAN} == "little"
+CFLAGS+=       -DSYS_LITTLE_ENDIAN
+.else
+BROKEN=       "Unknown endianness"
+.endif
+
+do-install:
+       ${INSTALL_PROGRAM} ${WRKSRC}/raw ${PREFIX}/bin
+       ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/raw
+       ${INSTALL_DATA} ${WRKSRC}/README ${PREFIX}/share/doc/raw
+
+.include "../../devel/SDL/buildlink3.mk"
+.include "../../devel/zlib/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff -r 34116a50398d -r ebf710cff4b3 games/raw/PLIST
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/games/raw/PLIST   Fri May 14 15:42:14 2004 +0000
@@ -0,0 +1,4 @@
+@comment $NetBSD: PLIST,v 1.1.1.1 2004/05/14 15:42:14 dillo Exp $
+bin/raw
+share/doc/raw/README
+@dirrm share/doc/raw
diff -r 34116a50398d -r ebf710cff4b3 games/raw/distinfo
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/games/raw/distinfo        Fri May 14 15:42:14 2004 +0000
@@ -0,0 +1,17 @@
+$NetBSD: distinfo,v 1.1.1.1 2004/05/14 15:42:14 dillo Exp $
+
+SHA1 (raw-0.1.0.tar.bz2) = 81072215bd88e5e214516e569e5df24c3b4cc5e0
+Size (raw-0.1.0.tar.bz2) = 26331 bytes
+SHA1 (patch-aa) = 8f8ac043d5e600388d15aae01cd3c0968cdfd1af
+SHA1 (patch-ab) = 4a9143b003884c7e3f320a80c9f1b3619eef3cfb
+SHA1 (patch-ac) = b67f0d5700291720c7d4fa88738e3af0e31f8856
+SHA1 (patch-ad) = a5ba4c8da7905bdad41f693c6d097061178730e7
+SHA1 (patch-ae) = b05eff9ac667666103a97c5cab944638a01f2ab2
+SHA1 (patch-af) = 9c47bdb96b26e44e2e9d5397d84b6250cfbca8f7
+SHA1 (patch-ag) = 13d29579e2d398b20c7cffd6fc8e3ea0f10db183
+SHA1 (patch-ah) = 27684e304edac6f155a1512fcc177d545c89e461
+SHA1 (patch-ai) = ce8d58ffeb58f766a3678693850c51be2d65dfcb
+SHA1 (patch-aj) = 48e1860506c9252ea4c12ab735559c13be81a909
+SHA1 (patch-ak) = adc6bc051193e9f54cc1bc80aa94da7965357d66
+SHA1 (patch-al) = 1e2879f83f816a3ac2a4a95766c0eb069ddd9242
+SHA1 (patch-am) = e55e7e7fcb0b36147088c916625f5e24249f415d
diff -r 34116a50398d -r ebf710cff4b3 games/raw/patches/patch-aa
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/games/raw/patches/patch-aa        Fri May 14 15:42:14 2004 +0000
@@ -0,0 +1,26 @@
+$NetBSD: patch-aa,v 1.1.1.1 2004/05/14 15:42:14 dillo Exp $
+
+This includes sound-20040508.diff from the master site.
+
+--- Makefile.orig      Wed Apr 21 20:52:50 2004
++++ Makefile
+@@ -2,14 +2,14 @@
+ SDL_CFLAGS = `sdl-config --cflags`
+ SDL_LIBS = `sdl-config --libs`
+ 
+-DEFINES = -DLITTLE_ENDIAN
++DEFINES = -DBYPASS_PROTECTION
+ 
+-CXX = g++
+-CXXFLAGS:= -g -O2 -Wall -Wuninitialized -Wno-unknown-pragmas -Wshadow -Wstrict-prototypes
+-CXXFLAGS+= -Wimplicit -Wundef -Wreorder -Wwrite-strings -Wnon-virtual-dtor -Wno-multichar
++#CXX = g++
++#CXXFLAGS:= -g -O -Wall -Wuninitialized -Wno-unknown-pragmas -Wshadow -Wstrict-prototypes
++#CXXFLAGS+= -Wimplicit -Wundef -Wreorder -Wwrite-strings -Wnon-virtual-dtor -Wno-multichar
+ CXXFLAGS+= $(SDL_CFLAGS) $(DEFINES)
+ 
+-SRCS = bank.cpp file.cpp engine.cpp logic.cpp resource.cpp sdlstub.cpp \
++SRCS = bank.cpp file.cpp engine.cpp logic.cpp mixer.cpp resource.cpp sdlstub.cpp \
+       serializer.cpp staticres.cpp util.cpp video.cpp main.cpp
+ 
+ OBJS = $(SRCS:.cpp=.o)
diff -r 34116a50398d -r ebf710cff4b3 games/raw/patches/patch-ab
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/games/raw/patches/patch-ab        Fri May 14 15:42:14 2004 +0000
@@ -0,0 +1,51 @@
+$NetBSD: patch-ab,v 1.1.1.1 2004/05/14 15:42:14 dillo Exp $
+
+This includes sound-20040508.diff from the master site.
+
+--- engine.cpp.orig    Mon Apr 19 21:01:30 2004
++++ engine.cpp
+@@ -23,14 +23,13 @@
+ 
+ 
+ Engine::Engine(SystemStub *stub, const char *dataDir, const char *saveDir)
+-      : _stub(stub), _log(&_res, &_vid, stub), _res(&_vid, dataDir), _vid(&_res, stub), 
++      : _stub(stub), _log(&_mix, &_res, &_vid, stub), _mix(_stub), _res(&_vid, dataDir), _vid(&_res, stub), 
+       _dataDir(dataDir), _saveDir(saveDir), _stateSlot(0) {
+ }
+ 
+ void Engine::run() {
+       _stub->init("Out Of This World");
+       setup();
+-      // XXX
+       _log.restartAt(0x3E80); // demo starts at 0x3E81
+       while (!_stub->_pi.quit) {
+               _log.setupScripts();
+@@ -47,10 +46,11 @@ void Engine::setup() {
+       _res.allocMemBlock();
+       _res.readEntries();
+       _log.init();
++      _mix.init();
+ }
+ 
+ void Engine::finish() {
+-       // XXX
++       _mix.free();
+        _res.freeMemBlock();
+ }
+ 
+@@ -100,6 +100,7 @@ void Engine::saveGameState(uint8 slot, c
+               _log.saveOrLoad(s);
+               _res.saveOrLoad(s);
+               _vid.saveOrLoad(s);
++              // XXX _mix.saveOrLoad(s);
+               if (f.ioErr()) {
+                       warning("I/O error when saving game state");
+               } else {
+@@ -128,6 +129,7 @@ void Engine::loadGameState(uint8 slot) {
+                       _log.saveOrLoad(s);
+                       _res.saveOrLoad(s);
+                       _vid.saveOrLoad(s);
++                      // XXX _mix.saveOrLoad(s);
+               }
+               if (f.ioErr()) {
+                       warning("I/O error when loading game state");
diff -r 34116a50398d -r ebf710cff4b3 games/raw/patches/patch-ac
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/games/raw/patches/patch-ac        Fri May 14 15:42:14 2004 +0000
@@ -0,0 +1,22 @@
+$NetBSD: patch-ac,v 1.1.1.1 2004/05/14 15:42:14 dillo Exp $
+
+This includes sound-20040508.diff from the master site.
+
+--- engine.h.orig      Sun Apr 18 19:42:26 2004
++++ engine.h
+@@ -21,6 +21,7 @@
+ 
+ #include "intern.h"
+ #include "logic.h"
++#include "mixer.h"
+ #include "resource.h"
+ #include "video.h"
+ 
+@@ -33,6 +34,7 @@ struct Engine {
+ 
+       SystemStub *_stub;
+       Logic _log;
++      Mixer _mix;
+       Resource _res;
+       Video _vid;
+       const char *_dataDir, *_saveDir;
diff -r 34116a50398d -r ebf710cff4b3 games/raw/patches/patch-ad
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/games/raw/patches/patch-ad        Fri May 14 15:42:14 2004 +0000
@@ -0,0 +1,219 @@
+$NetBSD: patch-ad,v 1.1.1.1 2004/05/14 15:42:14 dillo Exp $
+
+This includes sound-20040508.diff and txhf-20040426.diff from the
+master site.
+
+--- logic.cpp.orig     Wed Apr 21 20:20:36 2004
++++ logic.cpp
+@@ -18,14 +18,15 @@
+ 
+ #include <ctime>
+ #include "logic.h"
++#include "mixer.h"
+ #include "resource.h"
+ #include "video.h"
+ #include "serializer.h"
+ #include "systemstub.h"
+ 
+ 
+-Logic::Logic(Resource *res, Video *vid, SystemStub *stub)
+-      : _res(res), _vid(vid), _stub(stub) {
++Logic::Logic(Mixer *mix, Resource *res, Video *vid, SystemStub *stub)
++      : _mix(mix), _res(res), _vid(vid), _stub(stub) {
+ }
+ 
+ void Logic::init() {
+@@ -57,6 +58,16 @@ void Logic::op_add() {
+ }
+ 
+ void Logic::op_addConst() {
++      if (_res->_curPtrsId == 0x3E86 && _scriptPtr.pc == _res->_segCode + 0x6D48) {
++              warning("Logic::op_addConst() hack for non-stop looping gun bug");
++              // the script 0x27 slot 0x17 doesn't stop the gun sound from looping, I 
++              // don't really know why ; for now, let's play the 'stopping sound' like 
++              // the other scripts do
++              //  (0x6D43) jmp(0x6CE5)
++              //  (0x6D46) break
++              //  (0x6D47) VAR(6) += -50
++              snd_playSound(0x5B, 1, 64, 1);
++      }
+       uint8 i = _scriptPtr.fetchByte();
+       int16 n = _scriptPtr.fetchWord();
+       debug(DBG_LOGIC, "Logic::op_addConst(0x%02X, %d)", i, n);
+@@ -68,12 +79,18 @@ void Logic::op_call() {
+       uint8 sp = _stackPtr;
+       debug(DBG_LOGIC, "Logic::op_call(0x%X)", off);
+       _scriptStackCalls[sp] = _scriptPtr.pc - _res->_segCode;
++      if (_stackPtr == 0xFF) {
++              error("Logic::op_call() ec=0x%X stack overflow", 0x8F);
++      }
+       ++_stackPtr;
+       _scriptPtr.pc = _res->_segCode + off;
+ }
+ 
+ void Logic::op_ret() {
+       debug(DBG_LOGIC, "Logic::op_ret()");
++      if (_stackPtr == 0) {
++              error("Logic::op_ret() ec=0x%X stack underflow", 0x8F);
++      }       
+       --_stackPtr;
+       uint8 sp = _stackPtr;
+       _scriptPtr.pc = _res->_segCode + _scriptStackCalls[sp];
+@@ -123,13 +140,14 @@ void Logic::op_condJmp() {
+ #endif
+       uint8 op = _scriptPtr.fetchByte();
+       int16 b = _scriptVars[_scriptPtr.fetchByte()];
+-      int16 a = _scriptPtr.fetchByte();       
++      uint8 c = _scriptPtr.fetchByte();       
++      int16 a;
+       if (op & 0x80) {
+-              a = _scriptVars[a];
++              a = _scriptVars[c];
++      } else if (op & 0x40) {
++              a = c * 256 + _scriptPtr.fetchByte();
+       } else {
+-              if (op & 0x40) {
+-                      a = (a << 8) | _scriptPtr.fetchByte();
+-              }
++              a = c;
+       }
+       debug(DBG_LOGIC, "Logic::op_condJmp(%d, 0x%02X, 0x%02X)", op, b, a);
+       bool expr = false;
+@@ -178,21 +196,19 @@ void Logic::op_resetScript() {
+               return;
+       }
+       ++n;
+-      uint8 _al = _scriptPtr.fetchByte();
++      uint8 a = _scriptPtr.fetchByte();
+ 
+-      debug(DBG_LOGIC, "Logic::op_resetScript(%d, %d, %d)", j, i, _al);
++      debug(DBG_LOGIC, "Logic::op_resetScript(%d, %d, %d)", j, i, a);
+ 
+-      if (_al == 2) {
+-              uint16 *_si = &_scriptPos[1][j];
++      if (a == 2) {
++              uint16 *p = &_scriptPos[1][j];
+               while (n--) {
+-                      *_si = 0xFFFE;
+-                      ++_si;
++                      *p++ = 0xFFFE;
+               }
+-      } else if (_al < 2) {
+-              uint8 *_si = &_scriptPaused[1][j];
++      } else if (a < 2) {
++              uint8 *p = &_scriptPaused[1][j];
+               while (n--) {
+-                      *_si = _al;
+-                      ++_si;
++                      *p++ = a;
+               }
+       }
+ }



Home | Main Index | Thread Index | Old Index