Crusader games in ScummVM?

stauff

Member
Joined
Jun 7, 2020
Messages
44
More updates..
  • Fixed height of silencer while kneeling (also need to check if that should apply while rolling, I guess so?)
  • Fixed bullet splashes sometimes appearing on the other side of walls
  • Fixed Turning off steam valve leaves 2 extra frames of full steam at the end
And since it's basically playable, here is me basically playing it - all the way through mission 1, messing up a couple of times.


Here are the remaining bugs (same list as before):
  • Walking up/down stairs causes silencer to pause for a moment
  • Occasional paint order issues (items popping up/down)
  • Computer text appears all at once, need to add scrolly effect
  • Death animations can still get stuck when the NPC falls as they die, at least I understand this problem now
I plan to play through Mission 2 onward in the next couple of days, will play until I find more bugs!
 

stauff

Member
Joined
Jun 7, 2020
Messages
44
Nothing like a playthrough to demonstrate to me how many bugs are left.. here is what I've fixed over the last couple of days..

* Fix actor animation speed! Finally feels right! - I had tried and removed a hack in for this ages ago, but I finally understand the code well enough to exactly make it correct, so I'm happy with it
* Fixed a couple of deep engine bugs which caused various game engine problems (eg, elevator doors not closing properly, Mission 2 impossible to complete)
* Fix detpac usage, doesn't spawn extra ones any more
* Fix z "centre on avatar" button to focus on the centre of the avatar, not his feet.
* Remove count text from inventory display when Crusader dies
* Fix animations used for combat rolls (when kneeling vs standing)
* Don't reset FIRSTSTEP on non-step animations, so crusader moves left-foot / right-foot even on separate steps
* Refactor and fix so all movies get subtitles (even intro and weasel)
* Remove mouse cursor (finally..)
* Add 'e' key for energy cube
* Add 'g' key for grab
* Fix items sometimes reappearing after exploding
* Only move camera on 'z' key if avatar position is valid
* Adjust 'slide' step distances to match original
* Implemented keyboard freeze so 'z' key can't be used during remote camera viewing and escape key will close that view (rather than open the menu)

So many fixes! I'm now up to the start of mission 3 and I'll keep adding videos to a longplay playlist as I go:


I'll keep fixing bugs as I go so each mission should look better than the last, I hope.
 

Uroboros

New member
Joined
May 10, 2021
Messages
6
Hi, nice work, I tried your latest version and it's great. thank you.

Do you have a list of possible fixes somewhere?

I'd like to ask about the avatar movement.
When testing it, it seems to me that there is a delayed sprint and rotation.
It seems to be reacting with a delay.
 

Uroboros

New member
Joined
May 10, 2021
Messages
6
Alternatively, if you could point me to parts of the code, I could possibly try to fiddle with it myself, but so far I haven't been able to find places that address avatar movement.
 

stauff

Member
Joined
Jun 7, 2020
Messages
44
Thanks for taking a look @Uroboros! Yes there are still some small movement annoyances I need to work out - the basic walking and running should now be frame and pixel identical, and standing turns are the right speed, but I haven't looked at time to start running or the response of trying to turn while moving, those both may be a bit wrong. There is also an issue that when the z of the floor changes subtley the actor "falls" which causes the animation to pause or stop. I need to dig through the original code a little bit more again to make that right.

I have a TODO list in a google sheet because I haven't gotten it stable enough to use the main bug tracker yet.

If you try the latest code you also will need to update the ultima.dat to get the right behaviour on larger weapons by the way, to do that you can just zip everything in devtools/create_ultima/files and use the zip file to replace ultima.dat.

The avatar movement is mostly controlled by engines/ultima/ultima8/world/actors/cru_avatar_mover_process.cpp, which decides which animation to do next. The animation data and process in anim_dat.cpp and actor_anim_process.cpp also control how the speed works. Since it has to handle Ultima 8 too, there's a few things in there that are probably not how it would be structured if it was just for Crusader. Particularly, since the animations got renumbered I have a few hacks in place to renumber things as it goes, and it's a little bit messy as a result.
 

Uroboros

New member
Joined
May 10, 2021
Messages
6
Thank you for your quick response.

I ran into almost the same problems when testing the original.
1. I apologize because I assumed that the original did not contain these errors. :)
2. You did a really great job I think there are minor differences.
3. I would like to write them down this weekend.

Thanks for taking a look @Uroboros! Yes there are still some small movement annoyances I need to work out - the basic walking and running should now be frame and pixel identical, and standing turns are the right speed, but I haven't looked at time to start running or the response of trying to turn while moving, those both may be a bit wrong. There is also an issue that when the z of the floor changes subtley the actor "falls" which causes the animation to pause or stop. I need to dig through the original code a little bit more again to make that right.

I have a TODO list in a google sheet because I haven't gotten it stable enough to use the main bug tracker yet.

If you try the latest code you also will need to update the ultima.dat to get the right behaviour on larger weapons by the way, to do that you can just zip everything in devtools/create_ultima/files and use the zip file to replace ultima.dat.

The avatar movement is mostly controlled by engines/ultima/ultima8/world/actors/cru_avatar_mover_process.cpp, which decides which animation to do next. The animation data and process in anim_dat.cpp and actor_anim_process.cpp also control how the speed works. Since it has to handle Ultima 8 too, there's a few things in there that are probably not how it would be structured if it was just for Crusader. Particularly, since the animations got renumbered I have a few hacks in place to renumber things as it goes, and it's a little bit messy as a result.
 

Uroboros

New member
Joined
May 10, 2021
Messages
6
1. In the original, when the avatar is standing up and when the ctrl + left arrow key is pressed.
it rolls to the left, but stays crouched.

In the scummvm version, it rolls to the left and returns to standing.
 

stauff

Member
Joined
Jun 7, 2020
Messages
44
1. In the original, when the avatar is standing up and when the ctrl + left arrow key is pressed.
it rolls to the left, but stays crouched.

In the scummvm version, it rolls to the left and returns to standing.

Nice catch! I just pushed a fix for that, and for the annoying pausing that can happen when navigating onto elevators etc.
 

Uroboros

New member
Joined
May 10, 2021
Messages
6
2. ORIGINAL Laser wall barrier
In SCUMMVM prevents passage but does not take life
3. ORIGINAL. After pressing the space bar, shooting continues and accelerates.
In SCUMMVM, while holding the space bar, it fires once until the space bar is pressed again.
 

Uroboros

New member
Joined
May 10, 2021
Messages
6
4. COMPARE avatar movement while running
DOSBOX avatar movement while running
SCUMMVM avatar movement while running

I have a feeling that the problem is that I sometimes have to press the left or right button twice to change direction.
If I hold the left or right button longer it shows up.

In the original, I just press it once and the change takes effect immediately.
 

stauff

Member
Joined
Jun 7, 2020
Messages
44
More great catches, thanks for those notes!

I just pushed fixes for the repeat-shooting (3) and turning immediately while moving (4). For No (2) I need to look harder at the fire type and damage info to know how it should affect shields vs health.
 

stauff

Member
Joined
Jun 7, 2020
Messages
44
Just (finally!) finished my full playthrough of Mission 3. In addition to the above fixes, got some major bugs in the process:

* A maths bug in the engine that made hover platforms sometimes move the wrong way
* A problem that caused the silencer to "stop" briefly when moving over small steps
* A game lock-up that can happen for a certain hover platform near the end of the mission
* A problem for the AVI decoder that made the screen get stuck on black for the end of mission 3 videos
* A bug that meant you could accidentally walk through laser barriers if pointed diagonally

There are still a few big bugs I found that need fixing:

* Spider bombs never explode at the moment (makes taking out turrets *really* hard..)
* One of the movies at the end of Mission 3 has some weird decoding errors at the top of the frame
* AI still seems broken - the thermatrons just kind of dance around and never attack me
* Still some chance of dead NPCs getting stuck :cry:
* My workaround for the game lock-up is just a workaround, I'd prefer to fix the root cause if I knew what it was.

But otherwise, it feels like the game plays as well as it ever did now! Here's the video of my Mission 3 playthrough:
 

stauff

Member
Joined
Jun 7, 2020
Messages
44
Made some nice progress in the last few weeks. Just finished Mission 6 in my playthrough, and there were no new game-breaking bugs (or even very large bugs) in this mission. Here's what's new:
  • Fixed spider bombs
  • Fixed Movie decoding glitches
  • Dying NPCs finally die properly!
  • Fixed AI a bit, but it's still kinda broken
  • Fixed some bugs in Weasel (eg, missing ammo), now works more like original although not perfect yet
  • Fixed a battery type bug
  • Fixed a broken cutscene in Mission 5
  • Fixed a subtle event order bug that was causing "ghost" people in the rebel base
  • Fixed a bug with music restore on load

I also got distracted during the playthrough and made some No Regret updates:
  • Added more weapon and firetype info for the extra weapons in No Regret
  • Added all the special things that happen when various No Regret NPCs get hurt
  • Updated some engine intrinsics to match what they are supposed to do
  • Implemented 'Bobo Boomer' process which makes lots of explosions
  • Implemented 'Rolling Thunder' process (which is NPCs rolling out / firing / rolling back) - unfortunately this created yet another hang on death... so still needs fixing

What's left in No Remorse?
  • Scrolly text on computers
  • Some paint order bugs
  • Try to really fix the AI so it shoots at me more and doesn't just walk around so much
  • Anything else that comes up as I go..
 

stauff

Member
Joined
Jun 7, 2020
Messages
44
Finished Mission 7 playthrough (will upload my kind of broken video cap of it soon) and found+fixed 3 new excellent bugs:
  • I had the wrong "z" threshold on teleport eggs, so walking over certain places which had a teleport trigger downstairs would incorrectly teleport sometimes. Fixed.
  • Fixed the end-of-mission transitions to the rebel base occasionally failing.
  • .. and in the process fixed an original game bug! Explanation below.
This is a stupidly small bug, but have you ever noticed that the rebel couple at the bar don't animate until you've triggered them by moving nearby? Probably not.

To see what I mean, watch closely to this original game playthrough vid:


When the silencer is walking around the rest of the bar, they are stationary. When he moves close to them, they look at him, and after his has moved away they occasionally animate like they are having a conversation. The exact reason for this is subtle and probably only interesting to me, but either way it is FIXED in ScummVM! They now animate from the start. I'm sure no one will ever notice except people who read this :)
 

IGTC

New member
Joined
Apr 21, 2017
Messages
12
This is a stupidly small bug, but have you ever noticed that the rebel couple at the bar don't animate until you've triggered them by moving nearby? Probably not.

When the silencer is walking around the rest of the bar, they are stationary. When he moves close to them, they look at him, and after his has moved away they occasionally animate like they are having a conversation. The exact reason for this is subtle and probably only interesting to me, but either way it is FIXED in ScummVM! They now animate from the start. I'm sure no one will ever notice except people who read this :)
Nice catch about the couple! You're right, I probably wouldn't have noticed.:oops:
 

stauff

Member
Joined
Jun 7, 2020
Messages
44
Another productive couple of weeks. I have now completed one full play-through of Remorse, albeit with a lot of cheating.

I still need to go back to Mission 14 and record the last two missions for youtube, but I'm now confident that it works from beginning to end.

Here's what's new:
  • Added incremental display of computers so they make beeps and scroll along
  • Added the ending credits
  • Added the little grey frame around datalink video playback
  • Fix spacing of the inventory and computer text so it's identical to original
  • Fix inventory to include credits in the list, like original
  • Fix item selection toggle when >2 items are selectable
  • Fix shield upgrades, now shield zap sprites look right
  • Fix problem with subtitle display for some movies
  • Fix a really subtle bug with range calculation that was breaking Mission 12 near the end
  • Fix the special case for Vargas getting hit and doing the teleport animations (now looks right)
  • Misc internal cleanups (including fixing some crashes) to make things more reliable
And my eternal list of things to fix, which I guess I really do have to fix the first one at least to call it done:
  • Fix the AI so it shoots at me more and doesn't just walk around so much
  • Some paint order bugs
There are other small bugs and inconsistencies here and there (eg, I disabled run animations in the rebel base but you can do them in the original) but they're minor and I want to get a version out to let people test pretty soon. If I can fix the AI to be like the original I'm going to call it "stable".
 

stauff

Member
Joined
Jun 7, 2020
Messages
44
I've now uploaded recordings of the last 2 missions and the ending credits. Fixed a couple more small bugs. Here's the video of the last mission (spoilers!):


AI is partly fixed now, but still a bit broken. I'll keep banging on it to see how close I can get it to the original.
 

stauff

Member
Joined
Jun 7, 2020
Messages
44
I'm now excited to say that No Remorse is ready!!

Enemy AI is not *exactly* faithful, but here are my updates since the last update:

* fixed the Demo and Spanish versions so they work too
* added a "high resolution" option that renders in 1024x768!
* updated the data files so weapons work nicely out-of-the-box
* fixed run animations in the rebel base
* fixed the AI a bit (although still not perfect to original)
* fixed paint order bug so critical keycards are visible
* did a bunch of work on No Regret weapons (3 cool new deaths!)

For anyone who is interested, please grab a daily ScummVM snapshot from here:

And add your copy of No Remorse, or if you are brave, No Regret. Please let me know if you see any issues.

No Regret is coming along great but not expected to be as finished - let me know if you see any issues there anyway.
 

rotterdxm

New member
Joined
Feb 20, 2021
Messages
6
I'm now excited to say that No Remorse is ready!!

Enemy AI is not *exactly* faithful, but here are my updates since the last update:

* fixed the Demo and Spanish versions so they work too
* added a "high resolution" option that renders in 1024x768!
* updated the data files so weapons work nicely out-of-the-box
* fixed run animations in the rebel base
* fixed the AI a bit (although still not perfect to original)
* fixed paint order bug so critical keycards are visible
* did a bunch of work on No Regret weapons (3 cool new deaths!)

For anyone who is interested, please grab a daily ScummVM snapshot from here:

And add your copy of No Remorse, or if you are brave, No Regret. Please let me know if you see any issues.

No Regret is coming along great but not expected to be as finished - let me know if you see any issues there anyway.
OMG HYPE! Thank you! I've located my old stash of game CDs so I will see if I can dig the originals up :) :)
 

rotterdxm

New member
Joined
Feb 20, 2021
Messages
6
I'm now excited to say that No Remorse is ready!!

Enemy AI is not *exactly* faithful, but here are my updates since the last update:

* fixed the Demo and Spanish versions so they work too
* added a "high resolution" option that renders in 1024x768!
* updated the data files so weapons work nicely out-of-the-box
* fixed run animations in the rebel base
* fixed the AI a bit (although still not perfect to original)
* fixed paint order bug so critical keycards are visible
* did a bunch of work on No Regret weapons (3 cool new deaths!)

For anyone who is interested, please grab a daily ScummVM snapshot from here:

And add your copy of No Remorse, or if you are brave, No Regret. Please let me know if you see any issues.

No Regret is coming along great but not expected to be as finished - let me know if you see any issues there anyway.
I seem to be finding some bugs, try for example pressing Z as you are falling into the green goop in level 1. I think I may also have become stuck at the part with the moving platform in level 1 where you control the tracked robot (where the 2nd non-hidden grenade launcher is stashed). Picked it up from the crate through the wall. Went ahead a bit, figured out I needed to take the teleporter but... There's no way to go back over the goop.
 
Top Bottom