yo! no more FLIPS?
parent
7c262f4f64
commit
eb93656ec0
|
@ -1,5 +1,3 @@
|
||||||
__pycache__/**
|
__pycache__/**
|
||||||
*.gba
|
*.gba
|
||||||
settings.json
|
settings.json
|
||||||
flips/flips
|
|
||||||
flips/flips.exe
|
|
||||||
|
|
|
@ -10,11 +10,13 @@ Considering the original repository states that the software is GPL-3.0 licensed
|
||||||
- [x] GUI
|
- [x] GUI
|
||||||
- [x] CRC verification
|
- [x] CRC verification
|
||||||
- [ ] Logic
|
- [ ] Logic
|
||||||
- [ ] Patching
|
- [ ] Reconstructing missing parts of code
|
||||||
|
- [x] Patching
|
||||||
|
- [ ] Generating BPS patches
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Beware: stuff doesn't work as it should yet. Prerequisites are PySimpleGUI (and tkinter by proxy). A prerequisites file is going to be added in the future.
|
Beware: stuff doesn't 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.
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
|
|
|
@ -13,6 +13,8 @@ import zlib
|
||||||
import math
|
import math
|
||||||
import Fusion_Graph as Graph
|
import Fusion_Graph as Graph
|
||||||
from Fusion_Items import *
|
from Fusion_Items import *
|
||||||
|
from bps.apply import apply_to_files
|
||||||
|
|
||||||
version = '0.11.6'
|
version = '0.11.6'
|
||||||
|
|
||||||
def ceiling(num, denom):
|
def ceiling(num, denom):
|
||||||
|
@ -4665,8 +4667,17 @@ def patch_game():
|
||||||
os.system('.\\armips\\armips.exe "Metroid Fusion Open Randomizer.asm" -root ".\\data\\asm" -sym ".\\temp.sym"')
|
os.system('.\\armips\\armips.exe "Metroid Fusion Open Randomizer.asm" -root ".\\data\\asm" -sym ".\\temp.sym"')
|
||||||
os.replace('.\\data\\MFOR.gba', '.\\seeds\\{}.gba'.format(FileName))
|
os.replace('.\\data\\MFOR.gba', '.\\seeds\\{}.gba'.format(FileName))
|
||||||
else:
|
else:
|
||||||
# FIXME: windows?
|
source = open(BaseName, 'rb')
|
||||||
os.system(os.path.join('.', 'flips', 'flips') + ' --apply ' + os.path.join('.', 'data', 'MFOR.bps') + ' "' + BaseName + '" "'+ os.path.join('.', 'seeds', '{}.gba'.format(FileName)) + '"')
|
target = open(os.path.join('.', 'seeds', '{}.gba'.format(FileName), 'wb')
|
||||||
|
patch = open(os.path.join('.', 'data', 'MFOR.bps'), 'rb')
|
||||||
|
try:
|
||||||
|
apply_to_files(patch, source, target)
|
||||||
|
except:
|
||||||
|
target.close()
|
||||||
|
os.unlink(os.path.join('.', 'seeds', '{}.gba'.format(FileName))
|
||||||
|
print('Error: failed to patch game with base patch!')
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
checksum = fileHash(os.path.join('.', 'seeds', '{}.gba'.format(FileName)))
|
checksum = fileHash(os.path.join('.', 'seeds', '{}.gba'.format(FileName)))
|
||||||
if checksum != 2455114263:
|
if checksum != 2455114263:
|
||||||
os.remove(os.path.join('.', 'seeds', '{}.gba'.format(FileName)))
|
os.remove(os.path.join('.', 'seeds', '{}.gba'.format(FileName)))
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
PySimpleGUI==4.60.5
|
||||||
|
python-bps-continued==7
|
Loading…
Reference in New Issue