Update README.md

This commit is contained in:
fgsfds authored and GitHub committed 2023-10-24 15:55:04 +02:00
1 parent 30b8400d86
commit 368021201b
1 file changed
+39 -11
+39 -11
View File
@@ -2,22 +2,36 @@
This repository contains a work-in-progress port of the [Perfect Dark decompilation](https://github.com/n64decomp/perfect_dark) to modern platforms. This repository contains a work-in-progress port of the [Perfect Dark decompilation](https://github.com/n64decomp/perfect_dark) to modern platforms.
To run the port, you must already have a Perfect Dark ROM, specifically the ntsc-final/revision 1 version To run the port, you must already have a Perfect Dark ROM, specifically one of the following:
(md5 `e03b088b6ac9e0080440efed07c1e40f`). * `ntsc-final`/`US V1.1`/`US Rev 1` (md5 `e03b088b6ac9e0080440efed07c1e40f`).
**This is the recommended version to use**.
Called `NTSC version 8.7 final` on the boot screen.
* `ntsc-1.0`/`US V1.0` (md5 `7f4171b0c8d17815be37913f535e4e93`).
Technically supported, but not recommended.
Called `NTSC version 8.7 final` on the boot screen as well.
* `jpn-final` (md5 `538d2b75945eae069b29c46193e74790`).
Technically supported, but requires a separate custom-built executable.
Called `JPN version 8.9 final` on the boot screen.
## Status ## Status
Currently only 32-bit platforms are supported, namely x86 Windows and Linux. The game is in a mostly functional state, with both singleplayer and split-screen multiplayer modes fully working.
There are minor graphics- and gameplay-related issues, and possibly occasional crashes.
**The following extra features are implemented:**
* mouselook;
* dual analog controller support;
* widescreen resolution support;
* configurable field of view;
* 60 FPS support, including fixes for some framerate-related issues;
* fixes for a couple original bugs and crashes;
* basic mod support, currently enough to load a few custom levels;
* slightly expanded memory heap size.
Currently only 32-bit platforms are supported, namely x86 Windows and Linux.
Note that 32-bit binaries will still work on 64-bit versions of those platforms, Note that 32-bit binaries will still work on 64-bit versions of those platforms,
though you might have to install some additional libraries. though you might have to install some additional libraries.
The game is in a somewhat functional but probably unstable state.
There are major graphical issues, minor audio issues and possibly other issues.
There are currently no "extra features" implemented
except for janky mouselook, arbitrary resolution support (with partial widescreen support), some extra controls
and somewhat expanded heap size.
## Download ## Download
Latest [automatic builds](https://github.com/fgsfdsfgs/perfect_dark/actions) for supported platforms: Latest [automatic builds](https://github.com/fgsfdsfgs/perfect_dark/actions) for supported platforms:
@@ -26,12 +40,16 @@ Latest [automatic builds](https://github.com/fgsfdsfgs/perfect_dark/actions) for
## Running ## Running
You must already have a Perfect Dark ROM to run the game, as specified above. You must already have a Perfect Dark ROM to run the game, as specified above.
1. Create a directory named `data` next to `pd.exe`. 1. Create a directory named `data` next to `pd.exe`.
2. Put your Perfect Dark ROM named `pd.ntsc-final.z64` into it. 2. Put your Perfect Dark ROM named `pd.ntsc-final.z64` into it.
3. Run `pd.exe`. 3. Run `pd.exe`.
Additional information can be found in the [wiki](https://github.com/fgsfdsfgs/perfect_dark/wiki).
A GPU supporting OpenGL 3.0 or above is required to run the port.
## Controls ## Controls
1964GEPD-style and Xbox-style bindings are implemented. 1964GEPD-style and Xbox-style bindings are implemented.
@@ -40,6 +58,9 @@ N64 pad buttons X and Y (or `X_BUTTON`, `Y_BUTTON` in the code) refer to the res
Support for one controller, two-stick configurations are enabled for 1.2. Support for one controller, two-stick configurations are enabled for 1.2.
Note that the mouse only controls player 1.
Controls can be rebound in `pd.ini`. Default control scheme is as follows:
| Action | Keyboard and mouse | Xbox pad | N64 pad | | Action | Keyboard and mouse | Xbox pad | N64 pad |
| - | - | - | - | | - | - | - | - |
@@ -80,6 +101,11 @@ Support for one controller, two-stick configurations are enabled for 1.2.
Currently only `i686-linux` and `i686-windows` are supported, using `gcc -m32` and `i686-w64-mingw32-gcc` as compilers, respectively. Currently only `i686-linux` and `i686-windows` are supported, using `gcc -m32` and `i686-w64-mingw32-gcc` as compilers, respectively.
Alternate compilers can be specified by passing `TOOLCHAIN=i686-whatever-` as a command line argument. Alternate compilers can be specified by passing `TOOLCHAIN=i686-whatever-` as a command line argument.
For both platforms you can optionally specify `ROMID=jpn-final` on the `make` command line to build the JPN executable.
You will need to provide a `jpn-final` ROM for that, named `pd.jpn-final.z64`.
It might be possible to build a 32-bit ARM executable, but this has not been tested.
## Credits ## Credits
* the original [decompilation project](https://github.com/n64decomp/perfect_dark) authors; * the original [decompilation project](https://github.com/n64decomp/perfect_dark) authors;
@@ -87,4 +113,6 @@ Alternate compilers can be specified by passing `TOOLCHAIN=i686-whatever-` as a
* [sm64-port](https://github.com/sm64-port/sm64-port) authors for the audio mixer and some other changes; * [sm64-port](https://github.com/sm64-port/sm64-port) authors for the audio mixer and some other changes;
* [Ship of Harkinian team](https://github.com/Kenix3/libultraship/tree/main/src/graphic/Fast3D), Emill and MaikelChan for the libultraship version of fast3d that this port uses; * [Ship of Harkinian team](https://github.com/Kenix3/libultraship/tree/main/src/graphic/Fast3D), Emill and MaikelChan for the libultraship version of fast3d that this port uses;
* lieff for [minimp3](https://github.com/lieff/minimp3); * lieff for [minimp3](https://github.com/lieff/minimp3);
* Mouse Injector and 1964GEPD authors for some of the 60FPS- and mouselook-related fixes;
* everyone who has submitted pull requests and issues to this repository and tested the port;
* probably more I'm forgetting. * probably more I'm forgetting.