add 4x window option, aspect ratio for oric square pixels.

This commit is contained in:
Kelvin Sherlock 2024-03-18 15:25:34 -04:00
parent bdd9df44ed
commit 308b15277c
2 changed files with 40 additions and 4 deletions

View File

@ -159,10 +159,21 @@
<font key="font" metaFont="menu"/> <font key="font" metaFont="menu"/>
<menu key="menu" id="m4N-Qw-mem"> <menu key="menu" id="m4N-Qw-mem">
<items> <items>
<menuItem title="Full Screen" state="on" id="0zZ-Ib-Fne"/> <menuItem title="Full Screen" state="on" id="0zZ-Ib-Fne">
<menuItem title="Window 1x" id="3bZ-rq-fCt"/> <modifierMask key="keyEquivalentModifierMask"/>
<menuItem title="Window 2x" id="KA4-Rs-yyK"/> </menuItem>
<menuItem title="Window 3x" id="Dbh-Js-pMx" userLabel="Window 3x"/> <menuItem title="Window 1x" id="3bZ-rq-fCt">
<modifierMask key="keyEquivalentModifierMask"/>
</menuItem>
<menuItem title="Window 2x" id="KA4-Rs-yyK">
<modifierMask key="keyEquivalentModifierMask"/>
</menuItem>
<menuItem title="Window 3x" id="Dbh-Js-pMx" userLabel="Window 3x">
<modifierMask key="keyEquivalentModifierMask"/>
</menuItem>
<menuItem title="Window 4x" id="GCs-En-3Jv">
<modifierMask key="keyEquivalentModifierMask"/>
</menuItem>
</items> </items>
</menu> </menu>
</popUpButtonCell> </popUpButtonCell>

View File

@ -25,6 +25,20 @@ static NSString *kMyContext = @"kMyContext";
static NSString *kContextMachine = @"kContextMachine"; static NSString *kContextMachine = @"kContextMachine";
static NSString *NeedsAspectRatio(NSString *machine) {
static NSDictionary *dict = nil;
if (!dict) {
dict = @{
@"oric1": @"2:1",
@"orica": @"2:1",
@"prav8d": @"2:1",
@"telstrat": @"2:1",
};
}
return [dict objectForKey: machine];
}
@interface LaunchWindowController () { @interface LaunchWindowController () {
BOOL _loadingBookmark; BOOL _loadingBookmark;
NSString *_machine; NSString *_machine;
@ -500,6 +514,7 @@ static NSString *ShellQuote(NSString *s) {
// drop through. // drop through.
case 2: // 2x case 2: // 2x
case 3: // 3x case 3: // 3x
case 4: // 4x
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];
@ -509,6 +524,8 @@ static NSString *ShellQuote(NSString *s) {
float hscale = round((screen.width * 3 / 4) / screen.height); float hscale = round((screen.width * 3 / 4) / screen.height);
if (hscale < 1) hscale = 1; if (hscale < 1) hscale = 1;
screen.height *= hscale; screen.height *= hscale;
} else { } else {
screen.height = round(screen.width * 3 / 4); screen.height = round(screen.width * 3 / 4);
} }
@ -523,12 +540,20 @@ static NSString *ShellQuote(NSString *s) {
[argv addObject: res]; [argv addObject: res];
if (_mameSquarePixels) { if (_mameSquarePixels) {
[argv addObject: @"-nounevenstretch"]; [argv addObject: @"-nounevenstretch"];
NSString *aspect = NeedsAspectRatio(_machine);
if (aspect) {
[argv addObject: @"-aspect"];
[argv addObject: aspect];
}
} }
break; break;
} }
if (_mameBGFX) { if (_mameBGFX) {
[argv addObject: @"-video"]; [argv addObject: @"-video"];
[argv addObject: @"bgfx"]; [argv addObject: @"bgfx"];