Project Midas
This is a video game about Jimothy's presumed-dead best friend Jarvis turns out to be alive, and in possession of a space laser he intends to point at a city - so Jimothy goes to the Cuban jungle and drops Jarvis off a satellite dish.
Project Midas is a work-in-progress PC port of GE, built from the N64 decompilation. It runs on Windows and Linux and reads its game data from your own copy of the US cart.
Playing
- Put your GE (USA) cart image in the
Datafolder next to the executable. SeeData/README.txtfor the accepted formats and other ways to point the game at it. - Run
ProjectMidas.exe(Windows) orProjectMidas(Linux).
Files next to the executable:
| Path | What it is |
|---|---|
midas.ini |
Settings. Written on first run; delete it to restore the defaults. See midas_ini_help.txt. |
Data/ |
Your cart image goes here. |
Data/Saves/eeprom.bin |
Save file. |
Data/Profiles/ |
Player profiles (.geprofile) and lifetime multiplayer stats (.gestats). |
Data/WeaponSets/ |
Custom multiplayer weapon sets (.gewset). |
Data/MatchSettings/ |
Saved multiplayer settings (.gemp), from Load / Save Settings. |
Data/Devices/ |
Per-device settings (.gedevice). Keyboard and mouse binds are in kbm.gedevice. |
gamecontrollerdb.txt |
SDL controller mappings. |
gamecontrollerdefault.txt |
Built-in controller layouts. |
gamecontrolleruser.txt |
Your saved controller layouts. |
Data/Logs/ge_direct.log |
The run log on Windows (the game opens no console window). |
Data/Logs/crash.log |
Written if the game crashes. |
Mods/ |
Reserved for modded carts. This build loads the stock cart only. |
An older ge.ini is renamed to midas.ini automatically on first run.
Building
The build runs in Docker, which has every tool and library both builds need. You also need the GE (USA) cart as baserom.u.z64 in the repository root:
sha1: abe01e4aeb033b6c0836819f549c791b26cfde83
On Windows: use WSL
The commands below are for a Linux shell. On Windows, run them in WSL:
- Install WSL with Ubuntu (
wsl --installin PowerShell), and turn on WSL integration in Docker Desktop (Settings > Resources > WSL integration). - Open the Ubuntu terminal and clone the repository inside WSL, not under
/mnt/c(much faster):cd ~ git clone https://github.com/murkantor/Project-Midas.git cd Project-Midas - Copy your cart in, for example from your Windows Downloads folder:
cp /mnt/c/Users/<you>/Downloads/baserom.u.z64 .
Build steps
- Build the image (once):
docker build --network=host --build-arg HOST_UID=$(id -u) --build-arg HOST_GID=$(id -g) -t goldeneye . - Start a container in the repository:
docker run --rm -it -v $(pwd):/home/dev/project goldeneye - Extract the assets (once):
./scripts/extract_baserom.u.sh make convert_props convert_chrs convert_guns combine_images - Build for Windows (x86):
cmake -B build_win -DCMAKE_TOOLCHAIN_FILE=cmake/mingw-i686.cmake -DCMAKE_BUILD_TYPE=Debug -DGE_VIDEO=ON -DSDL2_MINGW_ROOT=$HOME/sdl2-mingw/SDL2-2.30.11/i686-w64-mingw32 cmake --build build_win -j$(nproc) - Build for Linux:
cmake -B build_pc -DCMAKE_BUILD_TYPE=Debug -DGE_VIDEO=ON -DSDL2_LINUX_ROOT=$HOME/sdl2-linux-i686 cmake --build build_pc -j$(nproc)
| Build | Game | Next to it |
|---|---|---|
| Windows | build_win/ProjectMidas.exe |
SDL2.dll, the controller files, Data/ |
| Linux | build_pc/ProjectMidas |
the controller files, Data/ |
To play, put a copy of baserom.u.z64 in that build's Data/ folder. On Windows, copy the whole build_win folder somewhere in Windows (from WSL: explorer.exe build_win) and run ProjectMidas.exe there. The Linux build needs 32-bit SDL2 and OpenGL on the machine that runs it. On Ubuntu or Debian:
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libsdl2-2.0-0:i386 libgl1:i386
Known issues
- On some Linux systems, levels draw as a few large blank triangles. Starting the game with these environment variables works around it:
GE_FULLHEIGHT=0 GE_EDGEINSET=1 ./ProjectMidas
Contributing
Co-op, netplay and mod loading are already in progress. Please contribute here rather than forking; see CONTRIBUTING.md for what a good pull request looks like, including the rules for AI-assisted changes.
License
The Project Midas port code is MIT licensed; see LICENSE. The license does not cover the decompiled game code, GE itself or its assets. Bundled third-party code keeps its own license; see tools/THIRD_PARTY_NOTICES.txt.
Acknowledgements
Project Midas builds on the work of many people and projects.
- GoldenEye decompilation by KholdFuzion and contributors
- GoldenEye docs
- Perfect Dark decompilation by Ryan Dwyer and contributors
- Perfect Dark PC port by fgsfds
- Perfect Dark netplay (fork of fgsfds'
port-net) - GE Plus by Joshua
- The DOOM III Network Architecture by J.M.P. van Waveren (id Software, 2006)
- Fast3D renderer by Emill and MaikelChan (MIT)
- SDL2 and glad
- SDL_GameControllerDB
- ENet
- xdelta3
- ido-static-recomp, rabbitizer, qemu-irix and armips
- The 1964 emulator and its GE/Perfect Dark mouse injector
- pj64raphnetraw by Raphael Assenat (raphnet-tech), the reference for the raphnet adapter protocol
GE is owned by Rare, Nintendo and the Bond rights holders. This project contains no game assets.
