Right, I've part disassembled the ExileL loader file (using the excellent py8dis utility), and created a BeebASM file that allows me to modify and re-assemble.
A lot of the code is similar / identical to the code used in the main game files ExileB / ExileMC, so I've borrowed a lot of the labels from the excellent work previously done by level7 & Tom_Seddon. I've not even tried to figure out how some of that code works!
Hopefully I've captured all the pointer references and made them dynamic, so if any code moves, the pointer references will update. It seems to work. I've removed some redundant code and modified a couple of OSFILE tables so games can now be saved / loaded from a SAVES subdirectory, and it all seems to work.
The disassembly is not fully commented / labelled. Other than lifting the labels from the previous work, I've just focused on the areas of code related to the loader menu.
I'll upload the py8dis python control file, and the BeebASM file to github shortly, but thought I would also attach a disc image here, in case anyone wants to try this on their own Econet file server. The files need to be copied over from the disc image to an appropriate directory on your file server. You will then need to create a sub directory called SAVES. This is obviously where games files are saved to / loaded from, and is the directory that gets catalogued.
Don't try using this disc image to run the game from floppy. If you do, load / save / catalogue functions will not work correctly. If you *really* want to use this disc image to run the game from floppy, then there's a back up copy of the original disc loader on the disc called ExileLD. Rename the new Econet version of the loader file from ExileL to ExileLN, and then rename the original disc loader file from ExileLD to ExileL.
When I started looking at the loader disassembly, I noticed a couple of sections of code have been NOP'd out. I'm not sure if the game was shipped like this, or if someone has previously been dabbling. The version I have been working on came from the STH archives. So, I decided to have a quick look at some of the .hfe disc images that have been produced more recently, to see if they also had these NOP's. Specifically, the Exile_v3 image from here (I couldn't read the V1 image using my gotek / 1770 controller):
viewtopic.php?p=317161#p317161
https://drive.google.com/drive/folders/ ... 2_0Oauaxdb
Turns out these disc images all have some level of protection / obfusation. So a bit of effort was required to get to the raw un-obfusated files. Having done that, I notice that the loader file is not exactly the same as the one I've been working on. The NOPs don't exist, but there are some other subtle changes that I've not dug into fully yet. The main ExileB / ExileMC files are also slightly different to those that were dis-assembled by level7 / tom. Again, I've not spent any time investigating this yet. The main ExileB / ExileMC files in the V3 image include a novella look up / copy protection that doesn't exist in the STH version or the version that has been disassembled. So I'm also not sure where the source files used for the disassembly by level7 came from. They appear to have come from the STH version, and I suspect that version is a slightly hacked version to overcome the copy protection. But that's all speculation.
Anyway, here's the disc image with the Econet based loader. Please do let me know if it works (or indeed, if it doesn't, work) for you:
A lot of the code is similar / identical to the code used in the main game files ExileB / ExileMC, so I've borrowed a lot of the labels from the excellent work previously done by level7 & Tom_Seddon. I've not even tried to figure out how some of that code works!
Hopefully I've captured all the pointer references and made them dynamic, so if any code moves, the pointer references will update. It seems to work. I've removed some redundant code and modified a couple of OSFILE tables so games can now be saved / loaded from a SAVES subdirectory, and it all seems to work.
The disassembly is not fully commented / labelled. Other than lifting the labels from the previous work, I've just focused on the areas of code related to the loader menu.
I'll upload the py8dis python control file, and the BeebASM file to github shortly, but thought I would also attach a disc image here, in case anyone wants to try this on their own Econet file server. The files need to be copied over from the disc image to an appropriate directory on your file server. You will then need to create a sub directory called SAVES. This is obviously where games files are saved to / loaded from, and is the directory that gets catalogued.
Don't try using this disc image to run the game from floppy. If you do, load / save / catalogue functions will not work correctly. If you *really* want to use this disc image to run the game from floppy, then there's a back up copy of the original disc loader on the disc called ExileLD. Rename the new Econet version of the loader file from ExileL to ExileLN, and then rename the original disc loader file from ExileLD to ExileL.
When I started looking at the loader disassembly, I noticed a couple of sections of code have been NOP'd out. I'm not sure if the game was shipped like this, or if someone has previously been dabbling. The version I have been working on came from the STH archives. So, I decided to have a quick look at some of the .hfe disc images that have been produced more recently, to see if they also had these NOP's. Specifically, the Exile_v3 image from here (I couldn't read the V1 image using my gotek / 1770 controller):
viewtopic.php?p=317161#p317161
https://drive.google.com/drive/folders/ ... 2_0Oauaxdb
Turns out these disc images all have some level of protection / obfusation. So a bit of effort was required to get to the raw un-obfusated files. Having done that, I notice that the loader file is not exactly the same as the one I've been working on. The NOPs don't exist, but there are some other subtle changes that I've not dug into fully yet. The main ExileB / ExileMC files are also slightly different to those that were dis-assembled by level7 / tom. Again, I've not spent any time investigating this yet. The main ExileB / ExileMC files in the V3 image include a novella look up / copy protection that doesn't exist in the STH version or the version that has been disassembled. So I'm also not sure where the source files used for the disassembly by level7 came from. They appear to have come from the STH version, and I suspect that version is a slightly hacked version to overcome the copy protection. But that's all speculation.
Anyway, here's the disc image with the Econet based loader. Please do let me know if it works (or indeed, if it doesn't, work) for you:
Statistics: Posted by KenLowe — Fri Jan 10, 2025 10:37 pm