yet another readme edit with some useful info

This commit is contained in:
Lucent 2024-02-13 01:14:58 +01:00
parent 5e214fb3eb
commit f7465b78bf

View file

@ -4,7 +4,7 @@ This is the official unofficial Git repository for the Metroid Fusion Open Rando
We're striving to have feature parity with the (now closed source) original project, while targeting any platform where Python can run (and, if patches are needed, FLIPS can be built).
Caveat emptor: the project is already diverging from the original decompilation as logic variations and patches to make the software platform indipendent have been applied already to this repository.
Caveat emptor: the project is already diverging from the original decompilation as logic variations and patches to make the software platform independent have been applied already to this repository.
## Links
@ -25,16 +25,38 @@ Caveat emptor: the project is already diverging from the original decompilation
- [x] Reconstructing missing parts of code
- [x] Patching
- [x] Generating BPS patches (python-bps-continued used to apply base patch as it's platform independent, but FLIPS to generate BPS files)
- [ ] Potentially merging/reimplementing the new features from v2024.02.10
- [ ] Solver refactoring
- [ ] CI/CD for Windows frozen builds
## Install
On *NIX OSes, the only strict prerequisites are Python 3.x and pip. For the GUI, sourcing `python3-tk` from your package manager is highly recommended.
Quick start on Debian and derivative distros (Ubuntu, Mint, etc.) while there's no install script:
- `git clone --recursive https://git.inabaudonge.reisen/OpenMFOR/OpenMFOR.git`
- `sudo apt install python3-tk build-essential g++`
- `cd OpenMFOR`
- `python -m venv venv`
- `. venv/bin/activate` (remember to use this command whenever you need to run OpenMFOR again)
- `pip install -r requirements.txt`
- `python MFOR.py`
(Optional, but recommended) to build FLIPS to generate patches:
- `cd flips`
- `./make.sh`
On other distros refer to your package manager to track the equivalent packages. As an example, on Void Linux, under xbps, `python3-tk` is named `python3-tkinter`.
## Usage
Beware: stuff doesn't _fully_ work as it should yet. Prerequisites are PySimpleGUI (and tkinter by proxy) and python-bps-continued. A prerequisites file is available so you can `pip install -r requirements.txt` away.
The command to launch the GUI/CLI interface is `python MFOR.py`, `--help` is available to have a list of valid switches. On the GUI, choose your game options (hover over a given option to see a tooltip explaining it), then click Generate. A popup will ask you to open an unmodified copy of the original game. This is not provided with the randomizer for legal reasons.
Clone the repository, install prerequisites manually via pip or your favourite package manager, `python MFOR.py`. Choose your game options (hover over a given option to see a tooltip explaining it), then click Generate. A popup will ask you to open an unmodified copy of the original game. This is not provided with the randomizer for legal reasons.
To build FLIPS (present as a submodule), prerequisites are a C++ compiler and OpenMP headers (both part of `build-essential` on Debian and derivatives). Refer to [FLIPS' README](https://github.com/Alcaro/Flips) for further info.
To build FLIPS (present as a submodule), prerequisites are a C++ compiler, `libgomp` and `libgomp-devel`. Refer to [its README](https://github.com/Alcaro/Flips) for further info.
The randomizer currently works with **only** the USA/Australia version of the game. To ensure you have the correct version of the game, the CRC32 checksum should be: `6C75479C`
The randomizer currently works **only** with the USA (and, by proxy, the Australian) version of the game. To ensure you have the correct version of the game, the CRC32 checksum should be: `6C75479C`.
## Help
@ -44,16 +66,14 @@ The randomizer currently works with **only** the USA/Australia version of the ga
## Special Thanks
[magical](https://git.tilde.town/magical/OpenMFOR)'s efforts into untangling pretty much the entirety of the randomizer logic. Without their contribution this repository would be yet another project left to rot into yet another of my hard drives.
- [magical](https://git.tilde.town/magical/OpenMFOR)'s efforts into untangling pretty much the entirety of the randomizer logic. Without their contribution this repository would be yet another project left to rot into yet another of my hard drives.
- [Decompyle++](https://github.com/zrax/pycdc) has been used for the initial disassembly. [R. Bernstein](https://github.com/rocky) because uncompyle6, decompile3, xdis and python-control-flow kickstarted this project.
- [tcprescott's python-bps-continued](https://github.com/tcprescott/python-bps-continued) since this makes at least rolling the seeds completely platform independent.
- [Alcaro's Floating IPS](https://github.com/Alcaro/Flips)
[Decompyle++](https://github.com/zrax/pycdc) has been used for the initial disassembly. [R. Bernstein](https://github.com/rocky) because uncompyle6, decompile3, xdis and python-control-flow kickstarted this project.
[Kazuto88](https://github.com/Kazuto88) being the original randomizer developer. The following lines are his special thanks to the people that contributed to making this a reality:
[Kazuto88](https://github.com/Kazuto88) for the actual development of the randomizer. Next lines are his special thanks to the people that contributed with the patching necessary to make this a reality:
Much thanks to the folks in the MAGConst Discord for longtime help with Metroid Fusion/general GBA modding.
Thanks to biospark for creating the Fusion level editor MAGE, and nearly all of the documented data on Metroid Fusion that helped make this randomizer a possibility.
Thanks to interdpth for direct code assistance, and for his longtime contributions to the GBAtroid modding scene.
Thanks to everyone who helped with early testing, bug finding, proposed fixes, etc.
- Much thanks to the folks in the MAGConst Discord for longtime help with Metroid Fusion/general GBA modding.
- Thanks to biospark for creating the Fusion level editor MAGE, and nearly all of the documented data on Metroid Fusion that helped make this randomizer a possibility.
- Thanks to interdpth for direct code assistance, and for his longtime contributions to the GBAtroid modding scene.
- Thanks to everyone who helped with early testing, bug finding, proposed fixes, etc.