Go Back   Forums > Abandonia.com > Troubleshooting > DOSBox screen captures scaled when [dosbox] machine=vgaonly
Memberlist Forum Rules Search Today's Posts Mark Forums Read
Search Forums:
Click here to use Advanced Search

Thread: DOSBox screen captures scaled when [dosbox] machine=vgaonly Reply to Thread
Your Username: Click here to log in
Image Verification
Please enter the six letters or digits that appear in the image opposite.

Title:
  
Message:
Post Icons
You may choose an icon for your message from the following list:
 

Additional Options
Miscellaneous Options

Topic Review (Newest First)
04-02-2011 12:03 AM
Ohne Mitleid @The Fifth Horseman - Great suggestion! The animation capture might serve another purpose for me in the future. Besides a PrnScr, how would I get a capture without a 24 bit palette?

@Japo - I didn't know about Special Keys being able to be mapped to a single key. I'll definitely be looking into this.

DOSBox is relatively simple on the surface but really has a lot of depth once you start poking around. I am rather new to this whole thing, but I'm trying to learn as quick as I can.

My solution to capturing something that escapes because of a keypress is to play the game in less than fullscreen mode. When the image I want to capture is displayed, I grab the title bar of the display window and hold it with the mouse, press Ctrl+F5, release the mouse button and I have the capture I want.

It was a lucky guess. I have another example of a palette swap need. The game I am reviewing is really poor. I always try to play a game to completion before reviewing to be as fair as possible in my opinion. I cannot complete this one (you'll have to see the review for reasons).

I looked at the EXE in hex and determined there is no climactic end-scene reward animation. However, I was able to deduce what the End Game completion graphic was, and then swapped it out in the EXE for the Title screen.
This shows the end screen with the Title screen palette. Since I have an indexed 256 color palette used for the rest of the game, I just swapped it out to show the actual end game graphic. This would not be possible if either of the captures were done either with a non-indexed 8 bit palette or if either palette were 24 bit.

I thank you both, I appreciate the time you've taken to post and for the new ideas!
02-02-2011 09:34 PM
Japo Thanks OM. You cracked it open, don't worry about testing every combination. It's enough to know about this behavior, and anyone else can test further if he's interested about his own particular case.

If what you want is to capture an image before it changes when you press the first key of a two-key combo, you can re-map the DOSBox keyboard so that one single key captures a screenshot instead of (or in addition to) the default Ctrl+F5. In my custom default mapper it's PrnScr.
02-02-2011 09:06 PM
The Fifth Horseman How about a slightly simpler workaround: start recording a video using CTRL+SHIFT+F5 before you run the game. Wait until whatever you wanted to capture gets recorded. Stop recording. Open the video with any media player with frame capture function, fast-forward to the frame you want and use the capture function to grab the picture.
02-02-2011 02:04 AM
Ohne Mitleid I have tested some of the settings for scale and aspect=true, with vgaonly and without. Scaler only appears to effect how the game is displayed to the player but does not effect the actual screen capture. A great example of this would be Dungeon Master 2, svga_s3 with scaler=hq3x. Even though the game window is scaled 3x and some of the graphics have the edges softened for the hq part, the screen capture is still 320x200, 8 bit color.

Aspect=true scales the game window to 640x480, but if coupled with vgaonly still yields 640x400 - 24 bit color captures. I haven't tested too many other combinations because I feel I have found out what I needed to know. I thought it may have been something I had done.

This all started when I was working on Lost City of Atlantis but I didn't take the time to resolve it then. I have an example which might help explain one of the situations I have run into. Since using your tutorial (), it allowed me to pick up on a very simple and organized way of getting my DOSBox games in one place, finally. I don't want the DOSBox icon for everything so I started making icons from captures. Now this is why it is a "problem".

The attachment shows the final icon, a capture of the title, a capture of the graphic for an in-between level change, the same graphic with a palette swap and a capture of aspect=true. All of the captures were done with the vgaonly setting except the aspect=true, which was a screen capture with alt+prntscrn. The aspect=true capture was done this way to show the size of the game display reflected 640x480, even though the DOSBox capture was 640x400 - 24 bit.

This game, Cool World, is set up so that any keypress advances gameplay. While on the title screen, a keypress will bring up the options screen, blocking the graphic. With vgaonly, you grab a capture but with 24 bit color. The Title screen contains the same 256 color palette as the level screen, but the level screen was captured while it was beginning to dim after pressing ALT+F5 for the capture.

If you take both captures, resize them to 320x200, save their respective 256 color palette after decreasing from 16 million colors, the colors saved are not the same. And as far as indexes go, if you substitute the title palette for the level palette and maintain indexes, the mess you see in the level w/ title pal picture is what you get. If you substitute and choose nearest color match, it will just display the same dimmed level picture, with the colors slightly dimmer. Without vgaonly, the palette can be swapped from title to level and you get the full brightness back.

The reason behind wanting a reliable indexed palette in this example was simple. It saved time. To make the icon, I wanted the title pic of the woman with the actual graphic text for 'Cool World'. The choice was to try and cut out the text then repair the places where her hands covered the letters, or get a clean shot of the text. The clean shot was afforded by the level capture, but with the inherent color palette problem only IF the palette was 24 bit and not the original 8 bit.

So on a case by case basis, I don't think every combination of configurations could be covered with just one post. I was just trying to figure this out for myself and then share the vgaonly caveat to anyone else who might be affected by it.

@Japo: Your tutorial was very well written. I didn't need to read it all but I was able to scan for just the bits I needed, which I feel is a key element to any good reference source. Thank you!
01-02-2011 07:25 PM
Japo Do we know if this could happen with other settings for machine different from the default, besides vgaonly? Also it may depend on other settings like scaler, or perhaps if you had aspect=true it would be 640x480 instead of 400? We can simply warn that fiddling with machine can have this effect.

According to the post in Vogons, this behavior is by design, necessary to support something. You should be able to convert the image file back to paletted, as long as you used a normal scaler, and not one that adds new colors by interpolation (if the scaler really influences these captures). Any image processing software has an algorithm to generate the optimal palette for an image, and if an image does not have more than 256 colors the optimal 256 colors palette generated should have the same exact colors as the original.
31-01-2011 10:52 PM
Ohne Mitleid
Quote:
Originally Posted by Eagle of Fire View Post
To be able to make a new Archive entry would require me to understand what is being said here. Which, at the moment and with my limited time, is not the case.

However, creating a new Archive entry is simple: simply move the appropriate post to add to the archive with an appropriate thread name, close it and voila.
The synopsis of the issue:

DOSBox -.074 issue - When Using '[dosbox] machine=vgaonly' as a configuration line, screen captures and AVI recordings will automatically scale to 640x400 with 24 bit color, instead of an expected 320x200 with 8 bit color.

This is problematic when trying to create a more compact AVI recording.

For screen captures, resizing of each capture is necessary to maintain its original resolution*. It is also no longer possible to have an indexed 256 color palette associated with each corresponding capture.

*Original resolution may vary from game to game, but the designated game resolution is unable to be determined with certainty when using 'vgaonly'.

-----------------End of proposed Archive entry-----------------
That should be about all, unless someone else would like to add something. The next question is how do you properly name the thread? I had trouble finding information related to this because it is like trying to find a word in the dictionary that you don't know how to spell the word. Examples: euphemism, xylophone, honorable.

Does that make sense? You know what to look for when you know what the problem is, but how do you search for the problem? I thought it may have been one of the following configuration lines: scaler=, fullresolution=, windowresolution=, so those were topics I was searching for. The real problem that ended up being vgaonly, was discovered by trial and error; a long and frustrating process.

Does anyone have any suggestions?
31-01-2011 05:00 PM
Eagle of Fire To be able to make a new Archive entry would require me to understand what is being said here. Which, at the moment and with my limited time, is not the case.

However, creating a new Archive entry is simple: simply move the appropriate post to add to the archive with an appropriate thread name, close it and voila.
31-01-2011 01:33 PM
_r.u.s.s. this info would be very useful to keep in some kind of faq, or that old common problems troubleshooting topic that eagle of fire managed back then
30-01-2011 11:22 PM
Ohne Mitleid EDIT: No comfort, but I am not the only one... Vogon related 'machine=vgaonly' thread

Darth gave me a hint toward thinking differently. It is using machine=vgaonly as the root cause of the problem. The initial game I made the custom config file was for Zool 2. The broken cracked version that is on site allows you to play, without intro and cutscene animations. Once I fixed that, the game did not run without setting up a virtual drive or using something like Daemon tools for a virtual drive. This was the main reason for the quest: I wanted to capture an AVI of the animated intro for Zool 2 in 320x200 and decrease the file size.

Trying to get a virtual drive to work with D-Box (not DOSBox) to test was causing more problems to get it to work than what I wanted to fix. However, in the process, I was using a modified version of the customized config for Zool 2. so all of the games I was adding new custom config files for had machine=vgaonly.

I don't know why, I would think it would do the opposite, but commenting out that line or changing it to machine=svga_s3 makes the captures turn out in 320x200 - 256 colors. That would be the last place I would look since I usually don't equate anything that states "vga only" with 24 bit colors.

My main goal is thwarted. Since the game for the AVI will only run if machine=vgaonly is in place, I guess I leave that one at 640x400, but at least I learned something. At least that's my disclaimer.

Thanks everyone!
30-01-2011 08:03 PM
Smiling Spectre Tried several DOS games, just in case. Seen shots of 640x400, 320x200, 640x480. Conclusion: if you not tinker CFG somehow, I think, it must be game itself.
This thread has more than 10 replies. Click here to review the whole thread.

Posting Rules
You may not post new threads
You may post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is On

The current time is 07:40 AM (GMT)

 
Powered by vBulletin® Version 3.7.1
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.