summaryrefslogtreecommitdiff
path: root/games-emulation/virtualjaguar
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /games-emulation/virtualjaguar
reinit the tree, so we can have metadata
Diffstat (limited to 'games-emulation/virtualjaguar')
-rw-r--r--games-emulation/virtualjaguar/Manifest7
-rw-r--r--games-emulation/virtualjaguar/files/virtualjaguar35
-rw-r--r--games-emulation/virtualjaguar/files/virtualjaguar-2.1.2-gcc6.patch316
-rw-r--r--games-emulation/virtualjaguar/metadata.xml12
-rw-r--r--games-emulation/virtualjaguar/virtualjaguar-2.1.2-r2.ebuild70
5 files changed, 440 insertions, 0 deletions
diff --git a/games-emulation/virtualjaguar/Manifest b/games-emulation/virtualjaguar/Manifest
new file mode 100644
index 000000000000..3fab4d470e2f
--- /dev/null
+++ b/games-emulation/virtualjaguar/Manifest
@@ -0,0 +1,7 @@
+AUX virtualjaguar 695 SHA256 dad399e0cb3a0143d93117d51ab7d04859c5c46a7a1ce3daaef3b0ba6a9ec42f SHA512 78967da2cca340559f57a037ad025bd643ac82c9097fa7c892ee2e3ca91e5ce1dc0f4a4fa50013e9d1016d5f308f1502b7c809f686117a5cfffe29262a0d802c WHIRLPOOL e4c7594d460e3045b841f3627ca85b26d2da6995fd552fa6a49cd1894dbd0b5997249bd27d8529dcfb89e6b90ff012cf75583e0e0f79ffc1635d88f383af4e21
+AUX virtualjaguar-2.1.2-gcc6.patch 13767 SHA256 29d3a541bf6ed22bba6c9fd59ab3818badcd14a0ec77cdb9dd35fecdba101e67 SHA512 0c8360eab5b0ec1a7c179ae1df8f109326879f12dc82c05db0e03c6ab61cb73cd15e38049ad9cd19745c407b7dea8c51b91e1264b190787431c4bd5912c3d795 WHIRLPOOL 645797815b1d63ca46ae5eb85350c01df77f219573db5270ce7f3b8056e90e50c96a5b368a30d7c6b4154303dfefe04d5d16db0ac2b9028a9b6642e2c915a9fe
+DIST virtualjaguar-2.1.2.tar.bz2 2917041 SHA256 04dac519857ef9eba24e26c1ab7c73d8b94599c613a922590826228966175368 SHA512 96b842762773631b5df25721d4913f771580c8e23c017a3572539c15a028a4e7743870f2ce3f30380f553781d3beed26693d7e04191efc1475c0cc6fef9f91fb WHIRLPOOL fe1f0991ed06a36f861a2fd1d35d0a3e1f189e07a79ce4950df3881848956217d58bc134a30b3f2241073e3e2342bc3779b47800f186179585ee948e3df59470
+EBUILD virtualjaguar-2.1.2-r2.ebuild 1393 SHA256 e936796a0f8f7b2077f3b152b16414ae392fca7d74e9f113faf7981416c0c041 SHA512 c244f48118fd02e96e35b1122b85d211c8b05acd662b298309a338457513354b97b195287d0d3739e3a6fa782eabed2005060c1213f12448684ee70616e86144 WHIRLPOOL 45b8b74a68d392428a91a49f14a546246ed633ffcf30b51cb533a3284ba9c040f400c1c708ee31109937bc10691ca6245e476959be5a01125b34fc374f9e2678
+MISC ChangeLog 2853 SHA256 0ca546ad5924a76e16822d6bf76ab2ca8a2a3d5aa97c3b2d59676c3a254b3bf7 SHA512 c6548c2b8f57b55cc61c69f31bd164603320d07708f9769414977ea65d76378dd503bfa267e10b566089d2ace439a622235a9e2df7f4bcb2e02dd60bc0a4991b WHIRLPOOL 51629ac0bdc10f11218946d70bcdc211f5b4d0dfd6b09d3a078408570a8bd947d3ebf6e741d2c53d0a06702835df94cbafb5e40c718cd6ed0b89ba403a0e87fd
+MISC ChangeLog-2015 3938 SHA256 e90297520b78e880429e5aef6b5766bd2a2fe8093aa8dfa1d57d5550852a4af2 SHA512 0a661d4e257128f1bbef7336a6296270519b07f9e2c65e3631f39bfbf89c494a823443d4bbefb2b16d113c28b11b9c60a25af7cb4212435069aa537048a81b7c WHIRLPOOL 3beea226f3ac6a0611599f1d8a8eb6826420034915773a7e7ff054972f475de3c16481728ac8f0c25221910bd0bec2c58eeab75eb86c9b3f78d15a95d42982de
+MISC metadata.xml 416 SHA256 e85491ecf5fb3771f3f31dd953b7b155da68a234224ab1a31d80a460fc54b9ea SHA512 32606c2f70434bafa0bbd1c8a8161169b4274a117cc755967e297843e17775419369401b395446c124d9b5ad0ecd46f980b8177659de1c6cc63f55e3afd2316e WHIRLPOOL 720b1ccdcd80d8e545be943994a1e0d7c34affc86aa1c842f6c3cfb8b4cf8a00d4ad3c85ca18f4ac0ed09dfc419f454356838b704f1d733b28f5e9c65ed6b9a5
diff --git a/games-emulation/virtualjaguar/files/virtualjaguar b/games-emulation/virtualjaguar/files/virtualjaguar
new file mode 100644
index 000000000000..df4bb14d73f8
--- /dev/null
+++ b/games-emulation/virtualjaguar/files/virtualjaguar
@@ -0,0 +1,35 @@
+#!/bin/bash
+#
+# Script for launching virtualjaguar
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+source /lib/gentoo/functions.sh || exit 1
+
+shopt -s nullglob
+
+if [[ ! -d ~/.vj/bios ]] ; then
+ mkdir -p ~/.vj/bios
+fi
+
+if [[ ! -d ~/.vj/eeproms ]] ; then
+ mkdir -p ~/.vj/eeproms
+fi
+
+if [[ ! -d ~/.vj/ROMs ]] ; then
+ mkdir -p ~/.vj/ROMs
+fi
+
+cd ~/.vj
+
+# check for bios
+if [[ -z "`cd ./bios && ls`" ]] ; then
+ # if the bios directory is empty, then ... well ...
+ echo
+ eerror " Put your BIOS file into ~/.vj/bios/"
+ eerror " or virtualjaguar will not work!"
+ exit 1
+fi
+
+# execute program (with args)
+exec GENTOODIR/vj "$@"
diff --git a/games-emulation/virtualjaguar/files/virtualjaguar-2.1.2-gcc6.patch b/games-emulation/virtualjaguar/files/virtualjaguar-2.1.2-gcc6.patch
new file mode 100644
index 000000000000..8145de9bbd15
--- /dev/null
+++ b/games-emulation/virtualjaguar/files/virtualjaguar-2.1.2-gcc6.patch
@@ -0,0 +1,316 @@
+Backported from following commit:
+
+From c9d57b57d70ab2ae842144828175820fb207a3b0 Mon Sep 17 00:00:00 2001
+From: Shamus Hammons <jlhamm@acm.org>
+Date: Wed, 18 May 2016 00:31:26 +0000
+Subject: [PATCH] Fixes for compilation against GCC 6.
+
+So Debian decides to be more rice than Gentoo, and makes the jump to GCC
+6 for some unknown reason. Thus, in order to prevent VJ from getting
+dumped out of Debian for incompatibility with GCC 6, we have the
+following update. Thanks to John Paul Adrian Glaubitz for the report, and
+to Teemu Hukkanen for Debian chroot advice. :-)
+---
+ Makefile | 2 +-
+ src/blitter.cpp | 2 +-
+ src/gui/about.cpp | 3 +--
+ src/gui/controllerwidget.cpp | 10 ++++++----
+ src/gui/mainwin.cpp | 2 +-
+ src/jagbios.cpp | 4 +++-
+ src/jagbios.h | 4 +++-
+ src/jagbios2.cpp | 4 +++-
+ src/jagbios2.h | 4 +++-
+ src/jagcdbios.cpp | 4 +++-
+ src/jagcdbios.h | 4 +++-
+ src/jagdevcdbios.cpp | 4 +++-
+ src/jagdevcdbios.h | 4 +++-
+ src/jagstub1bios.cpp | 4 +++-
+ src/jagstub1bios.h | 4 +++-
+ src/jagstub2bios.cpp | 4 +++-
+ src/jagstub2bios.h | 4 +++-
+ src/joystick.cpp | 4 ++--
+ 18 files changed, 48 insertions(+), 23 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index 4fd8eae..29f5f49 100644
+--- a/Makefile
++++ b/Makefile
+@@ -65,7 +65,7 @@ virtualjaguar: sources libs makefile-qt
+
+ makefile-qt: virtualjaguar.pro
+ @echo -e "\033[01;33m***\033[00;32m Creating Qt makefile...\033[00m"
+- $(Q)$(CROSS)qmake $(QMAKE_EXTRA) virtualjaguar.pro -o makefile-qt
++ $(Q)$(CROSS)qmake -qt=5 $(QMAKE_EXTRA) virtualjaguar.pro -o makefile-qt
+
+ libs: obj/libm68k.a obj/libjaguarcore.a
+ @echo -e "\033[01;33m***\033[00;32m Libraries successfully made.\033[00m"
+diff --git a/src/blitter.cpp b/src/blitter.cpp
+index 588e6c2..7193daf 100644
+--- a/src/blitter.cpp
++++ b/src/blitter.cpp
+@@ -5387,7 +5387,7 @@ Addq_x := JOIN (addq_x, addq_x[0..5], addqt_x[6..15]);
+ Addq_y := JOIN (addq_y, addq_y[0..15]);*/
+
+ ////////////////////////////////////// C++ CODE //////////////////////////////////////
+- int16_t mask[8] = { 0xFFFF, 0xFFFE, 0xFFFC, 0xFFF8, 0xFFF0, 0xFFE0, 0xFFC0, 0x0000 };
++ uint16_t mask[8] = { 0xFFFF, 0xFFFE, 0xFFFC, 0xFFF8, 0xFFF0, 0xFFE0, 0xFFC0, 0x0000 };
+ addq_x = addqt_x & mask[modx];
+ addq_y = addqt_y & 0xFFFF;
+ //////////////////////////////////////////////////////////////////////////////////////
+diff --git a/src/gui/about.cpp b/src/gui/about.cpp
+index 1b3df54..71cec73 100644
+--- a/src/gui/about.cpp
++++ b/src/gui/about.cpp
+@@ -51,9 +51,8 @@ AboutWindow::AboutWindow(QWidget * parent/*= 0*/): QWidget(parent, Qt::Dialog)
+ "<b>Ryan C. Gordon</b> for Virtual Jaguar's web presence<br>"
+ "<b>Curt Vendel</b> for various Jaguar & other goodies<br>"
+ "<b>Reboot</b> for reasons too numerous to mention<br>"
+- "<b>The Free Jaguar Project</b> (you know why) ;-)<br>"
+ "The guys over at <b>Atari Age</b> :-)<br>"
+- "<b>byuu</b> for BSNES and showing us what was possible"
++ "<b>byuu</b> for <s>BSNES</s> Higan and showing us what was possible"
+ ));
+ text = new QLabel(s);
+ layout->addWidget(text);
+diff --git a/src/gui/controllerwidget.cpp b/src/gui/controllerwidget.cpp
+index f7ea8d0..38ce415 100644
+--- a/src/gui/controllerwidget.cpp
++++ b/src/gui/controllerwidget.cpp
+@@ -47,8 +47,8 @@ char ControllerWidget::hatName[4][16] = { "Up", "Rt", "Dn", "Lf" };
+ char ControllerWidget::axisName[2][8] = { "+", "-" };
+
+ // This is hard-coded crap. It's crap-tastic!
+-// These are the positions to draw the button names at, ordered by the BUTTON_* sequence
+-// found in joystick.h.
++// These are the positions to draw the button names at, ordered by the BUTTON_*
++// sequence found in joystick.h.
+ int ControllerWidget::buttonPos[21][2] = { { 74, 32 }, { 71, 67 }, { 53, 49 }, { 93, 49 },
+ { 110, 200 }, { 110, 175 }, { 110, 151 }, { 110, 126 },
+ { 148, 200 }, { 148, 175 }, { 148, 151 }, { 148, 126 },
+@@ -239,7 +239,8 @@ void ControllerWidget::mouseMoveEvent(QMouseEvent * event)
+
+ for(int i=BUTTON_FIRST; i<=BUTTON_LAST; i++)
+ {
+- // We loop through the button text positions, to see which one is closest.
++ // We loop through the button text positions, to see which one is
++ // closest.
+ double distX = (double)(event->x() - buttonPos[i][0]);
+ double distY = (double)(event->y() - buttonPos[i][1]);
+ double currentDistance = sqrt((distX * distX) + (distY * distY));
+@@ -265,7 +266,8 @@ void ControllerWidget::leaveEvent(QEvent * /*event*/)
+
+ void ControllerWidget::DrawBorderedText(QPainter & painter, int x, int y, QString text)
+ {
+- // Text is drawn centered at (x, y) as well, using a bounding rect for the purpose.
++ // Text is drawn centered at (x, y) as well, using a bounding rect for the
++ // purpose.
+ QRect rect(0, 0, 60, 30);
+ QPen oldPen = painter.pen();
+ painter.setPen(QColor(0, 0, 0, 255)); // This is R,G,B,A
+diff --git a/src/gui/mainwin.cpp b/src/gui/mainwin.cpp
+index 9f64c62..cb01b02 100644
+--- a/src/gui/mainwin.cpp
++++ b/src/gui/mainwin.cpp
+@@ -964,7 +964,7 @@ void MainWin::LoadSoftware(QString file)
+ running = false; // Prevent bad things(TM) from happening...
+ pauseForFileSelector = false; // Reset the file selector pause flag
+
+- char * biosPointer = jaguarBootROM;
++ uint8_t * biosPointer = jaguarBootROM;
+
+ if (vjs.hardwareTypeAlpine)
+ biosPointer = jaguarDevBootROM2;
+diff --git a/src/jagbios.cpp b/src/jagbios.cpp
+index 8c03e6f..7951524 100644
+--- a/src/jagbios.cpp
++++ b/src/jagbios.cpp
+@@ -4,7 +4,9 @@
+ // NOTE: This is the Jaguar Series K boot ROM
+ //
+
+-char jaguarBootROM[0x20000] = {
++#include "jagbios.h"
++
++uint8_t jaguarBootROM[0x20000] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x08, 0x41, 0xF9, 0x00, 0xF0, 0x00, 0x00, 0x30, 0xBC, 0x18, 0x61, 0x32, 0x3C, 0x35, 0xCC, 0x30, 0x39, 0x00, 0xF1, 0x40, 0x02, 0x08, 0x00, 0x00, 0x05,
+ 0x66, 0x04, 0x32, 0x3C, 0x35, 0xDD, 0x31, 0x41, 0x00, 0x02, 0x46, 0xFC, 0x27, 0x00, 0x2E, 0x7C, 0x00, 0x00, 0x40, 0x00, 0x31, 0x7C, 0x00, 0x00, 0x00, 0x58, 0x21, 0x7C, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x2A, 0x33, 0xFC, 0x00, 0x04, 0x00, 0xF1, 0x00, 0x14, 0x08, 0x00, 0x00, 0x04, 0x67, 0x00, 0x00, 0x74, 0x33, 0xFC, 0x00, 0xB5, 0x00, 0xF1, 0x00, 0x12, 0x31, 0x7C, 0x03, 0x4C, 0x00, 0x2E,
+diff --git a/src/jagbios.h b/src/jagbios.h
+index 3f6ae5e..9e9a383 100644
+--- a/src/jagbios.h
++++ b/src/jagbios.h
+@@ -1,6 +1,8 @@
+ #ifndef __JAGBIOS_H__
+ #define __JAGBIOS_H__
+
+-extern char jaguarBootROM[];
++#include <stdint.h>
++
++extern uint8_t jaguarBootROM[];
+
+ #endif // __JAGBIOS_H__
+diff --git a/src/jagbios2.cpp b/src/jagbios2.cpp
+index 413e5e6..5076405 100644
+--- a/src/jagbios2.cpp
++++ b/src/jagbios2.cpp
+@@ -4,7 +4,9 @@
+ // NOTE: This is the Jaguar Series M boot ROM
+ //
+
+-char jaguarBootROM2[0x20000] = {
++#include "jagbios2.h"
++
++uint8_t jaguarBootROM2[0x20000] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x08, 0x41, 0xF9, 0x00, 0xF0, 0x00, 0x00, 0x30, 0xBC, 0x18, 0x61, 0x70, 0xFF, 0x51, 0xC8, 0xFF, 0xFE, 0x32, 0x3C, 0x35, 0xCC, 0x30, 0x39, 0x00, 0xF1,
+ 0x40, 0x02, 0x08, 0x00, 0x00, 0x05, 0x66, 0x04, 0x32, 0x3C, 0x35, 0xDD, 0x31, 0x41, 0x00, 0x02, 0x46, 0xFC, 0x27, 0x00, 0x2E, 0x7C, 0x00, 0x00, 0x40, 0x00, 0x31, 0x7C, 0x00, 0x00, 0x00, 0x58,
+ 0x21, 0x7C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2A, 0x23, 0xFC, 0x00, 0x07, 0x00, 0x07, 0x00, 0xF1, 0xA1, 0x0C, 0x23, 0xFC, 0x00, 0x07, 0x00, 0x07, 0x00, 0xF0, 0x21, 0x0C, 0x23, 0xFC, 0x00, 0x00,
+diff --git a/src/jagbios2.h b/src/jagbios2.h
+index 9944947..961e585 100644
+--- a/src/jagbios2.h
++++ b/src/jagbios2.h
+@@ -1,6 +1,8 @@
+ #ifndef __JAGBIOS2_H__
+ #define __JAGBIOS2_H__
+
+-extern char jaguarBootROM2[];
++#include <stdint.h>
++
++extern uint8_t jaguarBootROM2[];
+
+ #endif // __JAGBIOS2_H__
+diff --git a/src/jagcdbios.cpp b/src/jagcdbios.cpp
+index eea4cf0..a4c407a 100644
+--- a/src/jagcdbios.cpp
++++ b/src/jagcdbios.cpp
+@@ -2,7 +2,9 @@
+ // This file was automagically generated by bin2c (by James Hammons)
+ //
+
+-char jaguarCDBootROM[0x40000] = {
++#include "jagcdbios.h"
++
++uint8_t jaguarCDBootROM[0x40000] = {
+ 0xF6, 0x1A, 0x8C, 0x5F, 0xF0, 0x28, 0xD5, 0xC2, 0xDE, 0xE7, 0xB6, 0x87, 0xD6, 0xEA, 0x4A, 0x42, 0x9A, 0x9B, 0x2E, 0xCB, 0xE7, 0x35, 0x3C, 0x3B, 0xA2, 0xA6, 0x74, 0xF9, 0xC9, 0x86, 0xE2, 0xD7,
+ 0x67, 0xC0, 0x9A, 0xFB, 0x61, 0x37, 0x37, 0x89, 0x70, 0x3B, 0xE0, 0x84, 0x97, 0x0A, 0xD2, 0xC5, 0x9F, 0xC1, 0x62, 0xB5, 0x2E, 0xD1, 0x26, 0x02, 0x44, 0xC3, 0xE1, 0xD4, 0xD6, 0xC2, 0xE7, 0x6A,
+ 0x56, 0x27, 0x2E, 0x60, 0x74, 0xE9, 0x05, 0xCE, 0x65, 0xB9, 0x87, 0x74, 0x64, 0x65, 0xF2, 0xB2, 0x00, 0xF7, 0xFB, 0xBC, 0xB9, 0xA2, 0x2D, 0x73, 0xC1, 0x75, 0xF5, 0xD1, 0xF3, 0xDB, 0xB5, 0x17,
+diff --git a/src/jagcdbios.h b/src/jagcdbios.h
+index 2fb0861..23e5abe 100644
+--- a/src/jagcdbios.h
++++ b/src/jagcdbios.h
+@@ -1,6 +1,8 @@
+ #ifndef __JAGCDBIOS_H__
+ #define __JAGCDBIOS_H__
+
+-extern char jaguarCDBootROM[];
++#include <stdint.h>
++
++extern uint8_t jaguarCDBootROM[];
+
+ #endif // __JAGCDBIOS_H__
+diff --git a/src/jagdevcdbios.cpp b/src/jagdevcdbios.cpp
+index 85dbe91..e4ce4b4 100644
+--- a/src/jagdevcdbios.cpp
++++ b/src/jagdevcdbios.cpp
+@@ -2,7 +2,9 @@
+ // This file was automagically generated by bin2c (by James Hammons)
+ //
+
+-char jaguarDevCDBootROM[0x40000] = {
++#include "jagdevcdbios.h"
++
++uint8_t jaguarDevCDBootROM[0x40000] = {
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+ 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
+diff --git a/src/jagdevcdbios.h b/src/jagdevcdbios.h
+index 432e48c..fe6ae8c 100644
+--- a/src/jagdevcdbios.h
++++ b/src/jagdevcdbios.h
+@@ -1,6 +1,8 @@
+ #ifndef __JAGDEVCDBIOS_H__
+ #define __JAGDEVCDBIOS_H__
+
+-extern char jaguarDevCDBootROM[];
++#include <stdint.h>
++
++extern uint8_t jaguarDevCDBootROM[];
+
+ #endif // __JAGDEVCDBIOS_H__
+diff --git a/src/jagstub1bios.cpp b/src/jagstub1bios.cpp
+index 80fdd43..7fb85d5 100644
+--- a/src/jagstub1bios.cpp
++++ b/src/jagstub1bios.cpp
+@@ -2,7 +2,9 @@
+ // This file was automagically generated by bin2c (by James Hammons)
+ //
+
+-char jaguarDevBootROM1[0x20000] = {
++#include "jagstub1bios.h"
++
++uint8_t jaguarDevBootROM1[0x20000] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x08, 0x4D, 0xF9, 0x00, 0xF0, 0x00, 0x00, 0x49, 0xF9, 0x00, 0xF1, 0x40, 0x00, 0x3C, 0xFC, 0x18, 0x61, 0x3C, 0xBC, 0x35, 0xCC, 0x46, 0xFC, 0x27, 0x00,
+ 0x4F, 0xF8, 0x03, 0x00, 0x70, 0xFF, 0x74, 0x02, 0x51, 0xC8, 0xFF, 0xFC, 0x38, 0xBC, 0x80, 0x0D, 0xC4, 0x6C, 0x00, 0x02, 0x66, 0x06, 0x4E, 0xF9, 0x00, 0xE0, 0x1B, 0xFA, 0x41, 0xF9, 0x00, 0xE0,
+ 0x00, 0x00, 0x47, 0xF8, 0x04, 0x00, 0x30, 0x3C, 0x06, 0xFF, 0x26, 0xD8, 0x51, 0xC8, 0xFF, 0xFC, 0x30, 0x3C, 0x06, 0xFF, 0x24, 0x23, 0xB4, 0xA0, 0x67, 0x04, 0x60, 0x00, 0x12, 0x1A, 0x51, 0xC8,
+diff --git a/src/jagstub1bios.h b/src/jagstub1bios.h
+index a4b6f72..200e84b 100644
+--- a/src/jagstub1bios.h
++++ b/src/jagstub1bios.h
+@@ -1,6 +1,8 @@
+ #ifndef __JAGSTUB1BIOS_H__
+ #define __JAGSTUB1BIOS_H__
+
+-extern char jaguarDevBootROM1[];
++#include <stdint.h>
++
++extern uint8_t jaguarDevBootROM1[];
+
+ #endif // __JAGSTUB1BIOS_H__
+diff --git a/src/jagstub2bios.cpp b/src/jagstub2bios.cpp
+index 884680a..41d55c4 100644
+--- a/src/jagstub2bios.cpp
++++ b/src/jagstub2bios.cpp
+@@ -2,7 +2,9 @@
+ // This file was automagically generated by bin2c (by James Hammons)
+ //
+
+-char jaguarDevBootROM2[0x20000] = {
++#include "jagstub2bios.h"
++
++uint8_t jaguarDevBootROM2[0x20000] = {
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x00, 0x08, 0x4D, 0xF9, 0x00, 0xF0, 0x00, 0x00, 0x49, 0xF9, 0x00, 0xF1, 0x40, 0x00, 0x3C, 0xFC, 0x18, 0x61, 0x3C, 0xBC, 0x35, 0xCC, 0x46, 0xFC, 0x27, 0x00,
+ 0x4F, 0xF8, 0x03, 0x00, 0x70, 0xFF, 0x76, 0x02, 0x51, 0xC8, 0xFF, 0xFC, 0x41, 0xF9, 0x00, 0xE0, 0x00, 0x00, 0x47, 0xF8, 0x04, 0x00, 0x30, 0x3C, 0x06, 0xFF, 0x26, 0xD8, 0x51, 0xC8, 0xFF, 0xFC,
+ 0x30, 0x3C, 0x06, 0xFF, 0x24, 0x23, 0xB4, 0xA0, 0x66, 0x00, 0x12, 0x34, 0x51, 0xC8, 0xFF, 0xF6, 0x48, 0x79, 0x00, 0x00, 0x04, 0x64, 0x45, 0xF9, 0x00, 0xE0, 0x15, 0x94, 0x95, 0xFC, 0x00, 0xDF,
+diff --git a/src/jagstub2bios.h b/src/jagstub2bios.h
+index fcec2e3..c80d98d 100644
+--- a/src/jagstub2bios.h
++++ b/src/jagstub2bios.h
+@@ -1,6 +1,8 @@
+ #ifndef __JAGSTUB2BIOS_H__
+ #define __JAGSTUB2BIOS_H__
+
+-extern char jaguarDevBootROM2[];
++#include <stdint.h>
++
++extern uint8_t jaguarDevBootROM2[];
+
+ #endif // __JAGSTUB1BIOS_H__
+diff --git a/src/joystick.cpp b/src/joystick.cpp
+index 4b25493..25aef85 100644
+--- a/src/joystick.cpp
++++ b/src/joystick.cpp
+@@ -137,6 +137,6 @@ uint16_t JoystickReadWord(uint32_t offset)
+ if (offset0 != 0xFF)
+ {
+- uint8_t mask[4][2] = { { BUTTON_A, BUTTON_PAUSE }, { BUTTON_B, -1 }, { BUTTON_C, -1 }, { BUTTON_OPTION, -1 } };
++ uint8_t mask[4][2] = { { BUTTON_A, BUTTON_PAUSE }, { BUTTON_B, 0xFF }, { BUTTON_C, 0xFF }, { BUTTON_OPTION, 0xFF } };
+ data &= (joypad0Buttons[mask[offset0][0]] ? 0xFFFD : 0xFFFF);
+
+ if (mask[offset0][1] != -1)
+@@ -147,6 +147,6 @@ uint16_t JoystickReadWord(uint32_t offset)
+ if (offset1 != 0xFF)
+ {
+- uint8_t mask[4][2] = { { BUTTON_A, BUTTON_PAUSE }, { BUTTON_B, -1 }, { BUTTON_C, -1 }, { BUTTON_OPTION, -1 } };
++ uint8_t mask[4][2] = { { BUTTON_A, BUTTON_PAUSE }, { BUTTON_B, 0xFF }, { BUTTON_C, 0xFF }, { BUTTON_OPTION, 0xFF } };
+ data &= (joypad1Buttons[mask[offset1][0]] ? 0xFFF7 : 0xFFFF);
+
+ if (mask[offset1][1] != -1)
diff --git a/games-emulation/virtualjaguar/metadata.xml b/games-emulation/virtualjaguar/metadata.xml
new file mode 100644
index 000000000000..e73cd94a1388
--- /dev/null
+++ b/games-emulation/virtualjaguar/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<maintainer type="project">
+ <email>games@gentoo.org</email>
+ <name>Gentoo Games Project</name>
+</maintainer>
+<longdescription>
+The Virtual Atari Jaguar GCC/SDL portable Jaguar emulator which is based on
+the source code released by Cal2 of Potato Emulation.
+</longdescription>
+</pkgmetadata>
diff --git a/games-emulation/virtualjaguar/virtualjaguar-2.1.2-r2.ebuild b/games-emulation/virtualjaguar/virtualjaguar-2.1.2-r2.ebuild
new file mode 100644
index 000000000000..6d56a0c0fc75
--- /dev/null
+++ b/games-emulation/virtualjaguar/virtualjaguar-2.1.2-r2.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+inherit eutils versionator gnome2-utils qmake-utils toolchain-funcs
+
+DESCRIPTION="an Atari Jaguar emulator"
+HOMEPAGE="http://www.icculus.org/virtualjaguar/"
+SRC_URI="http://www.icculus.org/virtualjaguar/tarballs/${P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE=""
+
+RDEPEND="
+ dev-libs/libcdio
+ dev-qt/qtcore:4
+ dev-qt/qtgui:4
+ dev-qt/qtopengl:4[-egl]
+ media-libs/libsdl[joystick,opengl,sound,video]
+ sys-libs/zlib
+ virtual/opengl"
+DEPEND="${RDEPEND}
+ >=sys-devel/gcc-4.4"
+
+S=${WORKDIR}/${PN}
+
+PATCHES=( "${FILESDIR}"/${P}-gcc6.patch )
+
+src_prepare() {
+ default
+ sed -i \
+ -e '/^Categories/s/$/;/' \
+ virtualjaguar.desktop || die
+}
+
+src_configure() {
+ eqmake4 virtualjaguar.pro -o makefile-qt
+}
+
+src_compile() {
+ emake -j1 libs
+ emake
+}
+
+src_install() {
+ dobin ${PN}
+ dodoc README docs/{TODO,WHATSNEW}
+ doman docs/virtualjaguar.1
+ domenu virtualjaguar.desktop
+ newicon -s 128 res/vj-icon.png ${PN}.png
+}
+
+pkg_preinst() {
+ gnome2_icon_savelist
+}
+
+pkg_postinst() {
+ elog "The ${PN} ROM path is no-longer hardcoded, "
+ elog "set it from within, the ${PN} GUI."
+ elog
+ elog "The ROM extension supported by ${PN} is .j64, "
+ elog ".jag files will be interpreted as Jaguar Server executables."
+ gnome2_icon_cache_update
+}
+
+pkg_postrm() {
+ gnome2_icon_cache_update
+}