VOGONS

Common searches


Pinball Fantasies no-scroll patch for dosbox 0.65

Topic actions

First post, by felipe.sanches

User metadata
Rank Newbie
Rank
Newbie

Hi, I have tryied to post this on the Patches forum but only moderators are allowed to post there...

I wrote a patch for dosbox 0.65 that allows you to play pinball fantasies in a 320x608 resolution window (yes, I know... there is no such hardware! Its just a hack... i am emulating a videomode that doesnt exist but that is cool as hell ! ) I have disable the scroll because the entire pinball table can be viewed at this resolution. And the DMD now appears at the top of the window (because I have also disabled the page split feature).

In the NORMAL resolution nothing is changed; there still is scrolling.
To activate the full table/no-scroll mode, select HIGH resolution at the options menu (press F5 while on the table selection screen)

The patch goes attached. Have fun!

Last edited by felipe.sanches on 2006-06-15, 04:06. Edited 1 time in total.

Reply 1 of 100, by felipe.sanches

User metadata
Rank Newbie
Rank
Newbie

hey... the .patch attachment was rejected! but now I renamed it to .diff and it is supposed to work fine. 😀

Attachments

  • Filename
    dosbox-0.65-pfant.diff
    File size
    2.38 KiB
    Downloads
    1184 downloads
    File comment
    patch that allows one to play pinball fantasies in a full table view (i.e. all the table is visible at once in a 320x608 resolution window) and with no vertical scrolling (not needed anymore...).
    File license
    Fair use/fair dealing exception

Reply 2 of 100, by Miki Maus

User metadata
Rank Member
Rank
Member

Great work! 😉
After some modifying I got it to work with Pinball Dreams 1 & 2, Epic Pinball and Psycho Pinball (mammoth tables, 819 pixels in height 😁 ).

Thanks alot for this patch!

Reply 4 of 100, by Miki Maus

User metadata
Rank Member
Rank
Member

Well I don't have diff so I applied your patch manually to DOSBox 0.60 code because I can't get any newer to compile with MSVC 6. Only part in vga_draw.cpp is changed:

if (height==350) { // Pinball Fantasies
height = 608;
hackit = true;
} else if(height==200) { // Pinball Dreams 1 & 2
height = 534;
hackit = true;
} else if(height <= 367 && height > 354) { // Psycho Pinball
height = 819;
hackit = true;
} else if(height==240) { // Epic Pinball
height = 420;
hackit = true;
} else {
hackit = false;
}

Also this messed up graphichs for intro and other games. 😵

Reply 5 of 100, by felipe.sanches

User metadata
Rank Newbie
Rank
Newbie

yes, I know it messes things up.

I have put this if height=350 there to avoid the messup. Thats because pinball fantasies uses a special screen resolution *only* when it displays the playfield.

I thought about adding a command line parameter for dosbox such as --pinball-fantasies to activate the hack

The idea is that we must have a way of knowing (at runtime) when whe should trick the game (to show the entire playfield) and when we should let it emulate correctly (to show the menus, presentation, etc).

Reply 6 of 100, by halfgaar

User metadata
Rank Newbie
Rank
Newbie

Felipe, a quote from me from another thread:

Perhaps this patch can be extended so that it checks for the presence of psycho pinball in memory. A dirty hack would be to check if the executable name is _P_.EXE. This was (and perhaps is) a trick done by a lot of graphics drivers, which employ game specific cheats to improve framerates. Changing the name of some game to unrealtournament.exe radicly changed speed 😀

Perhaps this is an idea?

Also, this patch and the vertical tilt issue described in the other thread could be combined, but with the no-scroll as optional, because I can imagine you wouldn't want that, because it makes everything tiny.

Reply 7 of 100, by halfgaar

User metadata
Rank Newbie
Rank
Newbie

From the tilt issue thread (continued here):

felipe.sanches wrote:

What else would you suggest for pinball enhancement?

I thought about faking multiball but it seems to be too hard to do. But not impossible. When we are playing between the software and the hardware that it expects to be running on, we can trick it with a lot of flexibility. We can build a middle layer on top of the original hardware.

Personally, I'd rather not have hacks that could be classified as cheats. The no-scroll hack is something I'd welcome, because those tables only scrolled because higher resolutions weren't available back then.

felipe.sanches wrote:

Let me tell you about some of the other tricks that i've been doing with pinball fantasies (maybe it works with other pinball games too)

I have successfully integrated dosbox with a set of LEDs on my parallel port. Then I sincronized the flashing of the LEDs with the flashing of some of the playfield lights. I got it sincronized with the P A R T Y lights for example.

How did you accomplish that? Are the party lights always located in the same memory block, which you read datafrom and send to your leds?

Reply 9 of 100, by Wild-E

User metadata
Rank Newbie
Rank
Newbie

Has anyone got this patch working with Psycho Pinball in DosBOX 0.65? I'm running it on Gentoo, and I just get a black screen 🙁. Is it just me?

Pinball Fantasies runs perfectly with the patch. I don't have Epic or Dreams, so haven't tried them.

Reply 10 of 100, by felipe.sanches

User metadata
Rank Newbie
Rank
Newbie

Does Psycho work for you with the non-patched dosbox 0.65 ?

This patch will only work on games that use the hardware scrolling technique. The only thing that we need is to define what is the resolution of the entire table for the desired game. Miki maus says that he got Psycho working, so we can suppose that psycho uses hardware scrolling. Have you used the values that miki maus has posted above?

Reply 11 of 100, by Wild-E

User metadata
Rank Newbie
Rank
Newbie

Does Psycho work for you with the non-patched dosbox 0.65 ?

Yes...

Have you used the values that miki maus has posted above?

and yes. (I though that these would be obvious.)

I just get a black window with the patch, but the game keeps running - I can hear the sounds and even exit back to the menu (where I do get the graphics). Oh, and I think that the window isn't resized correctly, as with Pinball Fantasies and Illusions.

But setting that matter aside and moving to others, I also got Pinball Illusions working with the patch. Originally, it uses the same height as Pinball fantasies (i.e. 350), but has a different table + DMD + a black area between DMD & table height, which I think is 665, though I could be off by a pixel (I counted the pixels from a screenshot - is there a more elegant way to figure out the right values?). It seems to me if you use wrong values, you just get a part of the table cut off, or an area of extra black at the bottom of the table (or at least this is what happened with Pinball Illusions).

Actually, you could also run Pinball Illusions in 640x480 and 800x600 but that has never worked in DOSBox.

Also, as no-one hasn't noted (at least as I could notice), this patch causes DOSBox to crash if you go full-screen - not that anyone would have a monitor with the correct aspect ratio anyways 😉. I accidentally went fullscreen while the hack was active, not fun if you're making a new high-score 😜

Also, as there seem to be several games that could use this patch, but with different values, why not make a patch that takes a command line in the style of '--pinballhack 350-665'? Or call it --YScrollHack or whatever. Just put a list of known games that can use this with their correct values in your documentation. In my opinion, this would be better, because:

  • 1) hard-coding the values screws up other applications using the same native height (unless you code some detection rutine to run the hack only with the right application, as already suggested, but that would be more complicated)
    2) nobody has an extensive list of pinballs and other games that can use this hack AFAIK
    3) A user can use this feature with any application
    4) It should be trivial to code, I'd think, though I can't code 😀
    5) One could opt (not) to run the hack as one pleases - no need to install the hacked and non-hacked version separately

Also, maybe there are games that can use a similar hack with horizontal resolution? I don't know any, but I would assume there are some platform games with a limited but scrolling game area.

Ah well, just my hew cents 😉

Reply 12 of 100, by felipe.sanches

User metadata
Rank Newbie
Rank
Newbie

> is there a more elegant way to figure out the right values?

I am trying to figure out a way of doing it... but I think that you sugestion of using commandline is better.

>causes DOSBox to crash if you go full-screen

strange... for me it is working in fullscreen.

Reply 13 of 100, by Srecko

User metadata
Rank Member
Rank
Member

Contribution for Pinball Illusions 336x350 VGA (needed extending height a bit,maybe I missed it by few pixels):

if (height==350) { // Pinball Fantasies & Illusions
height = 608;
hackit = true;
if (width==336) height=672;

Reply 14 of 100, by bugmenot

User metadata
Rank Newbie
Rank
Newbie

Is it possible for someone to test the no-scroll patch for Psycho Pinball that Miki lists above?

All I get is a black screen in Psycho Pinball with my dosbox compile while the Pinball Fantasies no-scroll patch works fine in the same dosbox.

Reply 15 of 100, by felipe.sanches

User metadata
Rank Newbie
Rank
Newbie

This is the "no-scroll" patched dosbox 0.65 compiled for windows. Thanks, Daniel!

You will need SDL.dll
msvcp71.dll and
msvcr71.dll

in order to run this.

Attachments

  • Filename
    dosbox.exe
    File size
    1.12 MiB
    Downloads
    922 downloads
    File comment
    Dosbox 0.65 with no-scroll patch

    Windows executable compiled by Daniel Forsgren.
    Thanks, Daniel!
    File license
    Fair use/fair dealing exception

Reply 16 of 100, by felipe.sanches

User metadata
Rank Newbie
Rank
Newbie

Use this SDL.dll

I have tried some other SDL.dll found for download on the net but it gives me an error. This one I know that works. It was also provided by Daniel. Thanks!

Attachments

  • Filename
    SDL.exe
    File size
    252 KiB
    Downloads
    799 downloads
    File comment
    rename it to SDL.dll

    It seems that the forum doesnt allow to post dll files
    File license
    Fair use/fair dealing exception

Reply 17 of 100, by eemel

User metadata
Rank Newbie
Rank
Newbie

so how do i get this to work? what will i have to do? i'm a noob with things like this. please, help 😉

my pinball fantasies doesn't work in fullscreen, i mean, it crashes everytime you go from menu to a table or from table to menu.
it ain't so funny to play this game in a little window.

this game is awesome.

Reply 19 of 100, by Wild-E

User metadata
Rank Newbie
Rank
Newbie

Hi!

I just love bumping old threads, since I like old stuff like games and whisky 😉.

I had an urge to play some of the old pinball games today, and remembered this hack. It doesn't work with current dosbox version anymore, so I've made the changes to dosbox 0.74 with a bonus!

There seem to be some issues with fullresolution=original on some output devices. Experiment with different settings if you get a crash.

#          pinhack: Enable pinball hacks to display whole table at once. Not enabled per default.
# pinhackdoublewidth: Use doublewidth with pinhack. The original disables it, but you may find it better enabled, which is default.
# pinhackheight: The Y resolution (height) the pinball hack should trigger. Default is 350 (good for Pinball Fantasies).
# pinhackwidth: The X resolution (width) the pinball hack should trigger at. Is not checked by default or if set to 0..
# pinhackscaleto: The Y resolution (height) DOSBox will scale to if pinball hack is enabled and triggers..
pinhack=true
pinhackdoublewidth=true
pinhackheight=350
pinhackwidth=0
pinhackscaleto=608

DISCLAIMER: I really know little about programming, so using this patch may blow up your DOSBox or worse. 😈

Cheers!

Attachments

  • Filename
    dosbox-0.74-pinhack.patch
    File size
    4.75 KiB
    Downloads
    308 downloads
    File comment
    Dosbox pinball hack for 0.74
    File license
    Fair use/fair dealing exception