I just started using dosbox today, it is really awesome. I'm currently playing "X-Com: Ufo Defense", an old game with 320x200 pixels. I'm using it on my laptop, which has 1280x800 pixels, which just happens to be exactly 4 times the width and height of the 320x200 resolution.
I tried to get it to fill the screen, but pressing ALT+ENTER just switches to a black full screen with the game in the center. I also modified the dosbox.conf file, but only got so far to change the filter to "normal3x". This results in 960x600 with a large black border, which is enough to play the game, but still not "real" fullscreen.
Is there a guide for total beginners how to configure it to do 1280x800 with sharp pixels? Or is there a "normal4x" filter planned for the next release?
It's also important to understand that numbers like "3x" or "4x" are not connected to a given resolution multiplied by x. The graphic filters are based on different algorithms to multiply the originals pixels, in order to get the resolution configured in your dosbox.conf. You choose the filters based on your visual preference, not based on resolution. I hope that makes sense, it's kinda hard to explain (;
In order to achieve "real" fullscreen, you should try the "ddraw" or "opengl" output methods. After that, configure your preferred resolution. In my opinion, it's more or less useless to use very high resolutions, as there are only so much pixels in the original image, and there's no way for DOSBox to increase the number of pixels - that's what the filters are for, to interpolate the target number of pixels from the original number of pixels, so to say. I'm using a maximum of 800x600 in fullscreen mode, for example. After that, try different filters until you're satisfied with the result. It's important to understand that the filters use the CPU for processing, thus slowing down DOSBox on a slow system. There are certain filter/output method combinations that use the GPU for scaling/filtering, which is less CPU intensive. I think other VOGONS users can explain this a bit better. There are DOSBox builds that support the "d3d" output method, which allows the use of "shaders". As far as i understand, shaders are pieces of code that run on the GPU, and scale the image according to different algorithms - kind of like "hardware filters". I'm currently using d3d with shaders, and i'm very pleased with the results.
I tried all different output methods and set the fullscreen resolution to 1280x800. Still the game is centered with a black border.
It's also important to understand that numbers like "3x" or "4x" are not connected to a given resolution multiplied by x. The graphic filters are based on different algorithms to multiply the originals pixels, in order to get the resolution configured in your dosbox.conf. You choose the filters based on your visual preference, not based on resolution. I hope that makes sense, it's kinda hard to explain (;
I don't understand that. If I choose "none" I get a tiny game surrounded by blackness (The game is 320x200 "game resolution" and appears exactly like that on the screen). If I choose "normal2x" I get a centered 640x400 (physical resolution). And "hq3x" gives me 960x600 (physical) with enhanced graphics (which I don't really like).
But 960x600 isn't enough, I want my tiny game (320x200) to fill the entire screen (1280x800 physical resolution, TFT).
1280x800, while being exactly 4 times the original 320x200 mode, isn't the same mode. DOSBox is correctly pillar boxing the game as you have a widescreen monitor. The aspect ratio of any 1280x800 screen made today is 16:10, where as when 320x200 was in standard use, all screens were the squareish 4:3. Pilar boxing for widescreen produces "virtual pixels" of the original width and height, where as if you fit the game to the entire screen you'd get pixels that were wider in ratio than they were historically.
You did set the "fullresolution" entry in dosbox.conf to the target resolution you want to to use, didn't you? If you do that, DOSBox will use the filter to stretch the image to that resolution. If that doesn't work, we need more info about your hardware, OS, system config (graphic card drivers, etc.), and DOSBox config (which output method, which filter, etc.). But i'd say that stretching (or "filtering") the image seems to work on your system, as you say you get different sized screens when trying different filters.
You can change DOSBox' aspect ratio behaviour with the "aspect" entry in dosbox.conf. When you set it to "false", the image should fill the full screen, but you'll get a skewed display, like canadacow explained. I'll say it again: you don't _have_ to use huge resolutions like 1280x800. You could also use any lower resolution, as long as your display supports it. In my case, my LCD supports up to 1280x1024, but still i'm using a maximum of 800x600 for DOSBox.
Of course you will get different sized screens when using "2x" or "3x". The algorithms for these filters basically work by multiplying the number of pixels in the original image by 2 or 3 respectively. Others filters use completely different algorithms. The intended use of the filters is that you should configure a target resolution via dosbox.conf, and DOSBox will use the filter you have configured to stretch the original image to the resolution you have configured. So it's not like "find the filter that will stretch the image to fill my screen", but rather "find a filter that looks good with the resolution i have configured".
DOSBox is correctly pillar boxing the game as you have a widescreen monitor.
No, it does not. If I set aspect=true the game image gets higher, but still doesn't touch the upper and bottom end of the screen. Instead it is then 960x660 (using normal3x), so there is still a black border of 120 black pixels on top and below the game image.
I'm fully aware, that using aspect=false results in a slightly deformed game. But that's fine with me, the game looks okay when played with square pixels instead of "high" pixels.
You did set the "fullresolution" entry in dosbox.conf to the target resolution you want to to use, didn't you? If you do that, DOSBox will use the filter to stretch the image to that resolution. If that doesn't work, we need more info about your hardware, OS, system config (graphic card drivers, etc.), and DOSBox config (which output method, which filter, etc.).
Yes, I set the fullresolution to 1280x800 but it doesn't work.
I'm using Dosbox 0.71 on ubuntu 7.10 with Gnome 2.20.1. and an ATI Mobility Radeon. I got the right driver for the ATI-card (ATI provides a Linux driver) and I'm sure the driver is working, because I can use 3D-Desktop effects. I also turned off these effects to check if that might be the cause, but it does not change anything.
Here's my current dosbox.conf:
1# This is the configurationfile for DOSBox 0.71. 2# Lines starting with a # are commentlines. 3# They are used to (briefly) document the effect of each option. 4 5[sdl] 6# fullscreen -- Start dosbox directly in fullscreen. 7# fulldouble -- Use double buffering in fullscreen. 8# fullresolution -- What resolution to use for fullscreen: original or fixed size (e.g. 1024x768). 9# windowresolution -- Scale the window to this size IF the output device supports hardware scaling. 10# output -- What to use for output: surface,overlay,opengl,openglnb. 11# autolock -- Mouse will automatically lock, if you click on the screen. 12# sensitiviy -- Mouse sensitivity. 13# waitonerror -- Wait before closing the console if dosbox has an error. 14# priority -- Priority levels for dosbox: lowest,lower,normal,higher,highest,pause (when not focussed). 15# Second entry behind the comma is for when dosbox is not focused/minimized. 16# mapperfile -- File used to load/save the key/event mappings from. 17# usescancodes -- Avoid usage of symkeys, might not work on all operating systems. 18 19fullscreen=true 20fulldouble=false 21fullresolution=1280x800 22#original 23windowresolution=640x400 24#original 25output=opengl #surface 26autolock=true 27sensitivity=100 28waitonerror=true 29priority=higher,normal 30mapperfile=mapper.txt 31usescancodes=true 32 33[dosbox] 34# language -- Select another language file. 35# memsize -- Amount of memory dosbox has in megabytes. 36# machine -- The type of machine tries to emulate:hercules,cga,tandy,pcjr,vga. 37# captures -- Directory where things like wave,midi,screenshot get captured. 38 39language= 40machine=vga 41captures=capture 42memsize=16 43 44[render] 45# frameskip -- How many frames dosbox skips before drawing one. 46# aspect -- Do aspect correction, if your output method doesn't support scaling this can slow things down!. 47# scaler -- Scaler used to enlarge/enhance low resolution modes. 48# Supported are none,normal2x,normal3x,advmame2x,advmame3x,hq2x,hq3x, 49# 2xsai,super2xsai,supereagle,advinterp2x,advinterp3x, 50# tv2x,tv3x,rgb2x,rgb3x,scan2x,scan3x. 51# If forced is appended (like scaler=hq2x forced), the scaler will be used 52# even if the result might not be desired. 53 54frameskip=0 55aspect=true 56scaler=normal3x 57 58[cpu] 59# core -- CPU Core used in emulation: normal,simple,dynamic,auto. 60# auto switches from normal to dynamic if appropriate.
…Show last 140 lines
61# cycles -- Amount of instructions dosbox tries to emulate each millisecond. 62# Setting this value too high results in sound dropouts and lags. 63# You can also let DOSBox guess the correct value by setting it to max. 64# The default setting (auto) switches to max if appropriate. 65# cycleup -- Amount of cycles to increase/decrease with keycombo. 66# cycledown Setting it lower than 100 will be a percentage. 67 68core=auto 69cycles=auto 70cycleup=500 71cycledown=20 72 73[mixer] 74# nosound -- Enable silent mode, sound is still emulated though. 75# rate -- Mixer sample rate, setting any devices higher than this will 76# probably lower their sound quality. 77# blocksize -- Mixer block size, larger blocks might help sound stuttering 78# but sound will also be more lagged. 79# prebuffer -- How many milliseconds of data to keep on top of the blocksize. 80 81nosound=false 82rate=22050 83blocksize=2048 84prebuffer=10 85 86[midi] 87# mpu401 -- Type of MPU-401 to emulate: none, uart or intelligent. 88# device -- Device that will receive the MIDI data from MPU-401. 89# This can be default,alsa,oss,win32,coreaudio,none. 90# config -- Special configuration options for the device. In Windows put 91# the id of the device you want to use. See README for details. 92 93mpu401=intelligent 94device=default 95config= 96 97[sblaster] 98# sbtype -- Type of sblaster to emulate:none,sb1,sb2,sbpro1,sbpro2,sb16. 99# sbbase,irq,dma,hdma -- The IO/IRQ/DMA/High DMA address of the soundblaster. 100# mixer -- Allow the soundblaster mixer to modify the dosbox mixer. 101# oplmode -- Type of OPL emulation: auto,cms,opl2,dualopl2,opl3. 102# On auto the mode is determined by sblaster type. 103# All OPL modes are 'Adlib', except for CMS. 104# oplrate -- Sample rate of OPL music emulation. 105 106sbtype=sb16 107sbbase=220 108irq=7 109dma=1 110hdma=5 111mixer=true 112oplmode=auto 113oplrate=22050 114 115[gus] 116# gus -- Enable the Gravis Ultrasound emulation. 117# gusbase,irq1,irq2,dma1,dma2 -- The IO/IRQ/DMA addresses of the 118# Gravis Ultrasound. (Same IRQ's and DMA's are OK.) 119# gusrate -- Sample rate of Ultrasound emulation. 120# ultradir -- Path to Ultrasound directory. In this directory 121# there should be a MIDI directory that contains 122# the patch files for GUS playback. Patch sets used 123# with Timidity should work fine. 124 125gus=true 126gusrate=22050 127gusbase=240 128irq1=5 129irq2=5 130dma1=3 131dma2=3 132ultradir=C:\ULTRASND 133 134[speaker] 135# pcspeaker -- Enable PC-Speaker emulation. 136# pcrate -- Sample rate of the PC-Speaker sound generation. 137# tandy -- Enable Tandy Sound System emulation (off,on,auto). 138# For auto Tandysound emulation is present only if machine is set to tandy. 139# tandyrate -- Sample rate of the Tandy 3-Voice generation. 140# disney -- Enable Disney Sound Source emulation. Covox Voice Master and Speech Thing compatible. 141 142pcspeaker=true 143pcrate=22050 144tandy=auto 145tandyrate=22050 146disney=true 147 148[joystick] 149# joysticktype -- Type of joystick to emulate: auto (default), none, 150# 2axis (supports two joysticks), 4axis, 151# fcs (Thrustmaster), ch (CH Flightstick). 152# none disables joystick emulation. 153# auto chooses emulation depending on real joystick(s). 154# timed -- enable timed intervals for axis. (false is old style behaviour). 155# autofire -- continuously fires as long as you keep the button pressed. 156# swap34 -- swap the 3rd and the 4th axis. can be useful for certain joysticks. 157# buttonwrap -- enable button wrapping at the number of emulated buttons. 158 159joysticktype=auto 160timed=true 161autofire=false 162swap34=false 163buttonwrap=true 164 165[serial] 166# serial1-4 -- set type of device connected to com port. 167# Can be disabled, dummy, modem, nullmodem, directserial. 168# Additional parameters must be in the same line in the form of 169# parameter:value. Parameter for all types is irq. 170# for directserial: realport (required), rxdelay (optional). 171# for modem: listenport (optional). 172# for nullmodem: server, rxdelay, txdelay, telnet, usedtr, 173# transparent, port, inhsocket (all optional). 174# Example: serial1=modem listenport:5000 175 176serial1=dummy 177serial2=dummy 178serial3=disabled 179serial4=disabled 180 181[dos] 182# xms -- Enable XMS support. 183# ems -- Enable EMS support. 184# umb -- Enable UMB support. 185# keyboardlayout -- Language code of the keyboard layout (or none). 186 187xms=true 188ems=true 189umb=true 190keyboardlayout=none 191 192[ipx] 193# ipx -- Enable ipx over UDP/IP emulation. 194 195ipx=false 196 197[autoexec] 198# Lines in this section will be run at startup. 199
You can change DOSBox' aspect ratio behaviour with the "aspect" entry in dosbox.conf. When you set it to "false", the image should fill the full screen, but you'll get a skewed display, like canadacow explained. I'll say it again: you don't _have_ to use huge resolutions like 1280x800. You could also use any lower resolution, as long as your display supports it. In my case, my LCD supports up to 1280x1024, but still i'm using a maximum of 800x600 for DOSBox.
Aspect correction works, it makes the image higher by adding extra lines. But I don't want that, I prefer a skewed display that fills the whole screen.
As for the lower resolution: This results in a blurry image because the pixels get interpolated on my TFT. I prefer absolutely sharp pixels (one game pixel results in 16 identical screen pixels). A compromise is to use 960x600 with the normal3x filter. While this is relatively sharp it is still not perfect.
Of course you will get different sized screens when using "2x" or "3x". The algorithms for these filters basically work by multiplying the number of pixels in the original image by 2 or 3 respectively. Others filters use completely different algorithms. The intended use of the filters is that you should configure a target resolution via dosbox.conf, and DOSBox will use the filter you have configured to stretch the original image to the resolution you have configured. So it's not like "find the filter that will stretch the image to fill my screen", but rather "find a filter that looks good with the resolution i have configured".
Okay, then the problem is that the target resolution "fullresolution" has no effect whatsoever. But even if it had, would it result in interpolated pixels or sharp pixels? (I prefer sharp).
Stockholm, Sweden, Europe, Earth Interests: Old games & young women
I am not sure if this (output=opengl #surface) could be causing problems, but I suggest you remove the trailing comment (#surface). One would expect it to work, but I am not sure the configuration parser in DOSBox supports trailing comments like this. And in that case, it might fall-back to the default output method (which I think is surface).
Ohh - and you don't need to supply a complete config file to DOSBox. Just the sections and settings you want to change. Anything else will be the the built-in defaults.
It stretches the image to 1280x800 without blurring and applying aspect ratio correction. I just tried it in Wolf3d and it worked fine (i.e. Dosbox didn't add any borders and the picture was 16:10 and sharp both in fullscreen and windowed). The "nb" in "openglnb" probably stands for "no blur".
If you use output=surface, dosbox will add borders to reach the desired fullresolution or windowresolution.
"No I think it is something to do with "no buffering"."
Perhaps, but at least for me the difference between opengl and openglnb is that opengl uses bilinear interpolation for resizing and openglnb uses nearest neighbor (=blocky and sharp).
I just started using dosbox today, it is really awesome. I'm currently playing "X-Com: Ufo Defense", an old game with 320x200 pixels. I'm using it on my laptop, which has 1280x800 pixels, which just happens to be exactly 4 times the width and height of the 320x200 resolution.
I tried to get it to fill the screen, but pressing ALT+ENTER just switches to a black full screen with the game in the center. I also modified the dosbox.conf file, but only got so far to change the filter to "normal3x". This results in 960x600 with a large black border, which is enough to play the game, but still not "real" fullscreen.
Is there a guide for total beginners how to configure it to do 1280x800 with sharp pixels? Or is there a "normal4x" filter planned for the next release?
Thank you for reading!
its probably your desktop video setting... try right-clicking on your desktop... you should probably see a "Graphic Options > Panel Fit" menu item. set it to either Full screen (with borders) or Full screen (maintain aspect ratio)