Compare commits

...

2 Commits

Author SHA1 Message Date
magical 4622f61057 update README 2024-02-03 20:22:28 -08:00
magical 3c7ae38f81 restore GUI event loop 2024-02-03 20:22:28 -08:00
2 changed files with 82 additions and 68 deletions

20
GUI.py
View File

@ -231,19 +231,23 @@ def main_window(debug):
fileName = str() fileName = str()
finishGenerating = False finishGenerating = False
oldNum = str() oldNum = str()
while True:
(event, values) = window.read() (event, values) = window.read()
if event == ui.WINDOW_CLOSED: if event == ui.WINDOW_CLOSED:
pass break
elif event == 'Num': elif event == 'Num':
if len(values['Num']) > 3: if len(values['Num']) > 3:
window['Num'].update(oldNum) window['Num'].update(oldNum)
for x in range(4): for x in range(4):
if x < len(values['Num']) or values['Num'][x] not in '0123456789': if x < len(values['Num']):
if values['Num'][x] not in '0123456789':
window['Num'].update(oldNum) window['Num'].update(oldNum)
break
else:
oldNum = values['Num'] oldNum = values['Num']
# continue
if event == 'Generate': elif event == 'Generate':
basegame = ui.popup_get_file('Choose base game', no_titlebar=True, file_types=[('GBA File', '*.gba')], history=True, history_setting_filename=os.path.join('.', 'settings.json')) basegame = ui.popup_get_file('Choose base game', no_titlebar=True, file_types=[('GBA File', '*.gba')], history=True, history_setting_filename=os.path.join('.', 'settings.json'))
if basegame == '': if basegame == '':
ui.popup('Please select a Metroid Fusion (U) rom.', title='No source rom selected') ui.popup('Please select a Metroid Fusion (U) rom.', title='No source rom selected')
@ -268,11 +272,12 @@ def main_window(debug):
window['Num'].update(disabled=True) window['Num'].update(disabled=True)
window['Patch'].update(disabled=True) window['Patch'].update(disabled=True)
window['Generate'].update(disabled=True) window['Generate'].update(disabled=True)
if generating: if generating:
ui.popup_animated(ui.DEFAULT_BASE64_LOADING_GIF, 'Generating game, please wait...', time_between_frames=20) ui.popup_animated(ui.DEFAULT_BASE64_LOADING_GIF, 'Generating game, please wait...', time_between_frames=20)
window.Refresh() window.Refresh()
# continue
if finishGenerating: elif finishGenerating:
ui.popup_animated(None) ui.popup_animated(None)
if failedgen: if failedgen:
ui.popup('Could not generate a game with the current settings. Try changing your settings.', title='Metroid Fusion Open Randomizer') ui.popup('Could not generate a game with the current settings. Try changing your settings.', title='Metroid Fusion Open Randomizer')
@ -299,6 +304,5 @@ def main_window(debug):
window['Patch'].update(disabled=False) window['Patch'].update(disabled=False)
window['Generate'].update(disabled=False) window['Generate'].update(disabled=False)
finishGenerating = False finishGenerating = False
# continue
window.close() window.close()

View File

@ -4,13 +4,23 @@ This is the official unofficial Git repository for the Metroid Fusion Open Rando
Considering the original repository states that the software is GPL-3.0 licensed, but no source was ever released, we're endeavouring on this (potentially failing) task of making MFOR Open Again Considering the original repository states that the software is GPL-3.0 licensed, but no source was ever released, we're endeavouring on this (potentially failing) task of making MFOR Open Again
## Links
* [OpenMFOR repository][] (This project, in case you are looking at a fork)
* The [original MFOR repository][] on Github
* The [original MFOR thread][] on Metroid Construction
[OpenMFOR repository]: https://git.inabaudonge.reisen/OpenMFOR/OpenMFOR
[original MFOR repository]: https://github.com/Kazuto88/MFOR
[original MFOR thread]: https://forum.metroidconstruction.com/index.php/topic,5376.0.html
## Project Status ## Project Status
- [x] Decent disassembly - [x] Decent disassembly
- [x] GUI - [x] GUI
- [x] CRC verification - [x] CRC verification
- [ ] Logic - [x] Logic
- [ ] Reconstructing missing parts of code - [x] Reconstructing missing parts of code
- [x] Patching - [x] Patching
- [ ] Generating BPS patches - [ ] Generating BPS patches