From owner-svn-ports-all@FreeBSD.ORG Mon Jan 13 08:20:35 2014 Return-Path: Delivered-To: svn-ports-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1 with cipher ADH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id 1C81B8E7; Mon, 13 Jan 2014 08:20:35 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.freebsd.org (Postfix) with ESMTPS id 06AA71FFD; Mon, 13 Jan 2014 08:20:35 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.7/8.14.7) with ESMTP id s0D8KYuD071589; Mon, 13 Jan 2014 08:20:34 GMT (envelope-from martymac@svn.freebsd.org) Received: (from martymac@localhost) by svn.freebsd.org (8.14.7/8.14.7/Submit) id s0D8KUxR071307; Mon, 13 Jan 2014 08:20:30 GMT (envelope-from martymac@svn.freebsd.org) Message-Id: <201401130820.s0D8KUxR071307@svn.freebsd.org> From: Ganael LAPLANCHE Date: Mon, 13 Jan 2014 08:20:30 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r339575 - in head: . games/jfsw games/jfsw/files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-all@freebsd.org X-Mailman-Version: 2.1.17 Precedence: list List-Id: SVN commit messages for the ports tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Jan 2014 08:20:35 -0000 Author: martymac Date: Mon Jan 13 08:20:30 2014 New Revision: 339575 URL: http://svnweb.freebsd.org/changeset/ports/339575 Log: - Fix build on recent FreeBSD (10, 11) - Add LICENSE and update LEGAL accordingly - Update USES - Use NO_WRKSUBDIR/BUILD_WRKSRC instead of WRKSRC - Enable staging (and always stage documentation) - Rework patches: split them and convert them to UNIX file format (use dos2unix) Added: head/games/jfsw/files/patch-jfbuild_src_20051009-Makefile (contents, props changed) head/games/jfsw/files/patch-jfbuild_src_20051009-include-editor.h (contents, props changed) head/games/jfsw/files/patch-jfbuild_src_20051009-src-build.c (contents, props changed) head/games/jfsw/files/patch-jfbuild_src_20051009-src-crc32.c (contents, props changed) head/games/jfsw/files/patch-jfbuild_src_20051009-src-sdlayer.c (contents, props changed) head/games/jfsw/files/patch-jfsw_src_20051009-Makefile (contents, props changed) head/games/jfsw/files/patch-jfsw_src_20051009-Makefile.deps (contents, props changed) head/games/jfsw/files/patch-jfsw_src_20051009-source-config.c (contents, props changed) head/games/jfsw/files/patch-jfsw_src_20051009-source-game.c (contents, props changed) head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-_multivc.h (contents, props changed) head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-debugio.h (contents, props changed) head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-dma.h (contents, props changed) head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-dpmi.h (contents, props changed) head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-dsl.c (contents, props changed) head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-dsl.h (contents, props changed) head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-interrup.h (contents, props changed) head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-nodpmi.c (contents, props changed) head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-platform.h (contents, props changed) head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-sdlmusic.c (contents, props changed) head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-unixglob.c (contents, props changed) head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-unixpitch.c (contents, props changed) head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-unixvoc.c (contents, props changed) head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-util.h (contents, props changed) head/games/jfsw/files/patch-jfsw_src_20051009-source-lists.h (contents, props changed) head/games/jfsw/files/patch-jfsw_src_20051009-source-menus.c (contents, props changed) head/games/jfsw/files/patch-jfsw_src_20051009-source-sounds.c (contents, props changed) Deleted: head/games/jfsw/files/patch-jfbuild_src_20051009 head/games/jfsw/files/patch-jfsw_src_20051009 Modified: head/LEGAL head/games/jfsw/Makefile (contents, props changed) Modified: head/LEGAL ============================================================================== --- head/LEGAL Mon Jan 13 07:50:03 2014 (r339574) +++ head/LEGAL Mon Jan 13 08:20:30 2014 (r339575) @@ -150,6 +150,7 @@ java3d-sdk-*-linux-i386* java/java3d Li javax_comm-*-solsparc.* comms/java-commapi No commercial use jdk-6*-i586.bin java/linux-sun-jdk16 Redistribution of repackaged binaries not permitted jdk-7*-i586.tar.gz java/linux-sun-jdk17 Redistribution of repackaged binaries not permitted +jfbuild_src_* games/jfsw Must be distributed only through the Internet and free of charge jmf-*-alljava.zip java/jmf Redistribution of pre-compiled binaries is not permitted jpgraph-2.* graphics/jpgraph2 Not for commercial use jre-6*-i586.bin java/linux-sun-jre16 License does not allow distribution with fee Modified: head/games/jfsw/Makefile ============================================================================== --- head/games/jfsw/Makefile Mon Jan 13 07:50:03 2014 (r339574) +++ head/games/jfsw/Makefile Mon Jan 13 08:20:30 2014 (r339575) @@ -3,7 +3,7 @@ PORTNAME= jfsw PORTVERSION= 20051009 -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= games MASTER_SITES= http://users.on.net/~jonof/buildport/ DISTFILES= ${PORTNAME}_src_${PORTVERSION}.zip \ @@ -12,25 +12,35 @@ DISTFILES= ${PORTNAME}_src_${PORTVERSION MAINTAINER= martymac@FreeBSD.org COMMENT= Jonathon Fowler's Shadow Warrior Port +LICENSE= GPLv2 BuildLic +LICENSE_COMB= multi +LICENSE_NAME_BuildLic= Build source code license +LICENSE_FILE_BuildLic= ${WRKDIR}/jfbuild_src_${PORTVERSION}/buildlic.txt +LICENSE_PERMS_BuildLic= dist-mirror no-dist-sell pkg-mirror no-pkg-sell auto-accept + BUILD_DEPENDS= nasm:${PORTSDIR}/devel/nasm +NO_CDROM= Must be distributed only through the Internet and free of charge + ONLY_FOR_ARCHS= i386 ONLY_FOR_ARCHS_REASON= uses x86 assembly code + USE_ZIP= yes -USE_GMAKE= yes USE_GL= gl USE_GNOME= gtk20 USE_SDL= mixer sdl -WRKSRC= ${WRKDIR}/${PORTNAME}_src_${PORTVERSION} -PATCH_WRKSRC= ${WRKDIR} +USE_GCC= any + +USES= dos2unix gmake +DOS2UNIX_REGEX= .*(\.(c|h)|Makefile)(\.deps)? + +NO_WRKSUBDIR= yes +BUILD_WRKSRC= ${WRKDIR}/${PORTNAME}_src_${PORTVERSION} SUB_FILES= pkg-message PORTDOCS= readme.txt releasenotes.html -NO_STAGE= yes -.include - post-patch: @${REINPLACE_CMD} -Ee \ 's|^(EROOT=)../build/|\1../jfbuild_src_${PORTVERSION}/|; \ @@ -39,22 +49,20 @@ post-patch: s|^(NASMFLAGS=).*|\1 -s -f elf|; \ s|/usr/X11R6|${LOCALBASE}|; \ s|sdl-config|${SDL_CONFIG}|' \ - ${WRKSRC}/Makefile \ + ${BUILD_WRKSRC}/Makefile \ ${WRKDIR}/jfbuild_src_${PORTVERSION}/Makefile \ ${WRKDIR}/jfbuild_src_${PORTVERSION}/Makefile.shared @${REINPLACE_CMD} -e 's|/usr/share/games/jfsw|${DATADIR}|' \ - ${WRKSRC}/source/game.c ${WRKSRC}/source/jnstub.c + ${BUILD_WRKSRC}/source/game.c \ + ${BUILD_WRKSRC}/source/jnstub.c do-install: - ${INSTALL_PROGRAM} ${WRKSRC}/sw ${PREFIX}/bin/${PORTNAME} - ${INSTALL_PROGRAM} ${WRKSRC}/build ${PREFIX}/bin/${PORTNAME}-build - ${MKDIR} ${DATADIR} -.if ${PORT_OPTIONS:MDOCS} - ${MKDIR} ${DOCSDIR} -.for doc in ${PORTDOCS} - ${INSTALL_DATA} ${WRKSRC}/${doc} ${DOCSDIR} -.endfor - @${CAT} ${PKGMESSAGE} -.endif + ${INSTALL_PROGRAM} ${BUILD_WRKSRC}/sw ${STAGEDIR}${PREFIX}/bin/${PORTNAME} + ${INSTALL_PROGRAM} ${BUILD_WRKSRC}/build ${STAGEDIR}${PREFIX}/bin/${PORTNAME}-build + ${MKDIR} ${STAGEDIR}${DOCSDIR} + ${INSTALL_DATA} ${PORTDOCS:S|^|${BUILD_WRKSRC}/|} ${STAGEDIR}${DOCSDIR} + +post-install: + ${MKDIR} ${STAGEDIR}${DATADIR} .include Added: head/games/jfsw/files/patch-jfbuild_src_20051009-Makefile ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/jfsw/files/patch-jfbuild_src_20051009-Makefile Mon Jan 13 08:20:30 2014 (r339575) @@ -0,0 +1,11 @@ +--- jfbuild_src_20051009/Makefile.orig 2005-10-09 15:23:00.000000000 +0200 ++++ jfbuild_src_20051009/Makefile 2005-10-10 15:06:22.000000000 +0200 +@@ -27,7 +27,7 @@ + # Debugging options + # RELEASE - 1 = no debugging + # EFENCE - 1 = compile with Electric Fence for malloc() debugging +-RELEASE?=0 ++RELEASE?=1 + EFENCE?=0 + + # SDK locations - adjust to match your setup Added: head/games/jfsw/files/patch-jfbuild_src_20051009-include-editor.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/jfsw/files/patch-jfbuild_src_20051009-include-editor.h Mon Jan 13 08:20:30 2014 (r339575) @@ -0,0 +1,11 @@ +--- jfbuild_src_20051009/include/editor.h.orig 2005-10-09 15:23:02.000000000 +0200 ++++ jfbuild_src_20051009/include/editor.h 2005-10-10 15:06:18.000000000 +0200 +@@ -18,7 +18,7 @@ + + extern short temppicnum, tempcstat, templotag, temphitag, tempextra; + extern char tempshade, temppal, tempxrepeat, tempyrepeat; +-extern char somethingintab; ++static char somethingintab; + + extern char buildkeys[NUMBUILDKEYS]; + Added: head/games/jfsw/files/patch-jfbuild_src_20051009-src-build.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/jfsw/files/patch-jfbuild_src_20051009-src-build.c Mon Jan 13 08:20:30 2014 (r339575) @@ -0,0 +1,11 @@ +--- jfbuild_src_20051009/src/build.c.orig 2005-10-09 15:23:00.000000000 +0200 ++++ jfbuild_src_20051009/src/build.c 2005-10-10 15:06:18.000000000 +0200 +@@ -86,7 +86,7 @@ + + short temppicnum, tempcstat, templotag, temphitag, tempextra; + char tempshade, temppal, tempvis, tempxrepeat, tempyrepeat; +-char somethingintab = 255; ++static char somethingintab = 255; + + static char boardfilename[BMAX_PATH], selectedboardfilename[BMAX_PATH]; + static struct _directoryitem { Added: head/games/jfsw/files/patch-jfbuild_src_20051009-src-crc32.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/jfsw/files/patch-jfbuild_src_20051009-src-crc32.c Mon Jan 13 08:20:30 2014 (r339575) @@ -0,0 +1,19 @@ +--- jfbuild_src_20051009/src/crc32.c.orig 2005-10-09 15:23:00.000000000 +0200 ++++ jfbuild_src_20051009/src/crc32.c 2005-10-10 15:06:18.000000000 +0200 +@@ -73,16 +73,6 @@ + } + } + +- +-unsigned long crc32(unsigned char *blk, unsigned long len) +-{ +- unsigned long crc; +- +- crc32init(&crc); +- crc32block(&crc, blk, len); +- return crc32finish(&crc); +-} +- + void crc32init(unsigned long *crcvar) + { + if (!crcvar) return; Added: head/games/jfsw/files/patch-jfbuild_src_20051009-src-sdlayer.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/jfsw/files/patch-jfbuild_src_20051009-src-sdlayer.c Mon Jan 13 08:20:30 2014 (r339575) @@ -0,0 +1,68 @@ +--- jfbuild_src_20051009/src/sdlayer.c.orig 2005-10-09 15:23:00.000000000 +0200 ++++ jfbuild_src_20051009/src/sdlayer.c 2005-10-10 15:06:22.000000000 +0200 +@@ -24,6 +24,10 @@ + // undefine to restrict windowed resolutions to conventional sizes + #define ANY_WINDOWED_SIZE + ++// fix for mousewheel ++#define MWHEELTICKS 10 ++static unsigned long mwheelup, mwheeldown; ++ + int _buildargc = 1; + char **_buildargv = NULL; + extern long app_main(long argc, char *argv[]); +@@ -486,8 +490,8 @@ + initprintf("Initialising mouse\n"); + + // grab input +- grabmouse(1); + moustat=1; ++ grabmouse(1); + + return 0; + } +@@ -1363,14 +1367,22 @@ + case SDL_BUTTON_LEFT: j = 0; break; + case SDL_BUTTON_RIGHT: j = 1; break; + case SDL_BUTTON_MIDDLE: j = 2; break; +- default: j = -1; break; ++ default: j = ev.button.button; break; + } + if (j<0) break; + +- if (ev.button.state == SDL_PRESSED) ++ if (ev.button.state == SDL_PRESSED) { ++ if (ev.button.button == SDL_BUTTON_WHEELUP) { ++ mwheelup = totalclock; ++ } ++ if (ev.button.button == SDL_BUTTON_WHEELDOWN) { ++ mwheeldown = totalclock; ++ } + mouseb |= (1<> 8; + } + +- svel -= info.dx; ++ if (!running) svel -= (info.dx / 8.75); ++ else svel -= (info.dx / 4.375); ++ if (!running) vel -= (info.dpitch / 8.75); ++ else vel -= (info.dpitch / 4.375); + + switch (ControllerType) + { Added: head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-_multivc.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-_multivc.h Mon Jan 13 08:20:30 2014 (r339575) @@ -0,0 +1,15 @@ +--- jfsw_src_20051009/source/jaudiolib/_multivc.h.orig 2005-10-09 15:28:24.000000000 +0200 ++++ jfsw_src_20051009/source/jaudiolib/_multivc.h 2005-10-10 15:02:08.000000000 +0200 +@@ -67,8 +67,11 @@ + #define SILENCE_8BIT 0x80808080 + //#define SILENCE_16BIT_PAS 0 + +-//#define MixBufferSize 256 ++#ifdef WINDOWS + #define MixBufferSize (MV_GetBufferSize(MV_RequestedMixRate)) ++#else ++#define MixBufferSize 256 ++#endif + + #define NumberOfBuffers 16 + #define TotalBufferSize ( MixBufferSize * NumberOfBuffers ) Added: head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-debugio.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-debugio.h Mon Jan 13 08:20:30 2014 (r339575) @@ -0,0 +1,33 @@ +--- jfsw_src_20051009/source/jaudiolib/debugio.h.orig 1970-01-01 01:00:00.000000000 +0100 ++++ jfsw_src_20051009/source/jaudiolib/debugio.h 2005-10-10 15:02:08.000000000 +0200 +@@ -0,0 +1,30 @@ ++/* ++Copyright (C) 1994-1995 Apogee Software, Ltd. ++ ++This program is free software; you can redistribute it and/or ++modify it under the terms of the GNU General Public License ++as published by the Free Software Foundation; either version 2 ++of the License, or (at your option) any later version. ++ ++This program is distributed in the hope that it will be useful, ++but WITHOUT ANY WARRANTY; without even the implied warranty of ++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++ ++See the GNU General Public License for more details. ++ ++You should have received a copy of the GNU General Public License ++along with this program; if not, write to the Free Software ++Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ ++*/ ++#ifndef __DEBUGIO_H ++#define __DEBUGIO_H ++ ++void DB_SetXY( int x, int y ); ++void DB_PutChar( char ch ); ++int DB_PrintString( char *string ); ++int DB_PrintNum( int number ); ++int DB_PrintUnsigned( unsigned long number, int radix ); ++int DB_printf( char *fmt, ... ); ++ ++#endif Added: head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-dma.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-dma.h Mon Jan 13 08:20:30 2014 (r339575) @@ -0,0 +1,86 @@ +--- jfsw_src_20051009/source/jaudiolib/dma.h.orig 1970-01-01 01:00:00.000000000 +0100 ++++ jfsw_src_20051009/source/jaudiolib/dma.h 2005-10-10 15:02:08.000000000 +0200 +@@ -0,0 +1,83 @@ ++/* ++Copyright (C) 1994-1995 Apogee Software, Ltd. ++ ++This program is free software; you can redistribute it and/or ++modify it under the terms of the GNU General Public License ++as published by the Free Software Foundation; either version 2 ++of the License, or (at your option) any later version. ++ ++This program is distributed in the hope that it will be useful, ++but WITHOUT ANY WARRANTY; without even the implied warranty of ++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++ ++See the GNU General Public License for more details. ++ ++You should have received a copy of the GNU General Public License ++along with this program; if not, write to the Free Software ++Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ ++*/ ++/********************************************************************** ++ file: DMA.H ++ ++ author: James R. Dose ++ date: February 4, 1994 ++ ++ Public header file for DMA.C ++ ++ (c) Copyright 1994 James R. Dose. All Rights Reserved. ++**********************************************************************/ ++ ++#ifndef __DMA_H ++#define __DMA_H ++ ++enum DMA_ERRORS ++ { ++ DMA_Error = -1, ++ DMA_Ok = 0, ++ DMA_ChannelOutOfRange, ++ DMA_InvalidChannel ++ }; ++ ++enum DMA_Modes ++ { ++ DMA_SingleShotRead, ++ DMA_SingleShotWrite, ++ DMA_AutoInitRead, ++ DMA_AutoInitWrite ++ }; ++ ++char *DMA_ErrorString ++ ( ++ int ErrorNumber ++ ); ++ ++int DMA_VerifyChannel ++ ( ++ int channel ++ ); ++ ++int DMA_SetupTransfer ++ ( ++ int channel, ++ char *address, ++ int length, ++ int mode ++ ); ++ ++int DMA_EndTransfer ++ ( ++ int channel ++ ); ++ ++char *DMA_GetCurrentPos ++ ( ++ int channel ++ ); ++ ++int DMA_GetTransferCount ++ ( ++ int channel ++ ); ++ ++#endif Added: head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-dpmi.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-dpmi.h Mon Jan 13 08:20:30 2014 (r339575) @@ -0,0 +1,46 @@ +--- jfsw_src_20051009/source/jaudiolib/dpmi.h.orig 1970-01-01 01:00:00.000000000 +0100 ++++ jfsw_src_20051009/source/jaudiolib/dpmi.h 2005-10-10 15:02:08.000000000 +0200 +@@ -0,0 +1,43 @@ ++/* ++Copyright (C) 1994-1995 Apogee Software, Ltd. ++ ++This program is free software; you can redistribute it and/or ++modify it under the terms of the GNU General Public License ++as published by the Free Software Foundation; either version 2 ++of the License, or (at your option) any later version. ++ ++This program is distributed in the hope that it will be useful, ++but WITHOUT ANY WARRANTY; without even the implied warranty of ++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++ ++See the GNU General Public License for more details. ++ ++You should have received a copy of the GNU General Public License ++along with this program; if not, write to the Free Software ++Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ ++*/ ++/********************************************************************** ++ module: DPMI.H ++ ++ author: James R. Dose ++ date: March 31, 1994 ++ ++ Inline functions for performing DPMI calls. ++ ++ (c) Copyright 1994 James R. Dose. All Rights Reserved. ++**********************************************************************/ ++ ++#ifndef __DPMI_H ++#define __DPMI_H ++ ++enum DPMI_Errors ++ { ++ DPMI_Warning = -2, ++ DPMI_Error = -1, ++ DPMI_Ok = 0 ++ }; ++ ++int DPMI_GetDOSMemory( void **ptr, int *descriptor, unsigned length ); ++int DPMI_FreeDOSMemory( int descriptor ); ++#endif Added: head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-dsl.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-dsl.c Mon Jan 13 08:20:30 2014 (r339575) @@ -0,0 +1,260 @@ +--- jfsw_src_20051009/source/jaudiolib/dsl.c.orig 1970-01-01 01:00:00.000000000 +0100 ++++ jfsw_src_20051009/source/jaudiolib/dsl.c 2005-10-10 15:02:08.000000000 +0200 +@@ -0,0 +1,257 @@ ++/* ++Copyright (C) 2003-2004 Ryan C. Gordon. and James Bentler ++ ++This program is free software; you can redistribute it and/or ++modify it under the terms of the GNU General Public License ++as published by the Free Software Foundation; either version 2 ++of the License, or (at your option) any later version. ++ ++This program is distributed in the hope that it will be useful, ++but WITHOUT ANY WARRANTY; without even the implied warranty of ++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++ ++See the GNU General Public License for more details. ++ ++You should have received a copy of the GNU General Public License ++along with this program; if not, write to the Free Software ++Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ ++Originally written by Ryan C. Gordon. (icculus@clutteredmind.org) ++Adapted to work with JonoF's port by James Bentler (bentler@cs.umn.edu) ++ ++*/ ++#include ++#include ++ ++#include "dsl.h" ++#include "util.h" ++ ++#include "SDL.h" ++#include "SDL_mixer.h" ++ ++extern volatile int MV_MixPage; ++ ++static int DSL_ErrorCode = DSL_Ok; ++ ++static int mixer_initialized; ++ ++static void ( *_CallBackFunc )( void ); ++static volatile char *_BufferStart; ++static int _BufferSize; ++static int _NumDivisions; ++static int _SampleRate; ++static int _remainder; ++ ++static Mix_Chunk *blank; ++static unsigned char *blank_buf; ++ ++/* ++possible todo ideas: cache sdl/sdl mixer error messages. ++*/ ++ ++char *DSL_ErrorString( int ErrorNumber ) ++{ ++ char *ErrorString; ++ ++ switch (ErrorNumber) { ++ case DSL_Warning: ++ case DSL_Error: ++ ErrorString = DSL_ErrorString(DSL_ErrorCode); ++ break; ++ ++ case DSL_Ok: ++ ErrorString = "SDL Driver ok."; ++ break; ++ ++ case DSL_SDLInitFailure: ++ ErrorString = "SDL Audio initialization failed."; ++ break; ++ ++ case DSL_MixerActive: ++ ErrorString = "SDL Mixer already initialized."; ++ break; ++ ++ case DSL_MixerInitFailure: ++ ErrorString = "SDL Mixer initialization failed."; ++ break; ++ ++ default: ++ ErrorString = "Unknown SDL Driver error."; ++ break; ++ } ++ ++ return ErrorString; ++} ++ ++static void DSL_SetErrorCode(int ErrorCode) ++{ ++ DSL_ErrorCode = ErrorCode; ++} ++ ++int DSL_Init( void ) ++{ ++ DSL_SetErrorCode(DSL_Ok); ++ ++ if (SDL_InitSubSystem(SDL_INIT_AUDIO) < 0) { ++ DSL_SetErrorCode(DSL_SDLInitFailure); ++ ++ return DSL_Error; ++ } ++ ++ return DSL_Ok; ++} ++ ++void DSL_Shutdown( void ) ++{ ++ DSL_StopPlayback(); ++} ++ ++static void mixer_callback(int chan, void *stream, int len, void *udata) ++{ ++ Uint8 *stptr; ++ Uint8 *fxptr; ++ int copysize; ++ ++ /* len should equal _BufferSize, else this is screwed up */ ++ ++ stptr = (Uint8 *)stream; ++ ++ if (_remainder > 0) { ++ copysize = min(len, _remainder); ++ ++ fxptr = (Uint8 *)(&_BufferStart[MV_MixPage * ++ _BufferSize]); ++ ++ memcpy(stptr, fxptr+(_BufferSize-_remainder), copysize); ++ ++ len -= copysize; ++ _remainder -= copysize; ++ ++ stptr += copysize; ++ } ++ ++ while (len > 0) { ++ /* new buffer */ ++ ++ _CallBackFunc(); ++ ++ fxptr = (Uint8 *)(&_BufferStart[MV_MixPage * ++ _BufferSize]); ++ ++ copysize = min(len, _BufferSize); ++ ++ memcpy(stptr, fxptr, copysize); ++ ++ len -= copysize; ++ ++ stptr += copysize; ++ } ++ ++ _remainder = len; ++} ++ ++int DSL_BeginBufferedPlayback( char *BufferStart, ++ int BufferSize, int NumDivisions, unsigned SampleRate, ++ int MixMode, void ( *CallBackFunc )( void ) ) ++{ ++ Uint16 format; ++ Uint8 *tmp; ++ int channels; ++ int chunksize; ++ ++ if (mixer_initialized) { ++ DSL_SetErrorCode(DSL_MixerActive); ++ ++ return DSL_Error; ++ } ++ ++ _CallBackFunc = CallBackFunc; ++ _BufferStart = BufferStart; ++ _BufferSize = (BufferSize / NumDivisions); ++ _NumDivisions = NumDivisions; ++ _SampleRate = SampleRate; ++ ++ _remainder = 0; ++ ++ format = (MixMode & SIXTEEN_BIT) ? AUDIO_S16SYS : AUDIO_U8; ++ channels = (MixMode & STEREO) ? 2 : 1; ++ ++/* ++ 23ms is typically ideal (11025,22050,44100) ++ 46ms isn't bad ++*/ ++ ++ chunksize = 512; ++ ++ if (SampleRate >= 16000) chunksize *= 2; ++ if (SampleRate >= 32000) chunksize *= 2; ++ ++/* ++// SDL mixer does this already ++ if (MixMode & SIXTEEN_BIT) chunksize *= 2; ++ if (MixMode & STEREO) chunksize *= 2; ++*/ ++ ++ if (Mix_OpenAudio(SampleRate, format, channels, chunksize) < 0) { ++ DSL_SetErrorCode(DSL_MixerInitFailure); ++ ++ return DSL_Error; ++ } ++ ++/* ++ Mix_SetPostMix(mixer_callback, NULL); ++*/ ++ /* have to use a channel because postmix will overwrite the music... */ ++ Mix_RegisterEffect(0, mixer_callback, NULL, NULL); ++ ++ /* create a dummy sample just to allocate that channel */ ++ blank_buf = (Uint8 *)malloc(4096); ++ memset(blank_buf, 0, 4096); ++ ++ blank = Mix_QuickLoad_RAW(blank_buf, 4096); ++ ++ Mix_PlayChannel(0, blank, -1); ++ ++ mixer_initialized = 1; ++ ++ return DSL_Ok; ++} ++ ++void DSL_StopPlayback( void ) ++{ ++ if (mixer_initialized) { ++ Mix_HaltChannel(0); ++ } ++ ++ if (blank != NULL) { ++ Mix_FreeChunk(blank); ++ } ++ ++ blank = NULL; ++ ++ if (blank_buf != NULL) { ++ free(blank_buf); ++ } ++ ++ blank_buf = NULL; ++ ++ if (mixer_initialized) { ++ Mix_CloseAudio(); ++ } ++ ++ mixer_initialized = 0; ++} ++ ++unsigned DSL_GetPlaybackRate( void ) ++{ ++ return _SampleRate; ++} ++ ++unsigned long DisableInterrupts( void ) ++{ ++ return 0; ++} ++ ++void RestoreInterrupts( unsigned long flags ) ++{ ++} Added: head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-dsl.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-dsl.h Mon Jan 13 08:20:30 2014 (r339575) @@ -0,0 +1,53 @@ +--- jfsw_src_20051009/source/jaudiolib/dsl.h.orig 1970-01-01 01:00:00.000000000 +0100 ++++ jfsw_src_20051009/source/jaudiolib/dsl.h 2005-10-10 15:02:08.000000000 +0200 +@@ -0,0 +1,50 @@ ++/* ++Copyright (C) 2003-2004 Ryan C. Gordon. and James Bentler ++ ++This program is free software; you can redistribute it and/or ++modify it under the terms of the GNU General Public License ++as published by the Free Software Foundation; either version 2 ++of the License, or (at your option) any later version. ++ ++This program is distributed in the hope that it will be useful, ++but WITHOUT ANY WARRANTY; without even the implied warranty of ++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++ ++See the GNU General Public License for more details. ++ ++You should have received a copy of the GNU General Public License ++along with this program; if not, write to the Free Software ++Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ ++Originally written by Ryan C. Gordon. (icculus@clutteredmind.org) ++Adapted to work with JonoF's port by James Bentler (bentler@cs.umn.edu) ++ ++*/ ++#ifndef AUDIOLIB__DSL_H ++#define AUDIOLIB__DSL_H ++ ++#define MONO_8BIT 0 ++#define STEREO 1 ++#define SIXTEEN_BIT 2 ++#define STEREO_16BIT ( STEREO | SIXTEEN_BIT ) ++ ++enum DSL_ERRORS ++ { ++ DSL_Warning = -2, ++ DSL_Error = -1, ++ DSL_Ok = 0, ++ DSL_SDLInitFailure, ++ DSL_MixerActive, ++ DSL_MixerInitFailure ++ }; ++ ++char *DSL_ErrorString( int ErrorNumber ); ++int DSL_Init( void ); ++void DSL_StopPlayback( void ); ++unsigned DSL_GetPlaybackRate( void ); ++int DSL_BeginBufferedPlayback( char *BufferStart, ++ int BufferSize, int NumDivisions, unsigned SampleRate, ++ int MixMode, void ( *CallBackFunc )( void ) ); ++void DSL_Shutdown( void ); ++ ++#endif Added: head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-interrup.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-interrup.h Mon Jan 13 08:20:30 2014 (r339575) @@ -0,0 +1,53 @@ +--- jfsw_src_20051009/source/jaudiolib/interrup.h.orig 1970-01-01 01:00:00.000000000 +0100 ++++ jfsw_src_20051009/source/jaudiolib/interrup.h 2005-10-10 15:02:08.000000000 +0200 +@@ -0,0 +1,50 @@ ++/* ++Copyright (C) 1994-1995 Apogee Software, Ltd. ++ ++This program is free software; you can redistribute it and/or ++modify it under the terms of the GNU General Public License ++as published by the Free Software Foundation; either version 2 ++of the License, or (at your option) any later version. ++ ++This program is distributed in the hope that it will be useful, ++but WITHOUT ANY WARRANTY; without even the implied warranty of ++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++ ++See the GNU General Public License for more details. ++ ++You should have received a copy of the GNU General Public License ++along with this program; if not, write to the Free Software ++Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ ++*/ ++/********************************************************************** ++ module: INTERRUP.H ++ ++ author: James R. Dose ++ date: March 31, 1994 ++ ++ Inline functions for disabling and restoring the interrupt flag. ++ ++ (c) Copyright 1994 James R. Dose. All Rights Reserved. ++**********************************************************************/ ++ ++#ifndef __INTERRUPT_H ++#define __INTERRUPT_H ++ ++unsigned long DisableInterrupts( void ); ++void RestoreInterrupts( unsigned long flags ); ++ ++#ifdef PLAT_DOS ++#pragma aux DisableInterrupts = \ ++ "pushfd", \ ++ "pop eax", \ ++ "cli" \ ++ modify [ eax ]; ++ ++#pragma aux RestoreInterrupts = \ ++ "push eax", \ ++ "popfd" \ ++ parm [ eax ]; ++#endif ++ ++#endif Added: head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-nodpmi.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-nodpmi.c Mon Jan 13 08:20:30 2014 (r339575) @@ -0,0 +1,53 @@ +--- jfsw_src_20051009/source/jaudiolib/nodpmi.c.orig 1970-01-01 01:00:00.000000000 +0100 ++++ jfsw_src_20051009/source/jaudiolib/nodpmi.c 2005-10-10 15:02:08.000000000 +0200 +@@ -0,0 +1,50 @@ ++/* ++Copyright (C) 1994-1995 Apogee Software, Ltd. ++ ++This program is free software; you can redistribute it and/or ++modify it under the terms of the GNU General Public License ++as published by the Free Software Foundation; either version 2 ++of the License, or (at your option) any later version. ++ ++This program is distributed in the hope that it will be useful, ++but WITHOUT ANY WARRANTY; without even the implied warranty of ++MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. ++ ++See the GNU General Public License for more details. ++ ++You should have received a copy of the GNU General Public License ++along with this program; if not, write to the Free Software ++Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. ++ ++*/ ++/********************************************************************** ++ module: NODPMI.C ++ ++ Functions for faking DPMI calls. ++ ++**********************************************************************/ ++ ++#include ++#include ++#include "dpmi.h" ++ ++#define TRUE ( 1 == 1 ) ++#define FALSE ( !TRUE ) ++ ++int DPMI_GetDOSMemory( void **ptr, int *descriptor, unsigned length ) ++{ ++ /* Lovely... */ ++ ++ *ptr = (void *)malloc(length); ++ ++ *descriptor = (int) *ptr; ++ ++ return (descriptor == 0) ? DPMI_Error : DPMI_Ok; ++} ++ ++int DPMI_FreeDOSMemory( int descriptor ) ++{ ++ free((void *)descriptor); ++ ++ return (descriptor == 0) ? DPMI_Error : DPMI_Ok; ++} Added: head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-platform.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/games/jfsw/files/patch-jfsw_src_20051009-source-jaudiolib-platform.h Mon Jan 13 08:20:30 2014 (r339575) @@ -0,0 +1,63 @@ +--- jfsw_src_20051009/source/jaudiolib/platform.h.orig 1970-01-01 01:00:00.000000000 +0100 ++++ jfsw_src_20051009/source/jaudiolib/platform.h 2005-10-10 15:02:08.000000000 +0200 +@@ -0,0 +1,60 @@ ++#ifndef _INCLUDE_PLATFORM_H_ ++#define _INCLUDE_PLATFORM_H_ ++ ++#if (!defined __EXPORT__) ++#define __EXPORT__ ++#endif ++ ++#if (defined __WATCOMC__) ++#define snprintf _snprintf ++#endif *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***