Measuring Performance in Ultima VII : The Black Gate

Announcements, advice, random banter, unrelated discussion, et cetera.

Measuring Performance in Ultima VII : The Black Gate

Postby clueless1 » 2017-1-14 @ 04:09

Guys, I've come up with a way to measure performance in U7. This game is famously missing any sort of frame limiting. Various discussions here and on nerdlypleasures.blogspot.com have talked about this. The consensus is that the perfect speed for this game is a 486/33, with the game quickly becoming unplayably fast as you approach 486/66 speeds and higher. So this is a way for you to dial in the "perfect" speed if you're lucky enough to have an MS-DOS system with the ability to adjust speeds without disabling L1 cache (or if you're playing in DOSBox and adjusting cycles). You see, another thing U7 is famous for is being immune to disabling L1 cache. Somehow it's able to re-enable L1 as you start the game. I've found that U7 is NOT immune to L2, turbo, and manipulating Test Registers via Setmul (if you have a Pentium that supports these test registers, which I do :cool: ).

The premise around this idea is that there are at least a couple of constants in this game that can be measured with a stopwatch. These include the pacing guards in the towers of the opening scene, the waving flags at the guard towers, and the clock ticking sounds, which all speed up and slow down depending on system speed. I found that the pacing guard is the easiest to measure with accuracy. I will demonstrate with a YT video in a bit.

So I tested this on my DX2/66 with and without turbo, as well as downclocking the cpu to DX2/40 and DX2/50 speeds. The units I use are "Seconds per 10 round trips" for the guard pacing, which I convert to "Round Trips per Second". I did this test at numerous speeds with my POD250MMX, using the Test Registers, as well as the aforementioned real 486 speeds. In the chart below, the Test Register switches I use are in the "Setmul/Cache" column. While I don't have a real 486/33, I did come close with my DX2/40 by using a 20Mhz bus speed on my 486 motherboard. I'm hoping others here can duplicate my tests on their systems, and someone with a DX/33 might be able to confirm my estimate of the "perfect speed".

One other thing I did, which you can help me fine-tune, is estimated a real 486/33 based on the results I got at 66Mhz and 40Mhz. I made the assumption that at the "perfect" speed of 486/33, the framerate is a "perfect" 24 FPS. With these assumptions, I came up with a factor of 115, which when multiplied by Round Trips per Second, gives an accurate-looking framerate. Here's some results:
u7test.jpg

Here's how I measure. Start a new game, click through the dialogs, then use the keyboard and right-arrow over towards the guard tower. As soon as you take the first step under the tower (the waving flags will disappear), take one step back to the left. Save the game here to make it easier to get back to this point. This is the position I always measure from to try and keep as much consistency as possible. Using a stopwatch, keep an eye on the pacing guard. When he's at the bottom and turns around, start timing as soon as he reaches the top. From there, just count 10 round trips of his pacing, then stop timing when he reaches the top the 10th time. Divide this result by 10 to get "Round Trips per Second". Then multiply by 115 to get an estimated FPS.

There are some variables that can't be controlled, such as the guy in blue and the dog wandering around, but after taking a bunch of results I can conclude that the results are VERY consistent.

Here's a video of me demonstrating in DOSBox:

https://youtu.be/lT91856j9lE

Sorry for the quality. This is my first ever attempt at making and posting something like this. I know the video is blurry, but my source is very crisp. I can only assume that YT compressed the crap out of it. I used the Portable Apps version of an open source screen recorder called CamStudio (apparently the portable version is the only one not injected with adware, plus it works in WinXP, which I'm doing this on).

This is done in DOSBox for two reasons:
1) easier to record than on a real DOS machine
2) I can adjust cycles to demonstrate "dialing in" 486/33 speeds.

By default, my GOG version of U7 was set to 14000 cycles. As I measure, it plays at about 37 FPS. When I walk around, it does seem a bit too fast, but not unplayable, so 37 sounds close. If I slow down to 9000 cycles, I get my target 24 FPS. I demonstrate all this in the video above.

What do you guys think? Would anyone with a 486/33 care to try this and see if it takes about 47 seconds to complete 10 round trips? Assuming this is pretty consistent, does labeling this at 24 FPS sound accurate?
Last edited by clueless1 on 2017-1-23 @ 11:39, edited 1 time in total.
The more I learn, the more I realize how much I don't know.
Let's benchmark our systems with cache disabled
DOS PCI Graphics Card Benchmarks
User avatar
clueless1
l33t
 
Posts: 3624
Joined: 2015-12-22 @ 17:43
Location: Midwest US

Re: Measuring Performance in Ultima VII : The Black Gate

Postby mrau » 2017-1-14 @ 12:42

noone ever patched this weirdness? i mean it should not be so hard to somewhere check for monitor refresh in the code? or did i miss something?
mrau
Oldbie
 
Posts: 954
Joined: 2015-11-28 @ 12:43

Re: Measuring Performance in Ultima VII : The Black Gate

Postby clueless1 » 2017-1-14 @ 13:41

A frame limiter was put into Ultima VII: Part 2 Serpent Isle, but never patched in The Black Gate. From my perspective, I'm kind of glad, because now I can use it as a benchmark. ;)
The more I learn, the more I realize how much I don't know.
Let's benchmark our systems with cache disabled
DOS PCI Graphics Card Benchmarks
User avatar
clueless1
l33t
 
Posts: 3624
Joined: 2015-12-22 @ 17:43
Location: Midwest US

Re: Measuring Performance in Ultima VII : The Black Gate

Postby F2bnp » 2017-1-14 @ 13:51

mrau wrote:noone ever patched this weirdness? i mean it should not be so hard to somewhere check for monitor refresh in the code? or did i miss something?


There is Exult, which is an amazing fan effort, but yes the original game was never patched :(.

This is a very interesting thread clueless1 and could serve as great help to anyone that wants to tweak their system to play Ultima 7 properly under DOS. Great job!
User avatar
F2bnp
l33t
 
Posts: 3455
Joined: 2007-9-23 @ 10:19

Re: Measuring Performance in Ultima VII : The Black Gate

Postby clueless1 » 2017-1-14 @ 21:59

F2bnp wrote:This is a very interesting thread clueless1 and could serve as great help to anyone that wants to tweak their system to play Ultima 7 properly under DOS. Great job!

Thanks! Hopefully some other folks will find some use out if it. It would be neat if someone else could test their 486 system and see how close their results are to mine.
The more I learn, the more I realize how much I don't know.
Let's benchmark our systems with cache disabled
DOS PCI Graphics Card Benchmarks
User avatar
clueless1
l33t
 
Posts: 3624
Joined: 2015-12-22 @ 17:43
Location: Midwest US

Re: Measuring Performance in Ultima VII : The Black Gate

Postby Kreshna Aryaguna Nurzaman » 2017-1-18 @ 19:06

Which Ultima VII? I finished Black Gate and its expansion pack in a Pentium 100 and experienced no problem. Serpent Isle is a much different story. When my party boarded the giant sea turtle, some party members didn't board it and kept standing on the pier instead. If I recall correctly, the magic carpet also suffered the same problem, although more intermittently (sometimes it worked), so I just have to mount and dismount it several times until all party members sit on the magic carpet. With the turtle, however, it never work, that I never continued the game because I'm afraid some party members would lost forever if I left them on the pier.
Never thought this thread would be that long, but now, for something different.....
Say no to online installer.
Kreshna Aryaguna Nurzaman.
User avatar
Kreshna Aryaguna Nurzaman
l33t
 
Posts: 2907
Joined: 2006-11-15 @ 06:44
Location: Indonesia

Re: Measuring Performance in Ultima VII : The Black Gate

Postby clueless1 » 2017-1-18 @ 19:37

Kreshna Aryaguna Nurzaman wrote:Which Ultima VII? I finished Black Gate and its expansion pack in a Pentium 100 and experienced no problem. Serpent Isle is a much different story. When my party boarded the giant sea turtle, some party members didn't board it and kept standing on the pier instead. If I recall correctly, the magic carpet also suffered the same problem, although more intermittently (sometimes it worked), so I just have to mount and dismount it several times until all party members sit on the magic carpet. With the turtle, however, it never work, that I never continued the game because I'm afraid some party members would lost forever if I left them on the pier.

"Which Ultima VII?" It's in the Subject: The Black Gate. :)

Something's not right if you played The Black Gate on a P100 without some sort of slowdown method. It's well-documented that it has no speed-limiter built in:
viewtopic.php?t=32619
http://nerdlypleasures.blogspot.com/201 ... dware.html

I'm near the end of Serpent Isle right now and I remember the sea turtle part. I read about that issue ahead of time, so I watched out for it when I got to that part, but it didn't happen to me when I got there. Bummer that you stopped playing because of that bug. :(
The more I learn, the more I realize how much I don't know.
Let's benchmark our systems with cache disabled
DOS PCI Graphics Card Benchmarks
User avatar
clueless1
l33t
 
Posts: 3624
Joined: 2015-12-22 @ 17:43
Location: Midwest US

Re: Measuring Performance in Ultima VII : The Black Gate

Postby Kreshna Aryaguna Nurzaman » 2017-1-18 @ 20:19

clueless1 wrote:
Kreshna Aryaguna Nurzaman wrote:Which Ultima VII? I finished Black Gate and its expansion pack in a Pentium 100 and experienced no problem. Serpent Isle is a much different story. When my party boarded the giant sea turtle, some party members didn't board it and kept standing on the pier instead. If I recall correctly, the magic carpet also suffered the same problem, although more intermittently (sometimes it worked), so I just have to mount and dismount it several times until all party members sit on the magic carpet. With the turtle, however, it never work, that I never continued the game because I'm afraid some party members would lost forever if I left them on the pier.

"Which Ultima VII?" It's in the Subject: The Black Gate. :)

Something's not right if you played The Black Gate on a P100 without some sort of slowdown method. It's well-documented that it has no speed-limiter built in:
viewtopic.php?t=32619
http://nerdlypleasures.blogspot.com/201 ... dware.html

Oh, I was pretty sure I finished the game on a Pentium 100. I remember; I was recovering from dengue fever, then I decided to re-play the game on my PC (which was a Pentium 100 at that time). What I'm not sure is the slowdown method I was using --if at all. If I were using slowdown, it could be none other than Moslo, because it was the only slowdown utility I knew at that time.


clueless1 wrote:I'm near the end of Serpent Isle right now and I remember the sea turtle part. I read about that issue ahead of time, so I watched out for it when I got to that part, but it didn't happen to me when I got there. Bummer that you stopped playing because of that bug. :(

Yes, some party members just stayed on the pier instead of boarding the sea turtle. I remember Iolo was always one of them. Is that a known problem?
Never thought this thread would be that long, but now, for something different.....
Say no to online installer.
Kreshna Aryaguna Nurzaman.
User avatar
Kreshna Aryaguna Nurzaman
l33t
 
Posts: 2907
Joined: 2006-11-15 @ 06:44
Location: Indonesia

Re: Measuring Performance in Ultima VII : The Black Gate

Postby clueless1 » 2017-1-18 @ 20:38

Kreshna Aryaguna Nurzaman wrote:
clueless1 wrote:
clueless1 wrote:I'm near the end of Serpent Isle right now and I remember the sea turtle part. I read about that issue ahead of time, so I watched out for it when I got to that part, but it didn't happen to me when I got there. Bummer that you stopped playing because of that bug. :(

Yes, some party members just stayed on the pier instead of boarding the sea turtle. I remember Iolo was always one of them. Is that a known problem?

Now that I try to find it, I can't. I think what I actually read was that it's important not to leave anything on the turtle when you get off of it because after that scene, the turtle disappears from the game, so you will lose any items you leave on the turtle's back forever.

I can't find any other references to this being a bug...
The more I learn, the more I realize how much I don't know.
Let's benchmark our systems with cache disabled
DOS PCI Graphics Card Benchmarks
User avatar
clueless1
l33t
 
Posts: 3624
Joined: 2015-12-22 @ 17:43
Location: Midwest US

Re: Measuring Performance in Ultima VII : The Black Gate

Postby Kreshna Aryaguna Nurzaman » 2017-1-23 @ 11:09

clueless1 wrote:Now that I try to find it, I can't. I think what I actually read was that it's important not to leave anything on the turtle when you get off of it because after that scene, the turtle disappears from the game, so you will lose any items you leave on the turtle's back forever.

I can't find any other references to this being a bug...

Me, I would be lucky if all party members would actually board the turtle on the first place. :(

But other than that, I have never experienced speed-related issues. Like I said, I finished U7 Black Gate on a Pentium 100, and experienced no problems.
Never thought this thread would be that long, but now, for something different.....
Say no to online installer.
Kreshna Aryaguna Nurzaman.
User avatar
Kreshna Aryaguna Nurzaman
l33t
 
Posts: 2907
Joined: 2006-11-15 @ 06:44
Location: Indonesia

Re: Measuring Performance in Ultima VII : The Black Gate

Postby clueless1 » 2017-1-23 @ 11:48

Kreshna Aryaguna Nurzaman wrote:
clueless1 wrote:Now that I try to find it, I can't. I think what I actually read was that it's important not to leave anything on the turtle when you get off of it because after that scene, the turtle disappears from the game, so you will lose any items you leave on the turtle's back forever.

I can't find any other references to this being a bug...

Me, I would be lucky if all party members would actually board the turtle on the first place. :(

But other than that, I have never experienced speed-related issues. Like I said, I finished U7 Black Gate on a Pentium 100, and experienced no problems.


Then you must have used Moslo. That's the only way it would have been playable on a machine that fast.

Speaking of stuck, I just had a close call near endgame, there was a period when my party members were all possessed by Banes, so I was alone (I couldn't carry all their possessions). So all the extra inventory was in piles in various areas of the world. There was an important item I needed to progress in the game, and I could not find it! :exclamation:

But finally, after visiting a couple of places I remember leaving piles of items, I came across it again. Phew!
The more I learn, the more I realize how much I don't know.
Let's benchmark our systems with cache disabled
DOS PCI Graphics Card Benchmarks
User avatar
clueless1
l33t
 
Posts: 3624
Joined: 2015-12-22 @ 17:43
Location: Midwest US

Re: Measuring Performance in Ultima VII : The Black Gate

Postby boxpressed » 2017-2-19 @ 21:55

I just tested with my 5x86-120. I set the FSB to 25MHz and then tested with the 3x and 1x (via SETMUL) multipliers.

I tested twice for each speed. The first run was close enough to the second run, so here are the times for the first run only:

5x86-75: 17.75 seconds
5x86-25: 39.75 seconds

So it looks like the 5x86-25 is close to a 486DX2-40, which sounds about right.
Last edited by boxpressed on 2017-2-20 @ 14:35, edited 1 time in total.
User avatar
boxpressed
Oldbie
 
Posts: 1068
Joined: 2014-5-20 @ 18:29
Location: Wisconsin, USA

Re: Measuring Performance in Ultima VII : The Black Gate

Postby clueless1 » 2017-2-20 @ 12:00

Nice. And the 5x86-75 is 39% faster than my DX2-66, which would put it around DX4-100 speeds.
The more I learn, the more I realize how much I don't know.
Let's benchmark our systems with cache disabled
DOS PCI Graphics Card Benchmarks
User avatar
clueless1
l33t
 
Posts: 3624
Joined: 2015-12-22 @ 17:43
Location: Midwest US

Re: Measuring Performance in Ultima VII : The Black Gate

Postby infiniteclouds » 2017-9-30 @ 23:23

I don't know if anyone ever actually ran your Ultima 7 benchmark on a real 486DX-33 but to get 25 FPS in Ultima 7 on the Ezra I had to use...

66x3, ICD.

In contrast, System Information gives it a rating of 45.5 (compared to a 486DX-33 which is 71.2) , SpeedSys gives 21.50 at this speed and Doom has 9.37FPS.

Meanwhile, at 103x3 with ICD Sys Info gives a 70.2 rating but Ultima 7's FPs is exactly 40.
infiniteclouds
Member
 
Posts: 367
Joined: 2013-6-08 @ 19:43

Re: Measuring Performance in Ultima VII : The Black Gate

Postby sf78 » 2017-10-02 @ 13:29

I tried it with a P90 I had in -95 and it was definitely too fast to play with a stock machine.
sf78
Member
 
Posts: 477
Joined: 2014-10-16 @ 15:05
Location: Finland

Re: Measuring Performance in Ultima VII : The Black Gate

Postby zerker » 2018-5-21 @ 11:47

So I recently discovered the fdapm speed settings, and decided to test Ultima 7 with it. Then I searched and found this thread, so here are my results:

My machine is a Pentium III-450.
Stock setting is pretty similar to the original post in this thread ~205 FPS and way too fast.
FDAPM SPEED1 results in 58 seconds for 10 round trips, or estimated FPS of 19.83
FDAPM SPEED2 results in 25.7 seconds for 10 round trips, or estimated FPS of 44.74
FDAPM SPEED2 + SETMUL L2D results in 29.1 seconds for 10 round trips, or estimated FPS of 39.52

Incidentally, AFTER testing this, I realized I also had the throttle utility on my machine which I hadn't tested for this purpose. Of course, it works exactly the same. Guess I don't need both ;).

I'm just happy I actually found settings to make Ultima 7 playable on this machine without stuttery Moslo performance. Plus I have the option of slowing down Ultima Underworld or Descent 1/2 to avoid speed-related bugs in those games, be it with a higher SPEED setting.
Last edited by zerker on 2018-6-09 @ 11:38, edited 1 time in total.
User avatar
zerker
Member
 
Posts: 226
Joined: 2016-2-11 @ 01:34

Re: Measuring Performance in Ultima VII : The Black Gate

Postby vvbee » 2018-5-21 @ 16:15

I made the u7dcp patch for this a while back. Not really any need to mess around unless you don't want to disable cache or just want to mess around for the fun of it.
User avatar
vvbee
Member
 
Posts: 422
Joined: 2017-2-06 @ 17:56

Re: Measuring Performance in Ultima VII : The Black Gate

Postby zerker » 2018-5-21 @ 22:35

I can give it a go, but I suspect for my PC that disabling cache would make it TOO slow. I recently benchmarked my machine for clueless's cache disable thread, and found a 1/8 speed throttle (which was ~20 fps for Ultima 7) got me a Doom timedemo framerate of 12.90 fps. Disabling level 1 cache got me... 2.87 fps.

Though it may be interesting to compare how U7 performance scales too.
User avatar
zerker
Member
 
Posts: 226
Joined: 2016-2-11 @ 01:34

Re: Measuring Performance in Ultima VII : The Black Gate

Postby zerker » 2018-5-23 @ 22:55

So I got the numbers with the u7dcp patch and l1 cache disabled:
148.4 seconds for 10 round drips, or estimated fps of 7.5.

I think the ACPI speed throttle is a much better solution for my PC.
User avatar
zerker
Member
 
Posts: 226
Joined: 2016-2-11 @ 01:34

Re: Measuring Performance in Ultima VII : The Black Gate

Postby clueless1 » 2018-5-23 @ 23:30

Thanks, zerker. I recently loaded up Exult and timed the guard to see what the Exult developers decided on as a fixed speed. I got 35.6 seconds, or 32 fps. I'm not sure if this is the organic speed of the game or if it's some speed that the Exult developers settled on.
The more I learn, the more I realize how much I don't know.
Let's benchmark our systems with cache disabled
DOS PCI Graphics Card Benchmarks
User avatar
clueless1
l33t
 
Posts: 3624
Joined: 2015-12-22 @ 17:43
Location: Midwest US

Next

Return to Milliways

Who is online

Users browsing this forum: No registered users and 6 guests