Medal of Honor: Allied Assault War Chest on Pyra/OpenPandora?


gbudny

Member
Joined
Oct 16, 2021
Messages
79
Hi



I'm one of the users testing OpenMoHAA, and I have a few questions about your handheld gaming computer. You can now play all three games (all levels) with this project:

Medal of Honor: Allied Assault

Medal of Honor: Allied Assault – Spearhead

Medal of Honor: Allied Assault – Breakthrough

There are still some bugs, and a few things are missing: music, intros, briefings, etc.

Can you compile OpenMoHAA on Pyra/OpenPandora?

Can you play OpenMoHAA on Pyra/OpenPandora?



 
Last edited:
I can give it shot for a Pyra version as I have a decent dev setup on my unit currently. I have a long weekend coming up, I'll see what I can do. As for Pandora, I used to have a decent cross-compiler, but that is gone now...

I have the base game in my collection somewhere to get the data files.
 
Last edited:
@TrashyMG

Great!

OpenMoHAA also works with the GOG version too.
GOG is probably the cheapest option to buy Medal of Honor: Allied Assault War Chest, and it doesn't require a DVD drive.
 
When I trigger script (using $HOME instead of my username):
tedades@pyra:~$ ./openmoh.sh
./openmoh.sh: 2: cd: can't cd to /home/$HOME/Medal of Honor - Allied Assault War Chest
rm: cannot remove 'openmohaa': Is a directory
rm: cannot remove '*.so': No such file or directory
Cloning into 'openmohaa'...
remote: Enumerating objects: 22199, done.
remote: Counting objects: 100% (6258/6258), done.
remote: Compressing objects: 100% (1261/1261), done.
remote: Total 22199 (delta 5136), reused 5513 (delta 4997), pack-reused 15941
Receiving objects: 100% (22199/22199), 85.89 MiB | 5.17 MiB/s, done.
Resolving deltas: 100% (15958/15958), done.
Checking out files: 100% (2571/2571), done.
./openmoh.sh: 8: ./openmoh.sh: cmake: not found
make: *** No targets specified and no makefile found. Stop.
cp: cannot stat 'o*': No such file or directory
./openmoh.sh: 11: cd: can't cd to code/client/cgame
cp: cannot stat 'cgamex86_64-dbg.so': No such file or directory
./openmoh.sh: 14: cd: can't cd to code/server/fgame
cp: cannot stat 'gamex86_64-dbg.so': No such file or directory


Probably a good idea to check if the folder exist before running the rest of commands:
cd '/home/users/Medal of Honor - Allied Assault War Chest'
rm o* *.so
cd
rm -Rf openmohaa

From a 'fresh' Pyra you need to install (sudo apt-get install, after a sudo apt-get update):
git
cmake


When I manually run cmake:
tedades@pyra:~/openmohaa/build$ cmake .. -DCMAKE_BUILD_TYPE=Debug -DDEBUG_DROP_ASSERT=1 -DDEBUG_MEMORY=1
-- The C compiler identification is GNU 8.3.0
-- The CXX compiler identification is GNU 8.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Architecture detected: arm, suffix set to arm.
-- Using Unix naming convention
VERBOSEGit was successfully detected in the source directory. Relevant Git information will be included in the game version.
error: unknown option `show-current'
usage: git branch [<options>] [-r | -a] [--merged | --no-merged]
or: git branch [<options>] [-l] [-f] <branch-name> [<start-point>]
or: git branch [<options>] [-r] (-d | -D) <branch-name>...
or: git branch [<options>] (-m | -M) [<old-branch>] <new-branch>
or: git branch [<options>] (-c | -C) [<old-branch>] <new-branch>
or: git branch [<options>] [-r | -a] [--points-at]
or: git branch [<options>] [-r | -a] [--format]

Generic options
-v, --verbose show hash and subject, give twice for upstream branch
-q, --quiet suppress informational messages
-t, --track set up tracking mode (see git-pull(1))
-u, --set-upstream-to <upstream>
change the upstream info
--unset-upstream Unset the upstream info
--color[=<when>] use colored output
-r, --remotes act on remote-tracking branches
--contains <commit> print only branches that contain the commit
--no-contains <commit>
print only branches that don't contain the commit
--abbrev[=<n>] use <n> digits to display SHA-1s

Specific git-branch actions:
-a, --all list both remote-tracking and local branches
-d, --delete delete fully merged branch
-D delete branch (even if not merged)
-m, --move move/rename a branch and its reflog
-M move/rename a branch, even if target exists
-c, --copy copy a branch and its reflog
-C copy a branch, even if target exists
-l, --list list branch names
--create-reflog create the branch's reflog
--edit-description edit the description for the branch
-f, --force force creation, move/rename, deletion
--merged <commit> print only branches that are merged
--no-merged <commit> print only branches that are not merged
--column[=<style>] list branches in columns
--sort <key> field name to sort on
--points-at <object> print only branches of the object
-i, --ignore-case sorting and filtering are case insensitive
--format <format> format to use for the output

VERBOSEGit branch:
VERBOSEGit revision hash: 85c8769512aff9290a9c2ca7cff6b8d8ea0409d9
VERBOSEGit revision date: May 22 2024 UTC
VERBOSEGit revision build: 0
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Could NOT find BISON (missing: BISON_EXECUTABLE)
-- Could NOT find FLEX (missing: FLEX_EXECUTABLE)
CMake Error at code/sdl/CMakeLists.txt:55 (find_package):
By not providing "FindSDL2.cmake" in CMAKE_MODULE_PATH this project has
asked CMake to find a package configuration file provided by "SDL2", but
CMake did not find one.

Could not find a package configuration file provided by "SDL2" with any of
the following names:

SDL2Config.cmake
sdl2-config.cmake

Add the installation prefix of "SDL2" to CMAKE_PREFIX_PATH or set
"SDL2_DIR" to a directory containing one of the above files. If "SDL2"
provides a separate development package or SDK, be sure it has been
installed.


-- Configuring incomplete, errors occurred!
See also "/home/tedades/openmohaa/build/CMakeFiles/CMakeOutput.log".
See also "/home/tedades/openmohaa/build/CMakeFiles/CMakeError.log".
 
Last edited:
@TeDaDeS

Thank you for checking it out.

The Medal of Honor - Allied Assault War Chest directory with the game data should be in your home directory.

I use this script to quickly check new versions of OpenMoHAA, but it requires some modifications.

cgamex86_64-dbg.so and gamex86_64-dbg.so probably have slightly different names because it's ARM.

You need to install dependencies:

sudo apt-get install -y cmake ninja-build clang lld flex bison libsdl2-dev
 
Last edited:
Dependency installation went fine but the build fails:

[ 68%] Built target omohaaded
[ 68%] [FLEX][fgame-lexer] Building scanner with flex 2.6.4
/home/tedades/openmohaa/code/parser/lex_source.txt:358: warning, rule cannot be matched
/home/tedades/openmohaa/code/parser/lex_source.txt:366: warning, -s option given but default rule can be matched
[ 68%] [BISON][fgame-parser] Building parser with bison 3.3.2
/home/tedades/openmohaa/code/parser/bison_source.txt:52.1-41: error: %define variable 'api.location.type' is not used
%define api.location.type { parse_pos_t }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [code/server/fgame/CMakeFiles/fgame.dir/build.make:62: ../code/parser/generated/yyParser.cpp] Error 1
make[1]: *** [CMakeFiles/Makefile2:518: code/server/fgame/CMakeFiles/fgame.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
 
Dependency installation went fine but the build fails:

[ 68%] Built target omohaaded
[ 68%] [FLEX][fgame-lexer] Building scanner with flex 2.6.4
/home/tedades/openmohaa/code/parser/lex_source.txt:358: warning, rule cannot be matched
/home/tedades/openmohaa/code/parser/lex_source.txt:366: warning, -s option given but default rule can be matched
[ 68%] [BISON][fgame-parser] Building parser with bison 3.3.2
/home/tedades/openmohaa/code/parser/bison_source.txt:52.1-41: error: %define variable 'api.location.type' is not used
%define api.location.type { parse_pos_t }
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [code/server/fgame/CMakeFiles/fgame.dir/build.make:62: ../code/parser/generated/yyParser.cpp] Error 1
make[1]: *** [CMakeFiles/Makefile2:518: code/server/fgame/CMakeFiles/fgame.dir/all] Error 2
make: *** [Makefile:130: all] Error 2

I'm not a programmer, so I don't know how to fix it.

Can you report this issue on the official project site at GitHub?


I hope that smallmodel can help you solve it, or some more experienced users on this forum can look at this issue.
 
@TeDaDeS I had an initial look myself and got to the same road block. I may try it on a newer version of debian when I get time to set that up, I suspect maybe the stock OS is running too old of a version of BISON... but that is just my current theory.
 
We're still using 3.3.2 with the stable version of the Pyra OS, and it seems 'api.location.type' wasn't supported for C prior to version 3.4..

We're expected to get everything working stable in the latest debian release in the near future, but it's a slow process. I suppose I can compile BISON 3.8.2 and link it in as well. Will have to wait until the weekend for me.
 
Last edited:
We're still using 3.3.2 with the stable version of the Pyra OS, and it seems 'api.location.type' wasn't supported for C prior to version 3.4..

I hope it solves this issue.

We're expected to get everything working stable in the latest debian release in the near future, but it's a slow process. I suppose I can compile BISON 3.8.2 and link it in as well. Will have to wait until the weekend for me.

Debian is awesome. I see that nothing has changed with adding more recent versions of the software.

In 2005, I switched from Fedora Core 3 (2.6) to Debian Sarge (testing 2.4) to play the Medal of Honor. I desperately tried to keep kernel 2.4 (with some modules) and 2.6.7 on Debian Etch because I wanted to play Medal of Honor Beta 3 on Linux. The Linux client became useless when the stable Etch was released with kernels higher than 2.6.7. It was impossible to play Mohaa on anything modern than that.
 
Last edited:
I didn't know Pyra/OpenPandora uses older versions of Debian as stable systems.
Actually the OpenPandora uses Angstrom, mostly as the internal storage for the OS is only 512MBs.. the Pandora was designed in 2008, and basically has first gen Android hardware, but amazingly we can do a lot with a light weight OS.

Edit: with such an older codebase for the Pandora it will likely make a port a lot bigger adventure.

The Pyra will be updated to the latest armhf Debian hopefully in the near future.
 
Last edited:
Actually the OpenPandora uses Angstrom, mostly as the internal storage for the OS is only 512MBs.. the Pandora was designed in 2008, and basically has first gen Android hardware, but amazingly we can do a lot with a light weight OS.

Thanks for this information.

Did you use external storage to keep all favorite games installed on OpenPadora?

Medal of Honor: Allied Assault War Chest was released on DVD.

Edit: with such an older codebase for the Pandora it will likely make a port a lot bigger adventure.

I saw Quake 3 for OpenPandora.

Probably, all the graphical settings should be set to low because it's a more demanding game if someone ports it.

The Pyra will be updated to the latest armhf Debian hopefully in the near future.

Great!

This is the answer from Smallmodel about OpenMoHAA because I posted a link to this forum on GitHub:

As for bison, the version of bison that is always used is 3.8.2, with flex 2.6.4.

 
We're still using 3.3.2 with the stable version of the Pyra OS, and it seems 'api.location.type' wasn't supported for C prior to version 3.4..

We're expected to get everything working stable in the latest debian release in the near future, but it's a slow process. I suppose I can compile BISON 3.8.2 and link it in as well. Will have to wait until the weekend for me.
And just in case anyone wondered, the api.location.type is actually used. If YYLTYPE isn't defined it uses a default structure, but using this makes the build process fail.
So I guess the easiest way is to use the minimal required version of BISON.
 
Yes, like the Pyra the (Open-)Pandora can feature 2 SD-cards to store your games. The Pyra also has an internal slot for a micro-SD card.

Thank you for the answer.

I hope that Pyra users will have a chance to play Medal of Honor: Allied Assault War Chest soon, and maybe OpenPandora users in the future too.
 
Back
Top