let Ample do the resolution scaling math.

This commit is contained in:
Kelvin Sherlock 2023-11-17 17:07:22 -05:00
parent cbf3fd5a34
commit c1ecb40cdb
80 changed files with 90 additions and 82 deletions

View File

@ -482,6 +482,8 @@ static NSString *ShellQuote(NSString *s) {
* for square pixels, should pass the true size and true aspect ratio. * for square pixels, should pass the true size and true aspect ratio.
*/ */
NSSize screen = [_slotController resolution]; NSSize screen = [_slotController resolution];
switch(_mameWindowMode) { switch(_mameWindowMode) {
case 0: // full screen; case 0: // full screen;
@ -498,12 +500,15 @@ static NSString *ShellQuote(NSString *s) {
// drop through. // drop through.
case 2: // 2x case 2: // 2x
case 3: // 3x case 3: // 3x
if (_mameSquarePixels) { if (_mameSquarePixels) {
// NSString *aspect = [NSString stringWithFormat: @"%u:%u", (unsigned)screen.width, (unsigned)screen.height]; // NSString *aspect = [NSString stringWithFormat: @"%u:%u", (unsigned)screen.width, (unsigned)screen.height];
// [argv addObject: @"-aspect"]; // [argv addObject: @"-aspect"];
// [argv addObject: aspect]; // [argv addObject: aspect];
[argv addObject: @"-nounevenstretch"];
float hscale = round((screen.width * 3 / 4) / screen.height);
if (hscale < 1) hscale = 1;
screen.height *= hscale;
} else { } else {
screen.height = round(screen.width * 3 / 4); screen.height = round(screen.width * 3 / 4);
} }
@ -516,6 +521,9 @@ static NSString *ShellQuote(NSString *s) {
[argv addObject: @"-resolution"]; [argv addObject: @"-resolution"];
[argv addObject: res]; [argv addObject: res];
if (_mameSquarePixels) {
[argv addObject: @"-nounevenstretch"];
}
break; break;
} }

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>512</integer> <integer>512</integer>
<integer>512</integer> <integer>256</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>512</integer> <integer>512</integer>
<integer>512</integer> <integer>256</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>704</integer> <integer>704</integer>
<integer>462</integer> <integer>231</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>704</integer> <integer>704</integer>
<integer>462</integer> <integer>231</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>704</integer> <integer>704</integer>
<integer>462</integer> <integer>231</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>1024</integer> <integer>1024</integer>
<integer>800</integer> <integer>400</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>1024</integer> <integer>1024</integer>
<integer>800</integer> <integer>400</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>1024</integer> <integer>1024</integer>
<integer>800</integer> <integer>400</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>844</integer> <integer>844</integer>
<integer>516</integer> <integer>258</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>640</integer> <integer>640</integer>
<integer>480</integer> <integer>240</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>640</integer> <integer>640</integer>
<integer>480</integer> <integer>240</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>640</integer> <integer>640</integer>
<integer>480</integer> <integer>240</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>640</integer> <integer>640</integer>
<integer>480</integer> <integer>240</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>640</integer> <integer>640</integer>
<integer>480</integer> <integer>240</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>640</integer> <integer>640</integer>
<integer>480</integer> <integer>240</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>640</integer> <integer>640</integer>
<integer>480</integer> <integer>240</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>720</integer> <integer>720</integer>
<integer>700</integer> <integer>350</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>720</integer> <integer>720</integer>
<integer>700</integer> <integer>350</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>720</integer> <integer>720</integer>
<integer>700</integer> <integer>350</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>720</integer> <integer>720</integer>
<integer>700</integer> <integer>350</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>720</integer> <integer>720</integer>
<integer>700</integer> <integer>350</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>844</integer> <integer>844</integer>
<integer>516</integer> <integer>258</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>640</integer> <integer>640</integer>
<integer>480</integer> <integer>240</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>800</integer> <integer>800</integer>
<integer>500</integer> <integer>250</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>800</integer> <integer>800</integer>
<integer>500</integer> <integer>250</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>800</integer> <integer>800</integer>
<integer>500</integer> <integer>250</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -12,7 +12,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>720</integer> <integer>720</integer>
<integer>480</integer> <integer>240</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -14,7 +14,7 @@
<key>resolution</key> <key>resolution</key>
<array> <array>
<integer>560</integer> <integer>560</integer>
<integer>384</integer> <integer>192</integer>
</array> </array>
<key>slots</key> <key>slots</key>
<array> <array>

View File

@ -612,8 +612,8 @@ def find_machine_resolution(machine):
# raster screens have a default aspect ratio of 4 : 3 # raster screens have a default aspect ratio of 4 : 3
# pre-calc something like that, but integer-based. # pre-calc something like that, but integer-based.
hscale = round((width * 3 / 4 ) / height) #hscale = round((width * 3 / 4 ) / height)
if hscale < 1 : hscale = 1 #if hscale < 1 : hscale = 1
return [width, height * hscale] return [width, height * hscale]