Excellent explanation, excellent tool. Maybe a future executable asks the input system with a numbered choice?So the first very obvious advantage is that it compresses much better because it uses LZMA2 instead of zlib, also the extract loader I wrote does not include any linked standard libraries so it is very tiny and efficient (16kb for gc, 15kb for wii), also it properly supports command line arguments so you can call these .dol files through some other loader for example and let that autoboot whatever you selected in the other loader, dollz3 did not have any command line argument support at all. The entry point of all dolxz files are also as low as possible (0x80003100 on gamecube, 0x80003400 on wii) so you can fit as much data in as possible, dollz3 did not always support big files. And now we come to why there are two versions for both gamecube and wii. First you can see the entry point on wii has to be higher because more low memory is used by the system which we cant touch on wii without breaking something. Also because the wii has some extra devices its initialization code is slightly longer to properly set those up. After a dol file is loaded up I move it into another memory region so I can safely set up MEM1 from there. That memory region is different, on gamecube its ARAM and on wii its MEM2, so since I was unable to find a way to properly auto-detect if your input file is a wii or gamecube one I decided to just split them up to ensure it does not try to include the wrong loader.
I'll be using this only (+any future updates). Thanks, man.