VOGONS


First post, by swaaye

User metadata
Rank l33t++
Rank
l33t++

Gulikoza:

I've been playing TIE Fighter thru with DOSBOX. It runs pretty good. But, I am now trying to use your impressive D3D option. The problem is in fullscreen and SVGA mode that i get full width, but only a few inches of height. There are big black bars on top and bottom.

fullscreen=false
fulldouble=false
fullfixed=true
fullresolution=1280x800
output=direct3d
hwscale=1.00
autolock=true
sensitivity=100
waitonerror=true
priority=higher,normal
mapperfile=mapper.txt
pixelshader=point.fx

frameskip=1
aspect=true
scaler=normal2x
hq2x_threshold_adaptive=75
hq2x_threshold=0

Aspect seems to have no effect on the game. Fullfixed must be on or there is no resizing at all.

This is so annoying. Your D3D is the only hope for an ATI user with a LCD! DDraw and Overlay are so blurry and OpenGL is so slow!

Reply 2 of 16, by `Moe`

User metadata
Rank Oldbie
Rank
Oldbie

I wonder if anyone has tools for OpenGL-programming on windows. I'd love to query ATI's extensions to see if OpenGL on windows could be accelerated. On Linux, ATI OpenGL speed is good now (with my current changes). I'm also using 1280x800/fullfixed.

Reply 3 of 16, by gulikoza

User metadata
Rank Oldbie
Rank
Oldbie

@swaaye: I found the problem. D3D is doing only integer scaling when fullfixed is on in order to avoid blurring pixels on LCD monitors. If the fullfixed resolution is 1280x800 and game res is 640x480 it will scale 2x in the x direction and only 1x in the y since 2x480 > 800. What would you prefer anyway? Having only 640x480 image with black bars around? Fullscreen image 1280x800 (w/ wrong aspect ratio), or ~1064x800 image with correct ar, some black bars and somehwat blurred pixels??

@`Moe`: What exactly do you need? There's a tool that shows you the supported extension - GLview, or you could just search through atioglxx.dll with a hexeditor 😁. But I think the code should be the same as in linux, set pointers, getprocaddress, etc...

Reply 4 of 16, by Qbix

User metadata
Rank DOSBox Author
Rank
DOSBox Author

the sdlmain.cpp of dosbox has some extension checks in it as well
it are 2 lines of code or so.
quite simple.

you basicly get a char* to a list in which all extensions are listed.
print it and you are done.

Water flows down the stream
How to ask questions the smart way!

Reply 6 of 16, by swaaye

User metadata
Rank l33t++
Rank
l33t++
gulikoza wrote:

@swaaye: I found the problem. D3D is doing only integer scaling when fullfixed is on in order to avoid blurring pixels on LCD monitors. If the fullfixed resolution is 1280x800 and game res is 640x480 it will scale 2x in the x direction and only 1x in the y since 2x480 > 800. What would you prefer anyway? Having only 640x480 image with black bars around? Fullscreen image 1280x800 (w/ wrong aspect ratio), or ~1064x800 image with correct ar, some black bars and somehwat blurred pixels??

I'd be ok with full 1280x800. Otherwise 1064x800 sounds ideal. Is there a way to make both an option, to make it stretch to full no matter what? Isn't that what aspect should do?

BTW, I don't THINK I posted with this question on the other forum.... Sorry about seeming that way tho!

Reply 7 of 16, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

Where is this direct3d output option documented? I hadn't heard of it until I read this thread just now! Any other features I should know about? I see from the CVS changelog that the config system has been overhauled - I hope someone documents that so we can help test it.

Reply 8 of 16, by gulikoza

User metadata
Rank Oldbie
Rank
Oldbie

hmmm....yeah...must have been someone else then...but I do remember reading about tie fighter problem 😁
I already thought of using aspect option, but aspect= is in used in render.cpp, it does not get to D3D unfortunately. I'd need to change the structs to pass it on to D3D...

@HunterZ: Direct3D is my patch, it can be found on my page, it's not part of the official cvs. It goes around sdl, directly to DirectX and even has some support to use pixelshaders for scalers.

Reply 9 of 16, by HunterZ

User metadata
Rank l33t++
Rank
l33t++

Ah, thanks. I figured it must have been a patch after looking in the unpatched source to see if there were any output modes not listed in the default dosbox.conf.

Sorry to hijack the thread, but:
- is the version of the coreswitch patch on your site the same one you use in your CVS builds?
- is there info somewhere on how to integrate the latest Munt CVS the way you're doing it?

Reply 11 of 16, by gulikoza

User metadata
Rank Oldbie
Rank
Oldbie

There it is...the new build is up. The changes in the fullscreen scaling (D3D) are as follows:
- aspect=false, will do only integer scaling to avoid as much blurring on LCD as possible (as discussed in the other thread), fixed a bug when it would only scale in one direction
- aspect=true, will try to scale as close to 4:3 as possible. Should be useful on widescreen displays if you want the correct aspect ratio

@swaaye: I don't have any widescreen lcds here, so test this and see if it works for you 😁

Reply 12 of 16, by swaaye

User metadata
Rank l33t++
Rank
l33t++

Gulikoza, I gave the new build a try and it looks good! There is still a problem with TIE @ high res in-flight 640x480 where aspect has no effect on the aspect (heh). However, while TIE is in 320x200 the aspect=true does force proper aspect ratio. But hey, it works a ton better than before. No super-squished TIE! Full screen 1280x800 with D3D in use. Nice work.

I noticed another bug in the build where if you have core=normal set in the conf file, DOSBOX will say it's in Simple core mode when you start it up. Setting core to dynamic however will show dynamic when you start DOSBOX.

Reply 13 of 16, by gulikoza

User metadata
Rank Oldbie
Rank
Oldbie

damn copy/pasting 😜. I've fixed the coreswitch patch now & recompiled 😁

As for Tie Fighter...hmm...it should be working. I tested TF in high-res as well. Are you saying that no matter what aspect= is set to, picture is the same size? How does it look (borders, fullscreen?)?

Reply 14 of 16, by swaaye

User metadata
Rank l33t++
Rank
l33t++

Ok. It was my fault 😀 I hadn't turned on fullfixed=true, so my LCD was interpolating from the game's default res's. However, there is still one issue.

When aspect=true everything is working fine. 320x200 and 640x480 are scaled to full height at 4:3, so there are black bars on the sides.

When aspect=false 320x200 is full 1280x800. However, 640x480 is not resized at all, staying 640x480 in the center of the screen.

I turned off LCD resize so I could see all of this btw.

Reply 15 of 16, by gulikoza

User metadata
Rank Oldbie
Rank
Oldbie

That's a feature not a bug 😁. The theory is to scale only integrally (x1, x2, x3...), there's a whole thread here in case you missed it. This way in your case a 320x200 image can be scaled x4 to 1280x800 (w/ wrong AR of 1.6:1, but that's why aspect=false 😉). 640x480 can be scaled x2 in x-direction (to 1280) and only x1 in y (since 2x480 > 800). That's what happened before, now I added checks if AR is waaay off. So the biggest factor to scale a 640x480 to 1280x800 is times 1 - leave it as it is. btw: lcd resize should not matter since in all cases when fullfixed=true, lcd will be switched to that resolution, the black borders will be drawn.
This has now become quite complicated, but I guess it should work for most cases when the game does not use some strange resolutions (psycho pinball anyone? 😁). The CRTs should always display a nice picture, since you don't need fullfixed and just use native res.