Jump to content

Celtic Minstrel

Global Moderator
  • Posts

    4,168
  • Joined

  • Last visited

Retained

  • Blades of Exile Maintainer

Contact Methods

Profile Information

  • Gender
    Not Telling

Recent Profile Visitors

3,487 profile views

Celtic Minstrel's Achievements

Understated Ur-Drakon

Understated Ur-Drakon (15/17)

  1. I think I would say that dealing with compatibility issues without changing the scenarios themselves is certainly the ideal goal. But on the other hand, adding a special engine patch solely for one specific scenario seems like a terrible idea. So I would guess that getting permission for minor changes is a way of covering all bases? For my part, I was never planning to edit any scenarios other than Bandit Busywork and the three originals distributed with the game, nor even update other scenarios to the new scenario format. I'm not going to stop other people from doing that if they want to, however.
  2. If it's been done, I would expect it to have been done with DOSBox. The only other alternative would be to install real DOS in a bare emulator. You can't run Windows 3.1 without DOS after all – it's not an operating system, only a desktop environment.
  3. I honestly have no idea, but it would surprise me if there wasn't a version of DOSBox for whatever OS you can name; and ChromeOS is apparently Linux-based so I'd think it wouldn't be that hard to find a DOSBox that works on it. I'd be less certain that it would be easy to make it work though. I'm also not sure why you'd assume that the browser version wouldn't be able to run Windows 3.1. I'm not saying it definitely would, but I don't think it's completely out of the question.
  4. I've managed to get the Exile trilogy to run using Windows 3.1 on DOSBox. The only slightly tricky part was setting up sound drivers, and unlike when I tried it under WINE, it runs really well. I imagine you could get Windows 95 or 98 to work in DOSBox too, but I haven't tried it. I've also managed to get the Mac version running in Basilisk II, but I imagine that would be a tougher sell, especially when your host OS is Windows. I'm not sure if Basilisk II even has a Windows version… and you need to find a ROM somehow, which is quite difficult.
  5. Since the minimum value is 1, a 0 in the charm odds would mean a monster of that level can never be captured. So that would imply the level 30 guard really can't be captured? …except for that calculation done on the generated value. If the generated value is 1, multiplying it by 7 and dividing by 100 would give 0, so there is a very small chance to capture a Guard? As for the implementation of get_ran, it does use standard random functions inside it, though the implementation varies between the Mac version, the Windows version, and the open-source version. In the Mac version it looks like this: short get_ran (short times,short min,short max) { long int store; short i, to_ret = 0; for (i = 1; i < times + 1; i++) { store = Random(); to_ret = to_ret + min + (((store + 32767) * (max - min + 1)) / 65536); } return to_ret; } The Random() function is part of the Macintosh Toolkit, and I don't know exactly what it does off the top of my head. However, it looks like it gives 4 bytes of precision and he's collapsing the result into 2 bytes. In the Windows version, it looks like this: short get_ran (short times,short min,short max) { short store; short i, to_ret = 0; if ((max - min + 1) == 0) return 0; for (i = 1; i < times + 1; i++) { store = rand() % (max - min + 1); to_ret = to_ret + min + store; } return to_ret; } That rand() is the standard C function. The open-source version is pretty much the same as the Windows version, but for some reason is missing the divide-by-zero check.
  6. I don't know of a definite way to determine which monsters are immune in Exile 3. The best I can offer is the Blades of Exile source code, which is probably the same as in Exile 3. void record_monst(cCreature* which_m, bool forced) { short r1; r1 = get_ran(1,1,100); r1 = (r1 * 7) / 10; if(forced) r1 = 0; if((which_m->x_width > 1) || (which_m->y_width > 1)) { ASB("Capture Soul: Monster is too big."); } else if(r1 > cCreature::charm_odds[which_m->level / 2] || which_m->abil[eMonstAbil::SPLITS].active || which_m->m_type == eRace::IMPORTANT) { which_m->spell_note(10); play_sound(68); } else { which_m->spell_note(24); r1 = get_ran(1,0,univ.party.imprisoned_monst.size() - 1); if(univ.party.imprisoned_monst[r1] == 0) univ.party.imprisoned_monst[r1] = which_m->number; else { r1 = get_ran(1,0,3); univ.party.imprisoned_monst[r1] = which_m->number; } ASB("Capture Soul: Success!"); add_string_to_buf(" Caught in slot " + std::to_string(r1 + 1) + "."); play_sound(53); } } You can see that monsters larger than a single space, monsters with the "splits" ability, and monsters with the "important" race are immune. It looks like those are the only conditions for immunity (in case you were wondering, the "charm_odds" is the chance of succeeding when you attempt to capture a monster that's not immune). It's worth noting that resistance or immunity to magic does not appear to be factored in at all. I think the town guards actually are capturable. They're just quite hard to capture because they're high level.
  7. I believe monsters with the "splits when hit" ability are defined to be immune to Simulacrum, meaning it is in fact impossible to capture them. The same goes for monsters of type "important", which includes Erika and Rentar-Ihrno. There may be some other classes of monsters that are also immune.
  8. I don't recall seeing performance issues running on Win3.1 in DOSBox. I think the rendering issues I saw when running Exile 3 under WINE (the minimap wouldn't render, and I think there was some issue with dialogs maybe) were also not an issue in Win3+DOSBox. I'd have to give it another try to be certain though…
  9. I'm not sure that this is quite correct. The game runs just fine on Windows 3.1, so I'm not sure if it's correct to claim it was ported explicitly to Windows 95, though the time period definitely matches (I think it was released in 97 or so?). But, that leads into the second part, which is about the best way to run the game. I think the absolute best way to run the game is actually Basilisk II, a Macintosh emulator; but for the Windows version, the best way in my opinion is a DOSBox image running Windows 3.1. It's admittedly a little involved to set up, though. EDIT: It would be really nice if we could post pre-built images for playing Exile on Basilisk/DOSBox. Is Windows 3.1 still under copyright? Or the older Macintosh ROMs? Or the SoundBlaster drivers (needed for the DOSBox image)? I don't think I've seen anything to suggest they aren't, but they're pretty old so I wonder if they might be…
  10. C++14 might be close enough, though you probably need to build the whole game with C++14 in that case. I'm not really sure why it would complain that tgui::Gui is not defined, but maybe there's a missing include somehow – it appears to be defined in "TGUI/Backends/SFML.hpp".
  11. Did you install TGUI from a package repository, or did you build it from source? Those errors all look like a C++ version issue – if TGUI is built for C++11, then it should work. Conversely, if you were to build the game for C++17, it should also work. Keep in mind that I have a policy of keeping it C++11-compatible, so if you wish to contribute, it would be preferable to have TGUI built for C++11; however, if you only want to build the game and try it out, it might be easier to force the build process to use C++17.
  12. Those all seem to be errors with TGUI… what version of TGUI are you building against?
  13. Well, section 2 is entirely obsolete, and also section 3 point 4, but I think most of the rest is still reasonable to good advice…
  14. Hmm. Looking at the original source and the OBoE source, it seems both just subtract one-third the ability strength of a poison protection item from the amount of poison that's being inflicted. There's nothing in there that depends on the hardy trait. It does add 1 to the amount if you have frail… and given that frail is 12 and good constitution is 6, I don't think Jeff could've mixed up the number there. The Amber Periapt however had an ability strength of 0 in the original Blades of Exile Base, so if that went unnoticed by a scenario author, then it would do nothing at all.
  15. Yes, that looks like the one I was thinking of – complete with cash prizes totalling $1000! Regarding the rest – I haven't looked at them yet, but it seems to me that it might be a nice idea to edit together a page summarizing them all for posterity's sake…
×
×
  • Create New...