Reply 20 of 100, by Dominus
- Rank
- DOSBox Moderator
Moving to the patches subforum
Moving to the patches subforum
Is that patch for Fantasies or Psycho? Just last month, I hacked Dosbox 0.74 to disable doublewidth for Psycho, because everything was too wide (the ball was oval). The patch will mess up everything but Psycho, so if you have a proper patch, that would be welcome 😀
Aspect correction didn't work?
Aspect correction seems to be for correcting 4:3 games on a modern wide screen monitor. I actually still have a 4:3 CRT, and Pyscho is not meant to be screen filling. It's meant to have black bars on the sides.
No, aspect correction is to compensate for the differences in pixel shapes between period monitors and modern ones. It is not intended to change for wide screen. http://en.wikipedia.org/wiki/Pixel_aspect_ratio
I'm unable to try right now, but doesn't Psycho use ordinary square pixels? It's a VGA game, and VGA monitors had square pixels.
But, I will try as soon as I'm able to.
You are confusing yourself. Think about it, the resolution of the VGA era games was 320x200. To have the same overall ratio on a modern monitor requires a multiple of 320x240. Without aspect correction all of the games of that era look too short for the width on a modern monitor.
That's what I'm saying; my monitor does run on a multiple of that, namely 1440x1080
Huh? Either it is too late and I can't think straight or I really can't see how 1440x1080 is the multiple of 320x240...
And I don't think a 4.5 times is what was in collectors mind...
You got a 4:3 CRT, right? Why not use 320x200 in fullscreen without any software scaling?
Sorry, it's not a multiple, but it is 4:3. Should have been clearer.
But anyway, I can't run 320x240, as far as I recall. I don't think X goes that low.
But, I will be able to provide a definite answer later 😀
Hi again,
There seems to be some confusion about aspect ratios and my patch. Well I will try to clear things up =).
First, my patch works (at least AFAICT). I've tried it on pinball fantasies and pinball dreams (haven't had time to play around with it more yet). It really depends on the values you put on the config file (the defaults work for pinball fantasies, but nothing else will work, unless it happened to use the same resolutions).
To get it working the way you neet, you need to look for values earlier in this thread. That being said, I never got it working in Psycho Pinball (even back on dosbox-0.6[45]) - the hack just wouldn't trigger, no matter what I put in the source code. The values posted before for Psycho Pinball were a range:
wrote:} else if(height <= 367 && height > 354) { // Psycho Pinball
height = 819;
hackit = true;
Even if Psycho Pinball would work, my current patch does not support a range (of resolution) to trigger at, because I think it would make it unecessarily complicated to configure. It would be trivial to implement, though, and I could do it if it really does work for Psycho Pinball (or some other game).
As for resolutions: Yes, all CRT (S)VGA monitors were 4:3 (well... in fact, I can't be sure, maybe there were some 16:9 or 16:10 CRT monitors for the windows98/NT/XP+ era?). But all resolutions were not (i.e. pixels were not square). This is a limitation of LCD (and other panel-based display) technology only, in CRTs, the pixel ratio can be almost arbitary, or something the monitor can sync into - the way the picture is formed, does not limit it. I believe this table should clear things up a bit: <http://en.wikipedia.org/wiki/List_of_common_resolutions>
But, as I recall it - Psycho Pinball (in high resolution mode) looked weird even on a real 4:3 VGA CRT. Probably, because the resolution was weird - and, although, my monitor I was using could sync into it, it could not stretch it properly (even with adjusting the monitor). We can only assume, that the games were designed to run on a 4:3 monitor filling it completely (with the resolution not necessarily having square pixels). I believe, this is what aspect=true should accomplish. But, scaling non-square pixels on a device with square pixels looks very ugly (unless your resolution is many times larger than the original and / or some blur applied).
For me, these two configs work best for pinball fantasies:
### For pinball fantasies, food configs I'be found (with the hack):
### 1)
# fullresolution = manually set to your native resolution
# output=overlay
# doublewidth=true
# aspect=true
### 2)
# fullresolution=original
# output=overlay
# doublewidth=true
# aspect=false
The first one scales to full screen, but looks a bit ugly - since some pixels are scaled more than others. But, will have the correct aspect ratio AFAICT. The latter one looks more even (i.e.uniform pixels), but is slightly stretched horizontally. Setting "doublewidth=false" will make it slightly squashed in (with uniform pixels).
That being said, this patch is really a hack, and it could mess up the dosbox's internal realisation of what the aspect ratio should have originally been, or not (I really don't understand what the code is doing that well). Also, I could have messed something up. Someone with more programmin abilities should review this 😉
Also, if I set machine=vga, the patch does not work for me (I get double images on top of each other, that are scrolling).
How do you apply the patch to .74
Hi carlo,
One nees to apply the patch to the source of dosbox-0.74 and recompile it. That is a little bit over the capabilites of the regular user, I believe. If you don't know how to compile yourself (and don't want to learn), you need to find someone who's willing to compile it and distribute the executable. I don't use windows at all (assuming you do), so I can't help you there.
In Linux, compiling is a lot easier since the toolkit is already there in most distributions.
Also, I've updated the patch a bit again (well, trivial changes really). It works in Psycho Pinball, too, with the right values. Stay tuned!
Hi!
I've updated the patch a bit. It does really work quite well for me, with some issues.
Remember: This patch makes the gamess do something they were not supposed to. It may cause glitches in some games. Also, I'm not sure the no-scroll always improves gameplay, as the graphics will get quite small (depends on your monitor).
Changes:
Known Issues:
About resolutions: Here's some information I've gathered (from this thread and elsewhere):
Game - Original resolution - Talbe height
As you can see, a lot of the resolutions are not 4:3. If they used to fill the whole screen, they did not have square pixels. If they did not, but used some kind of VGA timing method to create black bars at left and right, they might have had square pixels. I'm not sure what the games did originally (and have no hardware to test), but according to my tests with dosbox - if dosbox is right - it was something in between (neither did they fill the whole screen, but they didin't have exactly square pixels either). Using aspect correction and letting dosbox decide the doublewidth setting, gives the best results (i.e. most correct) 99% of the time.
However, DOSBox usually does the aspect ratio correction after deciding the doublewidth for the resolution, and then upscaling the height. That causes really large windows / output surface. For example, output=surface and fullresolution=original causes a crash most of the time (I believe because the resolution is too large).
Scaling is a wholly another issue. Sometimes, especially if you have somewhat low resolution monitor, it might look nicer to have the wrong aspect ratio, but square pixels (or if you disagree with me what the game should have looked like). But via the config file one can experiment without the need to recompile an executable every time to try different settings 😉.
Recommendations:
I recommend setting fullresolution to your monitors native resolution, and windowresolution to anything that has the same height (or larger, preferably a multiplier if you have enough resolution) as the height you will be expanding the games resolution to, if DOSBox creates too large windows at windowresolution=native. It's quite weird, but for example, for Psycho Pinball I get an aspect-ratio corrected window with a height of 1638 if windowresoltuon=original, but if I set windowresolution=1024x819, the menus will be in 1024 x 765(!), but the gameplay window will still be resized to the correct aspect ratio @ 398 x 819 (according to xwininfo). So, DOSBox still reisizes the window sometimes, I'm not quite sure of the logic but it looks nice.
For those games that did have square pixels (Pinball Dreams for example), you may want to try output=surface. For others, aspect ratio correction looks really bad with that output method (since it only provides some rudimentary scaling support), but if you use aspect=false, you might get nice results (with wrong aspect ratio though).
Here's the default config file section (dosbox should create the config file it if started without one):
[pinhack]
# pinhack: Boolean: Enable pinball hacks to display whole table at once. Not enabled per default.
# pinhacktriggerwidth: The X resolution (width) the pinball hack should trigger at. It is not checked by default or if set to 0. Can be a range.
# pinhacktriggerheight: The Y resolution (height) the pinball hack should trigger at. Default is 350 (good for Pinball Fantasies). Can be a range.
# pinhackexpandwidth: The X resolution (width) DOSBox will expand to if pinball hack is enabled and triggers.
# Not very useful probably, but provided here in case someone finds a game where it is useful!
# pinhackexpandheight: The Y resolution (height) DOSBox will expand to if pinball hack is enabled and triggers.
# pinhackpd: Boolean: Enable pinball dreams to work correctly during intros. Default:false
#
# pinhackpsycho: Boolean: Psycho Pinball tilt craphics are messed up if hack enabled. TODO, this is a placeholder and has no function currently.
# pinhackdoublewidth: Used to enable forcing (or disabling) doublewidth with pinhack. The original patch disabled it,
# but you may find it better enabled, or left to decide by dosbox and use aspect ratio correction insread.
# normal=do not touch the setting, let DOSBox decide. yes=doublewidth. no=no doublewidth
pinhack=false
pinhacktriggerwidth=0
pinhacktriggerheight=350
pinhackexpandwidth=0
pinhackexpandheight=608
pinhackpd=false
pinhackpsycho=false
pinhackdoublewidth=normal
Elsewhere in the config, I recommend:
[sdl]
# output=overlay or opengl, or openglnb seem to work well, but opengl is slow on my computer
output=overlay
# but for those games with exactly square pixels, you may want to tray output=surface - especially PD games look great this way on a 1080p monitor with 2x scaling!
# output=surface
# test what will work for you. original / any 4:3 resoltuon that will fit / any resolution with the height you are scaling to may work well
windowresolution=original
fullresolution=[your monitors native resolution]
[render]
aspect=true
# Or, if you set aspect=false, you may test the results of pinhackdouble option above, and see which one of the distorted options look better for you
Can anyone please post the patched DOSbox Windows EXE for this?
wrote:Can anyone please post the patched DOSbox Windows EXE for this?
I second the motion. Can someone please post the Windows EXE for this?
I don't have the minGW environment installed, so this would save me a ton of time just trying to get to the point of being able to compile dosbox (let alone apply this patch).
EDIT: after spending several hours downloading mingw, msys, dosbox source, sdl source, etc., I still can't get dosbox to compile on my system. The instructions at http://www.dosbox.com/wiki/BuildingDOSBox are just not enough. I can't seem to get mingw to see the SDL source/dll.
It appears that this patch (or something similar) may be included in the latest Pinball Gold release from GOG. The DOSbox version shipped with Pinball Gold is an SVN release, and it will render Pinball Fantasies in high resolution with almost no vertical scrolling. However, it doesn't change pinball dreams or illusions at all.
wrote:It also addresses the CD Audio volume. The game manipulates the CD Audio volume to mix between Sound Card and CD Audio. In the normal DOSBox this doesn't work.
It doesn't work in 0.74, if that's what you mean by "normal DOSBox", but it does work in SVN.