SameBoy | Accurate GB/GBC emulator |
| download: https://git.y1.nz/archives/sameboy.tar.gz | |
| README | Files | Log | Refs | LICENSE |
commit 7ed8169d301ecc36a9b18cb0f24ed9416462afa0 parent aa8b7b0c03aaae327bfb30e241b965ba055d175a Author: Lior Halphon <LIJI32@gmail.com> Date: Wed, 11 Jan 2023 17:49:10 +0200 Basic buildability Diffstat:
| M | Makefile | 61 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++------ |
| A | iOS/AppIcon60x60@2x.png | 0 | |
| A | iOS/AppIcon60x60@3x.png | 0 | |
| A | iOS/Info.plist | 52 | ++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | iOS/License.html | 54 | ++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
| A | iOS/main.m | 6 | ++++++ |
6 files changed, 167 insertions(+), 6 deletions(-)
diff --git a/Makefile b/Makefile @@ -177,6 +177,18 @@ else LDFLAGS += -lc -lm -ldl endif +ifeq ($(MAKECMDGOALS),_ios) +OBJ := build/obj-ios +SYSROOT := $(shell xcodebuild -sdk iphoneos -version Path 2> $(NULL)) +ifeq ($(SYSROOT),) +$(error Could not find an iOS SDK) +endif +CFLAGS += -arch arm64 -miphoneos-version-min=11.0 -isysroot $(SYSROOT) +LDFLAGS += -arch arm64 +OCFLAGS += -x objective-c -fobjc-arc -Wno-deprecated-declarations -isysroot $(SYSROOT) +LDFLAGS += -framework UIKit -framework Metal -framework MetalKit -framework AVFoundation -miphoneos-version-min=11.0 -isysroot $(SYSROOT) +CODESIGN := codesign -fs - +else ifeq ($(PLATFORM),Darwin) SYSROOT := $(shell xcodebuild -sdk macosx -version Path 2> $(NULL)) ifeq ($(SYSROOT),) @@ -188,7 +200,7 @@ endif CFLAGS += -F/Library/Frameworks -mmacosx-version-min=10.9 -isysroot $(SYSROOT) OCFLAGS += -x objective-c -fobjc-arc -Wno-deprecated-declarations -isysroot $(SYSROOT) -LDFLAGS += -framework AppKit -framework PreferencePanes -framework Carbon -framework QuartzCore -framework Security -framework WebKit -weak_framework Metal -weak_framework MetalKit -mmacosx-version-min=10.9 -isysroot $(SYSROOT) +LDFLAGS += -framework AppKit -mmacosx-version-min=10.9 -isysroot $(SYSROOT) GL_LDFLAGS := -framework OpenGL endif CFLAGS += -Wno-deprecated-declarations @@ -196,6 +208,7 @@ ifeq ($(PLATFORM),windows32) CFLAGS += -Wno-deprecated-declarations # Seems like Microsoft deprecated every single LIBC function LDFLAGS += -Wl,/NODEFAULTLIB:libcmt.lib endif +endif ifeq ($(CONF),debug) CFLAGS += -g @@ -234,6 +247,7 @@ quicklook: $(BIN)/SameBoy.qlgenerator sdl: $(SDL_TARGET) $(BIN)/SDL/dmg_boot.bin $(BIN)/SDL/mgb_boot.bin $(BIN)/SDL/cgb0_boot.bin $(BIN)/SDL/cgb_boot.bin $(BIN)/SDL/agb_boot.bin $(BIN)/SDL/sgb_boot.bin $(BIN)/SDL/sgb2_boot.bin $(BIN)/SDL/LICENSE $(BIN)/SDL/registers.sym $(BIN)/SDL/background.bmp $(BIN)/SDL/Shaders $(BIN)/SDL/Palettes bootroms: $(BIN)/BootROMs/agb_boot.bin $(BIN)/BootROMs/cgb_boot.bin $(BIN)/BootROMs/cgb0_boot.bin $(BIN)/BootROMs/dmg_boot.bin $(BIN)/BootROMs/mgb_boot.bin $(BIN)/BootROMs/sgb_boot.bin $(BIN)/BootROMs/sgb2_boot.bin tester: $(TESTER_TARGET) $(BIN)/tester/dmg_boot.bin $(BIN)/tester/cgb_boot.bin $(BIN)/tester/agb_boot.bin $(BIN)/tester/sgb_boot.bin $(BIN)/tester/sgb2_boot.bin +_ios: $(BIN)/SameBoy-iOS.app all: cocoa sdl tester libretro # Get a list of our source files and their respective object file targets @@ -241,11 +255,9 @@ all: cocoa sdl tester libretro CORE_SOURCES := $(shell ls Core/*.c) SDL_SOURCES := $(shell ls SDL/*.c) $(OPEN_DIALOG) $(patsubst %,SDL/audio/%.c,$(SDL_AUDIO_DRIVERS)) TESTER_SOURCES := $(shell ls Tester/*.c) - -ifeq ($(PLATFORM),Darwin) +IOS_SOURCES := $(shell ls iOS/*.m) COCOA_SOURCES := $(shell ls Cocoa/*.m) $(shell ls HexFiend/*.m) $(shell ls JoyKit/*.m) QUICKLOOK_SOURCES := $(shell ls QuickLook/*.m) $(shell ls QuickLook/*.c) -endif ifeq ($(PLATFORM),windows32) CORE_SOURCES += $(shell ls Windows/*.c) @@ -253,6 +265,7 @@ endif CORE_OBJECTS := $(patsubst %,$(OBJ)/%.o,$(CORE_SOURCES)) COCOA_OBJECTS := $(patsubst %,$(OBJ)/%.o,$(COCOA_SOURCES)) +IOS_OBJECTS := $(patsubst %,$(OBJ)/%.o,$(IOS_SOURCES)) QUICKLOOK_OBJECTS := $(patsubst %,$(OBJ)/%.o,$(QUICKLOOK_SOURCES)) SDL_OBJECTS := $(patsubst %,$(OBJ)/%.o,$(SDL_SOURCES)) TESTER_OBJECTS := $(patsubst %,$(OBJ)/%.o,$(TESTER_SOURCES)) @@ -311,6 +324,35 @@ $(OBJ)/HexFiend/%.m.o: HexFiend/%.m $(OBJ)/%.m.o: %.m -@$(MKDIR) -p $(dir $@) $(CC) $(CFLAGS) $(FAT_FLAGS) $(OCFLAGS) -c $< -o $@ + +# iOS Port + +$(BIN)/SameBoy-iOS.app: $(BIN)/SameBoy-iOS.app/SameBoy \ + $(shell ls iOS/*.png) \ + iOS/License.html \ + iOS/Info.plist \ + $(BIN)/SameBoy-iOS.app/dmg_boot.bin \ + $(BIN)/SameBoy-iOS.app/mgb_boot.bin \ + $(BIN)/SameBoy-iOS.app/cgb0_boot.bin \ + $(BIN)/SameBoy-iOS.app/cgb_boot.bin \ + $(BIN)/SameBoy-iOS.app/agb_boot.bin \ + $(BIN)/SameBoy-iOS.app/sgb_boot.bin \ + $(BIN)/SameBoy-iOS.app/sgb2_boot.bin \ + Shaders + $(MKDIR) -p $(BIN)/SameBoy-iOS.app + cp iOS/*.png $(BIN)/SameBoy-iOS.app + sed "s/@VERSION/$(VERSION)/;s/@COPYRIGHT_YEAR/$(COPYRIGHT_YEAR)/" < iOS/Info.plist > $(BIN)/SameBoy-iOS.app/Info.plist + sed "s/@COPYRIGHT_YEAR/$(COPYRIGHT_YEAR)/" < Cocoa/License.html > $(BIN)/SameBoy-iOS.app/Credits.html + $(MKDIR) -p $(BIN)/SameBoy-iOS.app/Shaders + cp Shaders/*.fsh Shaders/*.metal $(BIN)/SameBoy-iOS.app/Shaders + $(CODESIGN) $@ + +$(BIN)/SameBoy-iOS.app/SameBoy: $(CORE_OBJECTS) $(IOS_OBJECTS) + -@$(MKDIR) -p $(dir $@) + $(CC) $^ -o $@ $(LDFLAGS) +ifeq ($(CONF), release) + $(STRIP) $@ +endif # Cocoa Port @@ -343,7 +385,7 @@ endif $(BIN)/SameBoy.app/Contents/MacOS/SameBoy: $(CORE_OBJECTS) $(COCOA_OBJECTS) -@$(MKDIR) -p $(dir $@) - $(CC) $^ -o $@ $(LDFLAGS) $(FAT_FLAGS) -framework OpenGL -framework AudioUnit -framework AVFoundation -framework CoreVideo -framework CoreMedia -framework IOKit + $(CC) $^ -o $@ $(LDFLAGS) $(FAT_FLAGS) -framework OpenGL -framework AudioUnit -framework AVFoundation -framework CoreVideo -framework CoreMedia -framework IOKit -framework PreferencePanes -framework Carbon -framework QuartzCore -framework Security -framework WebKit -weak_framework Metal -weak_framework MetalKit ifeq ($(CONF), release) $(STRIP) $@ endif @@ -443,6 +485,10 @@ $(BIN)/SameBoy.app/Contents/Resources/%.bin: $(BOOTROMS_DIR)/%.bin -@$(MKDIR) -p $(dir $@) cp -f $^ $@ +$(BIN)/SameBoy-iOS.app/%.bin: $(BOOTROMS_DIR)/%.bin + -@$(MKDIR) -p $(dir $@) + cp -f $^ $@ + $(BIN)/SDL/LICENSE: LICENSE -@$(MKDIR) -p $(dir $@) cp -f $^ $@ @@ -536,8 +582,11 @@ $(DESTDIR)$(PREFIX)/share/mime/packages/sameboy.xml: FreeDesktop/sameboy.xml cp -f $^ $@ endif +ios: + @$(MAKE) _ios + # Clean clean: rm -rf build -.PHONY: libretro tester +.PHONY: libretro tester cocoa ios _ios diff --git a/iOS/AppIcon60x60@2x.png b/iOS/AppIcon60x60@2x.png Binary files differ. diff --git a/iOS/AppIcon60x60@3x.png b/iOS/AppIcon60x60@3x.png Binary files differ. diff --git a/iOS/Info.plist b/iOS/Info.plist @@ -0,0 +1,52 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleExecutable</key> + <string>SameBoy</string> + <key>CFBundleIdentifier</key> + <string>com.github.liji32.sameboy.ios</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>SameBoy</string> + <key>CFBundlePackageType</key> + <string>APPL</string> + <key>CFBundleShortVersionString</key> + <string>Version @VERSION</string> + <key>CFBundleVersion</key> + <string>1</string> + <key>LSRequiresIPhoneOS</key> + <true/> + <key>UILaunchStoryboardName</key> + <string>LaunchScreen</string> + <key>UISupportedInterfaceOrientations</key> + <array> + <string>UIInterfaceOrientationPortrait</string> + <string>UIInterfaceOrientationLandscapeLeft</string> + <string>UIInterfaceOrientationLandscapeRight</string> + </array> + <key>UISupportedInterfaceOrientations~ipad</key> + <array> + <string>UIInterfaceOrientationPortrait</string> + <string>UIInterfaceOrientationPortraitUpsideDown</string> + <string>UIInterfaceOrientationLandscapeLeft</string> + <string>UIInterfaceOrientationLandscapeRight</string> + </array> + <key>NSHumanReadableCopyright</key> + <string>Copyright © 2015-@COPYRIGHT_YEAR Lior Halphon</string> + <key>CFBundleIcons</key> + <dict> + <key>CFBundlePrimaryIcon</key> + <dict> + <key>CFBundleIconFiles</key> + <array> + <string>AppIcon60x60@2x.png</string> + <string>AppIcon60x60@3x.png</string> + </array> + </dict> + </dict> + <key>LSApplicationCategoryType</key> + <string>public.app-category.games</string> +</dict> +</plist> diff --git a/iOS/License.html b/iOS/License.html @@ -0,0 +1,53 @@ +<!DOCYTYPE html> +<html> +<head> + <meta charset="utf-8" /> + <title></title> + <style> + body { + font-family: Helvetica, sans-serif; + text-align: justify; + font-size: 12px; + } + h1 { + text-align:center; + font-size: 10px; + } + h2 { + text-align:center; + font-size: 11px; + font-weight: normal; + } + + h3 { + text-align:center; + font-size: 11px; + font-weight: bold; + } + </style> +</head> +<body> + +<h1>SameBoy</h1> +<h2>MIT License</h2> +<h3>Copyright © 2015-@COPYRIGHT_YEAR Lior Halphon</h3> + +<p>Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions:</p> + +<p>The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software.</p> + +<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE.</p> +</body> +</html> + diff --git a/iOS/main.m b/iOS/main.m @@ -0,0 +1,6 @@ +#import <UIKit/UIKit.h> + +int main(int argc, char * argv[]) +{ + return UIApplicationMain(argc, argv, nil, nil); +}
This webpage is intended to be an accessible preview of this repository. To get a fuller picture, clone it and use the git CLI.