Post subject: JPC-rr CPU speed settings - I need some judges perspectives.
DrD2k9
He/Him
Editor, Judge, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
Location: US
JPC-rr contains an option to alter the emulated CPU frequency. According to this, the range of clock values runs from approximately 3.9MHz to 1.0 GHz depending on the value used for 'CPU freq. divider' in the assembly settings. The default value is 50 which yields an emulated CPU speed of 20MHz. This setting allows for games to be played on much faster (or theoretically slower) systems than what they were designed. I therefore have two questions: 1)Should this value be altered to yield an emulated environment comparable with actual systems from when the game was released? 2)Should a game run at higher CPU clock obsolete a game run at a lower clock rate simply due to the improvement from better processor speeds? --------------------------------------------------------------------------------------------- For what it's worth, my opinion is that settings should be altered to match real-world systems of the time. This site is a resource that could be used to aid in determining appropriate clock speeds. Discussion in this thread prompted these questions to the judges.
Fog
Experienced player (626)
Joined: 4/5/2014
Posts: 459
According to this submission, JPC-RR shouldn't exceed the default speed of 50. In this case it was referencing specifically to CD-Man, but I think it should be the general guideline as well.
DrD2k9
He/Him
Editor, Judge, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
Location: US
Here's another option, though it's not my preference... Accept any CPU speed settings with which the game can actually be completed. (Some games would simply move too fast to be completed at high speed settings.) EDIT: My preference has changed slightly, see later post on proposed rules.
DrD2k9
He/Him
Editor, Judge, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
Location: US
Fog wrote:
According to this submission, JPC-RR shouldn't exceed the default speed of 50. In this case it was referencing specifically to CD-Man, but I think it should be the general guideline as well.
I understand that perspective, but what about games that were released after processor speeds in excess of 20MHz were available. Leaving a default setting of 50 would essentially be playing one of those games on a system slower than what it was intended to be run. Basically any game released after 1989 could have been run on a real system of 33MHz or faster. The default setting of 50 is the divider value (1GHz/X=CPU speed). So the default setting yields a 20MHz system.
Player (26)
Joined: 8/29/2011
Posts: 1206
Location: Amsterdam
DrD2k9 wrote:
I understand that perspective, but what about games that were released after processor speeds in excess of 20MHz were available.
This is not a hypothetical. According to Wikipedia, commercial games for the DOS platform were released as late as 1998. Processors with a clock rate higher than 20 MHz were available to the general public nine years before that, in 1989. As a result, they were common in the early nineties, and more to the point, downright required by numerous games released in the early nineties. So while I do agree that there should be a default speed for DOSbox games, it is not realistic for this speed to be capped at 20 MHz for all of them. However: almost all PC games from the nineties link the gamespeed either to real-world time or to the monitor refresh rate. This was basically required because in the early nineties, CPU speed varied a lot between PCs. As a result, these games will not go faster if the CPU is set arbitrarily high. However they will go slower if the CPU is set very low (e.g. at 20 MHz), because of lag. Conversely, both the game Fog mentions (CD-Man) and the one currently under discussion (Space Quest 3) do not tie their gamespeed to either the clock or the vsync. This was possible in the late eighties because at that point, CPU speed did not vary a lot between PCs (e.g. the difference between a 16 MHz and a 20 MHz CPU is comparable to that between a 50 Hz and a 60 Hz monitor, and at that point many developers just ignored the difference; a few years later a common difference was between 33 MHz and 200 MHz, and that's much more of a big deal). So arguably it makes sense to have a 20 MHz cap for games that run arbitrarily fast without a cap, and probably all those games are old enough that they run fine on a 20 MHz CPU. Conversely, games that cap themselves (e.g. by monitor rate) arguably do not need a 20 MHz cap, and many of these games simply cannot run on a 20 MHz CPU anyway.
DrD2k9
He/Him
Editor, Judge, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
Location: US
Radiant wrote:
...almost all PC games from the nineties link the game speed either to real-world time or to the monitor refresh rate. This was basically required because in the early nineties, CPU speed varied a lot between PCs. As a result, these games will not go faster if the CPU is set arbitrarily high. However they will go slower if the CPU is set very low (e.g. at 20 MHz), because of lag... So arguably it makes sense to have a 20 MHz cap for games that run arbitrarily fast without a cap, and probably all those games are old enough that they run fine on a 20 MHz CPU. Conversely, games that cap themselves (e.g. by monitor rate) arguably do not need a 20 MHz cap, and many of these games simply cannot run on a 20 MHz CPU anyway.
Would it then be a valid option to max out the CPU speed in JPC-rr to 1 GHz for games that tie to real-world time or screen refresh rate? If so, would the following generalized rules be acceptable: 1)Games with speeds restricted to real-world time or screen refresh rate can be run at maximum CPU speed in JPC-rr (setting the CPU frequency divider to 1) as it should theoretically only impact the startup time (and possibly load-screen times), not game-play itself. 2)Games with speeds only limited by CPU frequency are limited to the default JPC-rr (20 Hz) unless it can be proven by the runner that the game was released for faster systems. The CPU frequency setting can then be modified to mimic an appropriate era real-world system. If these rules or any derivation thereof is generally accepted, should we add them to the 'Console Specific ' section of the movie rules page on the main site?
adelikat
He/Him
Emulator Coder, Site Developer, Site Owner, Expert player (3598)
Joined: 11/3/2004
Posts: 4738
Location: Tennessee
DrD2k9 wrote:
Would it then be a valid option to max out the CPU speed in JPC-rr to 1 GHz for games that tie to real-world time or screen refresh rate? If so, would the following generalized rules be acceptable: 1)Games with speeds restricted to real-world time or screen refresh rate can be run at maximum CPU speed in JPC-rr (setting the CPU frequency divider to 1) as it should theoretically only impact the startup time (and possibly load-screen times), not game-play itself. 2)Games with speeds only limited by CPU frequency are limited to the default JPC-rr (20 Hz) unless it can be proven by the runner that the game was released for faster systems. The CPU frequency setting can then be modified to mimic an appropriate era real-world system.
I think this is well worded and I agree with it. I think it is the best of all world that will lead to the best quality content in the games tased. 1) Games that have their own vsync would be less laggy and thus nicer to look at. TASes represent the mythical all-knowing, all power player with unlimited resources. It is only logical that the wallet would be one of these resources and could max out the computer equipment for gaining an edge in speedrunning. 2) Games that do no do their own vsync have a good standard default. It doesn't make sense for them to be at 1gz because it would look like a cheap way to get a faster speed and lower the quality of the viewing experience. It is only logical that they be run at a speed intended by the authors
It's hard to look this good. My TAS projects
Active player (372)
Joined: 9/25/2011
Posts: 652
So what needs to happen to get these new regulations accepted and added to the Movie Rules?
Noxxa
They/Them
Moderator, Expert player (4139)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
I second adelikat's agreement to DrD2k9's proposal, and will write it into the movie rules when I have time later. I was going to do it sooner, but got sidetracked and forgot about it. In any case, you can consider the new proposal as accepted as of now.
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
DrD2k9
He/Him
Editor, Judge, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
Location: US
Noxxa
They/Them
Moderator, Expert player (4139)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
I have now added a rule about configuring the CPU frequency divider in JPC-rr, based on DrD2k9's proposal.
DOS movies (JPC-rr) CPU frequency restrictions CPU frequency settings may be restricted or not, depending on the game. • If a game's speed is limited to real-world time or screen refresh, CPU frequency may be maximized by setting CPU frequency divider to 1 (emulating a 1GHz CPU). • If a game's speed is limited only by CPU frequency or clock speed, CPU frequency may be set no faster than JPC-rr's default of 50 (emulating a 20MHz CPU). In other words, the CPU frequency divider settings may not be set any lower than 50. This limit may be stretched if proof can be provided that the game was designed to run on faster systems than the 20MHz default. In other words, if increasing the CPU clock speed affects and speeds up all normal gameplay, it must be capped at most to the emulator's default setting, or to a frequency the game is proven to be designed for. If increasing the CPU clock speed only affects lag or loading times and does not otherwise speed up gameplay to any significant extent, it may be set to the emulator's maximum.
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
DrD2k9
He/Him
Editor, Judge, Expert player (2070)
Joined: 8/21/2016
Posts: 1012
Location: US
Ok, throwing another wrench into the discussion.... What about total memory settings? They shouldn't affect speeds other than loading/lag, correct?
Noxxa
They/Them
Moderator, Expert player (4139)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
I doubt memory size settings make much difference, unless emulated memory size is constrained to a point that the emulated system runs out of memory. In any case I don't see any reason to set it any higher or lower than the default.
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.
Player (26)
Joined: 8/29/2011
Posts: 1206
Location: Amsterdam
DrD2k9 wrote:
Ok, throwing another wrench into the discussion.... What about total memory settings? They shouldn't affect speeds other than loading/lag, correct?
Many DOS games store graphics in memory because from there they can be accessed faster than from disk. Throughout most of the DOS era, a game will require an exact amount of memory. If your system has at least this amount, the game will run; if less, the game will not run (i.e. either it aborts on startup, or it crashes mid-play with an "out of memory" error). Note that the DOSbox default memory settings are way above any of these requirements. Confusingly, some of these older games will not run on a machine with too much memory; this has something to do with integer overflow, causing the game to detect a negative amount of memory. Some late-era DOS games will check how much memory you have and use basically all of it as a graphics cache. Generally this means that there's a threshold below which the game technically runs but becomes sluggish, and above this threshold the game runs fine but still becomes a bit faster if there's more memory. This threshold is usually 4Mb or 8MB, so DOSbox's default of 16Mb is again well above that. I'm not aware of any DOS games requiring more than 16Mb of memory, so this default should be fine for all DOS games unless you can prove from game documentation that a game actually requires more than that. JPCRR defaults to 4096 pages, which also equals 16MB of memory. HTH!
Player (26)
Joined: 8/29/2011
Posts: 1206
Location: Amsterdam
Speaking of which, it may be nice to state in the rules that the "initial RTC time" in JPCrr's config may be set to whatever value you wish. Several published runs already do so.
Noxxa
They/Them
Moderator, Expert player (4139)
Joined: 8/14/2009
Posts: 4083
Location: The Netherlands
Yeah, I've added a note for that. Note that it is not a new rule, nor is it exclusive to DOS - runs on other systems (like DS) have already made use of RTC settings for years.
http://www.youtube.com/Noxxa <dwangoAC> This is a TAS (...). Not suitable for all audiences. May cause undesirable side-effects. May contain emulator abuse. Emulator may be abusive. This product contains glitches known to the state of California to cause egg defects. <Masterjun> I'm just a guy arranging bits in a sequence which could potentially amuse other people looking at these bits <adelikat> In Oregon Trail, I sacrificed my own family to save time. In Star trek, I killed helpless comrades in escape pods to save time. Here, I kill my allies to save time. I think I need help.