Baby Steps

I have been looking into a couple of issues still plaguing Doomdark’s Revenge game play.

The first one is movement. I have to admit, I dropped the ball on this one. I wrote this code so long ago, that I assumed it was working. Well it isn’t. And there are three issues at play.

The first issue is actually a bug fix.

There are two versions of movement tables, one that the Spectrum used, and one that the c64 used. What these tables do, is decide which terrain the character gets for free. The problem is, the spectrum version had a bug. It didn’t point to the required table, it pointed to random memory. Therefore movement on the Spectrum doesn’t work as intended. I had fixed this bug. Which means, movement on the new version isn’t the same as either the Spectrum version of the C64.

Secondly, The Lords of Midnight movement code is based on leaving the current location. Doomdark’s Revenge is actually based on the location you are moving into. I had this wrong.

And thirdly, if you move into a location with a critter, you take a penalty. However because of the difference in the way I implemented the critters on the map, ie: 0 = NONE, whereas 0xff is NONE in the original. My critter check was always triggering. Thus you always got a penalty.

The three items combined, make for pretty shoddy movement, when compared directly to the original.

13 thoughts on “Baby Steps

  1. When you say “Which terrain the char gets for free” – what do you mean? That they travel through that terrain as plains, or that they dont get the tiredness penalty associated with that terrain over and above plains?

    The C64 version was horribly bugged in that everyone moved quicker through forest than plains, except Luxor who moved quicker through mountains! Lol.

    I hadnt realised that LOM treated terrain as you are leaving. Makes more sense to treat the terrain you can see moving into, IMO. Or even half and half. Perhaps these should be options in the engine?

    • That isnt a bug in c64 but a design choice. Not sure why. I’ll post the table later. But basically it removed the initial tiredness penalty for that race moving on that terrain. But all subsequent calcs are still applied.

    • These are the values for intial movement value, based on the terrain you are moving into.

      initial cost = 1,8,4,3,2,2,2,2,2,2,2,2,2,2,2,2

      Based on the following order.

      PLAINS, MOUNTAINS, FOREST, HILLS, GATE, TEMPLE, PIT, PALACE, FORTRESS, HALL, HUT, TOWER, CITY, FOUNTAIN, STONES, TUNNEL

      Spectrum version of initial cost cancellation ( NOT USED ). The second value is because being on a horse is a race.
      CITY, CITY ;moonprince
      PLAINS, PLAINS ;free
      TOWER, TOWER ;wise
      FOREST, FOREST ;fey
      HILLS, HILLS ;barbarian
      PLAINS, PLAINS ;icelord
      FOREST ; fey
      MOUNTAINS ;giant
      PLAINS ;heartstealer
      TUNNEL ;dwarf

      c64 version
      MOUNTAINS, MOUNTAINS ;moonprince
      PLAINS, PLAINS ;free
      FOREST, FOREST ;wise
      FOREST, FOREST ;fey
      FOREST, FOREST ;barbarian
      PLAINS, PLAINS ;icelord
      FOREST ;fey
      MOUNTAINS ;giant
      PLAINS ;heartstealer
      TUNNEL ;dwarf

  2. I was trying to work out why it wasn’t quite the same this time. Nice one. It’ll make those Flames of Dawn runs easier

  3. Some issues in the battles as well (iPad version). There is clearly something wrong as I had four characters fighting Shareth on her own for seven turns and inflicting no damage to her armies, despite e battle report indicating we had killed hundreds. Also, attacking a city, reduced it’s garrison to zero but it never changed ownership to me despite leaving a large army on it for several turns afterwards….

  4. Tried the update, but movement still seems far too slow. Tarithel moves 2 moves and only has 3 hours left.

  5. Thanks so much for releasing Doomdark’s Revenge! It looks wonderful.
    Is your plan to have an option in a future release, so people can chose between the Spectrum movement and the C64 movement? I’m sure many of us would love to have the same feel as the original! (I had the first 6-7 days all mapped out on the Spectrum, and would love to be able to use all that – ancient – wisdom! 😉

  6. One horrible, horrible bug occurred when using Morkin’s Crown of Carudrium to bring the band back together at the end of the game (after killing Shareth and painstakingly looking for all of the special items). The game crashed for good and keeps on crashing every time I choose the Continue Game option from the start menu. Which leaves me extremely despondent.

    • Sorry. The release version has a bug with the amount if characters at a location. This has been fixed but the iOS version is still waiting to be approved. Any day. I would expect that the update should be able to load the affected game.

Comments are closed.