1:1 Pixel scaling

WDeranged

New member
Hi all, i've not used mame for a year or two, got the latest version and i cant seem to get perfectly square pixels in certain games unless i use the Directdraw mode but i cant get this mode to work without a border most of the time.

I realize the huge amount of differing resolutions means you cant get true fullscreen with some games.

To simplify the situation, i can run Ghouls & Ghosts full screen in Direct3d or the GDI mode and it looks fine at first glance but you can see some pixels are slightly oblong, its not such a bad problem when the screen is static but when you start to move you can see the pixels sliding between squares and oblongs.

Running in DirectDraw mode solves all the pixel scaling problems but the game runs in a window with a large black border and i cant find any option which stretches this any further.

I've tried the auto modes, Pixel Aspect mode and i've tried manually setting the aspect ratio of my lcd to 5:4 but for certain games i just cant get square pixels without the border.

Some people will never notice this but i've always been fussy about clean scrolling and nice square pixels :)

Hope someone more informed can help.

Cheers

WD
 
Last edited:

FatTrucker

Abusus non tollit usum
Hi,

Copied from the 'Newvideo.txt' file distributed with mame. Not sure if you've already looked it over but it might help.

Category 3: Anal video mode types. These are the guys who have
generally built their own cabinets and set them up with a CRT display
where they have several dozen carefully hand-tweaked video modes that
approximate the original video modes the games ran at. They want MAME
to pick that hand-tweaked mode and use it, drawing one pixel on the
screen for each pixel in the original game. They don’t give a whit
about artwork or anything other than the raw pixels going to the
right place. Fortunately, you can still configure MAME for this case
as well:

-video ddraw -nohwstretch -switchres [-triplebuffer]

Obviously in this case, the -switchres is required. You also want to
disable hardware stretching, otherwise you won’t get that “perfect”
1:1 pixel mapping. Triple buffering may or may not help.


So, I recommend starting with these initial options and then tweaking
from there. One additional option you might want to try in
combination with the above is the -prescale option. -prescale takes
an integer parameter from 1 to 8, and specifies a magnification
amount by which the screen pixels are expanded before they are drawn
to the screen. Why is this useful? And how much of a performance
impact does it have? Well, that depends on the mode you are running
in.

I would definitely use the Triple buffer option with this setup as dependent on the system you are running on, it makes a massive difference in terms of a smooth screen update without tearing and the strange pixel jumping effect you described.
 
Last edited:

WDeranged

New member
Excellent! Thanks for pointing me in the right direction man.

The bit that helped was this..

"So, I recommend starting with these initial options and then tweaking
from there. One additional option you might want to try in
combination with the above is the -prescale option. -prescale takes
an integer parameter from 1 to 8, and specifies a magnification
amount by which the screen pixels are expanded before they are drawn
to the screen. Why is this useful? And how much of a performance
impact does it have? Well, that depends on the mode you are running
in."

I should have been using hardware scaling with prescale turned up, there is still a slight bit of filtering visible but its 95% perfect :D

Goes to show you should always RTFM.

WD
 
Top