Add support for M1 Macs#19
Conversation
|
Maybe if this gets merged, it will become version 0.0.6. Requires at least Big Sur to run. |
|
@calmsacibis995 sorry I haven't been working on this project as much as I should have since I took over from the original developer I could use some more help and collaboration so I sent an invite to you to help update the code so I can run on New Mac's my machine is currently running macOS 13.5 but every little bit of help I can get on this project is appreciated. I also saw your profile. I myself am a collector of vintage computers, and I am interested in emulation of those systems. |
|
I can verify that this branch (along with the two 1-liner fixes to fpu.c I mention in #15 and #20) seems to at least start OK on an M1 Macbook Pro running MacOS 15.4 Only immediate issue I have is that at least under the default graphics settings, the display is only in the bottom-left corner of the window: This is especially annoying because the normal Ctrl+Pinch magnifier shortcut doesn't function when Shoebill is foregrounded... although you can switch to another app, magnify, and then switch to Shoebill I doubt that graphics issue is M1-related directly though; probably more likely that the OpenGL code isn't scaling something for HiDPI displays that it should. So I think everything in this PR is good. |
- Add arm64 architecture to core/Makefile, replacing i386 (dead on modern macOS) - Update Xcode project: MACOSX_DEPLOYMENT_TARGET=14.0, SDKROOT=macosx, VALID_ARCHS="x86_64 arm64", enable CLANG_ENABLE_OBJC_WEAK - Fix memset() argument swap in fpu_initialize() (issue pruten#20, reported by @mitchblank) - Fix K&R-style _native_tentox(a) -> _native_tentox(double a) (issue pruten#15) - Rename HACKY_MATH_X86 to HACKY_MATH_NATIVE since double+math.h works on all archs - Bump version to 0.1.0 Based on ARM64 build work from PR pruten#19 by @calmsacibis995. Tested: libshoebill_core.a builds clean (zero warnings) as universal arm64+x86_64. Made-with: Cursor
Major update bringing Shoebill to modern macOS with Apple Silicon support, a native SwiftUI interface, and extensive emulation core optimizations. Verified to boot A/UX 3.1 to desktop on macOS 15 / Apple M-series. ARM64 & Build: - Universal binary (arm64 + x86_64) for core library - Fixed FPU memset() argument swap (pruten#20) and K&R declaration (pruten#15) - Renamed HACKY_MATH_X86 to HACKY_MATH_NATIVE - Updated deployment target to macOS 14.0 SwiftUI Application (ShoebillApp/): - Modern Metal-based framebuffer rendering - HiDPI/Retina display support - Full ADB keyboard mapping and mouse capture - PRAM persistence via Application Support - Settings UI for ROM, disks, display resolution - App icon Core Optimizations: - CPU dispatch: single direct 64K table replaces two-level indirection - PMMU cache: 4-way set-associative with pseudo-LRU (was direct-mapped) - SoftFloat 2b upgraded to 3e via backward-compatible API shim - Audio: Apple Sound Chip output via Core Audio AudioQueue API - Timer APIs: gettimeofday() replaced with clock_gettime(CLOCK_MONOTONIC) - Ethernet: usleep busy-polling replaced with pthread_cond_timedwait - VBL interrupt delivery with proper thread-safety SDL GUI & Debugger: - Replaced deprecated OpenGL with SDL_Renderer + SDL_Texture - Debugger migrated from GLUT to SDL2 - Fixed ch_reset linker error with libedit Incorporates build changes from PR pruten#19 by @calmsacibis995. Fixes pruten#15, pruten#20. Made-with: Cursor
|
This PR will be closed, as it is superseded by #22. |

This is a build of Shoebill that has M1 support, with the debugger being left out due to missing symbols.