From 8009e60c2e5997bc2b21e003df9a27a80f0ebc5d Mon Sep 17 00:00:00 2001 From: Akop Karapetyan Date: Sat, 7 Dec 2019 00:30:29 -0800 Subject: [PATCH] Added About dialog, updated README-macOS --- README-macOS.md | 16 ++-- .../xcode/Emulator.xcodeproj/project.pbxproj | 18 ++++ projectfiles/xcode/Emulator/AppDelegate.h | 1 + projectfiles/xcode/Emulator/AppDelegate.m | 9 ++ .../AppIconLarge.imageset/Contents.json | 22 +++++ .../LargeAppIcon_256.png | Bin 0 -> 20061 bytes .../LargeAppIcon_512.png | Bin 0 -> 44530 bytes .../xcode/Emulator/Base.lproj/About.xib | 86 ++++++++++++++++++ .../xcode/Emulator/Base.lproj/MainMenu.xib | 2 +- .../Emulator/Controllers/FBAboutController.h | 23 +++++ .../Emulator/Controllers/FBAboutController.m | 65 +++++++++++++ .../Controllers/FBLauncherController.m | 3 +- 12 files changed, 237 insertions(+), 8 deletions(-) create mode 100644 projectfiles/xcode/Emulator/Assets.xcassets/AppIconLarge.imageset/Contents.json create mode 100644 projectfiles/xcode/Emulator/Assets.xcassets/AppIconLarge.imageset/LargeAppIcon_256.png create mode 100644 projectfiles/xcode/Emulator/Assets.xcassets/AppIconLarge.imageset/LargeAppIcon_512.png create mode 100644 projectfiles/xcode/Emulator/Base.lproj/About.xib create mode 100644 projectfiles/xcode/Emulator/Controllers/FBAboutController.h create mode 100644 projectfiles/xcode/Emulator/Controllers/FBAboutController.m diff --git a/README-macOS.md b/README-macOS.md index e3c71fd6a..c707d8910 100644 --- a/README-macOS.md +++ b/README-macOS.md @@ -1,7 +1,7 @@ # FinalBurn Neo for macOS ## Download -[Version 1.0](https://github.com/fbn-mac/FBNeo/releases/tag/macos-v1.0) is the +[Version 1.02](https://github.com/fbn-mac/FBNeo/releases/tag/macos-v1.02) is the latest stable release. [View all releases](https://github.com/fbn-mac/FBNeo/releases). ## Compatibility @@ -10,11 +10,15 @@ likely that it may run on earlier versions (perhaps as low as Mountain Lion). If can build and run successfully on an earlier version of macOS (OS X?), let me know. ## Use -Launch any set by dropping it on the app's icon or in the window. You can also -use `File/Open` and `File/Open Recent`. ROMs can reside anywhere, though if you -load a game that requires files from a parent set or BIOS (e.g. Neo-Geo), -the files are expected to be in the same directory. Supported archives -are `zip` and `7z`. +Drop a set into the Launcher window to import it, double-click to start it. +Supported archive formats are `zip` and `7z`. + +You can also use `File/Open` and `File/Open Recent` to load ROMs directly. +Files can reside anywhere, though when loading a game that requires a parent set +or BIOS (e.g. Neo-Geo), the files are expected to be in the same directory. + +If a game refuses to start, check the Log Viewer (Window/Log Viewer) +for diagnostic information. ## Input Currently supported input devices are keyboard (using standard FinalBurn layout) diff --git a/projectfiles/xcode/Emulator.xcodeproj/project.pbxproj b/projectfiles/xcode/Emulator.xcodeproj/project.pbxproj index 5888a867f..689c96598 100644 --- a/projectfiles/xcode/Emulator.xcodeproj/project.pbxproj +++ b/projectfiles/xcode/Emulator.xcodeproj/project.pbxproj @@ -13,6 +13,8 @@ FE0A7EA12394B87B001E6997 /* FBRomSetStatusAsNSImage.m in Sources */ = {isa = PBXBuildFile; fileRef = FE0A7E9F2394B87B001E6997 /* FBRomSetStatusAsNSImage.m */; }; FE0A7EA42394ED91001E6997 /* FBDropFileScrollView.m in Sources */ = {isa = PBXBuildFile; fileRef = FE0A7EA32394ED91001E6997 /* FBDropFileScrollView.m */; }; FE0A7EA7239501FF001E6997 /* FBImporter.m in Sources */ = {isa = PBXBuildFile; fileRef = FE0A7EA5239501FF001E6997 /* FBImporter.m */; }; + FE0A7EAA239B8A7E001E6997 /* About.xib in Resources */ = {isa = PBXBuildFile; fileRef = FE0A7EA8239B8A7E001E6997 /* About.xib */; }; + FE0A7EAD239B8B4F001E6997 /* FBAboutController.m in Sources */ = {isa = PBXBuildFile; fileRef = FE0A7EAB239B8B4E001E6997 /* FBAboutController.m */; }; FE1B1092235615940065200C /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = FE1B1091235615940065200C /* AppDelegate.m */; }; FE1B1094235615950065200C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FE1B1093235615950065200C /* Assets.xcassets */; }; FE1B1097235615950065200C /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = FE1B1095235615950065200C /* MainMenu.xib */; }; @@ -1053,6 +1055,9 @@ FE0A7EA32394ED91001E6997 /* FBDropFileScrollView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FBDropFileScrollView.m; sourceTree = ""; }; FE0A7EA5239501FF001E6997 /* FBImporter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FBImporter.m; sourceTree = ""; }; FE0A7EA6239501FF001E6997 /* FBImporter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBImporter.h; sourceTree = ""; }; + FE0A7EA9239B8A7E001E6997 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/About.xib; sourceTree = ""; }; + FE0A7EAB239B8B4E001E6997 /* FBAboutController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = FBAboutController.m; sourceTree = ""; }; + FE0A7EAC239B8B4F001E6997 /* FBAboutController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FBAboutController.h; sourceTree = ""; }; FE1B108D235615940065200C /* FinalBurn Neo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "FinalBurn Neo.app"; sourceTree = BUILT_PRODUCTS_DIR; }; FE1B1090235615940065200C /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; FE1B1091235615940065200C /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; @@ -4666,6 +4671,8 @@ FE2BC6AF23615BBC00B9D150 /* Controllers */ = { isa = PBXGroup; children = ( + FE0A7EAC239B8B4F001E6997 /* FBAboutController.h */, + FE0A7EAB239B8B4E001E6997 /* FBAboutController.m */, FEF4EE7F23635500004E0DCE /* FBEmulatorController.h */, FEF4EE8023635500004E0DCE /* FBEmulatorController.m */, FE0A7E9623938CE6001E6997 /* FBLauncherController.h */, @@ -4688,6 +4695,7 @@ FE1B1095235615950065200C /* MainMenu.xib */, FE2BC6C92362CFC000B9D150 /* Preferences.xib */, FE0A7E9823938E9F001E6997 /* Launcher.xib */, + FE0A7EA8239B8A7E001E6997 /* About.xib */, ); name = Nibs; sourceTree = ""; @@ -4849,6 +4857,7 @@ FE0A7E9A23938E9F001E6997 /* Launcher.xib in Resources */, FE2BC6BB2362B4E200B9D150 /* dsa_pub.pem in Resources */, FEF4EE892363720B004E0DCE /* Defaults.plist in Resources */, + FE0A7EAA239B8A7E001E6997 /* About.xib in Resources */, FE2BC6CB2362CFC100B9D150 /* Preferences.xib in Resources */, FE1B241023561A750065200C /* license.txt in Resources */, FEF4EE8423635521004E0DCE /* Emulator.xib in Resources */, @@ -5584,6 +5593,7 @@ FE1B26DB23561A780065200C /* d_beaminv.cpp in Sources */, FE1B259F23561A760065200C /* timeplt_snd.cpp in Sources */, FE1B26F723561A780065200C /* d_hvyunit.cpp in Sources */, + FE0A7EAD239B8B4F001E6997 /* FBAboutController.m in Sources */, FE1B276023561A780065200C /* d_bombjack.cpp in Sources */, FE1B263F23561A770065200C /* cps_scr.cpp in Sources */, FE1B25DD23561A760065200C /* d_nemesis.cpp in Sources */, @@ -5984,6 +5994,14 @@ name = Launcher.xib; sourceTree = ""; }; + FE0A7EA8239B8A7E001E6997 /* About.xib */ = { + isa = PBXVariantGroup; + children = ( + FE0A7EA9239B8A7E001E6997 /* Base */, + ); + name = About.xib; + sourceTree = ""; + }; FE1B1095235615950065200C /* MainMenu.xib */ = { isa = PBXVariantGroup; children = ( diff --git a/projectfiles/xcode/Emulator/AppDelegate.h b/projectfiles/xcode/Emulator/AppDelegate.h index a3317a03c..d8615f6d9 100644 --- a/projectfiles/xcode/Emulator/AppDelegate.h +++ b/projectfiles/xcode/Emulator/AppDelegate.h @@ -36,5 +36,6 @@ - (IBAction) displayLogViewer:(id) sender; - (IBAction) displayPreferences:(id) sender; - (IBAction) displayLauncher:(id) sender; +- (IBAction) displayAbout:(id) sender; @end diff --git a/projectfiles/xcode/Emulator/AppDelegate.m b/projectfiles/xcode/Emulator/AppDelegate.m index 3e7e090a7..d3ddcff69 100644 --- a/projectfiles/xcode/Emulator/AppDelegate.m +++ b/projectfiles/xcode/Emulator/AppDelegate.m @@ -14,6 +14,7 @@ #import "FBLogViewerController.h" #import "FBPreferencesController.h" #import "FBLauncherController.h" +#import "FBAboutController.h" @interface AppDelegate () @@ -29,6 +30,7 @@ static AppDelegate *sharedInstance = nil; FBPreferencesController *prefs; FBEmulatorController *emulator; FBLauncherController *launcher; + FBAboutController *about; IOPMAssertionID sleepAssertId; } @@ -143,6 +145,13 @@ static AppDelegate *sharedInstance = nil; [launcher showWindow:self]; } +- (void) displayAbout:(id) sender +{ + if (!about) + about = [FBAboutController new]; + [about showWindow:self]; +} + #pragma mark - Public - (void) loadPath:(NSString *) path diff --git a/projectfiles/xcode/Emulator/Assets.xcassets/AppIconLarge.imageset/Contents.json b/projectfiles/xcode/Emulator/Assets.xcassets/AppIconLarge.imageset/Contents.json new file mode 100644 index 000000000..855c4beee --- /dev/null +++ b/projectfiles/xcode/Emulator/Assets.xcassets/AppIconLarge.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "idiom" : "universal", + "filename" : "LargeAppIcon_256.png", + "scale" : "1x" + }, + { + "idiom" : "universal", + "filename" : "LargeAppIcon_512.png", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/projectfiles/xcode/Emulator/Assets.xcassets/AppIconLarge.imageset/LargeAppIcon_256.png b/projectfiles/xcode/Emulator/Assets.xcassets/AppIconLarge.imageset/LargeAppIcon_256.png new file mode 100644 index 0000000000000000000000000000000000000000..ebd9ad783c96673633b96f9230002df80183ce2c GIT binary patch literal 20061 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Ⓒ 2019 Akop Karapetyan
© 2004-2019 Team FB Neo
© 2001 Dave

You may freely use, modify, and distribute both the FB Neo source code and binary, however restrictions apply to the FB Neo original material.

See License below for more information. + + + + Ⓒ 2014-2019 Akop Karapetyan © 2004-2018 Team FB Alpha © 2001 Dave For FBA license information, see "FinalBurn Alpha License" below. For license information on FinalBurn X and its components, see "FinalBurn X License" below. + + + + + + + + + + + + + + diff --git a/projectfiles/xcode/Emulator/Base.lproj/MainMenu.xib b/projectfiles/xcode/Emulator/Base.lproj/MainMenu.xib index 9c334966e..a87a107f4 100644 --- a/projectfiles/xcode/Emulator/Base.lproj/MainMenu.xib +++ b/projectfiles/xcode/Emulator/Base.lproj/MainMenu.xib @@ -24,7 +24,7 @@ - + diff --git a/projectfiles/xcode/Emulator/Controllers/FBAboutController.h b/projectfiles/xcode/Emulator/Controllers/FBAboutController.h new file mode 100644 index 000000000..cf1f815bf --- /dev/null +++ b/projectfiles/xcode/Emulator/Controllers/FBAboutController.h @@ -0,0 +1,23 @@ +// +// FBAboutController.h +// Emulator +// +// Created by Akop Karapetyan on 12/06/19. +// Copyright © 2019 Akop Karapetyan. All rights reserved. +// + +#import + +@interface FBWhitePanelView : NSView + +@end + +@interface FBAboutController : NSWindowController +{ + IBOutlet NSTextField *versionNumberField; + IBOutlet NSTextField *appNameField; +} + +- (IBAction) openLicense:(id) sender; + +@end diff --git a/projectfiles/xcode/Emulator/Controllers/FBAboutController.m b/projectfiles/xcode/Emulator/Controllers/FBAboutController.m new file mode 100644 index 000000000..bd98bce2b --- /dev/null +++ b/projectfiles/xcode/Emulator/Controllers/FBAboutController.m @@ -0,0 +1,65 @@ +// +// FBAboutController.m +// Emulator +// +// Created by Akop Karapetyan on 12/06/19. +// Copyright © 2019 Akop Karapetyan. All rights reserved. +// + +#import "FBAboutController.h" + +#pragma mark - FBWhitePanelView + +@implementation FBWhitePanelView + +- (void) drawRect:(NSRect) dirtyRect +{ + [NSColor.whiteColor setFill]; + NSRectFill(dirtyRect); +} + +@end + +#pragma mark - FBAboutController + +@interface FBAboutController () + +@end + +@implementation FBAboutController + +- (id) init +{ + if (self = [super initWithWindowNibName:@"About"]) { + } + + return self; +} + +- (void) awakeFromNib +{ + NSDictionary *infoDict = NSBundle.mainBundle.infoDictionary; + NSMutableAttributedString *appName = appNameField.attributedStringValue.mutableCopy; + [appName beginEditing]; + [appName replaceCharactersInRange:NSMakeRange(0, appName.length) + withString:infoDict[@"CFBundleName"]]; + [appName applyFontTraits:NSBoldFontMask + range:NSMakeRange(appName.length - 3, 3)]; + [appName endEditing]; + + appNameField.attributedStringValue = appName; + versionNumberField.stringValue = [NSString stringWithFormat:NSLocalizedString(@"Version %@", nil), + infoDict[@"CFBundleShortVersionString"]]; +} + +#pragma mark - Actions + +- (void) openLicense:(id) sender +{ + NSString *documentPath = [NSBundle.mainBundle pathForResource:@"license" + ofType:@"txt"]; + [NSWorkspace.sharedWorkspace openURL:[NSURL fileURLWithPath:documentPath]]; +} + + +@end diff --git a/projectfiles/xcode/Emulator/Controllers/FBLauncherController.m b/projectfiles/xcode/Emulator/Controllers/FBLauncherController.m index af15f49e5..8bf86c35e 100644 --- a/projectfiles/xcode/Emulator/Controllers/FBLauncherController.m +++ b/projectfiles/xcode/Emulator/Controllers/FBLauncherController.m @@ -252,7 +252,8 @@ [romSetTreeController rearrangeObjects]; // Restore selection - romSetTreeController.selectionIndexPaths = selection; + if (selection) + romSetTreeController.selectionIndexPaths = selection; } - (NSString *) setCachePath