Linux i386 is the platform I (Hans) use, so xmame should compile without any hassles on Linux i386.
Some bugs have been found and worked around when using gcc27x, please use egcs if available. If more gcc bugs popup egcs will be made mandatory, but I hope that won't be nescesarry.
It has been reported that some SoundBlaster AWE32 cards do not
correctly manage get_freespace(). If so you'll get some audio_ioctl()
calls failed messages in console, and if everything goes right a
message that xmame/xmess is falling back to timer based audio. If this
doesn't happen and sound isn't right try forcing timer based audio
by starting xmame/xmess with -timer
.
Sb64/128pci cards (ensoniq 137x based cards) also do not correctly
manage get_freespace(), unfortunatly this doesn't result in failed
ioctl's instead they just ignore the calls. Xmame tries to autodetect
this and to fall back to timer based audio. If this doesn't happen
and sound isn't right try forcing timer based audio by starting
xmame/xmess with -timer
.
Also, I've tested sound using the PC-Speaker driver module. It
works!! But needs -timer
, again it should do this automagicly,
but you know what todo if it doesn't.
For S.u.S.E. distributions: Besides the gcc compiler and libc libraries, which are both from the "d" series, other packages need to be installed or the build will fail. If compiling for svgalib, the svgalib package from series "d" installed. If compiling for X-Windows, you must have xdevel package from series "x" installed. These packages can be installed using the "yast" utility included in the S.u.S.E. distribution.
Red Hat Linux is the operating system used by the author. xmame/xmess should build correctly under Red Hat Linux. :-)
Linux powerpc should work from now on, here's an email from:
Andreas Varga
sid@skater.htu.tuwien.ac.at
, the linux/powerpc
maintainer describing the nescesarry steps:
Required changes to compile xmame 0.34b3.1 on Linux/PowerPC with SVGALIB
makefile.unix:
Required changes to compile xmame 0.34b3.1 on Linux/PowerPC with X11
makefile.unix:
Another thing... sound is not working, because sound drivers support is currently under development in Linux/PPC kernels...there is an old driver that is a hacked Soundblaster driver, and newer 2.1.1xx kernels have a sound drivers based on Amiga DMA sound drivers... Once this issues are settled there should be a full OSS-compatible driver... sound should work then...
I can't speak about Joystick support...
The original Linux/PPC target changes in makefile.unix were done by me, but there are some other changes required to get it to compile... Starting from October I will have some more time to work on this, and I'll keep you updated...
Cheers, Andreas
Use the generic unix arch for those machines that have no sound support installed. ( xmame/xmess uses the dmedia package or the newer AL package on IRIX systems )
Silicon Graphics provides several native compilers. xmame/xmess has been compiled and tested with the normal cc. There were some problems with this when using -n32 for new style 32bit code. It does work when using -o32 for oldstyle 32 bit code. It should now also work with -n32 wich is much faster.
The use of DCC is not recommended (anymore) since it's a c++ compiler and thus won't even compile xmame/xmess out of the box due to uncasted malloc's. Changing all these malloc's would be crazy, esp since they are not only in the osd part, but also in the core which is not under our control. Besides that mame is normal c, so please compile it with a normal c compiler.
Some problems have been reported using GNU linker. It's recommended that you use native one.
Use the generic unix arch. In HP-UX gcc and gnu-make is MANDATORY.
Use the generic unix arch.
(Notes reeived from Danny
dboxhoor@iso.vilspa.esa.es
)
VERY IMPORTANT!!!
The xmame/xmess CPU emulators access memory through pointers which are sometimes cast to illegal addresses - as far as the MIPS CPU is concerned. The Ultrix operating system is aware of that and fixes this "unaligned data access".
Depending on your system setup, lots of warnings are generated for certain games. Fortunately these messages can be disabled by executing the command "uac p 0" in the same shell where xmame/xmess will be running.
UPDATE: The new -DALIGN_INTS
switch in the makefile fixes these
unaligned accesses in the source which is probably a lot faster
than hot fixing them in the kernel segfault handler.
Use gnu make.
Compile with the `c89' compiler. Though `gcc' has no problems with compiling and optimizing xmame/xmess, the resulting `c89' executable is faster on an empty machine (read: xmame can use all cpu & memory without competing with other high priority processes), so you can set `frameskip' to 1.
When compiling with `c89 -O2' don't forget to also use `-Olimit 1000'. If 1000 is not enough, the compiler will tell you to increase it.
There are 2 relevant architecture options available in the makefile:
ARCH = generic : use this for old SunOs running on Sparcs,
but a Sparc running Solaris will usually
handle this option too.
ARCH = solaris : this is the one you should use for Sparcs
running Solaris.
Currently sound is not supported under sunos. The solaris arch does support audio.
If you are using Sun's OpenWindows implementation of X11, then make sure that the X11INC and X11LIB variables in the X11 Options section of the makefile are set properly. (There are already entries for the standard OpenWin directory there that you can uncomment).
Of course, if you are compiling for X11 then you need to set these variables properly, no matter what implementation of X11 you are using! :)
If you are using Sun's SunPro cc compiler, then the following optimisation flags have been reported to be good:
OPTFLAGS = -fast -xO4 -native
Finally, there has been a case of the xmame compilation processes breaking over the "ar" program. Most Solaris installations will include a set of utilities that conform to the XPG4 standard, usually in the "/usr/xpg4/bin" directory. The XPG4 version of "ar" should be avoided like the plague. Ensure that the "/usr/ccs/bin" appears in your path before the "/usr/xpg4/bin" directory and everything should go smoothly.
PLEASE NOTE : there is currently not much support for SunOS/Solaris. If you have any trouble, try to fix it yourself. If you succeed, send a message to the mailing list detailing what you did. If you don't succeed, send a message anyway and someone _may_ be able to help you. Either way, this is the only way that problems with xmame on SunOS/Solaris will get fixed.
Follow, the generic instructions for compiling xmame, but when editing the makefile do the following:
-lm
and remove it and the -s
on those
lines, openstep not only doesn't need it but fails on it.