Jump to content

Motardo

Member
  • Posts

    13
  • Joined

  • Last visited

Posts posted by Motardo

  1. I was looking at how Sanctuary works in the legacy BoE source code and I noticed some inconsistency.

     

    combat.c -- monster_attack_pc()

    	// Check sanctuary
    	if (adven[target].status[8] > 0) {
    		r1 = get_ran(1,0,100);
    		if (r1 > hit_chance[attacker->m_d.level / 2]) {
    			add_string_to_buf("  Can't find target!                 ");		
    			}
    		return;  /* <-- Oops, return without attacking regardless of the roll */ 
    		}

     

    combat.c -- monster_fire_missile()

    			// Check sanctuary
    			if (adven[target].status[8] > 0) {
    				r1 = get_ran(1,0,100);
    				if (r1 > hit_chance[level]) {
    					add_string_to_buf("  Can't find target!                 ");		
    					}
    				return; /* <-- Oops, missile attacks always fail too */
    				}

     

    When a PC has Sanctuary, the "Can't find target" message has a random chance of being printed or not based on the attacking creatures level. The higher the level, the less chance the message with be printed. But either way, the attack always fails. This is probably a bug and not the behavior that the designer intended. Both Exile 2 and Exile 3 also have this bug (Exile I did not have Sanctuary at all).

     

    There are two ways to fix it:

    1) Make Santcuary succeed based on a die roll as originally intended

    2) Keep Sanctuary's 100% success rate, discard the randomness, and always print the "Can't find target" message


    At low levels, I often use Sanctuary to cheat battles with much stronger enemies. I have come to rely on it being a guaranteed safety. If it were to become less sure, especially against high level creatures, I would need to rethink a lot of my strategies, but that could be fun too.

     

  2. On 6/26/2021 at 9:04 AM, joleneth said:

    Could anyone suggest good resource for the details of item bonuses?  A fang necklace "blesses occasionally", but it also allows you to wear heavier armour without being encumbered.  How does it compare to the circlet of giants, or the gauntlets of skill, or a ring of skill?

    Here is a file with the specs of all the items in Exile 1. It was created by scraping the item data from the EXILE.EXE binary.

    Below is an excerpt from the file showing the items with negative encumbrance:

    | defen | encum | ability | fullname           |
    | ----- | ----- | ------- | ------------------ |
    |     0 |    -1 |      26 | Ring of Speed      |
    |     0 |    -3 |      47 | Circlet of giants  |
    |     0 |    -1 |      47 | Fang necklace      |
    |     3 |    -3 |      46 | Necklace of Lords  |
    |     3 |    -3 |       0 | Gauntlets of Skill |

     

  3. 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.

     

  4. 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.

  5. 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?).

  6. I think it would be difficult. Using Linux, I run the Mac versions on Basilisk (68k Mac emulator), and the Windows versions on DOSBox (DOS emulator). I think modern Mac users would also need Basilisk or DOSBox to run them.

     

  7. On 8/13/2020 at 12:44 PM, The Almighty Doer of Stuff said:

    Another thing I'd like is this: I want to make it so Instant Help is NOT turned on by default with new parties.

     

    Turning off Instant Help is the first thing I do every time I start new game. Making it off by default is a great idea.
    I put up a temporary link to a version of BLADES.EXE for Windows that has Instant Help off by default.
    It also has the Thrown Missile fix and Locked Door keyboard shortcuts.
    I will try to make patches for Exile 1-3 and the Mac versions too.

     

  8. I'm not sure about a simple patch file. I suppose it could be a script that edits the game file when run. Alternatively, it would be easy to make a patched version of the whole game and include that (assuming Spiderweb Software does not object?).

  9. 18 hours ago, Celtic Minstrel said:

    My understanding was that it also uses Thrown Weapons instead of Archery.

     

    It is definitely `Defense` instead of `Thrown`.

     

    18 hours ago, Celtic Minstrel said:

    Was it really present in Exile I though?

     

    It was present in the earliest versions I could find on old shareware disks: Exile I v1.0.5 for Mac, and Exile I v1.0.1 for Windows.

     

    By the way, I wanted to play with Throwing skill working so I used a hex editor to fix it.

     

×
×
  • Create New...