1. Add support to the xmame port for building the GL version. Yet more
reason to get DRI support working (hint hint). 2. While we're at it, add a quick patch from the author to improve reliability a tiny bit. Approved by: stijn@win.tue.nl
This commit is contained in:
parent
caae0f1ff6
commit
cb30289b5b
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=40789
@ -154,8 +154,23 @@ CFLAGS+= -O3 -march=i686 -Wall -Wno-unused -funroll-loops \
|
||||
-malign-functions=4 -malign-jumps=4 -malign-loops=4
|
||||
.endif
|
||||
|
||||
# SDL extension - enabled by default because x{mame,mess} can run full
|
||||
# Choose one of several display targets:
|
||||
# WITH_GL OpenGL based, displays vector games with hardware
|
||||
# acceleration
|
||||
# WITH_SDL Uses the SDL library to be able to play fullscreen
|
||||
# without root rights
|
||||
# WITH_X11 The standard display target, should work without
|
||||
# dependancies other than X
|
||||
#
|
||||
# WITH_SDL is enabled by default because x{mame,mess} can run full
|
||||
# screen without having to be setuid root.
|
||||
.if defined(WITH_GL) && ${WITH_GL} == "yes"
|
||||
CFLAGS+= ${PTHREAD_CFLAGS}
|
||||
USE_MESA= yes
|
||||
DISPLAY_METHOD= xgl
|
||||
PLIST_SUB+= OPENGL=""
|
||||
.else
|
||||
PLIST_SUB+= OPENGL="@comment "
|
||||
.if !defined(WITH_SDL) || ${WITH_SDL} != "no"
|
||||
LIB_DEPENDS= SDL-1.1.3:${PORTSDIR}/devel/sdl-devel
|
||||
SDL_CONFIG?= ${LOCALBASE}/bin/sdl11-config
|
||||
@ -164,9 +179,12 @@ DISPLAY_METHOD= SDL
|
||||
pre-everything::
|
||||
@${ECHO_MSG} "===> If you don't want ${MAMEMESS:U} to be built with SDL support,"
|
||||
@${ECHO_MSG} " use \"make WITH_SDL=no\""
|
||||
@${ECHO_MSG} "===> You can also build ${MAMEMESS:U} with OpenGL support."
|
||||
@${ECHO_MSG} " use \"make WITH_GL=yes\" for this"
|
||||
.else
|
||||
DISPLAY_METHOD= x11
|
||||
.endif
|
||||
.endif
|
||||
|
||||
# The large number of sed regexes here is intended to make this port a whole
|
||||
# lot easier to maintain - please don't convert them into a patch.
|
||||
@ -182,10 +200,11 @@ do-configure:
|
||||
-e "s@= x11@= ${DISPLAY_METHOD}@g" \
|
||||
-e "s@= mame@= ${MAMEMESS}@g" \
|
||||
-e "s@# X86_ASM@${ASM_COMMENT}X86_ASM@g" \
|
||||
-e "s@GLLIBS=.-ldl@GLLIBS= ${PTHREAD_LIBS}@g" \
|
||||
${WRKSRC}/makefile.unix.sed > ${WRKSRC}/makefile.unix
|
||||
.if !defined(WITH_SDL) || ${WITH_SDL} != "no"
|
||||
${PERL} -pi -e 's@SDL/@SDL11/@' ${WRKSRC}/src/unix/video-drivers/SDL.c
|
||||
.endif
|
||||
${PERL} -pi -e 's@png.h@../../png.h@' \
|
||||
${WRKSRC}/src/unix/video-drivers/glexport.c
|
||||
|
||||
post-build:
|
||||
cd ${WRKSRC} && ${SETENV} ${MAKE_ENV} SDL_VIDEODRIVER=aalib \
|
||||
|
@ -1,6 +1,11 @@
|
||||
--- src/unix/unix.mak.orig Sat Mar 24 02:33:38 2001
|
||||
+++ src/unix/unix.mak Fri Mar 30 09:52:29 2001
|
||||
@@ -50,14 +50,14 @@
|
||||
+++ src/unix/unix.mak Mon Apr 2 10:33:48 2001
|
||||
@@ -46,18 +46,18 @@
|
||||
LIBS.x11 = $(X11LIB) $(JOY_X11_LIBS) -lX11 -lXext
|
||||
LIBS.svgalib = $(X11LIB) -lvga -lvgagl
|
||||
LIBS.ggi = $(X11LIB) -lggi
|
||||
-LIBS.xgl = $(X11LIB) $(JOY_X11_LIBS) -lX11 -lXext $(GLLIBS) -ljpeg
|
||||
+LIBS.xgl = $(X11LIB) $(JOY_X11_LIBS) -lX11 -lXext $(GLLIBS) -L/usr/local/lib -ljpeg $(PTHREAD_LIBS)
|
||||
LIBS.xfx = $(X11LIB) $(JOY_X11_LIBS) -lX11 -lXext -lglide2x
|
||||
LIBS.svgafx = $(X11LIB) -lvga -lvgagl -lglide2x
|
||||
LIBS.openstep = -framework AppKit
|
||||
@ -9,7 +14,8 @@
|
||||
LIBS.photon2 = -L/usr/lib -lph -lphrender
|
||||
|
||||
CFLAGS.x11 = $(X11INC) $(JOY_X11_CFLAGS)
|
||||
CFLAGS.xgl = $(X11INC) $(JOY_X11_CFLAGS)
|
||||
-CFLAGS.xgl = $(X11INC) $(JOY_X11_CFLAGS)
|
||||
+CFLAGS.xgl = $(X11INC) $(JOY_X11_CFLAGS) -I/usr/local/include $(PTHREAD_CFLAGS)
|
||||
CFLAGS.xfx = $(X11INC) $(JOY_X11_CFLAGS) -I/usr/include/glide
|
||||
CFLAGS.svgafx = -I/usr/include/glide
|
||||
-CFLAGS.SDL = -D_REENTRANT
|
||||
|
138
emulators/xmame/files/patch-ae
Normal file
138
emulators/xmame/files/patch-ae
Normal file
@ -0,0 +1,138 @@
|
||||
--- src/unix/video-drivers/glxtool.h.orig Sat Mar 24 02:33:38 2001
|
||||
+++ src/unix/video-drivers/glxtool.h Mon Apr 2 21:40:48 2001
|
||||
@@ -28,6 +28,8 @@
|
||||
int accumBlueBits;
|
||||
int accumAlphaBits;
|
||||
|
||||
+ /* internal use only */
|
||||
+ int gl_supported;
|
||||
long nativeVisualID;
|
||||
} GLCapabilities;
|
||||
|
||||
--- src/unix/video-drivers/xgl.c.orig Mon Apr 2 13:33:10 2001
|
||||
+++ src/unix/video-drivers/xgl.c Mon Apr 2 21:42:05 2001
|
||||
@@ -63,14 +63,14 @@
|
||||
GLXContext glContext=NULL;
|
||||
|
||||
const GLCapabilities glCapsDef = { BUFFER_DOUBLE, COLOR_RGBA, STEREO_OFF,
|
||||
- 1, 0, 1, 1, 1, 1, 0, 0, 0, 0,
|
||||
+ 1, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1,
|
||||
-1
|
||||
};
|
||||
|
||||
GLCapabilities glCaps;
|
||||
|
||||
static const char * xgl_version_str =
|
||||
- "\nGLmame v0.83, by Sven Goethel, http://www.jausoft.com, sgoethel@jausoft.com,\nbased upon GLmame v0.6 driver for xmame, written by Mike Oliphant\n\n";
|
||||
+ "\nGLmame v0.85, by Sven Goethel, http://www.jausoft.com, sgoethel@jausoft.com,\nbased upon GLmame v0.6 driver for xmame, written by Mike Oliphant\n\n";
|
||||
|
||||
struct rc_option display_opts[] = {
|
||||
/* name, shortname, type, dest, deflt, min, max, func, help */
|
||||
@@ -237,6 +237,7 @@
|
||||
|
||||
glCaps.alphaBits=(alphablending>0)?1:0;
|
||||
glCaps.buffer =(doublebuffer>0)?BUFFER_DOUBLE:BUFFER_SINGLE;
|
||||
+ glCaps.gl_supported = 1;
|
||||
|
||||
window = RootWindow(display,DefaultScreen( display ));
|
||||
vgc = findVisualGlX( display, window,
|
||||
--- src/unix/video-drivers/glxtool.c.orig Fri Mar 23 17:33:38 2001
|
||||
+++ src/unix/video-drivers/glxtool.c Mon Apr 2 22:31:23 2001
|
||||
@@ -68,6 +68,7 @@
|
||||
GLCapabilities *glCaps )
|
||||
{
|
||||
int i=0;
|
||||
+ visualAttribList[i++] = GLX_USE_GL; /* paranoia .. */
|
||||
visualAttribList[i++] = GLX_RED_SIZE;
|
||||
visualAttribList[i++] = 1;
|
||||
visualAttribList[i++] = GLX_GREEN_SIZE;
|
||||
@@ -134,13 +135,18 @@
|
||||
int gc_ret = 0;
|
||||
int ownwin = 0;
|
||||
|
||||
+ GLCapabilities _glCaps;
|
||||
+
|
||||
/**
|
||||
* The Visual seeked by Function: findVisualIdByFeature !
|
||||
*/
|
||||
XVisualInfo * visualList=NULL; /* the visual list, to be XFree-ed */
|
||||
|
||||
+ /* paranoia .. */
|
||||
+ glCaps->gl_supported = 1;
|
||||
+
|
||||
/* backup ... */
|
||||
- GLCapabilities _glCaps = *glCaps;
|
||||
+ _glCaps = *glCaps;
|
||||
|
||||
if(pOwnWin) ownwin=*pOwnWin;
|
||||
|
||||
@@ -214,14 +220,14 @@
|
||||
|
||||
if( offscreen && vgc.visual!=NULL)
|
||||
{
|
||||
- if(*pix!=0)
|
||||
+ if(pix!=NULL && *pix!=NULL)
|
||||
{
|
||||
XFreePixmap(display, *pix);
|
||||
}
|
||||
- if(vgc.visual !=NULL)
|
||||
+ if(pix!=NULL && vgc.visual !=NULL)
|
||||
*pix = XCreatePixmap( display, rootWin, width, height,
|
||||
vgc.visual->depth);
|
||||
- if(*pix!=0)
|
||||
+ if(pix!=NULL && *pix!=NULL)
|
||||
{
|
||||
*pWin = __glXCreateGLXPixmap( display, vgc.visual, *pix );
|
||||
if(*pWin==0)
|
||||
@@ -271,7 +277,7 @@
|
||||
fflush(stderr);
|
||||
}
|
||||
|
||||
- if(*pix!=0)
|
||||
+ if(pix!=NULL && *pix!=NULL)
|
||||
{
|
||||
XFreePixmap(display, *pix);
|
||||
*pix=0;
|
||||
@@ -463,6 +469,16 @@
|
||||
int iValue2=0;
|
||||
int iValue3=0;
|
||||
|
||||
+ memset(glCaps, 0, sizeof(GLCapabilities));
|
||||
+
|
||||
+ if(__glXGetConfig( disp, visual, GLX_USE_GL, &iValue)==0)
|
||||
+ {
|
||||
+ glCaps->gl_supported=(iValue==True)?1:0;
|
||||
+ } else {
|
||||
+ fprintf(stderr,"GLINFO: fetching GLX_USE_GL state failed\n");
|
||||
+ fflush(stderr);
|
||||
+ }
|
||||
+
|
||||
if(__glXGetConfig( disp, visual, GLX_DOUBLEBUFFER, &iValue)==0)
|
||||
{
|
||||
glCaps->buffer=iValue?BUFFER_DOUBLE:BUFFER_SINGLE;
|
||||
@@ -530,7 +546,7 @@
|
||||
fprintf(stderr,"GLINFO: fetching rgba AccumSize states failed\n");
|
||||
fflush(stderr);
|
||||
}
|
||||
- glCaps->nativeVisualID=(long)visual->visualid;
|
||||
+ glCaps->nativeVisualID=(long) (visual->visualid);
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -541,6 +557,8 @@
|
||||
GLCapabilities _glCaps;
|
||||
setGLCapabilities ( display, vi, &_glCaps);
|
||||
|
||||
+ if(_glCaps.gl_supported != glCaps->gl_supported) return 0;
|
||||
+
|
||||
if(_glCaps.buffer<glCaps->buffer) return 0;
|
||||
|
||||
if(_glCaps.color<glCaps->color) return 0;
|
||||
@@ -635,6 +653,7 @@
|
||||
|
||||
void printGLCapabilities ( GLCapabilities *glCaps )
|
||||
{
|
||||
+ fprintf(stdout, "\t gl_supported: %d !\n", glCaps->gl_supported);
|
||||
fprintf(stdout, "\t doubleBuff: %d, ", (int)glCaps->buffer);
|
||||
fprintf(stdout, " rgba: %d, ", (int)glCaps->color);
|
||||
fprintf(stdout, " stereo: %d, ", (int)glCaps->stereo);
|
@ -2,7 +2,7 @@ XMAME is an arcade game machine emulator for UNIX/X11. It will emulate
|
||||
the hardware, video, sound, and other services, of many classic arcade
|
||||
game machines.
|
||||
|
||||
As of this release, XMAME supports an incredible 2073 arcade games, and
|
||||
As of this release, XMAME supports an incredible 2843 arcade games, and
|
||||
the number grows every day! A partial list of the (more popular and
|
||||
well-known) games currently supported by this emulator include:
|
||||
|
||||
@ -20,5 +20,3 @@ have access to a ROM burner, or you don't own one of these video games
|
||||
you can obtain ROM images for XMAME on the Net.
|
||||
|
||||
WWW: http://x.mame.net/
|
||||
|
||||
[ Maintained by Jacob A. Hart <c9710216@studentmail.newcastle.edu.au>. ]
|
||||
|
@ -36,6 +36,18 @@ share/%%MAMEMESS%%/%%MAMEMESS%%rc
|
||||
%%PINMAMEONLY%%%%PORTDOCS%%share/doc/xpinmame/keys.txt
|
||||
%%PINMAMEONLY%%%%PORTDOCS%%share/doc/xpinmame/sounds.dat
|
||||
%%PORTDOCS%%@dirrm share/doc/%%MAMEMESS%%
|
||||
%%OPENGL%%share/%%MAMEMESS%%/cab/glmame/cabfront.jpg
|
||||
%%OPENGL%%share/%%MAMEMESS%%/cab/glmame/cabtitle.jpg
|
||||
%%OPENGL%%share/%%MAMEMESS%%/cab/glmame/glmame.cab
|
||||
%%OPENGL%%@dirrm share/%%MAMEMESS%%/cab/glmame
|
||||
%%OPENGL%%share/%%MAMEMESS%%/cab/glmamejau/cabfront.jpg
|
||||
%%OPENGL%%share/%%MAMEMESS%%/cab/glmamejau/cabside.jpg
|
||||
%%OPENGL%%share/%%MAMEMESS%%/cab/glmamejau/cabtitle.jpg
|
||||
%%OPENGL%%share/%%MAMEMESS%%/cab/glmamejau/glmamejau.cab
|
||||
%%OPENGL%%@dirrm share/%%MAMEMESS%%/cab/glmamejau
|
||||
%%OPENGL%%share/%%MAMEMESS%%/cab/trans/trans.cab
|
||||
%%OPENGL%%@dirrm share/%%MAMEMESS%%/cab/trans
|
||||
%%OPENGL%%@dirrm share/%%MAMEMESS%%/cab
|
||||
@dirrm share/%%MAMEMESS%%/roms
|
||||
@dirrm share/%%MAMEMESS%%
|
||||
@unexec rmdir %%SPOOLGAMES%%/%%MAMEMESS%% 2>/dev/null || true
|
||||
|
Loading…
Reference in New Issue
Block a user