Main > Software Forum
Question on Hardware Stretch and -artworkfilledges (for SirP or others)
SirPoonga:
You might be missing the point made on the mame general board and what I tried to explain here (read what Twisty said). Why do you think is 8:7 proper for gyruss? Is it because of the native game resolution of 256x224? If so you are mistaken. screen_aspect is essentially the aspect ratio of the monitor you are viewing the game at. Goto a 16:9 TV with mame now at 4:3, see how everything is stretched. Now put in 16:9 into the aspect ratio, ahhh, that's better.
I've tested the fill artwork on 4:3 and 16:9 monitors without a problem so far.
Ok, go look at battle toads now. from listinfo:
video ( screen raster orientation horizontal x 512 y 224 aspectx 4 aspecty 3 freq 60.000000 )
512x224 is NOT 4:3. That's the pixel resolution of the game, as Twisty said there is no fixed size for pixels. But the game was shown on a 4:3 monitor so it was hardware stretched.
Now do this, run btoads in mame. First take keepaspect and hwstretch turned off. You are seeing the game in it's raw pixel size. Now turn those two on. Hey, now it looks like it did in the arcade, the text isn't squished, it looks pretty good.
That's what is going on. Now what's going on when you specify 8:7 with artwork fill. You are telling mame you are viewing the game on a 8:7 and mame does it's calculations to figure out how to fit the game screen to that resolution.. Now do this on your computer. Run a game, like btoads, with hwstretch and keepaspect on. But chance screen_aspect to 16:9. What should happen. You are telling mame you are going output to a 16:9 monitor. the keepaspect and hwstretch will want to run the game at 4:3 as specified in the listinfo output. SO you should get black bars to the right and left as mame caclulated the output for a 16:9 picture with a 4:3 game screen in the middle.
How does this affect artwork fill. Notice how you can still diplay 16:9 on your 4:3 monitor just that everything is squished. This is because you are getting a 16:9 output from mame BUT your video card is squishing the signal to 4:3. So what is happening when you specify 8:7 is the caclulations for an 8:7 screen are getting outputted to a 4:3 screen and weird stretching occurs. That's probably why you get black bars at top and bottom. I just ran that, yeah, that would be my guess at why that is happening. It also does it without the artwork fill stuff on, the black bars are there when artwork is turned on without fill. So it isn't the artwork fill code doing that, it's the other stuff I mentioned aobut aspect ratios.
Let me simplify this a little and show you something else that does this. Have you ever looked at scanner resolutions? many say something like 600x300dpi.
That means in a 1 inch square, along one direction is 600 dots and the other 300 dots. Even though 600x300 isn't a square, the size of the pixels used for scanning create the square. A simular thing is going on here.
Tiger-Heli:
--- Quote from: SirPoonga on June 29, 2004, 12:02:25 pm ---You might be missing the point made on the mame general board and what I tried to explain here (read what Twisty said).
--- End quote ---
Yep, I missed it (read but didn't understand) It's a little bit clearer now, but still muddy . . .
--- Quote ---Why do you think is 8:7 proper for gyruss? Is it because of the native game resolution of 256x224? If so you are mistaken.
--- End quote ---
Yep, that was why . . .
--- Quote ---Ok, go look at battle toads now. from listinfo:
--- End quote ---
How do I get -listinfo for a single game? What does it show for Gyruss?
--- Quote ---512x224 is NOT 4:3. That's the pixel resolution of the game, as Twisty said there is no fixed size for pixels. But the game was shown on a 4:3 monitor so it was hardware stretched.
--- End quote ---
512x224 would be a 16:7 aspect ratio. So did the original arcade game display on a 16:7 wide screen monitor, or it was hardware stretched in the arcade to 4:3???
--- Quote ---Now do this, run btoads in mame. First take keepaspect and hwstretch turned off. You are seeing the game in it's raw pixel size.
--- End quote ---
At -res 800x600, and -screen_aspect 4:3, I get a 510x450 game image. (Essentially double the listed resolution vertically (double-scanned?))
--- Quote ---Now turn those two on. Hey, now it looks like it did in the arcade, the text isn't squished, it looks pretty good.
--- End quote ---
I get a 797x594 pixel image essentially full screen.
--- Quote ---Now do this on your computer. Run a game, like btoads, with hwstretch and keepaspect on. But chance screen_aspect to 16:9.
--- End quote ---
I get a 600x600 pixel screen odd . . .
Just for kicks, I also ran with screen aspect 7:16. I got a 200x800 pixel image (A 4:1 aspect instead of closer to 2:1 Odd . . . (I expected an 800x350 pixel image. This is what I would have thought the native resolution should look like but it doesn't look like an arcade game would).
So if I am understanding things correctly, all vertical games at -800x600 and -keepaspect display at 450x600 b/c they were originally run on a 4:3 monitor, basically?
I think the light just clicked on a little - it's kinda like if I run my monitor at 1280x1024, that's a 5:4 ratio, not 4:3 like 1024x768, but I can size the images to fit the screen, so the image dimensions are the same and an emulator displaying them should have the same proportions, right?
--- Quote ---How does this affect artwork fill. Notice how you can still diplay 16:9 on your 4:3 monitor just that everything is squished. This is because you are getting a 16:9 output from mame BUT your video card is squishing the signal to 4:3. So what is happening when you specify 8:7 is the caclulations for an 8:7 screen are getting outputted to a 4:3 screen and weird stretching occurs. That's probably why you get black bars at top and bottom. I just ran that, yeah, that would be my guess at why that is happening. It also does it without the artwork fill stuff on, the black bars are there when artwork is turned on without fill. So it isn't the artwork fill code doing that, it's the other stuff I mentioned aobut aspect ratios.
--- End quote ---
That's not what I'm seeing exactly, though - going back to my Gyruss question If I run the game at 4:3 with no artwork, I get a 450x600 image. If I run the game at 8:7 with no artwork, I get a 525x600 image, which matches the native resolution aspect ratio (could be wrong for the game, though).
Now this is where I initially got confused If I run Gyruss with -artworkfilledges -screen_aspect 4:3, and -keepaspect, I get an 800x512 image with black bars top and bottom. Running it with -keepaspect off, works, full screen, but the top of the game image is slightly off-screen.
If I run Galaxian (which is the same native resolution) at the same settings (-filledges, -keepaspect, -res 800x600 -scr_aspect 4:3), I get essentially a full screen image with no black borders.
I have a theory that Galaxian happens to have the side artwork borders set to the optimum size. Some games have it too narrow, which gives black bars on either side of the screen (acceptable). And Gyruss has the art too wide, -artworkfilledges fits the game and the side art to the screen, and the game gets squished vertically.
If so, I think -fillededges needs to be changed so only the portion of the artwork nearest the game screen is shown, once the game is expanded vertically to fill the screen.
But it's only a theory.
Thanks for the education (again . . . >:-( )
--- Quote ---Even though 600x300 isn't a square, the size of the pixels used for scanning create the square. A simular thing is going on here.
--- End quote ---
I'm slowly catching on . . .
Tiger-Heli:
--- Quote from: Tiger-Heli on June 29, 2004, 02:37:04 pm ---I have a theory that Galaxian happens to have the side artwork borders set to the optimum size. Some games have it too narrow, which gives black bars on either side of the screen (acceptable). And Gyruss has the art too wide, -artworkfilledges fits the game and the side art to the screen, and the game gets squished vertically.
If so, I think -fillededges needs to be changed so only the portion of the artwork nearest the game screen is shown, once the game is expanded vertically to fill the screen.
But it's only a theory.
--- End quote ---
BINGO !!!!
I did some experimenting and confirmed my theory:
Gridle also posted on the MAME forum that ALL single screen games should display at 450x600 pixels with a 4:3 monitor set to 800x600 screen resolution.
This means that the non-game area is 350 pixels and the border for one side of the bezel artwork should be 175 pixels or 175/800 = 21.875% of the screen width.
Opened the Galaxian artwork - The artwork is 1024 pixels wide and the side art is 222 pixels wide, so 222/1024 = 21.6796% which is why -artworkfilledges works almost perfectly for it.
Check the Gyruss artwork - The artwork is 1635 pixels wide and the side art is 416 pixels wide, so 416/1635 = 25.4435%. Since the side art is wider than the screen allows, -artworkfilledges shrinks the screen vertically to make it fit.
Final Question: Artworkfilledges works perfectly for games where the side art border of the bezel (on each side) is less than 21.875% of the total bezel width. What would it take (besides more money than I'll earn in my lifetime) to modify (or create a new option) which for artwork larger than 21.875%, would only show the artwork that was on the screen-side edge of the 21.875% limit?
(I can deal with the games being full-screen vertically and lopping off some of the side bezel artwork, I'm already lopping off the top and bottom bezel art !!!)
Thanks!!!
SirPoonga:
--- Quote from: Tiger-Heli on June 29, 2004, 02:37:04 pm ---
--- Quote from: SirPoonga on June 29, 2004, 12:02:25 pm ---You might be missing the point made on the mame general board and what I tried to explain here (read what Twisty said).
--- End quote ---
Yep, I missed it (read but didn't understand) It's a little bit clearer now, but still muddy . . .
--- Quote ---Why do you think is 8:7 proper for gyruss? Is it because of the native game resolution of 256x224? If so you are mistaken.
--- End quote ---
Yep, that was why . . .
--- End quote ---
Which is wrong as you probably have figured out now.
--- Quote ---
--- Quote ---Ok, go look at battle toads now. from listinfo:
--- End quote ---
How do I get -listinfo for a single game? What does it show for Gyruss?
--- End quote ---
You don't, at least not that I know of.
--- Quote ---
--- Quote ---512x224 is NOT 4:3. That's the pixel resolution of the game, as Twisty said there is no fixed size for pixels. But the game was shown on a 4:3 monitor so it was hardware stretched.
--- End quote ---
512x224 would be a 16:7 aspect ratio. So did the original arcade game display on a 16:7 wide screen monitor, or it was hardware stretched in the arcade to 4:3???
--- End quote ---
Exactly, it's stretched so to speak. Like with the scanner example, the scanner scan at 600x300dpi, dots per inch. It's still a square, equal length on each sides, but on direction is 600dpi and the other is 300dpi. So the 300dpi direction gets "stretched" to make the square. It's all about what shape and size the pixel is. Don't assume a pixel is a square for the arcade games, it doesn't have to be. The only way you'd get where the native resolution of a game is exactly 4:3 is IF the pixels were square.
--- Quote ---Final Question: Artworkfilledges works perfectly for games where the side art border of the bezel (on each side) is less than 21.875% of the total bezel width. What would it take (besides more money than I'll earn in my lifetime) to modify (or create a new option) which for artwork larger than 21.875%, would only show the artwork that was on the screen-side edge of the 21.875% limit?
--- End quote ---
I am confused on what you are asking.
Howard_Casto:
Just for clarity.... to sum up sirp's point.
There are only about 4 valid aspect ratios for arcade games, which btw have absolutely nothing to do with the resolution.
4:3 (pretty much everything) 16:9 (capcom titles, battletoads and a few others) and one or two really odd aspects for games that spanned multiple monitors. Of course these aspects are reversed for vertical games.
Resolutions are confusing to some because they do justify the aspect on a vga monitor.... however on older, more analog, displays they mean virtually nothing.
Hope that helps,
HAC