Ultima VII in DOSBox on IRIX did not work so well. Exult would play it so much better.
Finally got Exult compiled for IRIX. I went to their latest snapshot in order to get a lot of coding bugs resolved.
Tested maybe 2 minutes runtime so who knows how good it will work.. its 2am so getting tired.
Compiled with nekoware.. GCC 4.7.1
Environment:
CC=gcc
CXX=G++
CXXFLAGS="-O3 -mabi=n32 -I/usr/nekoware/include -I/usr/include"
CPPFLAGS="-O3 -mabi=n32 -I/usr/nekoware/include -I/usr/include"
CFLAGS="-O3 -mabi=n32 -I/usr/nekoware/include -I/usr/include"
PATH="/usr/nekoware/bin:$PATH"
LDFAGS="-L/usr/nekoware/lib -L/usr/lib32"
LD_LIBRARY_PATH=/usr/nekoware/lib:/usr/lib32
Run autogen.sh
For some reason, the generated configure script has lots of syntax errors on IRIX relating to lines like:
AX_CHECK_COMPILE_FLAG($opt_flag, DEBUG_FLAGS="$DEBUG_FLAGS $opt_flag", , $DEBUG_FLAGS -Werror)
I just commented them out.. nothing critical.
Run ./configure
I added
/* C99: 7.12 6 defines for floating point classification */
#define FP_ZERO 1
#define FP_SUBNORMAL 2
#define FP_NORMAL 4
#define FP_INFINTE 8
#define FP_NAN 16
to the top of the following files:
headers/gamma.h
audio/midi_drivers/timidity/timidity_tables.h
audio/midi_drivers/timidity/timidity_filter.cpp
audio/midi_drivers/timidity/timidity.h
audio/midi_drivers/timidity/timidity_mix.cpp
headers/pent_include.h
While the above will compile, the game will crash after the splash screen (bus error).
Googling around found an IRC chat log from a decade ago with someone compiling Exult on a sharp Zaurus.
There is a file: ibuff8.cc to modify:
Comment out: #if !(defined(__sparc__) || defined(UNDER_CE))
and add:
#if 0
So the section that has sparc or CE defines will work for IRIX too.
I know this is a hack, and something more elegant __irix__ ,etc. should be done, but ill leave that up to the developers
run ./gmake
wait an hour or so on an Octane2
run gmake install as root user.. so stuff gets installed to /usr/local/
Find your legally purchased copies of Ultima VII Black Gate and Serpent Isle, or where ever you feel you want to get the software.. and copy them to /usr/local/share/exult/blackgate and serpentisle directories that you need to create.
As a user, run exult that is @ /usr/local/bin/exult. it creates a default .exult.cfg in your home dir as well as populating files in .exult directory in your home dir.
Attached is a tarball of usr. Just extract from / as root user. its not compressed, so its a 41MB file.
It uses nekoware's timidity, SDL 1.2, libiconv, libogg, libvorbis, libvorbisfile, and libz
I am also attaching the original source code used.
Finally got Exult compiled for IRIX. I went to their latest snapshot in order to get a lot of coding bugs resolved.
Tested maybe 2 minutes runtime so who knows how good it will work.. its 2am so getting tired.
Compiled with nekoware.. GCC 4.7.1
Environment:
CC=gcc
CXX=G++
CXXFLAGS="-O3 -mabi=n32 -I/usr/nekoware/include -I/usr/include"
CPPFLAGS="-O3 -mabi=n32 -I/usr/nekoware/include -I/usr/include"
CFLAGS="-O3 -mabi=n32 -I/usr/nekoware/include -I/usr/include"
PATH="/usr/nekoware/bin:$PATH"
LDFAGS="-L/usr/nekoware/lib -L/usr/lib32"
LD_LIBRARY_PATH=/usr/nekoware/lib:/usr/lib32
Run autogen.sh
For some reason, the generated configure script has lots of syntax errors on IRIX relating to lines like:
AX_CHECK_COMPILE_FLAG($opt_flag, DEBUG_FLAGS="$DEBUG_FLAGS $opt_flag", , $DEBUG_FLAGS -Werror)
I just commented them out.. nothing critical.
Run ./configure
I added
/* C99: 7.12 6 defines for floating point classification */
#define FP_ZERO 1
#define FP_SUBNORMAL 2
#define FP_NORMAL 4
#define FP_INFINTE 8
#define FP_NAN 16
to the top of the following files:
headers/gamma.h
audio/midi_drivers/timidity/timidity_tables.h
audio/midi_drivers/timidity/timidity_filter.cpp
audio/midi_drivers/timidity/timidity.h
audio/midi_drivers/timidity/timidity_mix.cpp
headers/pent_include.h
While the above will compile, the game will crash after the splash screen (bus error).
Googling around found an IRC chat log from a decade ago with someone compiling Exult on a sharp Zaurus.
There is a file: ibuff8.cc to modify:
Comment out: #if !(defined(__sparc__) || defined(UNDER_CE))
and add:
#if 0
So the section that has sparc or CE defines will work for IRIX too.
I know this is a hack, and something more elegant __irix__ ,etc. should be done, but ill leave that up to the developers
run ./gmake
wait an hour or so on an Octane2
run gmake install as root user.. so stuff gets installed to /usr/local/
Find your legally purchased copies of Ultima VII Black Gate and Serpent Isle, or where ever you feel you want to get the software.. and copy them to /usr/local/share/exult/blackgate and serpentisle directories that you need to create.
As a user, run exult that is @ /usr/local/bin/exult. it creates a default .exult.cfg in your home dir as well as populating files in .exult directory in your home dir.
Attached is a tarball of usr. Just extract from / as root user. its not compressed, so its a 41MB file.
It uses nekoware's timidity, SDL 1.2, libiconv, libogg, libvorbis, libvorbisfile, and libz
I am also attaching the original source code used.