First post, by DosFreak
- Rank
- l33t++
Taken from DosBox Wish List Thread:
masta_g_86 Guest […]
masta_g_86
GuestQuote: 2. fractional frameskip. Ex:able to choose x number of frames to be displayed BEFORE x number of frames are skipped. A […]
Quote:
2. fractional frameskip.
Ex:able to choose x number of frames to be displayed BEFORE x number of
frames are skipped. A setting of 4 frames displayed before 1 frame is skipped will display 80% of the frames, improving performance as well as improving playability.==Well I think some people will be confused if we suddenly switch it. And I like frameskip to think as something that skips more if you increase the number.
I still think fractional frameskip is a better way to go about speeding up games over the traditional frameskip. Maybe both could be implemented at the same time with the traditional frameskip being default. For those of us who actually read the readme.txt, we can see the availability of this option. We have enough people here in the forum to handle any of the really dumb questions that will continue to be asked over time...
HunterZ Moderator by day, Vampire Hunter by night […]
HunterZ
Moderator by day, Vampire Hunter by nightJoined: 2003-01-31
Posts: 2360
Location: Down and to the left of Seattle Aren't both methods the same after you do the math?I think there should only need to be two types of frameskipping implemented in any emulator:
1. In the first method, the emulator actually slows down when it can't render frames fast enough. This allows the user to both see all the frames so you don't have to worry about suffering "lag death" by missinig some of the action. This is more or less what DOSBox does now, I think - albeit not very gracefully.
2. The second method is automatic frame skipping, which is supported by most mature emulators. In this method, the emulator automatically skips as many frames as needed, when needed, to keep the emulation running at the desired speed. This is better than manual frameskip mostly in that it lets the emulator skip/drop frames only when it needs to, and only as few as are needed. This method is not currently available for DOSBox as far as I know, but I'd really like to see it.
masta_g_86 Guest […]
masta_g_86
GuestHunterZ wrote: Aren't both methods the same after you do the math? […]
HunterZ wrote:
Aren't both methods the same after you do the math?I think there should only need to be two types of frameskipping implemented in any emulator:
1. In the first method, the emulator actually slows down when it can't render frames fast enough. This allows the user to both see all the frames so you don't have to worry about suffering "lag death" by missinig some of the action. This is more or less what DOSBox does now, I think - albeit not very gracefully.
2. The second method is automatic frame skipping, which is supported by most mature emulators. In this method, the emulator automatically skips as many frames as needed, when needed, to keep the emulation running at the desired speed. This is better than manual frameskip mostly in that it lets the emulator skip/drop frames only when it needs to, and only as few as are needed. This method is not currently available for DOSBox as far as I know, but I'd really like to see it.From what I've heard, DOSBox handles frameskip rather oddly. With frameskip set to "1", DOSBox skips every other frame, taking DOOM from a maximum of 35fps to 17.5fps. Set to "2", DOSBox skips 2 frames and draws 1 (11.55fps)
The problem is that DOSBox puts on emphasis on skipping frames with the minimum value of 1; this cuts rendered frames in half!
With fractional frameskip, emphasis can be put on DRAWING frames and skipping every so often so you can achieve rendered output above 50%.
Auto frameskip can only work if it can detect the game's native framerate, or just assumes its framerate. Assuming the framerate is more realistic and this would probably be assumed to be 60fps on every game. Although DOOM peaks at 35fps, a lot of re-drawn frames occur because of this. This should be no problem as Auto frameskip would likely be removing mostly re-drawn frames.
I think the reason Auto frameskip doesn't exist is because of the way DOSBox renders. If DOSBox only renders when the game updates the screen, Auto frameskip could cause problems. However, if DOSBox updates the screen irregardless of updates from the game, then Auto frameskip CAN be implemented (relatively easily). The reason being, the Auto frameskip algorithm knows the maximum rendering speed, (probably 60fps) so it can return to this speed when the rendering doesn't require frameskip.
Anyway, I think DOSBox only updates the display when it recieves an update from the game. This is why I don't tout Auto frameskip and prefer fractional frameskip. If you don't know a game's framerate, you can still tinker around until you find acceptable values.