Jump to content

Recommended Posts

Hello,

I modified the status icons in Exile 1-3 to use a pie chart to indicate the level from 1 to 8 of how much a PC is Blessed, Hasted, Poisoned, etc.

 

staticons.png

 

It is nice to know when a monster Slows or Curses or Acids your PCs, whether it is minor nuisance that will wear off by itself the next round, or a major problem that needs attention. There are download links to the patched games in this blog post. (These are the free registered versions from SW's site with some code and graphics modifications. I hope it is allowed to post these here?).

Link to post
Share on other sites

This is wild! I would not have guessed the game would have supported something like this, but I can imagine the work you needed to do to accomplish this. I usually like sticking to “stock” graphics but I will hopefully give this a shot later on. Thanks for sharing. 

Link to post
Share on other sites
  • 4 weeks later...

I despise the graphics (those pie charts look supremely ugly behind the tiny status effect icons) but the idea is pretty nice. From the sounds of it, this patch is more than just the graphics, right? I wouldn't expect the code to just support that implicitly…

 

It's a little unfortunate that the Mac version is harder to patch… why is that, exactly? Patching the graphics should be easy on your Basilisk image as long as you have ResEdit, so I assume the problem is code-related?

Link to post
Share on other sites
2 hours ago, Celtic Minstrel said:

I despise the graphics

 

Hah, yes, I am not an artist. Hopefully, someone will make nicer icons.

 

2 hours ago, Celtic Minstrel said:

I assume the problem is code-related?

 

Yes, the 68k code was compiled with Code Warrior, which uses it's own executable format. I couldn't find documentation on the exact format so I had to reverse engineer it. I finally did get the Mac version of Exile 3 working, but I haven't uploaded it anywhere yet. I'm trying to consolidate what I learned from doing Exile 3 into a process that will make it easier to patch Exiles I, II, and Blades.

Link to post
Share on other sites
7 hours ago, Motardo said:

Yes, the 68k code was compiled with Code Warrior, which uses it's own executable format. I couldn't find documentation on the exact format so I had to reverse engineer it. I finally did get the Mac version of Exile 3 working, but I haven't uploaded it anywhere yet. I'm trying to consolidate what I learned from doing Exile 3 into a process that will make it easier to patch Exiles I, II, and Blades.

Ah nice; and good to know you figured out a solution. I believe 68k code on MacOS was stored in the resource fork, right? Is that what you meant by using its own executable format, or is there something unusual about the code itself? I'm pretty sure there's actually a disassembler that runs right in ResEdit… but I could be wrong about either of those assertions.

Link to post
Share on other sites
On 9/14/2020 at 2:22 PM, The Almighty Doer of Stuff said:

statusstrength.png

Awesome! I'm going to use this for the Diseased icon because the pie chart doesn't work with that icon anyway.

 

On 9/14/2020 at 7:19 PM, Celtic Minstrel said:

I believe 68k code on MacOS was stored in the resource fork, right? Is that what you meant by using its own executable format, or is there something unusual about the code itself? I'm pretty sure there's actually a disassembler that runs right in ResEdit

 

Yes, 68k code is in CODE resources in the resource fork, and there is a nice disassembler plug-in for ResEdit that works really well.

 

For Windows 3.1, the executable format is well documented and public. It has to be because the program loader and initialization logic are built in to the Windows operating system, so any program that wants to run under Windows needs to follow the standard.

 

For Macintosh, by contrast, the operating system doesn't do any special load-time initialization when a program is launched. Each individual program is responsible for initializing itself. So the format of the executable is left to the whims of whatever compiler created it. I compiled the same test program using Apple's MPW, Metrowerks Code Warrior, and Symantec Think C. They all generated different executables. The worst part is that I could only find vague generalizations about their formats in the compiler documentation; not exact technical specifications. My guess is that they deliberately kept their format undocumented so that they would be free to make improvements with each new release version of their compilers. The secrecy is also a good defense against malware hackers. Windows, on the other hand, by declaring a public standard, was then unable to ever make changes.

 

Anyway, I've decoded about 60% of the executable format of Exile 3, and about 40% is still unknown. It was enough to get the status icons patch working. Hopefully, the other Exiles and Blades were created with the same compiler version and have the same format.

 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...