diff options
author | Alexey Sokolov <sokolov@google.com> | 2020-09-16 01:20:10 +0100 |
---|---|---|
committer | James Le Cuirot <chewi@gentoo.org> | 2020-09-21 22:12:02 +0100 |
commit | 6c8fbcf2f15b94c6fd846688677e69ee9cdae554 (patch) | |
tree | 2cb1bdba5a7f568895089fd8cd405868a32951b8 /games-emulation | |
parent | dev-games/ogre: Version bump to 1.12.9 (diff) | |
download | gentoo-6c8fbcf2f15b94c6fd846688677e69ee9cdae554.tar.gz gentoo-6c8fbcf2f15b94c6fd846688677e69ee9cdae554.tar.bz2 gentoo-6c8fbcf2f15b94c6fd846688677e69ee9cdae554.zip |
games-emulation/gngeo: fix build with gcc 10
Closes: https://bugs.gentoo.org/708062
Package-Manager: Portage-3.0.4, Repoman-3.0.1
Signed-off-by: Alexey Sokolov <alexey+gentoo@asokolov.org>
Signed-off-by: James Le Cuirot <chewi@gentoo.org>
Diffstat (limited to 'games-emulation')
-rw-r--r-- | games-emulation/gngeo/files/gngeo-0.8-fcommon.patch | 289 | ||||
-rw-r--r-- | games-emulation/gngeo/gngeo-0.8-r2.ebuild | 48 |
2 files changed, 337 insertions, 0 deletions
diff --git a/games-emulation/gngeo/files/gngeo-0.8-fcommon.patch b/games-emulation/gngeo/files/gngeo-0.8-fcommon.patch new file mode 100644 index 000000000000..63e1ff097bb7 --- /dev/null +++ b/games-emulation/gngeo/files/gngeo-0.8-fcommon.patch @@ -0,0 +1,289 @@ +--- a/src/memory.h 2011-10-25 18:04:13.000000000 -0000 ++++ b/src/memory.h 2020-09-15 23:02:48.114069895 -0000 +@@ -114,30 +114,30 @@ typedef struct neo_mem { + Uint32 watchdog; + } neo_mem; + +-neo_mem memory; ++extern neo_mem memory; + + /* video related */ + //extern int irq2start, irq2control; +-Uint8 *current_pal; +-Uint32 *current_pc_pal; +-Uint8 *current_fix; +-Uint8 *fix_usage; ++extern Uint8 *current_pal; ++extern Uint32 *current_pc_pal; ++extern Uint8 *current_fix; ++extern Uint8 *fix_usage; + + /* sram */ +-Uint8 sram_lock; ++extern Uint8 sram_lock; + //Uint32 sram_protection_hack; + //int sram_protection_hack; + + /* Sound control */ +-Uint8 sound_code; +-Uint8 pending_command; +-Uint8 result_code; ++extern Uint8 sound_code; ++extern Uint8 pending_command; ++extern Uint8 result_code; + + + /* 68k cpu Banking control */ + extern Uint32 bankaddress; /* current bank */ + //Uint8 current_cpu_bank; +-Uint16 z80_bank[4]; ++extern Uint16 z80_bank[4]; + + /* misc utility func */ + void update_all_pal(void); +@@ -263,10 +263,10 @@ void mem68k_store_bk_kof2003_byte(Uint32 + void mem68k_store_bk_kof2003_word(Uint32 addr, Uint16 data); + void mem68k_store_bk_kof2003_long(Uint32 addr, Uint32 data); + +-Uint8 (*mem68k_fetch_bksw_byte)(Uint32); +-Uint16 (*mem68k_fetch_bksw_word)(Uint32); +-Uint32 (*mem68k_fetch_bksw_long)(Uint32); +-void (*mem68k_store_bksw_byte)(Uint32,Uint8); +-void (*mem68k_store_bksw_word)(Uint32,Uint16); +-void (*mem68k_store_bksw_long)(Uint32,Uint32); ++extern Uint8 (*mem68k_fetch_bksw_byte)(Uint32); ++extern Uint16 (*mem68k_fetch_bksw_word)(Uint32); ++extern Uint32 (*mem68k_fetch_bksw_long)(Uint32); ++extern void (*mem68k_store_bksw_byte)(Uint32,Uint8); ++extern void (*mem68k_store_bksw_word)(Uint32,Uint16); ++extern void (*mem68k_store_bksw_long)(Uint32,Uint32); + #endif +--- a/src/video.h 2011-10-25 18:04:13.000000000 -0000 ++++ b/src/video.h 2020-09-15 23:01:55.756521216 -0000 +@@ -67,7 +67,7 @@ typedef struct VIDEO { + + #define RASTER_LINES 261 + +-unsigned int neogeo_frame_counter; ++extern unsigned int neogeo_frame_counter; + extern unsigned int neogeo_frame_counter_speed; + + void init_video(void); +--- a/src/memory.c 2011-10-25 18:04:13.000000000 -0000 ++++ b/src/memory.c 2020-09-15 23:08:31.083181700 -0000 +@@ -896,3 +896,19 @@ void mem68k_store_bk_normal_word(Uint32 + + LONG_STORE(mem68k_store_bk_normal) + ; ++Uint8* current_pal; ++Uint32 *current_pc_pal; ++Uint8 *current_fix; ++Uint8 *fix_usage; ++Uint8 sram_lock; ++Uint8 sound_code; ++Uint8 pending_command; ++Uint8 result_code; ++Uint16 z80_bank[4]; ++Uint8 (*mem68k_fetch_bksw_byte)(Uint32); ++Uint16 (*mem68k_fetch_bksw_word)(Uint32); ++Uint32 (*mem68k_fetch_bksw_long)(Uint32); ++void (*mem68k_store_bksw_byte)(Uint32,Uint8); ++void (*mem68k_store_bksw_word)(Uint32,Uint16); ++void (*mem68k_store_bksw_long)(Uint32,Uint32); ++neo_mem memory; +--- b/src/video.c 2011-10-25 18:04:13.000000000 -0000 ++++ b/src/video.c 2020-09-15 23:09:15.113923583 -0000 +@@ -32,6 +32,7 @@ + #include "transpack.h" + + extern int neogeo_fix_bank_type; ++unsigned int neogeo_frame_counter; + + + #ifdef PROCESSOR_ARM +--- a/src/screen.c 2011-10-25 18:04:13.000000000 -0000 ++++ b/src2/screen.c 2020-09-15 23:14:14.508969030 -0000 +@@ -401,3 +401,14 @@ void screen_fullscreen() { + fullscreen ^= 1; + blitter[nblitter].fullscreen(); + } ++SDL_Surface *screen; ++SDL_Surface *buffer, *sprbuf, *fps_buf, *scan, *fontbuf; ++SDL_Rect visible_area; ++int yscreenpadding; ++Uint8 interpolation; ++Uint8 nblitter; ++Uint8 neffect; ++Uint8 scale; ++Uint8 fullscreen; ++ ++ +--- a/src/screen.h 2011-10-25 18:04:13.000000000 -0000 ++++ b/src/screen.h 2020-09-15 23:14:14.085628561 -0000 +@@ -17,19 +17,19 @@ extern RGB2YUV rgb2yuv[65536]; + + void init_rgb2yuv_table(void); + +-SDL_Surface *screen; +-SDL_Surface *buffer, *sprbuf, *fps_buf, *scan, *fontbuf; ++extern SDL_Surface *screen; ++extern SDL_Surface *buffer, *sprbuf, *fps_buf, *scan, *fontbuf; + //SDL_Surface *triplebuf[2]; + +-SDL_Rect visible_area; ++extern SDL_Rect visible_area; + +-int yscreenpadding; ++extern int yscreenpadding; + +-Uint8 interpolation; +-Uint8 nblitter; +-Uint8 neffect; +-Uint8 scale; +-Uint8 fullscreen; ++extern Uint8 interpolation; ++extern Uint8 nblitter; ++extern Uint8 neffect; ++extern Uint8 scale; ++extern Uint8 fullscreen; + + Uint8 get_effect_by_name(char *name); + Uint8 get_blitter_by_name(char *name); + +--- a/src/emu.c 2011-10-25 18:04:13.000000000 -0000 ++++ b/src/emu.c 2020-09-15 23:55:31.560725467 -0000 +@@ -64,6 +64,11 @@ extern int irq2enable, irq2start, irq2re + extern int lastirq2line; + extern int irq2repeat_limit; + extern Uint32 irq2pos_value; ++Uint8 key[SDLK_LAST]; ++Uint8 *joy_button[2]; ++Sint32 *joy_axe[2]; ++Uint32 joy_numaxes[2]; ++conf_type conf; + + void setup_misc_patch(char *name) { + +--- a/src/emu.h 2011-10-25 18:04:13.000000000 -0000 ++++ b/src/emu.h 2020-09-15 23:55:31.067383834 -0000 +@@ -45,7 +45,7 @@ typedef enum COUNTRY { + CTY_MAX + } COUNTRY; + +-struct { ++typedef struct { + char *game; + Uint16 x_start; + Uint16 y_start; +@@ -89,7 +89,8 @@ struct { + + int p1_hotkey[4]; + int p2_hotkey[4]; +-} conf; ++} conf_type; ++extern conf_type conf; + + enum { + HOTKEY_MASK_A = 0x1, +@@ -123,10 +124,10 @@ enum { + + //config conf; + +-Uint8 key[SDLK_LAST]; +-Uint8 *joy_button[2]; +-Sint32 *joy_axe[2]; +-Uint32 joy_numaxes[2]; ++extern Uint8 key[SDLK_LAST]; ++extern Uint8 *joy_button[2]; ++extern Sint32 *joy_axe[2]; ++extern Uint32 joy_numaxes[2]; + + void debug_loop(void); + void main_loop(void); +--- a/src/state.c 2011-10-25 18:04:13.000000000 -0000 ++++ b/src/state.c 2020-09-15 23:51:12.333025158 -0000 +@@ -627,6 +627,7 @@ void clear_state_reg(void) { + st_mod[i].reglist=NULL; + } + } ++SDL_Surface *state_img; + + void neogeo_init_save_state(void) { + int i; +--- a/src/state.h 2011-10-25 18:04:13.000000000 -0000 ++++ b/src/state.h 2020-09-15 23:50:09.751969676 -0000 +@@ -80,7 +80,7 @@ typedef struct NEOGEO_STATE { + Uint8 pal1[0x2000], pal2[0x2000]; + }NEOGEO_STATE; + +-SDL_Surface *state_img; ++extern SDL_Surface *state_img; + + #define STREAD 0 + #define STWRITE 1 +--- a/src/event.c 2012-01-13 20:25:07.000000000 -0000 ++++ b/src/event.c 2020-09-16 00:13:06.148468785 -0000 +@@ -10,6 +10,8 @@ + #include "conf.h" + #include "emu.h" + #include "memory.h" ++JOYMAP *jmap; ++Uint8 joy_state[2][GN_MAX_KEY]; + + static int get_mapid(char *butid) { + printf("Get mapid %s\n",butid); +--- a/src/event.h 2011-10-25 18:04:13.000000000 -0000 ++++ b/src/event.h 2020-09-16 00:13:05.125118226 -0000 +@@ -41,8 +41,8 @@ typedef struct JOYMAP { + struct BUT_MAP **jhat; + }JOYMAP; + +-JOYMAP *jmap; +-Uint8 joy_state[2][GN_MAX_KEY]; ++extern JOYMAP *jmap; ++extern Uint8 joy_state[2][GN_MAX_KEY]; + + + bool init_event(void); +--- a/src/frame_skip.c 2011-10-25 18:04:13.000000000 -0000 ++++ b/src/frame_skip.c 2020-09-16 00:14:09.792873267 -0000 +@@ -33,6 +33,7 @@ + #ifndef uclock_t + #define uclock_t Uint32 + #endif ++char fps_str[32]; + + #define TICKS_PER_SEC 1000000UL + //#define CPU_FPS 60 +--- a/src/frame_skip.h 2011-10-25 18:04:13.000000000 -0000 ++++ b/src/frame_skip.h 2020-09-16 00:14:10.619553849 -0000 +@@ -22,7 +22,7 @@ + + extern char skip_next_frame; + +-char fps_str[32]; ++extern char fps_str[32]; + + void reset_frame_skip(void); + int frame_skip(int init); +--- a/src/transpack.c 2011-10-25 18:04:13.000000000 -0000 ++++ b/src/transpack.c 2020-09-16 00:14:41.750077802 -0000 +@@ -26,6 +26,7 @@ + #include <string.h> + + #include "transpack.h" ++TRANS_PACK *tile_trans; + + + static void trans_pack_add(Uint32 begin,Uint32 end,Uint32 type) +--- a/src/transpack.h 2011-10-25 18:04:13.000000000 -0000 ++++ b/src/transpack.h 2020-09-16 00:14:41.073399747 -0000 +@@ -14,7 +14,7 @@ typedef struct TRANS_PACK { + Uint8 type; + struct TRANS_PACK *next; + } TRANS_PACK; +-TRANS_PACK *tile_trans; ++extern TRANS_PACK *tile_trans; + + TRANS_PACK* trans_pack_find(Uint32 tile); + void trans_pack_open(char *filename); diff --git a/games-emulation/gngeo/gngeo-0.8-r2.ebuild b/games-emulation/gngeo/gngeo-0.8-r2.ebuild new file mode 100644 index 000000000000..f4e1e906ad79 --- /dev/null +++ b/games-emulation/gngeo/gngeo-0.8-r2.ebuild @@ -0,0 +1,48 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools desktop flag-o-matic + +DESCRIPTION="A NeoGeo emulator" +HOMEPAGE="https://code.google.com/p/gngeo/" +SRC_URI="https://gngeo.googlecode.com/files/${P}.tar.gz + https://storage.googleapis.com/google-code-archive/v2/code.google.com/gngeo/logo.png -> ${PN}.png" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +DEPEND=" + media-libs/libsdl[joystick,opengl,sound,video] + sys-libs/zlib[minizip] + virtual/opengl +" +RDEPEND="${DEPEND}" + +PATCHES=( + "${FILESDIR}"/${P}-execstacks.patch + "${FILESDIR}"/${P}-zlib.patch + "${FILESDIR}"/${P}-concurrentMake.patch + "${FILESDIR}"/${P}-cflags.patch + "${FILESDIR}"/${P}-fcommon.patch +) + +src_prepare() { + default + mv configure.in configure.ac || die + eautoreconf + append-cflags -std=gnu89 # build with gcc5 (bug #571056) +} + +src_configure() { + econf --disable-i386asm +} + +src_install() { + DOCS=( AUTHORS FAQ NEWS README* TODO sample_gngeorc ) + default + doicon "${DISTDIR}"/${PN}.png + make_desktop_entry ${PN} +} |