commit:     3e70d543f74f8445856c0ebd943d9409b7c0eb13
Author:     Azamat H. Hackimov <azamat.hackimov <AT> gmail <DOT> com>
AuthorDate: Thu Aug 20 11:52:33 2020 +0000
Commit:     James Le Cuirot <chewi <AT> gentoo <DOT> org>
CommitDate: Sat Aug 22 18:55:59 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3e70d543

games-arcade/opentyrian: fix issues

Update to EAPI 7, drop mercurial dependency (not required anymore),
fixed compilation with -fno-common, updated HOMEPAGE, LICENSE

Closes: https://bugs.gentoo.org/514966
Closes: https://bugs.gentoo.org/707724
Closes: https://bugs.gentoo.org/738182
Package-Manager: Portage-2.3.103, Repoman-2.3.23
Signed-off-by: Azamat H. Hackimov <azamat.hackimov <AT> gmail.com>
Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org>

 .../opentyrian/files/2.1.20130907-gcc10.patch      | 362 +++++++++++++++++++++
 games-arcade/opentyrian/metadata.xml               |   2 +-
 .../opentyrian/opentyrian-2.1.20130907-r2.ebuild   |  54 +++
 3 files changed, 417 insertions(+), 1 deletion(-)

diff --git a/games-arcade/opentyrian/files/2.1.20130907-gcc10.patch 
b/games-arcade/opentyrian/files/2.1.20130907-gcc10.patch
new file mode 100644
index 00000000000..5b0c911a2ac
--- /dev/null
+++ b/games-arcade/opentyrian/files/2.1.20130907-gcc10.patch
@@ -0,0 +1,362 @@
+From 962ee8fc46ca51691bde1c8c1022dacbe8a037ed Mon Sep 17 00:00:00 2001
+From: Carl Reinke <[email protected]>
+Date: Sun, 14 Jun 2020 14:11:00 -0600
+Subject: [PATCH] Move definitions that don't need to be exposed from opl.h to
+ opl.c
+
+---
+ src/opl.c | 153 +++++++++++++++++++++++++++++++++++++++++++++++++++-
+ src/opl.h | 157 ++----------------------------------------------------
+ 2 files changed, 154 insertions(+), 156 deletions(-)
+
+diff --git a/src/opl.c b/src/opl.c
+index a4071c5..f15474c 100644
+--- a/src/opl.c
++++ b/src/opl.c
+@@ -23,12 +23,161 @@
+  * Copyright (C) 1998-2001 Ken Silverman
+  * Ken Silverman's official web site: "http://www.advsys.net/ken";
+  */
+-
++#include "opl.h"
+ 
+ #include <math.h>
++#include <stdbool.h>
+ #include <stdlib.h> // rand()
+ #include <string.h> // memset()
+-#include "opl.h"
++
++#define fltype double
++
++ /*
++ define attribution that inlines/forces inlining of a function (optional)
++ */
++#define OPL_INLINE inline
++
++
++#undef NUM_CHANNELS
++#if defined(OPLTYPE_IS_OPL3)
++#define NUM_CHANNELS  18
++#else
++#define NUM_CHANNELS  9
++#endif
++
++#define MAXOPERATORS  (NUM_CHANNELS*2)
++
++
++#define FL05  ((fltype)0.5)
++#define FL2           ((fltype)2.0)
++#define PI            ((fltype)3.1415926535897932384626433832795)
++
++
++#define FIXEDPT                       0x10000         // fixed-point 
calculations using 16+16
++#define FIXEDPT_LFO           0x1000000       // fixed-point calculations 
using 8+24
++
++#define WAVEPREC              1024            // waveform precision (10 bits)
++
++#define INTFREQU              ((fltype)(14318180.0 / 288.0))          // 
clocking of the chip
++
++
++#define OF_TYPE_ATT                   0
++#define OF_TYPE_DEC                   1
++#define OF_TYPE_REL                   2
++#define OF_TYPE_SUS                   3
++#define OF_TYPE_SUS_NOKEEP    4
++#define OF_TYPE_OFF                   5
++
++#define ARC_CONTROL                   0x00
++#define ARC_TVS_KSR_MUL               0x20
++#define ARC_KSL_OUTLEV                0x40
++#define ARC_ATTR_DECR         0x60
++#define ARC_SUSL_RELR         0x80
++#define ARC_FREQ_NUM          0xa0
++#define ARC_KON_BNUM          0xb0
++#define ARC_PERC_MODE         0xbd
++#define ARC_FEEDBACK          0xc0
++#define ARC_WAVE_SEL          0xe0
++
++#define ARC_SECONDSET         0x100   // second operator set for OPL3
++
++
++#define OP_ACT_OFF                    0x00
++#define OP_ACT_NORMAL         0x01    // regular channel activated (bitmasked)
++#define OP_ACT_PERC                   0x02    // percussion channel activated 
(bitmasked)
++
++#define BLOCKBUF_SIZE         512
++
++
++ // vibrato constants
++#define VIBTAB_SIZE                   8
++#define VIBFAC                                70/50000                // no 
braces, integer mul/div
++
++ // tremolo constants and table
++#define TREMTAB_SIZE          53
++#define TREM_FREQ                     ((fltype)(3.7))                 // 
tremolo at 3.7hz
++
++
++ /* operator struct definition
++ For OPL2 all 9 channels consist of two operators each, carrier and modulator.
++ Channel x has operators x as modulator and operators (9+x) as carrier.
++ For OPL3 all 18 channels consist either of two operators (2op mode) or four
++ operators (4op mode) which is determined through register4 of the second
++ adlib register set.
++ Only the channels 0,1,2 (first set) and 9,10,11 (second set) can act as
++ 4op channels. The two additional operators for a channel y come from the
++ 2op channel y+3 so the operatorss y, (9+y), y+3, (9+y)+3 make up a 4op
++ channel.
++ */
++typedef struct operator_struct {
++      Bit32s cval, lastcval;                  // current output/last output 
(used for feedback)
++      Bit32u tcount, wfpos, tinc;             // time (position in waveform) 
and time increment
++      fltype amp, step_amp;                   // and amplification (envelope)
++      fltype vol;                                             // volume
++      fltype sustain_level;                   // sustain level
++      Bit32s mfbi;                                    // feedback amount
++      fltype a0, a1, a2, a3;                  // attack rate function 
coefficients
++      fltype decaymul, releasemul;    // decay/release rate functions
++      Bit32u op_state;                                // current state of 
operator (attack/decay/sustain/release/off)
++      Bit32u toff;
++      Bit32s freq_high;                               // highest three bits 
of the frequency, used for vibrato calculations
++      Bit16s* cur_wform;                              // start of selected 
waveform
++      Bit32u cur_wmask;                               // mask for selected 
waveform
++      Bit32u act_state;                               // activity state 
(regular, percussion)
++      bool sus_keep;                                  // keep sustain level 
when decay finished
++      bool vibrato,tremolo;                   // vibrato/tremolo enable bits
++
++                                                                      // 
variables used to provide non-continuous envelopes
++      Bit32u generator_pos;                   // for non-standard sample 
rates we need to determine how many samples have passed
++      Bits cur_env_step;                              // current 
(standardized) sample position
++      Bits env_step_a,env_step_d,env_step_r;  // number of std samples of one 
step (for attack/decay/release mode)
++      Bit8u step_skip_pos_a;                  // position of 8-cyclic step 
skipping (always 2^x to check against mask)
++      Bits env_step_skip_a;                   // bitmask that determines if a 
step is skipped (respective bit is zero then)
++
++#if defined(OPLTYPE_IS_OPL3)
++      bool is_4op,is_4op_attached;    // base of a 4op channel/part of a 4op 
channel
++      Bit32s left_pan,right_pan;              // opl3 stereo panning amount
++#endif
++} op_type;
++
++// per-chip variables
++static op_type op[MAXOPERATORS];
++
++static Bits int_samplerate;
++
++static Bit8u status;
++static Bit32u opl_index;
++#if defined(OPLTYPE_IS_OPL3)
++static Bit8u adlibreg[512];   // adlib register set (including second set)
++static Bit8u wave_sel[44];            // waveform selection
++#else
++static Bit8u adlibreg[256];   // adlib register set
++static Bit8u wave_sel[22];            // waveform selection
++#endif
++
++
++                                              // vibrato/tremolo 
increment/counter
++static Bit32u vibtab_pos;
++static Bit32u vibtab_add;
++static Bit32u tremtab_pos;
++static Bit32u tremtab_add;
++
++
++// enable an operator
++void enable_operator(Bitu regbase, op_type* op_pt, Bit32u act_type);
++
++// functions to change parameters of an operator
++void change_frequency(Bitu chanbase, Bitu regbase, op_type* op_pt);
++
++void change_attackrate(Bitu regbase, op_type* op_pt);
++void change_decayrate(Bitu regbase, op_type* op_pt);
++void change_releaserate(Bitu regbase, op_type* op_pt);
++void change_sustainlevel(Bitu regbase, op_type* op_pt);
++void change_waveform(Bitu regbase, op_type* op_pt);
++void change_keepsustain(Bitu regbase, op_type* op_pt);
++void change_vibrato(Bitu regbase, op_type* op_pt);
++void change_feedback(Bitu chanbase, op_type* op_pt);
++
+ 
+ static Bit32u generator_add;  // should be a chip parameter
+ 
+diff --git a/src/opl.h b/src/opl.h
+index c8e643b..cbb56ad 100644
+--- a/src/opl.h
++++ b/src/opl.h
+@@ -25,11 +25,8 @@
+  * Ken Silverman's official web site: "http://www.advsys.net/ken";
+  */
+ 
+-
+-#define fltype double
+-
+-#include <stdbool.h>
+ #include <stdint.h>
++
+ typedef uintptr_t     Bitu;
+ typedef intptr_t      Bits;
+ typedef uint32_t      Bit32u;
+@@ -39,154 +36,6 @@ typedef int16_t            Bit16s;
+ typedef uint8_t               Bit8u;
+ typedef int8_t                Bit8s;
+ 
+-
+-/*
+-      define attribution that inlines/forces inlining of a function (optional)
+-*/
+-#define OPL_INLINE inline
+-
+-
+-#undef NUM_CHANNELS
+-#if defined(OPLTYPE_IS_OPL3)
+-#define NUM_CHANNELS  18
+-#else
+-#define NUM_CHANNELS  9
+-#endif
+-
+-#define MAXOPERATORS  (NUM_CHANNELS*2)
+-
+-
+-#define FL05  ((fltype)0.5)
+-#define FL2           ((fltype)2.0)
+-#define PI            ((fltype)3.1415926535897932384626433832795)
+-
+-
+-#define FIXEDPT                       0x10000         // fixed-point 
calculations using 16+16
+-#define FIXEDPT_LFO           0x1000000       // fixed-point calculations 
using 8+24
+-
+-#define WAVEPREC              1024            // waveform precision (10 bits)
+-
+-#define INTFREQU              ((fltype)(14318180.0 / 288.0))          // 
clocking of the chip
+-
+-
+-#define OF_TYPE_ATT                   0
+-#define OF_TYPE_DEC                   1
+-#define OF_TYPE_REL                   2
+-#define OF_TYPE_SUS                   3
+-#define OF_TYPE_SUS_NOKEEP    4
+-#define OF_TYPE_OFF                   5
+-
+-#define ARC_CONTROL                   0x00
+-#define ARC_TVS_KSR_MUL               0x20
+-#define ARC_KSL_OUTLEV                0x40
+-#define ARC_ATTR_DECR         0x60
+-#define ARC_SUSL_RELR         0x80
+-#define ARC_FREQ_NUM          0xa0
+-#define ARC_KON_BNUM          0xb0
+-#define ARC_PERC_MODE         0xbd
+-#define ARC_FEEDBACK          0xc0
+-#define ARC_WAVE_SEL          0xe0
+-
+-#define ARC_SECONDSET         0x100   // second operator set for OPL3
+-
+-
+-#define OP_ACT_OFF                    0x00
+-#define OP_ACT_NORMAL         0x01    // regular channel activated (bitmasked)
+-#define OP_ACT_PERC                   0x02    // percussion channel activated 
(bitmasked)
+-
+-#define BLOCKBUF_SIZE         512
+-
+-
+-// vibrato constants
+-#define VIBTAB_SIZE                   8
+-#define VIBFAC                                70/50000                // no 
braces, integer mul/div
+-
+-// tremolo constants and table
+-#define TREMTAB_SIZE          53
+-#define TREM_FREQ                     ((fltype)(3.7))                 // 
tremolo at 3.7hz
+-
+-
+-/* operator struct definition
+-     For OPL2 all 9 channels consist of two operators each, carrier and 
modulator.
+-     Channel x has operators x as modulator and operators (9+x) as carrier.
+-     For OPL3 all 18 channels consist either of two operators (2op mode) or 
four
+-     operators (4op mode) which is determined through register4 of the second
+-     adlib register set.
+-     Only the channels 0,1,2 (first set) and 9,10,11 (second set) can act as
+-     4op channels. The two additional operators for a channel y come from the
+-     2op channel y+3 so the operatorss y, (9+y), y+3, (9+y)+3 make up a 4op
+-     channel.
+-*/
+-typedef struct operator_struct {
+-      Bit32s cval, lastcval;                  // current output/last output 
(used for feedback)
+-      Bit32u tcount, wfpos, tinc;             // time (position in waveform) 
and time increment
+-      fltype amp, step_amp;                   // and amplification (envelope)
+-      fltype vol;                                             // volume
+-      fltype sustain_level;                   // sustain level
+-      Bit32s mfbi;                                    // feedback amount
+-      fltype a0, a1, a2, a3;                  // attack rate function 
coefficients
+-      fltype decaymul, releasemul;    // decay/release rate functions
+-      Bit32u op_state;                                // current state of 
operator (attack/decay/sustain/release/off)
+-      Bit32u toff;
+-      Bit32s freq_high;                               // highest three bits 
of the frequency, used for vibrato calculations
+-      Bit16s* cur_wform;                              // start of selected 
waveform
+-      Bit32u cur_wmask;                               // mask for selected 
waveform
+-      Bit32u act_state;                               // activity state 
(regular, percussion)
+-      bool sus_keep;                                  // keep sustain level 
when decay finished
+-      bool vibrato,tremolo;                   // vibrato/tremolo enable bits
+-      
+-      // variables used to provide non-continuous envelopes
+-      Bit32u generator_pos;                   // for non-standard sample 
rates we need to determine how many samples have passed
+-      Bits cur_env_step;                              // current 
(standardized) sample position
+-      Bits env_step_a,env_step_d,env_step_r;  // number of std samples of one 
step (for attack/decay/release mode)
+-      Bit8u step_skip_pos_a;                  // position of 8-cyclic step 
skipping (always 2^x to check against mask)
+-      Bits env_step_skip_a;                   // bitmask that determines if a 
step is skipped (respective bit is zero then)
+-
+-#if defined(OPLTYPE_IS_OPL3)
+-      bool is_4op,is_4op_attached;    // base of a 4op channel/part of a 4op 
channel
+-      Bit32s left_pan,right_pan;              // opl3 stereo panning amount
+-#endif
+-} op_type;
+-
+-// per-chip variables
+-Bitu chip_num;
+-op_type op[MAXOPERATORS];
+-
+-Bits int_samplerate;
+-      
+-Bit8u status;
+-Bit32u opl_index;
+-#if defined(OPLTYPE_IS_OPL3)
+-Bit8u adlibreg[512];  // adlib register set (including second set)
+-Bit8u wave_sel[44];           // waveform selection
+-#else
+-Bit8u adlibreg[256];  // adlib register set
+-Bit8u wave_sel[22];           // waveform selection
+-#endif
+-
+-
+-// vibrato/tremolo increment/counter
+-Bit32u vibtab_pos;
+-Bit32u vibtab_add;
+-Bit32u tremtab_pos;
+-Bit32u tremtab_add;
+-
+-
+-// enable an operator
+-void enable_operator(Bitu regbase, op_type* op_pt, Bit32u act_type);
+-
+-// functions to change parameters of an operator
+-void change_frequency(Bitu chanbase, Bitu regbase, op_type* op_pt);
+-
+-void change_attackrate(Bitu regbase, op_type* op_pt);
+-void change_decayrate(Bitu regbase, op_type* op_pt);
+-void change_releaserate(Bitu regbase, op_type* op_pt);
+-void change_sustainlevel(Bitu regbase, op_type* op_pt);
+-void change_waveform(Bitu regbase, op_type* op_pt);
+-void change_keepsustain(Bitu regbase, op_type* op_pt);
+-void change_vibrato(Bitu regbase, op_type* op_pt);
+-void change_feedback(Bitu chanbase, op_type* op_pt);
+-
+ // general functions
+ void adlib_init(Bit32u samplerate);
+ void adlib_write(Bitu idx, Bit8u val);
+@@ -195,8 +44,8 @@ void adlib_getsample(Bit16s* sndptr, Bits numsamples);
+ Bitu adlib_reg_read(Bitu port);
+ void adlib_write_index(Bitu port, Bit8u val);
+ 
+-#endif /* OPL_H */
+-
+ #define opl_init() adlib_init(OUTPUT_QUALITY * 11025)
+ #define opl_write(reg, val) adlib_write(reg, val)
+ #define opl_update(buf, num) adlib_getsample(buf, num)
++
++#endif /* OPL_H */

diff --git a/games-arcade/opentyrian/metadata.xml 
b/games-arcade/opentyrian/metadata.xml
index 161bc1494dc..33834cfebd8 100644
--- a/games-arcade/opentyrian/metadata.xml
+++ b/games-arcade/opentyrian/metadata.xml
@@ -10,6 +10,6 @@
     <name>Gentoo Games Project</name>
   </maintainer>
   <upstream>
-    <remote-id type="bitbucket">opentyrian/opentyrian</remote-id>
+    <remote-id type="github">opentyrian/opentyrian</remote-id>
   </upstream>
 </pkgmetadata>

diff --git a/games-arcade/opentyrian/opentyrian-2.1.20130907-r2.ebuild 
b/games-arcade/opentyrian/opentyrian-2.1.20130907-r2.ebuild
new file mode 100644
index 00000000000..fb021768080
--- /dev/null
+++ b/games-arcade/opentyrian/opentyrian-2.1.20130907-r2.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit desktop xdg-utils
+
+DESCRIPTION="Open-source port of the DOS game Tyrian, vertical scrolling 
shooter"
+HOMEPAGE="https://github.com/opentyrian/opentyrian";
+SRC_URI="http://darklomax.org/tyrian/tyrian21.zip
+       http://www.camanis.net/${PN}/releases/${P}-src.tar.gz";
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="media-libs/libsdl
+       media-libs/sdl-net"
+RDEPEND="${DEPEND}"
+BDEPEND="app-arch/unzip"
+
+PATCHES=(
+       "${FILESDIR}/${PV}-datapath.diff"
+       "${FILESDIR}/${PV}-cflag-idiocy.diff"
+       "${FILESDIR}/${PV}-gcc10.patch"
+)
+
+src_compile() {
+       emake DATA_PATH="/usr/share/${PN}"
+}
+
+src_install() {
+       dobin opentyrian
+       dosym ../../usr/bin/opentyrian /usr/bin/tyrian
+       dodoc CREDITS NEWS README
+       domenu linux/opentyrian.desktop || die "Failed to install desktop file"
+       for i in linux/icons/*.png ; do
+               local size=`echo ${i} | sed -e 's:.*-\([0-9]\+\).png:\1:'`
+               insinto /usr/share/icons/hicolor/${size}x${size}/apps
+               newins ${i} opentyrian.png
+       done
+       insinto "/usr/share/${PN}"
+       cd "${WORKDIR}/tyrian21"
+       rm *.exe dpmi16bi.ovl loudness.awe || die "Failed to remove win32 
binaries"
+       doins *
+}
+
+pkg_postinst() {
+       xdg_icon_cache_update
+}
+
+pkg_postrm() {
+       xdg_icon_cache_update
+}

Reply via email to