Next Generation Emulation banner
1 - 13 of 13 Posts

·
Registered
Joined
·
47 Posts
Discussion Starter · #5 ·
A little filtering makes it ok for me. I used photoshop to figure out exactly where I need to stretch the window on my desktop to have the correct ratio... now if only it would keep those dimensions so I wouldn't have to re-stretch it every time I load a ROM...
 

·
Registered
Joined
·
191 Posts
800x600 with Fullscreen stretch DISABLED gives a rather large image and has the correct ratio.

Another thing I often do I set the emu to 640x480 fullscreen strech ENABLE and activate TV out on my 16/9 with Widescreen zoom so again getting very close to original aspect ratio :)
 

·
Registered
Joined
·
13 Posts
Without an option to keep the aspect ratio, I dont think it's possible to have the original 3:2 aspect ratio of GBA. No matter what, the picture will be always stretch to 4:3, since we are all using 4:3 PC monitors.

VBA is open-source, there are a lot of builds, but none of then have this kind of option, like other emulators have.
 

·
Registered
Joined
·
47 Posts
Discussion Starter · #12 ·
Spacy said:
My monitor is also 5:4 I guess, because it's a 1280x1024 TFT.
By the way, have you tried my VBA build? Maybe there's a version that fit's your need. Unfortunately the current WIP code is a total mess xD
I have used your build but nothing in it affects the aspect ratio when in fullscreen.

There's also that Full screen max scale... option which seems like it'd have something to do with it but no matter what I enter in this field, absolutely nothing changes.
 

·
Registered
Joined
·
59 Posts
It's quite easy to modify D3D display driver of VBA to keep aspect ratio 3:2 when fullscreen (actually maximum window size).

Just change the lines in Direct3D.cpp function Direct3DDisplay::render()

void Direct3DDisplay::render()
{
.................................

fLeft = 0.f;
fTop = 0.f;
fRight = (float)theApp.surfaceSizeX;
fBottom = (float)theApp.surfaceSizeY;
fU = (float) (width) / textureWidth;
fV = (float) (height) / textureHeight;

.................................
}

void Direct3DDisplay::render()
{
.................................

if (theApp.videoOption == VIDEO_OTHER)
{
float rWidth = theApp.surfaceSizeX;
float rHeight = theApp.surfaceSizeY;
if ((rHeight/rWidth) > (2.f/3.f))
{
fLeft = 0;
fTop = (rHeight - rWidth * 2.f / 3.f) / 2;
fRight = rWidth;
fBottom = fTop + rWidth * 2.f / 3.f;
}
else
{
fLeft = (rWidth - rHeight * 3.f / 2.f) / 2;
fTop = 0;
fRight = fLeft + rHeight * 3.f / 2.f;
fBottom = rHeight;
}
fU = (float) (width) / textureWidth;
fV = (float) (height) / textureHeight;
}
else
{


fLeft = 0.f;
fTop = 0.f;
fRight = (float)theApp.surfaceSizeX;
fBottom = (float)theApp.surfaceSizeY;
fU = (float) (width) / textureWidth;
fV = (float) (height) / textureHeight;

}
.................................
}
 
1 - 13 of 13 Posts
This is an older thread, you may not receive a response, and could be reviving an old thread. Please consider creating a new thread.
Top