wine: pure python generator - #16203
Conversation
|
@bryanforbes @crcerror please review :) |
45fd885 to
79230eb
Compare
|
There are some things missing
I did not check everything but if you want to implent the Python call then go the full mile like I have done here #13542 and check every line and every call twice. This PR was hard work and done without any AI and there was no critical mistake madein the refactor. It was worth it ... Before it was hard to maintain, after this it was readable, all variables are exposed and gives you now the possibility to reimplement in python What I see in your PR that you concentrate on archive - files. That is the way to go after you are sure the game works. But from some missing parts In have wrote in the list I assume you did not test yet or you still want to use the batocera-wine as tool subset within the python call? In the end you will see that python isn't magic and I fear you just change complexity with redundancy. |
5003831 to
3941c33
Compare
|
are some things missing
it's was only with launching the game, but not in installer or other prefix launch. I had fixed it, it's now in every wine execution environment
This one is already working. (tested with .msi, .iso, .exe). it's done in "def __installed" in winegenerator.py, which is called in "def running", after that the wine process of installer is finished. (I just pushed a small improvement for .iso installation, with autorun.inf reading to auto exec the setup)
This one is already implemented too, in called in
his one was missing. I have added it. (reading /proc/mounts instead calling df , to avoid possible hang of df with nfs/smb mount)
this one is already implemented. win32 prefix is detected with reading userdef.reg in "def current_prefix_arch". the old setprefixarch() code is mostly done in wine.py def post_init
yes, I have see that, nice work !
I had tested on my side all commands for new batocera-wine python && the generator game start && installer for differents extensions. From python generator, I don't want (and don't do) any call to batocera-wine. |
929dd88 to
d02e7d1
Compare
|
No if the runner is named Please add the default exe-array and the ability to add additional excludes from a file. It looks into 2 places... for I know this are all things AI isn't available to recognise. So go the full mile and check every call. I also miss or maybe did overwatch it but what about the installs of reg.keys exe and MSI and fonts per default in the directory? See that are all things I changed added and so an but also @nadenislamarre should add his comments here. He started the script and everything I did not know why it handles it that way I left unchanged 1:1 |
b493d14 to
aa69b8f
Compare
- utils/wine.py holds what every wine system needs: runners and prefixes, building and importing into a prefix, autorun.cmd, saves, the filesystem a prefix sits on, and stopping whatever runs in a prefix. - the wine generator runs the games of any system itself, windows and windows_installers as much as mugen, each keeping its prefixes under wine-bottles/<system>/<runner>/. It builds the command and the environment for every rom extension (.wine, .pc, .exe, .wsquashfs, .wtgz) and for the installers (.exe, .msi, .iso). An installation image is run through the installer its autorun.inf names, and only opens its drive in the file manager when it names none. - batocera-wine keeps what is a tool rather than a launch: tricks, createprefix, wine2squashfs, wine2winetgz, autorun/-list/-count and stop.
aa69b8f to
1cd9193
Compare
Well, it's already currently handled it's creating a 32bit prefix when runner is named win32-xxx or enable_win32 option is enable when prefix don't exist, I have rewritten a little bit the code with more logs to match old batocera-wine, and move the check in Runner class postinit.
t's already handled too, in utils/wine.py
same, in utils/wine.py
yes, like in old batocera-wine in play_* o install_*
I have tested all the features manually for now, but I'm currently writting unit tests to be sure that no case is forgotten. |
|
Hope it will work. Let others review now. One critics: use more destinct comments that nails the case. It is better readable and maintainable now? I have doubts but if everything is tested and works then proceed. |
utils/wine.py holds what every wine system needs: runners and prefixes, building and importing into a prefix, autorun.cmd, saves, and stopping whatever runs in a prefix.
the wine generator runs the windows and windows_installers systems itself, building the command and the environment for every rom extension (.wine, .pc, .exe, .wsquashfs, .wtgz) and for the installers (.exe, .msi, .iso).
batocera-wine keeps what is a tool rather than a launch: tricks, createprefix, wine2squashfs, wine2winetgz, autorun/-list/-count and stop.
some related PR:
squashfs umount fix (currently it's not waiting that all wine process are closed, so squashfs is not correctly umounted:
#16093
mugen generator (pure python without batocera-wine):
#16094