-
-
Notifications
You must be signed in to change notification settings - Fork 148
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Graphical issues with some Pinball games #1578
Comments
Thanks for this detailed post @Kappa971. Tagging this as a bug:
360x250 on real DOS and CRT, courtesy Great Hierophant: By filling the screen with more horizontal pixels, users could tighten up their CRT's width with an analog control to get a modest ~10% DPI improvement. But those quick-to-adjust analog knobs are gone on today's bezel-less flat panels (perhaps buried in a sluggish OSD menu, if that). Staging wants to support modern hardware, so this is an area where "correcting" the aspect will deviate from original behaviour. This might cause some people to cringe, but that's Staging's goal and scope. (Ideally we can leave non-aspect corrected 360x250 to behave per original hardware). Question: does anyone know of other games that used these less common VGA modes 13h/X resolutions to regression test against? |
So Pinball Illusions 360x350 mode is displayed incorrectly even on a CRT screen? Interesting.
Is it possible to recreate an "analog control" (with a hotkey) in the DOSBox settings? This would avoid problems with other games and keep the original behavior, with the ability to tighten the image via DOSBox's virtual analog controls. It would also avoid discussions about the correct aspect ratio. The 320x350 modes of Pinball Dreams Deluxe and Pinball Fantasies Deluxe are also stretched horizontally. Are these also displayed that way on a CRT screen? |
Yes, during the DOS heydays before Windows high-resolution gaming became common (with direct-draw and such), CRTs had front-facing hsize and vsize knobs allowing for quick adjustment to suit the users taste. These were often used especially after launching applications that set more obscure graphical modes that might not have appeared correct, like this one: I remember myself using these knobs for a handful of games when in those video modes. For example, Great Hierophant mentioned: And that's on DOS hardware + CRT. The knobs were very handy; a quick adjustment and carry-on playing.
I would assume so - but would need someone running actual hardware to confirm. |
So I guess DOSBox is scaling resolutions the right way... A virtual analog knob would solve these problems. It is feasible? Regarding the wrong colors in Pinball Fantasies and the 640x480/800x600 modes broken in Pinball Illusions with |
Yes to both.
So next step is to try to find other games (or graphical test tools, etc..) that exercise these same modes. |
If I understand correctly this would make DOSBox adjust these resolutions automatically, which could potentially create problems with other games using the same modes. As you said, we should find other games with such resolutions. What I thought instead, based on what you said about the analog control of old CRT monitors, is to add new options in the DOSBox settings for horizontal and vertical control of the image, controllable via hotkeys, so that you can see the changes made in real time. It would also avoid a long search for games that use the same modes. This site is interesting: http://nerdlypleasures.blogspot.com/2014/09/oddball-ega-and-vga-resolutions-when.html?m=1 EDIT |
Yes, if it turns out these modes are handled inconsistently then we would need to decide what to do. My guess is they (should) be similar, but need the data. |
From what I've learned over the years, I believe games ported from other systems such as Amiga may not have bothered to correct their artwork to account for different video modes, so one has to be careful about making changes. |
I found another game that uses 320x400, 320x350, and 360x350 video modes... it's Quake. Note that compared to Pinball games, all modes are stretched to use a 4:3 aspect ratio, but this horizontal stretch seems to have been taken into consideration by the developers, as all modes are displayed without errors. However, they didn't bother to readjust the hud and the menus which instead are stretched horizontally. |
That's definitely true. This is how Pinball Dreams looks with square-pixels on a PAL Amiga: I remember when I first saw the DOS port it definitely appeared squashed on my VGA monitor set up for standard VGA modes. Virtually no one redrew the art when porting to a different platform with different pixel aspect ratios. Playing ports of DOS games on PAL Amigas that used 320x256 screen modes appeared similarly squashed (but they looked fine on 320x200 NTSC). (By the way, if you're into pinball games, you definitely should play the Amiga original. While the DOS port is technically impressive and one of the better ports from the Amiga, the ball physics is completely different; I much prefer the original. And with beamracing (lagless vsync) enabled in WinUAE, it finally plays just like on my A500 in the 90s 😁) |
But it seems that in old PC monitors you could adjust the image with analog controls (see the photo shared by @kcgen), maybe it would be useful to have "analog controls" for manual correction of the image in the configuration file. Obviously I don't know how much work it would take and if it would be worth it for just these games.
I have them 😁 |
Hello, after a long search i have found this issue. I hope i understand all well. When dosbox recognize 320x350 as 640x350 why is it not possible to fix this old bug in dosbox. I hope i have it fully understood. When dosbox recognize 320x350 as 320x350 Pinball Dreams and others will rendered well. Or is the emulation of an vertical and horizontal switch the only way? Will it be possible to include an vsize and hsize config param with negative and positive values? thx |
I think the solution is not as simple as I thought... Here it is specified that these games change resolution and aspect ratio all the time: joncampbell123/dosbox-x#3546 (comment) |
Just noticed the ball in Pinball Illusions doesn't get displayed correctly in high-res modes... It's sometimes flashing, sometimes it completely disappears, sometimes black bars appear overlaid on top of it. That's with |
That's definitely true. It was expensive enough to draw the art once. In 99.99% of cases nobody bothered redrawing it when the game was ported to a platform that had a different aspect ratio. The art just became stretched, squashed, whatever... like no big deal, nothing to see here 😅 |
It needs a bit more juice at those higher resolutions. (I also run the high res VESA rate at 60 Hz given the game's Amiga roots). These are dialed in if you run the game in 800x600 res: [render]
aspect = false
[dosbox]
dos_rate = 60
[cpu]
cycles = 4900 |
I have other problems with
If it were possible to have controls to change the aspect ratio manually, the problem would be solved. |
I'm using your config @kcgen from your "strange_ega_and_vga_modes" pack. I haven't changed the config, it's configured for illusion_000.zip (rename to *.avi) This is main, but I'm getting the exact same behaviour on 0.80.1 as well on macOS.
@Kappa971 but the aspect ratio is perfect with |
Yup.. the confs were only setup enough for me to look for regressions in video modes (not setup for audio or gameplay). suggest updating your conf with these: [render]
aspect = false
[dosbox]
machine = svga_et3000
dos_rate = 60
[cpu]
cycles = 4900 To change resolutions, pass the |
with |
@Kappa971 - yes, in the high res modes, Pinball Illusion's rendering artifacts are cycle-specific. Launch the ball and start rapidly tapping both paddles to generate as much sprite movement load on the game as possible. At 3000 cycles, you should see vertical gap lines periodically during left paddle sprite rendering (as you recorded). This is true for SVN and X too. Now tap ctrl+F12 to step cycles up, and those rendering gaps will march right. Keep doing that until you find when you push them off the right edge of the screen - but don't go too far, they will wrap around back to the left side (at this point, manually enter the cycles to find the sweet spot prior to wrap-around). This is where I landed on 4900 cycles for 60 Hz VESA at 800x600. I also suspect this would be true for a 386 16-Mhz SX running a real ET 3000 card and the game set to 800x600. People playing the Amiga version also report the ball phasing in and out too - https://eab.abime.net/showthread.php?t=27345. |
You are right! at 4800-4900 cycles there are no graphical artifacts in 800x600, but at 640x480 I didn't find the right cycles without graphical glitches.
|
Yup - 3648 is OK 800x600 except for babewatch, which has a paddle a lot higher up on the board. If you run at 35000 cycles and above, it always renders OK (and that speed is a lot more period correct, too). Even I'm not sure how the game behaves with real graphics cards. I know the S3 implementation is very compliant (passing all of UniVBEs tests), so the game might just need an older spec, like the ET 3000 gives. |
Ok, so I think I can close this, thanks. |
This is a good suggestion, @Kappa971. Letting users select cpu model and speed similar to terminology used by manufacturers at the time:
(With some generous bounds on ranges of speed) this would let users punch in period-correct values. |
Short Info: Dosbox-X has an OpenGL-Perfect Output-Driver, thats scale all Pinball-Games perfectly. Is it possible to implement this in your Dosbox-Staging Version? I have all dosbox versions on this planet tested after i have buyed pinball dreams on gog, and the dosbox-x output opengl-perfect ist the only one that resolved the problems with pinball dreams. If dosbox-staging become this driver it will be the best dosbox fork. thx |
Set |
@johnnovak Yes i have. Same Problem on low-res i have perfectly round ball and in highres i have a squeezed ball:). Ah i understand perfectly in the gui mean openglpp. facepalm. Cann you please post a config where Pinball Dreams in Highres-Mode show a perfect round ball? thx |
Hi, has anybody a functioned dosbox-staging config for highres modes inpinball games like pinball dreams deluxe? In Dosbox-X with openglpp (i hope this is the same version like dosbox-staging) i became a perfect display of balls in the the high res modes. Dosbox-X was the first dos-emulator that has showed right the balls in highres-modes. thx |
Hi, i have found the special dosbox-x config key: |
I think this is enough:
I think I got the GUS.SDR driver in the DELUXE folder to use Gravis Ultrasound from one of the other pinball games, can't remember which one (maybe Pinball Fantasies Deluxe).
From what I understand, they don't want to develop targeted fixes only for these games, also because there are problems: these games often switch video modes (for example between menu and table), so adjusting the aspect ratio for the tables will ruin the aspect ratio of menus, movies etc... How does DOSBox-X handle this? (You'll probably have to explain this to the DOSBox Staging developers). Anyway these games were ported to DOS with wrong aspect ratio (at first I thought it was a DOSBox issue but it's not), that's what they displayed in the 90's. It would be nice to have the correct aspect ratio in SVGA modes, but games were developed like this so… |
What you wrote above is spot-on; "overriding" the aspect ratio with manually set values won't happen—what about frequent screen mode changes? Pretty must all pre-640x480 VGA resolutions have non-square pixels, and most modes have different pixel aspect ratios... And yeah, pinball games being predominantly Amiga ports, done by democoders, they use a whole pantheon of weird Mode X resolutions, all different dimensions, aspect ratios, etc. within the same game. I'm 99.99% sure in DOSBox-X this is a global override. You'll get that aspect ratio in all modes, and that's it. |
With current Here's what I'm using (and copied [sdl]
output = opengl
windowresolution = 960x1050
[dosbox]
machine = svga_s3
memsize= 8
[render]
aspect = false
glshader = crt/aperture.vga-retina
[dosbox]
# Ported from Amiga, so use NTSC 60 Hz
dos_rate = 60
startup_verbosity = quiet
[cpu]
core = dynamic
cycles = 5000
[mixer]
reverb = on
chorus = on
crossfeed = on
[gus]
gus = true
[midi]
mididevice = none
[sblaster]
sbtype = none
oplmode = none
[dos]
xms = false
ems = false
umb = false
[speaker]
pcspeaker = none
[autoexec]
mount c .
mount d cdrom -label "DELUXE" -t cdrom
d:
deluxe.bat pd2_000.mp4Circles look circular enough, don't they? |
@ALL @kcgen @Kappa971,@johnnovak @kcgen btw: i hope dosbox-staging will implement the aspect_ratio config key;). |
Yes, this the If you want to try - download a |
This makes me feel like an idiot... I remember trying |
Too complicated and long and technical to explain... TL;DR these pinball games ported from Amiga use lots of weird custom resolutions. Also, Just download @kcgen's pack and use it the current alpha or wait for 0.81.0 and enjoy the game 😎 |
@kcgen Rounded Balls with only aspect=false, GREEEEAAAAATTTTTTT Fullscreen or Windows it doenst matter !!!! Low-Res or High-Res it doesn't matter. Now it is official dosbox-staging is the only dosbox fork that can handle Pinball Dream, Pinball Fanatasies and Pinball Illusions with perfect rounded balls. Dosbox-X i don't coun, why dosbox-x is not an game optimized fork and only for really hard professionals that not so much do gaming;). Personally i find this must in the stable release changelog as an top fix;). THX |
Speed-related graphics glitches happen in Pinball Fantasies running on real hardware, too: https://www.vogons.org/viewtopic.php?f=63&t=96016 The solution for this user was to swap out to a slower-performing video card. |
The joys of hardware 😂 One of my later S3 cards doesn't have the 9x14 EGA font, which causes various random glitches in Legend Entertainment adventures. One Vogons member suggested a TSR that patches the VGA BIOS with the missing font, and then the games are perfect! I would not have guessed this in a million years because the in-game font actually looks fine... In DOSBox, it JustWorks(tm) with |
Short Question for the Alpha 0.81. At the moment two settings ressolve the problem: In my tests config the setting integer_scaling = horizontal resolve the ball-bug perfect. btw i love pixel perfect settings but i feel i have not fully understand the new concepts,i mean the correlations. I think i must wait for the he upcoming getting started guide:). Btw: Is it possible to made a cconfig setting thats fits all resolutions perfectly with all settings low/high? |
I find very hard to understand your writing @cyberpunkbln 😅
Okay, re-read the original top comment and I think now I understand what you were asking 😄 So on real hardware the various higher resolution modes always result in a squashed image. You could compensate for that on some monitors that had a vertical/horizontal size adjusment knob—that was the only way. I'm working on a new feature right now that will allow emulating that, to effectively apply arbitrary horizontal and vertical stretching to the image. Then one will be able to come up with custom stretch factors in the config for any of the custom resolutions the game uses. I'll ping you here once the feature is in the dev build. For the record, The Getting Started guide will be released once 0.81.0 is out. |
This is a good idea @Kappa971 and in my upcoming feature I'm effectively adding support for such a feature at the config level. Then later we'll be able to implement "analog control"-like behaviour on the OSD. |
Will that be for 0.81 or 0.82? |
0.81 😎 My last substantial feature for 0.81, then I'll stop here. I will! Oh yes, I will! (Will I? 🤔 ) 😆 |
thx for the answer. Yes i think i must wait for 0.81.0 and the new Docu;). For now i use the Alpha and 'm happy with that version. I understand, when i'm use desktop for fullscreen and default for window, i'm must set aspect=false to become an really square ball for the high resolutions in pinball dreams and fanatasies. That functioned very well. But the algo that correct this resolutions don't correct the aspect in normal resolutions for example 320x200. The intros and menus are stretched. Oh yeah i have long waited for my square pixel ball and can take this issue. My solution is aspect=true and integer_scaling=horizontal. Thats is the perfect setting to became an config that can i use for the most other games (when peoples like pixel perfect modes:)) and for square balls in pinball games. But for now i'm happy that the old bug in dosbox for strange vesa modes are resolved and i can enjoy pinball games in the high resolution. I'll wat for the upcoming manual:). PS: An config-setting that trigger the new aspect-allgorythm for "strange" vesa mode separatly was very cool like: |
It's impossible for us to "autocorrect" things so things look "correct" for all weird resolutions a game uses. The "correct looking" settings are not technically derivable for weird custom resolutions and mismatched original art and DOS pixel aspect ratios (remember, the game does look squashed in many of its supported resolutions on DOS). |
Exiting Psycho Pinball forces Dosbox Staging to close too. This on a W10 machine with a new monitor. On Linux though I have a CRT monitor connected with full screen and switch res enabled. There when exiting the game Dosbox Staging does not exit but switches resolution back to before launching the game. In-game it switches to 640x480 in menus and low res tables and 800x600 for high res tables. But this is not happening on the WIndows machine where the newer monitor does not switch res natively like the CRT monitor. |
@petran79 Raise a new ticket please and fill out the issue template. |
Are you using the latest Dosbox-Staging Version?
Different version than latest?
0.79.0-alpha-220-ga2df5
What Operating System are you using?
Windows 11
Whats your question and how can we help?
Hi, I would like to show you some graphical issues I have encountered with Pinball Dreams Deluxe, Pinball Fantasies Deluxe and Pinball Illusions. I haven't marked it as a "bug" as I don't know if all the problems are due to DOSBox or the games themselves.
I used the latest alpha version from the main branch, to make sure those problems were still present.
Pinball Dreams Deluxe
Pinball Dreams Deluxe uses two video modes: low-res 320x200 and high-res 320x350 (which DOSBox indicates as
VGA 640x350 8-bit (mode 13h)
).Let's start with the first:
With
aspect = true
, low-res mode is displayed incorrectly, everything is stretched verticallyIn this case the solution is simple, set
aspect = false
Unfortunately the same solution doesn't work for the 320x350 high-res mode, as the image is extremely stretched horizontally, occupying the entire viewing area of the 16:9 screen.
The image will be stretched horizontally even with
aspect = true
:Pinball Fantasies Deluxe
Pinball Fantasies Deluxe uses two video modes: low-res 320x240 and high-res 320x350.
It contains two games: Pinball Fantasies and Pinball Mania.
In Pinball Fantasies, setting
machine = svga_s3
, the colors in the main menu are wrongWith
machine = vgaonly
the correct colors will be shown.Low-res mode is displayed correctly with both
aspect = true
andaspect = false
High-res mode is displayed stretched horizontally (
aspect = true
) like Pinball Dreams Deluxe:Pinball Mania behaves the same way:
Low-res
High-res
Pinball Illusions
Pinball Illusion supports 320x240, 360x350, 640x480, 800x600 video modes.
320x240 mode displays correctly (right side is slightly cropped, but I think that's intended):
360x350 mode is stretched horizontally:
The 640x480 and 800x600 modes, setting
machine = svga_s3
, are completely broken:640x480
800x600
However, if you set
machine = svga_et3000
, they are displayed correctly:640x480
800x600
Code of Conduct & Contributing Guidelines
The text was updated successfully, but these errors were encountered: