How to play Sony PlayStation Games (PSX / PSone) on your Mac

    Emulating the PlayStation, also known as the original PlayStation, PS1, PSOne, or PSX, is straightforward and can give you a better experience than the native hardware with features like widescreen support, 4k rendering, and texture enhancements. If you've used PCSX2 or RPSC3, it will feel very similar. This tutorial is adapted from the video below. If you're interested in PlayStation 2 emulation, you can check out my guide here.


    There are multiple options to emulate the PlayStation on a Mac, including even on PowerPC Macs with Connectix Virtual Game Station.

    While emulators like OpenEmu do a reasonable job of emulating the PlayStation, they don't have the advanced graphical features of DuckStation. You can experience PlayStation at 4k in widescreen, with texture smoothing and faster load times. This tutorial explores the many features of DuckStation.

    Step 1: Download the Emulator

    First, go to the official website duckstation.org. The Mac port is listed under "Other Platforms" alternately, click here to go to the latest releases. This will take you to the GitHub page for the latest release. Scroll to the bottom and grab the Mac release. If for some reason you're experienccing issues, try downloading a different release.

    Decompress the .zip file (if it does not do this automatically), then drag the application into your "Applications" folder.

    Step 2: BIOS

    right click Duck station

    If you double-click the app, you'll probably see "DuckStation," which cannot be opened because the developer cannot be verified. This is common for open-source software as the developer has not paid for an Apple account. Instead, right-click the application and click "Open" to whitelist the application.

    You'll be presented with language and theme options. Make your selections and click "Next."

    Duckstation bios

    The next screen is for the BIOS. The PlayStation BIOS is firmware built into the console that initializes and manages hardware components and provides runtime services for games and programs. These are copyrighted, so I won't be linking them directly. Use your own moral judgment here. I personally own a PlayStation, so that's my vindication. Places like Archive.org are a good place to look for them. DuckStation requires multiple BIOS: Japan, US/Canada, and Europe/Australia. This enables compatibility with all regions.

    You can install these whenever you'd like. If you move them, then you will need to relink them.In DuckStation, click "Browse" and navigate to where you placed your BIOS files.

    Click "Next."

    Step 3: Adding games

    Games can be distributed in multiple formats, and it is possible to rip your own games into ISOs. Games are often ripped in bin/cue, .ecm, and iso formats, and all are compatible with DuckStation. Distributing games over the internet isn't legal, so I will not be linking any sources.

    I have a folder with a collection of games in it, so I will add this to my games directory library. Since this directory has folders inside it, I want to say "Yes" to scan recursively.

    Step 4: Setting up a controller

    Duckstation controller setup screen

    The next thing we'll want to do is set up a controller. The PlayStation had several controllers. Since my controller is a PlayStation 4 controller, I will be using the Analog controller. Using Ventura or later makes Gamepads a little easier to manage. There are tutorials on how to connect a controller wirelessly; I'm using the easiest method, which is USB. Plug it in, and it works. It is also possible to use wireless.

    Duckstation controller setup screen

    Using the automatic mapping, you can automatically bind the controller buttons. If, for some reason, you cannot use automatic mapping or wish to change a button layout, you can manually map the controller buttons by double-clicking the setting and then pressing the correlating button. It is recommended to use a Dual-Shock style controller as some later games, such as Ape Escape, require them.

    Step 5: Improving the Graphics

    Rendering options

    At this point, DuckStation is ready to play games. However, some additional configurations can still be performed.Next, let's go back to the preferences to configure our graphics. Before we get started, go to "Interact" and make sure you have "Apply per-game settings" enabled; that way, you can tweak graphics settings on a game-by-game basis. One of the advantages of the DuckStation emulator is the ability to play games at MUCH higher resolutions. Your mileage will vary; newer Macs with dedicated GPUs or Apple Silicon-era Macs should be able to handle higher resolutions. The video version demostrates the effects of changing these graphical options.

    • Internal Resolution: Determines the internal resolution of the rendered image. Higher values increase quality but require more processing power.
    • Down Sampling: Downscales the rendered image to fit the screen resolution, reducing aliasing. Disabled means no down-sampling is applied. Used for 2D games
    • Texture Filtering: Enhances the appearance of textures by smoothing them. xBR is a specific filter that improves quality but is computationally expensive.
    • Aspect Ratio: Adjusts the width to height ratio of the display. 16:9 is widescreen format.
    • Deinterlacing: Reduces flickering and artifacts in interlaced video. Adaptive FastMAD is a specific method of deinterlacing. This will be ignored if disable interacing is enabled.
    • Crop: Crops the image to remove the overscan area, which is the part of the picture that might be outside the viewable area of older TVs.
    • Scaling: The method used to scale the image to the desired resolution.
    • True Color Rendering: Enables rendering in true color, providing better color accuracy.
    • PGXP Geometry Correction: Corrects geometry errors in PlayStation games. Checking this will unlock advanced PGXP correction options. Recommended if seeking to enhance visual quality. It is not compatible with all games.
    • Force 4:3 For FMVs: Forces full-motion video sequences to display in a 4:3 aspect ratio.
    • Disable Interlacing: Disables interlacing to reduce flickering in some games. Recommended.
    • Widescreen Rendering: Forces games to render in widescreen, potentially expanding the field of view. Compatible with most games.
    • PGXP Depth Buffer (Low Compatibility): Improves depth perception in games but may have compatibility issues.
    • FMV Chroma Smoothing: Smooths the chroma (color) in full-motion videos to reduce blockiness.
    • Force NTSC Timings: Forces the game to use NTSC video timings, which can affect the speed and synchronization of video playback.

    PGXP options

    The PGXP tab also adds several options of interest providing a more authentic and visually pleasing experience. Below is a description of options.

    • Geometry Tolerance: Sets the tolerance for geometry corrections. Lower values can increase accuracy but may reduce performance.
    • Depth Clear Threshold: Threshold for clearing the depth buffer to improve rendering accuracy and reduce artifacts.
    • Perspective Correct Textures: Ensures textures are rendered with correct perspective, improving visual fidelity.
    • Culling Correction: Corrects issues with object culling, ensuring that objects are not improperly hidden.
    • Perspective Correct Colors: Ensures colors are rendered correctly with respect to perspective, improving visual quality.
    • Preserve Projection Precision: Maintains higher precision in projection calculations, improving the accuracy of the rendered scene.
    • Vertex Cache: Utilizes a vertex cache to improve performance by reusing vertex data.
    • CPU Mode: Forces the emulator to use the CPU for certain graphical calculations, which might be slower but can improve compatibility with some games.

    DuckStation also provides various post-processing options that allow you to emulate various effects such as simulating a CRT found in the post processing tab. You can mix and match effects.

    Step 6: Memory cards

    Open up the Memory cards in the preferences. The default option is a separate card per game title, and this is the recommended setting, as you'll never need to think about memory cards. When you launch a game for the first time, you'll need to initialize it. This will not delete game saves for other titles.

    Step 7: Emulation settings

    You can change the emulation speed, and it does exactly what you'd expect—games play speeds can be altered to the user's preference. The other interesting thing here is Vsync, which prevents screen tearing.

    Step 8: Save States

    Save states are one of the best things about emulation, as you can literally save a game at any point at an exact moment. Simply go to Save State, and it'll save the game state. Now you can resume back to that point without having to boot the game.

    More Emulation Stuff

    I've made more than a few blog posts and videos on emulation, related to emulating semi-recent game consoles such as my Sony Playstation 2 Guide.



    And finally, my Xbox emulation guide which has a written and video version.


    Half-Life and it's failed OS 9 port


    Half-Life should have existed on the Mac. To be fair, it does, and it did, but it could have much sooner. This an adapted script to a blog post. Below is the original video. This written version includes entire quotes whereas the video version includes more interview clips and actual captured gameplay footage of Half Life.

    Half-Life has a strange relationship between OS X and macOS. During the hey of Mac Gaming, popular franchises routinely were ported to the Mac, and of course, Half-Life should be one of those games. In gaming, there are few PC games as critically acclaimed as Half-Life. While it may not have been revolutionary, it certainly represented the evolution as it exhibited a level of polish games rare for the games of its era, where cutscenes were largely integrated into the game through scripted segments, environmental storytelling, subtle cues to enhance immersion and featured fully voiced characters. It even considered pacing as it featured puzzle breaks between action sequences. While it wasn't the first story-driven first-person shooter or the first cinematic game, it encapsulated the best game design of 1998.

    It was natural for the game to be ported to Mac OS and OS X, as other high-profile first-person shooters from the era, like the Doom series, Hexen series, Quake series, Dark Forces, Deus Ex, Duke Nukem, and Unreal series, were all ported to the Mac.

    Announcement and Cancellation

    In April 1999, Logicware under Sierra Studios announced that a Mac OS version was in the works, but by October it was completely canceled. The official reason why the port was axed was given by Gabe Newell, president of Valve, citing the lack of Team Fortress Classic and multiplayer with PC users and fear of releasing an inferior product.

    Gabe said the following:

    There's been a lot of speculation about Half-Life for the Macintosh - its feature set, its compatibility with the PC version, and so on. Andrew Meggs at Logicware has been doing a good job on the port, and it's mostly done. At this point we've spent a bunch of money on the Mac product and have spent a lot of time thinking about what we need to do to make sure Macintosh users are happy with it when it ships.

    Which is why we are canceling the Macintosh version of Half-Life.

    When we started Mac Half-Life, there was a lot of optimism about the opportunity for Macintosh games. As someone who worked on Macintosh software starting in 1983 before the 128K Mac had shipped, it was pretty exciting to think that there was going to be a resurgence in the Mac gaming market.

    However, as we got closer to shipping the product and reality set in, it was increasingly obvious that in order for us to break even on the Mac version, much less be profitable, we were going to have to cut some corners. OK - I guess we won't have Team Fortress Classic available at shipment. Maybe people will accept it if we update them with TFC later. OK - I guess I understand why we don't have an automatic update facility. Maybe people will accept that they have to manually update. OK - I guess I understand why we might carve out a separate multiplayer space for Mac users from PC users because of the on-going interoperability issues. Maybe that won't be the disaster I think it will be.

    But the more I thought about it, the more I felt that this was nonsense. Our existing Half-Life customers are really happy with us. They were happy with the original game, they were happy when we released TFC, they were happy with our on-going investment in Half-Life, and there's even more coming for them in the next couple of months. They are happy because we do our best for them, and that's what they expect from us in the future. Given the realities of the Mac gaming market, our Mac customers were always going to be mad at us. They were always going to be second-class customers where we couldn't invest to the same degree in the Mac version as we did elsewhere. I don't want to be in that business. I would much rather we just eat the money we've spent so far than take money from Mac customers and short-change them.

    It's disappointing to me on a personal basis that we won't ship Half-Life for the Mac. Everyone here, and I'm sure the people at Logicware are disappointed. The Mac gamers who were looking forward to Half-Life are undoubtedly disappointed as well. However that's a lot less disappointment than what would have happened if we had tried to get Mac gamers to accept second-class treatment on an on-going basis.

    Source: Mac Half-Life Cancelled!

    Logicware did shed some light on the situtation the next day. I understand that previous names can be a sensitive topic but I need to clarify in the sources to avoid confusion, the quotes are attributed to Bill are Rebecca. Rebecca of Logicware briefly spoke on the issue, releasing the following statement:

    Sigh. Yes, Half-Life for MacOS is cancelled. I'm very disappointed that all the work that was done will not see the light of day or the Mac communities screen across the globe.

    Sierra was a pleasure to work with. They have been very helpful and supportive through the entire project and I look forward to doing work for them in the near future.

    I still have a glimmer of hope that Half-Life will eventually be on Macs, but for today that hope does not exist.
    Please don't ask us for a copy of Half-Life. Please don't ask us to "finish" it. The game belongs to Sierra, not us.
    I want to thank Jeff Pobst at Sierra for all the work he did in this project, and Andrew Meggs for all the tireless hours he put into this project to make Half-Life a true Mac experience.

    We are still on track for Aliens vs. Predator and this does not affect the project in any way.

    And after that:

    Then I'll say it -- the game was nearly done. Sierra had labeled the most recent build as beta. Single player had been done for some time. We played on a PC server some weeks ago, and had been playing on a Mac server (with both Mac and PC clients) for the last week. The only things left to do were to add some UI screens in the launcher, get the memory usage under control so it could play on a 32MB iMac, and fix outstanding bugs.
    Obviously, I can't release the code. It belongs to Sierra and to Valve. If you want to get together a petition to send to them, that's your business, but knowing the full situation I think they would respond mostly with annoyance.

    Source: Logicware Staff on Half-Life Cancellation, Part II, Inside Mac Games

    The Real Reason for Cancellation

    For years, this was the accepted narrative. The port was nearly complete but didn't live up to Valve's high standards... that is, until recently, when Rebecca Heineman spoke on the Retro Tea Breaks podcast, covering the ill-fated original port of Half-Life. Below is a transcript of Rebecca speaking about Half-Life.

    Apple pissed off Valve. That's the long story short. Because we did such a great job on Quake II, Sierra approached us. Valve was interested in porting Half-Life to the Mac because they had a conversation with someone at Apple, a games evangelist, who said they would sell 500,000 copies on the Mac. Valve thought it was a great market opportunity and decided to commission the port.

    They came to us, we looked at the code, gave them a price, and they agreed. They even threw in an early completion bonus: if we finished the game by a certain date, we'd get an extra 20K. So, I dedicated three people to the project. We were all excited about working on one of the top franchises ever and getting it onto the Mac.

    Then, three weeks from shipping, when the game was done and we were just fixing bugs, I got a phone call from Sierra. They told me they were canceling Half-Life for the Mac. I was shocked and wanted to know why. They said they couldn't sell the rights at any price but appreciated our work and would pay us in full, including the early completion bonus, on one condition: our silence.


    I recommend watching the entire interview with Rebecca as she was formerly the lead developer for Interplay, and worked on games such Wasteland, The Bard's Tale, Out of This World, Wolfenstein 3D ports to the Mac, 3DO and even Apple IIGs. She also was responsible for the Linux port of Doom Legacy and Apple IIGs port of Sim City.

    Valve didn't want the bad publicity and preferred letting people think the port was bad rather than revealing the real reason. The truth was that an Apple representative had initially told Valve they would sell 500,000 copies. But as the game neared completion, the actual pre-order numbers from retailers were only 50,000. The Mac gaming market wasn't healthy, and 50,000 copies were considered good.

    Valve felt misled by Apple, especially since the original representative had moved to another company. The new Apple rep denied ever quoting potential sales numbers. This angered Valve, leading to an internal policy that no Valve title would ever be ported to the Mac.

    We didn't know about this policy and neither did other Mac game companies like MacPlay and Aspyr. They tried to negotiate with Valve, but Valve demanded nothing less than a million dollars, effectively pricing their games out of the Mac market.

    We archived everything, and there's a disc in my archives labeled "verboten." If someone finds it, they'll see familiar files and an executable for the 1999 version of Half-Life for Mac. Maybe one day it will see the light of day.

    So, if you take Rebecca at her word, Valve canceled Half-Life on the Mac over sales figures quoted by Apple, a misrepresentation by a factor of 10x. You can watch the entire interview above. Rebecca's career is impressive as she was also formerly the lead programmer for Interplay, and very much worth the watch.

    Other Canceled Ports and Later Developments

    Interestingly, it was not the only canceled port of Half-Life as the Sega Dreamcast also faced similar treatment, except unlike the Mac version, it leaked online.

    Dreamcast Half-Life

    The reason given for its cancellation was changing market conditions, but it had already been delayed more than once. The near-complete versions of the port featured inconsistent frame rates and long load times.

    It featured a sub-campaign, Blue Shift, that would be folded into future releases of Half-Life.

    However, Half-Life wouldn't stay away from the Macintosh platform forever, as in 2013, Valve finally released Half-Life for the Mac.

    Valve and Apple: A Rocky Relationship

    A few years later, Valve again soured on Apple. Famously, Valve originally intended to release Proton for macOS. For those who aren't familiar with Proton, it is a compatibility layer that translates Microsoft's DirectX graphics library to Vulkan instructions, allowing Windows games to be played on Linux. It powers the SteamDeck and has ushered in a new era of Linux gaming.

    Andrew Tsai has an entire video on the subject, in the description. Apple and Valve went as far as to feature SteamVR in the WWDC 2017 keynote, but then the relationship soured again due to Apple's moving goalposts. Apple dropped OpenGL and 32-bit support and did not adopt Vulkan graphics API. Valve wasn't alone in this complaint, as Apple has never been able to amass a library of games due to constant breaking changes in OS X and macOS.


    Playing Half-Life on the Mac Today

    You can experience Half-Life on the Mac today using Mac Source Ports - Xash3D FWGS. However, it requires a copy of the "valve" folder from a PC install of Half-Life to be placed into "~/Library/Application Support/Xash3D". This will work on modern macOSes.

    • Intel Mac owners running 10.9 - 10.14 can install the official port of Half-Life on Steam.
    • Intel Mac owners running 10.5 - 10.8 can install the legacy Xash3d port on Macintosh Garden. However, this port will not work under modern macOS.
    • PowerPC Mac users can install the Xash 3D alpha on 10.4 - 10.5. It has a few asterisks as there are some texture issues and it requires an OpenGL 2.0 compatible card.

    Mac Half-Life port guide

    Xash3D isn't the only way to experience Half-Life on the Mac. With Crossover, you can play Half-Life and it's less picky about which version you use.

    Conclusion

    It's unlikely we will ever see the official port of Half-Life that was done by Rebecca and her team, which is sad. Due to the relationship between Apple and Valve, I wouldn't count on Valve making official Half-Life ports again.

    If you're into retro Mac gaming, I've made a video about a cursed port of Grand Theft Auto 3 for PowerPC Macs and one about the history of Connectix Virtual Game Station, embedded below.

    Additional Mac Gaming stories




    What the Hell is a Neural Engine?

    This following article is an adapted script from my YouTube Video: "What the Hell is a Neural Engine?"


    If you've purchased an iPhone or iPad after 2017 or an Apple Silicon Mac, it has the Apple Neural Engine. The short answer to my rhetorical question is that the ANE was initially designed for machine learning features like FaceID and Memoji on iOS and debuted on the iPhone X with the A11 chipset.

    Machine Learning uses the power of algorithms and statistical models that enable computers to perform tasks without explicit instructions. Machine Learning learns to make predictions or decisions based on data, known as training. The learning process generally involves feeding large amounts of data into the algorithm, allowing it to learn and improve its accuracy over time. It varies a lot, and training can take on many forms, such as using tagged data and/or unsupervised learning or Neural Networks. For example, Large-Language models use a mixture of unsupervised and supervised fine-tuning and, later, human reinforcement when stealing the collective works of humanity.

    Machine learning is used in mundane tasks like email filtering to catch spam or more exciting things like computer vision, such as the ability to identify objects in photos. With the AI choo-choo express hype train, many machine learning and neural networks are being rebranded as AI.

    Machine learning requires a lot of computing power, and CPUs are not the most efficient at training and executing machine learning. For example, GPUs are parallel processors that can quickly execute millions of certain math operations in a single clock cycle; thus, they are much better suited for the needs of machine learning.

    Apple designed the Apple Neural Engine (ANE) to supplement certain types of machine learning tasks, both in training and executing, using CoreML.

    It's essential to understand Core ML, Apple's machine learning API, doesn't exclusively utilize the ANE; it leverages the CPU and GPU and, if present, the ANE. To quote Apple,

    Apple's Cores for ML

    "Core ML then seamlessly blends CPU, GPU, and ANE (if available) to create the most effective hybrid execution plan exploiting all available engines on a given device. It lets a wide range of implementations of the same model architecture benefit from the ANE even if the entire execution cannot take place there due to idiosyncrasies of different implementations." Apple.com - Deploying Transformers on the Apple Neural Engine

    This means when using CoreML, it will automagically use all the tools it has available. The advantage of this approach is that developers do not have to worry about programming for various hardware configurations. If you use Core ML, you're likely getting the best performance, regardless of the device the tasks are being executed on.

    Unlike, say, a GPU, there is no public framework for directly programming on the ANE. There are some esoteric projects designed to measure the Neural Engine performance, and so are not-so-esoteric ones like Geekbench ML, which does not seem to properly isolate the Neural Engine.

    Apple has provided some graphs and has stated that the M1's Neural Engine could perform up to 11 trillion FP16 operations per second, the M2 and M3 neural engine process up to 15.8 trillion operations per second, and the M4 can do 38 trillion operations per second.

    The ANE isn't just an accelerator for floating point math; it's better thought of as a low power consumption optimizer as it can be leveraged for certain types of ML tasks. It's faster and uses much less memory, less power allowing for on-device execution of machine learning tasks.

    NPUs

    The ANE is not unique to Apple as it is generally considered a neural processing unit, or AI accelerator, or NPU. Neural processors can be found in the AI engine of Qualcomm Snapdragons, the NPU of Samsung's Exynos, and the Da Vinci NPU of Huawei's Kirin. There's a common thread that many readers probably noticed with the aforementioned chipsets: they are all ARM-based. The lack of NPUs for x86 has to do with several factors, the first of which is that x86 hasn't been found in extremely low-power devices like phones and wearables, where every watt counts. The second reason is the existence of exceptionally powerful dedicated GPUs in high-end computers. GPUs can perform the same operations as an NPU and perform more operations, making them more useful for both training and executing machine learning tasks at the cost of a higher TDP. The M4 ANE has 38 Trillion operations per second, but high end Nvidia GPU can hit 1,300 Trillion operations per second.

    Another reason why NPUs aren't typically found on x86 are the type of AI tasks that NPUs really excel at, like facial recognition and computation photography, which doesn't really exist on desktop computers. Lastly, for serious AI tasks like model training, buying expensive GPUs or leasing computer time on cloud services with hardware acceleration would be more effective than designing NPUs for x86.

    However, we're seeing a shift in the role of machine learning on desktops with the rise of "AI" and more and more demand for the raw compute power required for AI. Windows 11's questionable Copilot + requires 40 trillion operations per second.

    What is an NPU exactly used for?

    Let's use a real-world example. Core ML is a foundation for Apple's computational photography. As everyone hopefully is aware today, when one snaps a photo, there is no longer anything such as "no filters," and billions of operations are performed to process the image, including everything from face detection to color balancing, noise reduction, smart HDR, video stabilization, emulating depth of focus in cinema mode, and scene analysis. This requires millions of operations to happen, in real-time or near instantaneously. Rather than send the matrices of floating-point operations to the CPU and GPU, the Neural Engine can take on heavy lifting.

    These are incredibly dense operations, like scene analysis, which might sound simple, but Apple has developed an entire ecosystem called Apple Neural Scene Analyzer or ANSA. This is the backbone of many features like the Photo app's Memories, where images are tagged, aesthetics are evaluated, detection is done for duplicates or near duplicates of photos, objects detected, and locations are grouped. This is all done on the devices using another principle Apple calls differential privacy , where Photos learns about significant people, places, and events to create memories while protecting the anonymity of the users. Exploring how Apple's memories work probably should be an article in itself. While this feature makes extensive use of machine learning, it's not dependent on the ANE alone; instead, it assists in performing the analytics.

    However, it's hard to evaluate how much of this chain occurs on the ANE. That's due to the lack of information Apple has published. One can find frustrated developers complaining about the lack of info. One of the main sources for information is The Neural Engine — what do we know about it?

    The TLDR is that the neural engine is an on-device Neural Processing Unit part of Apple Silicon that is leveraged for machine learning along with the CPU and GPU. It's very good for certain math operations and is partially a power-saving mechanism designed to assist low power computing, rather than utilizing a more power-hungry GPU.

    Screenshot of Apple Watch Webpage

    This is especially the case with the Apple Watch, which needs to be ultra-efficient. Since the series 4, the Apple Watch line has included a stripped neural engine to assist with faster on-device processing of inputs. In Apple's marketing material for the series 9 Apple Watch, Apple suggests that the Apple neural engine is even used for the double tap gesture.

    It will be interesting to see how Apple leverages it in the future. It seems increasingly likely that Apple will be doing some of its AI using cloud services. Also, AI functions are very RAM intensive. In a recent video, I demonstrated the limitations of 8 GB of RAM when a Mac mini m1 was bested by a Mac Pro 2013. Apple may regret shipping low RAM configurations.


    This year's WWDC was very focused on Apple Intelligence, Apple's branding on AI, a term that gets increasingly obfuscated day by day. Apple plans to bring AI on multiple fronts, running local AI models and upchaining requests to the cloud when local isn't enough. There are a lot of questions to be answered on how well this strategy will work, and perhaps when you read this, many of them will be answered. One minor reveal is that only M series Macs and the A17 Pro, as of recording, are confirmed to support Apple's AI strategy.

    There are plenty of posts and videos breaking down the features of Apple Intelligence. Still, just as a refresher, they included generative text editing, generative AI for uninspired images and emojis, with one truly dystopian example on the iPad where a stylish sketch is turned into a soulless rendering, some very impressive natural language interactions, and personalized notifications. It's very unclear when and which interactions are on-device, but on-device services likely include dictation and personal contexts, and some of the textual generation; by that, I mean Siri responses. This, of course, will be revealed in the upcoming months. If executed well, it will be the most cohesive and useful AI strategy we've seen by any major company for everyday people, but I expect growing pains.

    We should fully expect more emphasis on the NPUs moving forward, but companies haven't managed to communicate effectively the value of NPUs or what they do to consumers and are often cagey even towards developers. This is certainly not the first time a coprocessor was nebulous to its potential buyers, be it early GPUs or math coprocessors, and if anyone remembers the failed attempt at selling Physics processing units for gaming.

    Training and FP16

    In Apple's AI page, the Neural Engine isn't mentioned as part of the chain used for do-on-device training. This is likely because the ANE is primarily optimized for the execution (inference) of machine learning. This is evidenced by it only supporting FP16, GPUs and CPUs can execute FP32 which is higher precision, which is needed for many small adjustments from the gradients calculated during backpropagation. CPUs and GPUs can do mixed precision training, where FP16 data can be converted FP32 when more precision is needed.

    To translate that back to human, NPUs in consumer devices are targeted for running existing models as opposed to creating new ones. The ANE is not for AI model creation for developers.

    None of this should be a surprise. As I stated earlier in this article, typically if one was performing serious ML training, one have a very expensive GPU step-up or lease cloud computer time.

    Without going too deep into computer science, 1 bit can store two values, 2 bits can store 4 values, 3 bits can store 8 and so on. 16 Bits can store 65,536, and 32-bit can store 4,294,967,296.

    For non-whole numbers, such as those with decimal points, one would need to express where the decimal is. For example, 1245678 could be 12.345678 or 123456.78. A floating point format is used to handle this by specifying the decimal's position. This involves components like the mantissa and exponent, but in essence, it allows the number to 'float' to where the decimal is needed.

    In machine learning, different bit depths are used, and a 16-bit floating point (FP16) is popular because it offers a reasonable balance of accuracy, memory usage, and processing power. Models can be quantized from 32-bit to 16-bit, trading some accuracy for performance. This process is similar to downsampling a 24-bit image to 8-bit rather than simple rounding.

    Apple now provides developers with the App Intents framework, which opens up applications for interactions performed by Siri using the personal context awareness and action capabilities of Apple Intelligence. This allows developers to integrate features based on predefined trained models without having to create their own. How useful and widely adopted this is remains to be seen.


    Become an art legend with your Mac, iPad or iPhone

    This blog post is adapted from a video version of my Draw Things Tutorial, a stable diffusion application avaliable on the Mac, iPhone and iPad via the App Store.Using any of these devices, you can follow this tutorial. Draw Things is a frontend, or a graphical user interface, for Stable Diffusion.

    AI art generation is pretty CPU and GPU intensive, so for anyone using older devices, this may or may not work. The screen captures are from an iPad M2 but the Mac version looks exceptionally similar.

    download model

    When you first launch the application, you will need to download what is known as a model. A model in machine learning, such as Stable Diffusion, is a trained neural network that has learned to generate images by analyzing extensive sets of images and text. To translate this back into human-peak, each model uses different sources for images and text. This radically changes the sort of images that a model can generate based on prompts. Some people create different models based on art styles or content. Some of them are really good at people, some are general-purpose, some are really good at meme-making, different styles of illustrations, and some are photorealistic. They also vary quite a bit in quality.</p download model list

    > If you click on the model, you'll see quite a few models available, but what we want is to start with SDXL Refiner. SDXL Refiners is by Stability AI, the people who created Stable Diffusion, and it's very general-purpose and generally pretty high quality.

    Draw Things Screenshot

    The interface looks kind of confusing, but we can see that there's a default prompt. The text on the screen, the prompt, is the thing we'd like to see. Right now, the default prompt says, "A samurai walking towards a mountain, 4K, highly detailed, sharp focus, grayscale.". If I click generate, I will see the following:

    Draw Things Screenshot

    We could continue to use this same prompt and generate more images that would be similar in nature. If we were to change the prompt, it would change the content of the images that it's rendering. To reiterate that, if you type something in and hit generate, it'll spit out an image. That's pretty simple, so let's do something a lot more advanced. Since we are just talking about models, let's download a different one. This is done by tapping the model name to bring up the menu.

    Draw Things Screenshot

    I can switch the model and download a new one. For my example, I'll use "Realistic Vision version 3." Realistic Vision focuses on rendering images of humans. Then I'll generate an image with the same prompt again.

    Draw Things Screenshot

    The results again are fairly interesting.

    Now, let's try altering the prompt and adding a negative prompt. Prompts are the results you want to see, and negative prompts are the results you don't want to see.

    Inpainting lets us fill in missing pieces to an image. However, you need an inpainting model, so let's download one. I hope they change this in future versions of Draw Things, but right now, the grid layout is worthless. I can't read the full file names, so let's switch to list view and search for the inpainting. This is still not perfect, but at least now we can see 1.5 versus 2.0. By the time you watch this, some of these version numbers may have changed, so just keep that in mind. Usually, the newest version is the best, so I'm going to download the 2.0 version.

    Draw Things has a few basic image editing options, and one of them is the erase tool. Click on it and let's erase this guy's face. Now that I've completely erased his face, it's time to adjust the strength. I could put this at 100%, and it'd probably do a reasonable job of filling in this guy's head. I am going to adjust this to 90% because I want it to look somewhat like our samurai. One last step, I'm going to adjust the text guidance. The on-screen description is a very good explanation. The higher the text guidance value, the more it will try to follow your prompt. If you want to know more about it, there's a fantastic article on GetIMG.

    It can't always do a perfect job. Some models have inpainting versions, so you can download the matching inpainting version and have much better results. In this next section, we're going to try to incorporate real-world photos that we've already taken. I have a picture of my cat, Jeff, in Pixelmator on my iPad, and I'm going to remove some unwanted stuff from this image. Now that I've saved it, let's import it into Draw Things.

    First, let's click the new page to create a new canvas, then click the camera icon so we can import Jeff's photo from our photo library. I'm going to speed through switching the model, typing up a description, resizing the image, and then setting the strength to 70%. Now it's time to finally talk about steps.

    Get img.src: Time over time, Stable Diffusion improves the image, but there is a law of diminishing returns. This interactive graphic explains this better than I can do with words. Get IMG recommends roughly 25 steps. This number of steps is generally a good balance between quality and time. Each step is essentially a refinement of the image. The more steps, the more refined the image becomes. However, after a certain point, the improvements become less noticeable, and you reach a point where additional steps may not significantly enhance the image. It's important to experiment with the number of steps to find the sweet spot for your specific image and desired outcome.

    I'm going to lower mine to 28. Let's speed through a few more last-second updates, and now we're ready to generate. While it's not Jeff, it definitely took some inspiration from him. Now, I like this image, but I wish it just wasn't square. Well, we can fix that. If you notice, when we zoom out, there's still the carpet background from the previous image. I could use the eraser tool, but it's just easier if I save this image and start a new canvas.

    So, let's re-import the generated image. As we previously explored with the samurai, the inpainting will paint in the missing pieces of the image. Let's resize the image and move back to inpaint as our model. On second thought, I think I'm going to change the image size just a bit. I decided to off-center this image slightly so it would render more to the left of the cat. The final step is to change the strength back to 100%, which might seem counterintuitive, but watch the results. The results are actually pretty good, except for there's a line in both the images. I've zoomed in so you can really see it.

    Since I'm rendering all my images to my iPad, I can go into a program like Pixelmator, open up the image, and start touching it. In Pixelmator, I can use tools like the heal tool to remove the line, use the sharpen tool to give the face a little more detail, and then even go through with the warp tool and give the cat a bit of a tummy tuck, since this is kind of a weird render. The end result is impressive, although the cat only has three toes now.

    Let's revisit models once again, but this time, we're going to download models that aren't included in Draw Things off the internet. If we click the models, we can then click manage. Realistic Vision 3.0, I know for a fact, has a later version. I'm going to delete the Realistic Vision 3.0 by clicking the trash can. There are a lot of options when importing models into Draw Things, and that's unfortunately just a quirk of Stable Diffusion. I'm not going to go into all of these because it gets really complicated, but just be aware, some models do require tweaking these settings. The thing we're most interested in is "Downloaded File." If we click it, we can enter a URL to a model.

    Let's cancel out of this and go to Safari. Probably the most popular host of AI models is Hugging Face's Model Hub or another similar platform. I'm not sure how it's said. From this website, we will search for Realistic Vision. This particular model is right now version 6.0 beta 1, and if you notice, it also has an inpainting version, but for this video, we're just going to download version 6.

    We will do this by clicking the download icon and then copying the link. For the Mac users, you can just download this file. Now, let's switch back to Draw Things. We will click "Enter URL," paste the URL, click continue, and it'll start downloading. Depending on the model, Draw Things might download supporting files. Realistic Vision is pretty good for people, so let's just do a quick one of a woman reading a book in a coffee shop at night, and it's peaceful. The results are pretty good until you look at the cursed AI hands; it's just a thing with AI.

    Speaking of cursed, let me draw a not-so-good picture of my cat, Jeff, very quickly on my iPad. To my defense, I purposely wanted a bad drawing for this demo. If I go back to Draw Things, I can import this image and then use one of the models I already have downloaded; I can then use this as a source image to generate a new image. After refining my prompt just a little bit and changing the strength to 80%, I got a pretty good result. There are some striking similarities here because it mimics the pose on a flat background.

    iOS, macOS, and iPadOS all have the ability to lift objects out of photos. I've already imported my cat Jeff, and we're using the inpainting model. Apple's ability to lift objects out of photos is impressive, but it's not perfect; it has some weird edges. So, to correct for this, I'm going to do something that might seem counterintuitive. I'm going to erase the entire image, then I'm going to scroll down and set the strength to about 25%. The Inpainting 2.0 model isn't that great, but we could always download a different one and see if we could find one that would produce better results. Maybe we could put the cat in a better sci-fi background, and probably we'd tweak this strength to be even lower.

    Now for our final main topic, and that's LORA or Low Order Rank Adaptation. Think of these as expansion packs for Stable Diffusion. LORAs can contain quite a bit of different stuff like characters, poses, or visual effects. Also, generally speaking, they are a lot smaller than models. I know of one that's really cool that works with Realistic Vision, and we already have version 6.0 downloaded. The process is pretty much exactly the same as importing a model. We are going to go back to the website CivitAI, search for Vector illustration, and go to that LORA. I'm going to copy the URL and then go back to Draw Things and import it by clicking manage next to the LORA. Mac users again get off easy; they just click download and then can import the downloaded file. Once it has been downloaded, we will click import. Often LORAs need trigger words. This one is a vector illustration, but if for some reason we forget it, we can go back to the website. If I click the info button, I can see the prompts used to generate this really sweet monster truck. Note the use of the word Vector illustration. I'd like to see a vector illustration of a palm tree, so we're going to use the prompts for vector illustration and palm tree. Note that I have the LORA weight set to 100%. When using LORAs, you have to pay attention to the documentation. Some will recommend settings of like 60% for the best results. Some have multiple trigger words to produce different types of images. Some were designed to work really well with a certain model, like this one, which was trained on Realistic Vision. The results are pretty cool.

    There is a lot of trial and error. I tried to generate pictures of the Oregon coast in Vector art style. Some still came out as photos, and some did not. There are some topics I didn't touch on, like Samplers, and there's an amazing article all about Samplers and how they affect the image quality at stable diffusion art. If you haven't put it together by now, a lot of those scammy apps on the Mac App Store, iOS Store, and iPad Store that let you generate AI images are just using Stable Diffusion. I'm debating making a full-fledged course on this, but it wouldn't fit under this channel. I do have my Patreon, and I could also put it on Udemy or something. That way, people could really dive in with me because there are a lot of topics I didn't cover, like Control Nets or even making your own LORAs and training, because this program goes deep. If that's of interest, just let me know in the comments. And I think that's it.


    The best games for late PowerPC G4/G5 Macs - OS 9 and OS X (100+ games)

    Once upon a time, I wrote articles for InsideMacgames.com during the heyday (if there was ever such a thing) for Mac gaming in the very early 2000s. Despite the relatively small audience, the landscape was much healthier as companies were more willing to port games to the Mac, which is a topic in itself. I never considered myself much of a gamer, but I enjoy them now and again and remember many of the major releases for the Mac.

    This is a list of what I'd consider largely the best releases for games compatible with Mac OS 9 - OS X, ideally for G4 and G5s, although I'm sure G3s can play a chunk of the titles. Mac users often learned to give some times a second glance that PC enthusiasts may skipped as they had a much larger library to pick from. Also, I'm sure there are some classics or loved titles I skipped or forgot. This is by no means a complete list, but rather a list of games worth taking the time to install.

    If you're looking for a list of recommended games on a nostalgia kick or new to retro Mac gaming, then scroll on down. There are roughly 100 games in this list and also at the bottom a list of modern PowerPC apps

    4x4 Evolution, 4x4 Evolution 2 - A slightly lesser known off-road racing title ported to the Mac
    4x4 Evolution - OS 8 - OS 9
    4x4 evo 2 - OS 9 - OS X

    Age of Empires II: Gold Edition, Age of Empires III - The classic isometric nation building RTS by Microsoft, but it made it to the Mac.
    AoE II - OS 8 - OS X
    AoE III - OS X

    American McGee's Alice - The horror sequel to Alice in Wonderland making clever use of the Quake 3 engine.
    OS 9 - OS X

    Baldur's Gate II: Shadows of Amn - Honestly, I haven't played this but it's so well loved that it clearly belongs.
    OS 8 - OS 9

    Black & White (Platinum Pack) - A god simulator, I don't think I'd call this great or even good game but it's interesting for its oddness. This same description could be applied to its chief creator, Peter Molyneux
    OS X

    Call of Duty (Deluxe), Call of Duty 2 - Before modern warfare, it was humble World War 2 first-person shooter series.

    Sid Meier's Civilization III - I installed this game once in college and lost 25 hours in a single week and deleted it, never to play it again. You have been warned.
    OS 8 - OS X

    Command and Conquer: Generals - It wouldn't be a computer gaming list without the C&C franchise on the list.
    OS X

    Descent, Descent II, Descent 3 - A vehicular combat game that is usually considered a 1st person shooter, with a fully 3D environment before Quake.
    System 7 - OS 9 (Descent III, OS 8 - OS 9)

    Diablo, Diablo II - The original looter, an RPG where you click on the thing you want to die.
    System 7 - OS X

    Doom, Doom II, Final Doom - "...But can it run Doom?" Yes, it can.
    System 7 - OS 9

    Doom 3 - It's very dark.
    OS X

    Dungeon Siege - A diablo-like dungeon crawler that seems somewhat forgotten and had a few popular mods.
    OS X

    Duke Nukem 3D, Duke Nukem 3D (OS X) - It was a different time. We used to think this game was really cool.
    System 7 - OS X

    Deus EX - Videogames started to grow up, and Deus Ex helped lead the charge where actions mattered in quasi-cyberpunk RPG/FPS fusion.
    OS 8 - OS 9

    Escape from Monkey Island - The humorous LucasArts adventure series returns to the Mac again.
    OS 8 - OS 9

    Escape Velocity, Escape Velocity Override, Escape Velocity: Nova - the top down space exploration trilogy from Ambrosia Software.
    System 7 - OS X

    Fallout, Fallout 2 - An isometric odd-ball post-apocalyptic RPG and spiritual successor to Wasteland after battles for IP ensued. EA's failure is our gain.
    OS X

    Future Cop: LAPD - a solid and often overlooked title that may not have aged beautifully but still worth a look
    System 7 - OS 9

    Glider Pro - The final evolution of a classic Mac series, where the user controls a paper airplane through houses loaded with obstacles and the ability to create your own maps.
    System 7 - OS X


    Grand Theft Auto PowerP (alpha) - Not a serious game that was ever release but a small taste of what could have been...

    Halo: Combat Evolved - It's impossible for a Mac gamer who was around not feeling some sort of way about this title, or not to mention "It was originally a Mac game."
    OS X


    Half-Life - the original port will never see the light of day (See above) but it lives on in a PPC alpha fan port.

    Homeworld 2 - a classic space ship RTS
    OS X

    Indiana Jones and the Emperor's Tomb - It's sad that Indiana Jones as an IP hasn't had the same level of quality as Tomb Raider. The game was just ok, but PC gamer seems to think it aged alright.
    OS X

    Kelly Slater's Pro Surfer - from the same team of Tony Hawk's Pro Skater comes the underrated surfing game,
    OS X

    Madden 2000 - The Mac rarely got love from EA Sports, and Madden 2000 is an outlier where EA tepidly dipped its toes in the Mac gaming market. It was an admirable port by Aspyr.
    System 7 - OS 9

    Maelstrom GPL (OS X) - an opensource version of popular game, Maelstrom with better OS 9 and OS X compatibility
    OS 9 - OS X

    Marathon Trilogy Box Set - "They're everywhere!" The most iconic Mac gaming series of all time. Also, check the AlephOne Project for OS X 10.2+.
    System 7 - OS 9

    Max Payne - A trope fueled romp of non-stop bullet time gun fights in a much loved 3rd person shooter,
    OS 9 - OS X

    MechWarrior 2: 31st Century Combat, Mechwarrior 2 (RAVE aka ATI) - customize giant tank-like robots, and battle other Mechs in a simulation/FPS style.
    System 7 - OS 9

    Medal of Honor: Allied Assault, Medal of Honor: Allied Assault - Spearhead, Medal of Honor: Allied Assault - Breakthrough - In the 2000s, World War II was very much in the mind of gamers and gamers universally agreed the Nazis were still bad guys.
    OS 9 - OS X

    Myth: The Total Codex (Myth: The Fallen Lords, Myth II: Soulblighter + Chimera), Myth III: The Wolf Age - Bungie's 3D real-time strategy, with its quirky brand of chaotic battles.
    System 7 - OS 9 for Myth 1 & 2, OS X for Myth 3.

    No One Lives Forever (The Operative), No One Lives Forever 2: A Spy in H.A.R.M.'s Way - fairly forgotten FPS that had good Mac ports.
    OS X.

    Oni - A somewhat unfinished game but still a fun 3rd person combat game from Bungie.
    OS 8.5 - OS X

    Quake, Quake II, Quake II (OS X unofficial), Quake III Team Arena, Quake III Team Arena (OS X) - Each game is wildly different to the point where I could have written a word or two about each game, but let's be realistic, you already know the Quake series.
    Quake - System 7 - OS 9
    Quake II System 7 - OS X
    Quake III - OS 9 - OS X

    Red Faction - A sci-fi FPS with destructible environments and vehicles.
    OS X

    Return to Castle Wolfenstein - A solid remake even if occasionally thematically silly and a lot of fun. Make sure to check out the massive amount of add-ons.
    OS 9 - OS X

    Rollercoaster Tycoon 3 - Probably the strongest of the sim games under the Tycoon umbrella.
    OS X

    Shadow Warrior - From the makers of Duke Nukem.... Again, it was a different time, but even at the time, it received negative reactions for its (charitably speaking) humor, which relied on stereotypes. This is more of a "We've come far from here" when it comes to the portrayal of various groups in games.
    System 7 - OS 9

    Sim Ant - Greatest game of all time. It's one of the earliest RTSes and a game that really needs a sequel. You manage an ant colony, which, unlike most Maxis games, has a clear endgame: To clear the map of both the red ants and humans. Silly mode is a must.
    System 7 - OS 9

    Sim City 2000 - Absolutely one of the best sequels ever made, with its surprisingly melancholy jazzy soundtrack and irreverent humor
    System 7 - OS 9.

    Sim City 3000 - Another winner for Maxis in its city simulator series,
    System 7 - OS 9

    SimCity 4 + Rush Hour Expansion - The famed city simulator goes 3D,
    OS X

    StarCraft - Blizzard's groundbreaking Sci-Fi RTS.
    System 7 - OS X

    Star Wars: Dark Forces - It's very much a Doom rip-off mechanically speaking, but it's still a classic.
    System 7 - OS 9.

    Star Wars Episode I: Racer - Not every game is classic on this list, but being a Mac gamer often meant sometimes stooping to mediocrity,
    OS 8 - OS 9

    Star Wars: TIE Fighter - A flight sim but as the evil empire,
    System 7 - OS 9

    The Sims + The Sims: Livin’ Large - Maxis's quirky materialistic life simulator but on your Mac.
    OS 8 - OS X

    The Sims 2 - The life simulation continues, and with so many expansions to download.
    OS X

    Tiger Woods PGA Tour 2003, Tiger Woods 2005 - Surprisingly, Tiger Woods PGA tour made it to the Mac a few times over the years, last seen in 2008. Tiger Woods 2008 OS 9 - OS X, Tiger Woods 2005, OS X

    Tom Clancy's Ghost Recon - Despite having the Tom Clancy name, not based on any books. A tactical shooter.
    Mac OS 9 - OS X

    Tom Clancy's Rainbow Six: Rogue Spear, Tom Clancy's Rainbow Six 3: Raven Shield - a popular tactical shooter series aiming for realism compared to other first-person shooters of the time. Rogue Spear OS 8 - OS 9, Raven Shield, OS X

    Splinter Cell - The 3rd person stealth 3rd person action/shooter made it's way to the Mac.
    OS X

    Tomb Raider (Gold), Tomb Raider II, Tomb Raider III, Tomb Raider Chronicles, Tomb Raider: The Angel of Darkness - Laura Croft made many appearances on the Mac made by the legendary Aspyr who's still working on Tomb Raider to this day.
    Tomb Raider 1 -3 System 7 - OS 9
    Chronicles/Darkness OS X

    Tony Hawk's Pro Skater 2, Tony Hawk's Pro Skater 3, Tony Hawk's Pro Skater 4 - The legendary series made it to the Mac, THPS2 (OS 9 - OS X), THPS3 (OS X), THPS4 (OS X)

    Tropico, Tropico 2: Pirate Cove - The fantastic dictatorial Sim-City-Esq Simulator. Tropico OS 8 - OS X, Tropico 2 - OS X

    Unreal - This qualified for jaw dropping graphics in 1998. I played it in 800 x 600 with a Voodoo II, probably pushing 30 FPS in 16-bit color. It was great.
    System 7 - OS X

    Unreal Tournament, Unreal Tournament 2003, Unreal Tournament 2004 - Unreal got past its pretense for a story, much like Quake for a fun multiplayer shooter series.
    Unreal Tournament - System 7 - OS X
    Unreal 2003, Unreal 2004 - OS X

    Virtual Pool - A simple pool game by today's standards, but 1996 was impressive, and while only System 7 - OS 8, can be run in OS X with the last update.
    System 7 - OS X

    Warcraft II: Tides of Darkness - Blizzard's wildly successful sequel to a game almost no one ever played, classic 2D RTS.
    System 7 - OS 8

    Warcraft III: The Frozen Throne - The massively overhauled sequel to Blizzard's breakout RTS hit, Warcraft II. Entire genres of videogames like Tower Defense started as mods for this game.
    OS 9 - OS X

    WingNuts 2: Raina's Revenge - A small-studio indie Mac game developer made overhead World War 2ish shooter.
    OS X

    Wipeout 2097, Wipeout Rewrite (unofficial OS X) - A futuristic racer more known as a Playstation series,
    OS 9 - OS X

    Wolfenstein 3D - The game you know and love slightly upgraded, with two new weapons, 128 x 128 textures, a blaring dramatic soundtrack, and altered storyline.
    System 7 - OS 9

    X-Plane 7, X-Plane 8 - takes a special type of person to want to play non-combat flight sims but if that's your bag, then X-Plane is pretty much the beginning and end for the Mac.
    OS 9 - OS X

    World of Goo - A classic indie puzzler and it works on PowerPC.
    OS X

    Zoop - fun little puzzler that was a bit of a flop despite being a good way to kill 5 minutes.
    System 7 - OS 9

    You'll notice that Nanosaur, Bugdom, and Cro-Mag Rally are not on this list. That is because they're not good. Seriously. They are trash. The only reason you have fond memories of these is you likely were a kid who didn't know better. They're Mac originals but if you want to play Mac originals that were actually fun, try Ambrosia Software's games like Maelstrom and Escape Velocity or Wing Nuts 2.

    Modern PowerPC Apps

    There are a few modern apps that are worth mentioning that are still being developed for PowerPC Macs. These are not games but you'll probably want to explore these. This video has a breakdown comparing web browsers. You can surf the modern web.... kinda!


    • Discord Lite - A lightweight Discord client for PowerPC Macs
    • Legacy AI - A modern AI for PowerPC Macs
    • PPCAppStore - A app store for PowerPC Macs
    • TigerBrew - A package manager for PowerPC Macs
    • TenFourFox - A semi-modern web browser for PowerPC Macs
    • InterWebPPC - A fork of TenFourFox
    • AquaFox - fork of TenFourFox, incorporating tweaks from InterWebPPC and TenFourFoxPEP

    How to Play Blu-Ray Movies on a Mac Using VLC (Apple Silicon and Intel)

    Since macOS does not natively support Blu-Ray playback, the best solution is VLC, an open-source video player that has been around for nearly 25 years. However, you cannot simply insert a disc and expect it to play. Video playback relies on libaacs, for Advanced Access Content System, the digital rights management system used by Blu-Ray and the now-defunct HD-DVD format.

    Tutorial starts at the 5 minute mark

    However, libaacs does not offer any keys or certificates to decode encrypted media, leading us into a legally grey area. So, let's walk through the process.

    Step 1: Download and Install VLC

    Go to the VLC media player's website and download and install VLC.

    Step 2: Install HomeBrew & Libaacs

    Homebrew is a command-line interface package manager utility. Think of it as an app store for open-source command-line software. Go to brew.sh and run the curl command by copying and pasting it into your macOS terminal. Once it's installed, you can test to see if it's working by typing brew into the terminal.

    After installing Homebrew, run brew install libaacs to install libaacs.

    Step 3: Download the keydb.cfg

    This step's legality is uncertain, but you can go to the FindVUK Online Database and download the keydb.cfg file (decompress it if it doesn't automatically). You'll need to search for it yourself, but it's easily accessible.

    Open ~/Library/Preferences (navigate to your user directory, open Library, and then Preferences). If you do not see your library, you may need to unhide it; Lifewire has a good tutorial.

    Create a new folder in the Preferences folder called aacs (all lowercase) and drag the keydb.cfg file into it.

    Nerd shortcut: mkdir ~/Library/Preferences/aacs and use the cp command to move the keydb.cfg to this directory.

    Step 4: Copying Over Libaacs' Alias for VLC

    The last step varies depending on whether you have an Apple Silicon or an Intel Mac. In the terminal, you can type brew --prefix to find where Homebrew is installed on your Mac.

    Navigate to the root of your boot drive and press Command-Shift-Period to display hidden files.

    Go to the directory specified from brew --prefix. If your Mac shows the opt directory, open the Homebrew folder.

    Next, open Cellar, then libaacs. In this folder, there should be a version number like 0.11. Open the lib directory and find the libaacs.dylib file and copy it.

    For Apple Silicon Macs, you will need to go to /opt/homebrew/cellar/libaacs, and for Intel Macs, go to /usr/local/homebrew/cellar/libaacs.

    Paste (or copy) the libaacs.dylib file into /usr/local/lib.

    Step 5: Open VLC and Play the Disc

    That's it! You're now ready to enjoy your Blu-Ray movies on your Mac.


    Sonoma Wallpaper Downloader

    So I wrote a free application to download the video wallpapers found in macOS Sonoma.If you haven't seen it, Sonoma now offers the same videos that were used as screensavers on the Apple TV for use as wallpaper and screensavers. They are browsable from the terribly redesigned system preferences.

    If you click one these, it'll download it. Apple does not make it clear where these land, but it is in:

    /Library/Application Support/com.apple.idleassetsd/Customer/4kSDR240FPS

    However, I wanted this to work on non-Sonoma nd to be a bit easier to download so I wrote an app to make it easier, Sonoma Video Wallpaper Downloader and the github page.


    Wahclella Falls, Snowed in


    Wahclella is generally a cupcake hike; there's nothing wrong with that. It's one of the better hikes in the Gorge. However, it's snowed in still, and more so, icy compacted down snow. I made it about a half mile in, before realizing I needed my microspikes and jogged back to my car. Surprisingly, the hike was actually a bit treacherous due to the ice


    Install your Windows Steam games on Apple Silicon Macs Using Whisky (A free GPTK Front-End), a tutorial

    This tutorial won't be ultra-comprehensive, but rather a quick start guide designed to get you up and running Windows Games fast as possible. The video version of this includes a bit more info and demos of games running.

    You've probably heard about Apple's Game Porting Toolkit also known as GPTK, a utility design to porting Direct X based games to Mac, and it happens to have the ability to run Windows games on the Mac. This process originally required installing a bunch of tools via the command-line and it wasn't stream lined. Now it is, thanks to apps like Whisky. This app is 100% free and it's caveat is it was designed only to work with DirectX 11 and 12.

    If you're looking for a geekier solution, I now have a guide on "Transform Your Apple Silicon Mac into a Steam Deck with Asahi Linux, A Tutorial

    Requirements

    Installation


    After downloading Whisky, Double click it and then it will prompt you to install Rosetta 2, a translation technology by Apple that allows Macs with Apple Silicon processors to run software designed for x86 and GPKT (Game Porting Toolkit). The total will be be over 400 MBs.


    Click create New Bottle. Just for context, GPTK uses WINE, and WINE bottles are self-contained environments that allow Windows applications to run on non-Windows operating systems. You can choose where the WINE Bottle will be installed on your Mac (this is where the windows games will be installed, if you want to use an external drive, you can).

    From the Whisky interace, click open C drive. Then Drag the SteamSetup.exe into the drive_c folder.

    Now go back to Whisky and click Run and select the SteamSetup. You'll step through the steam setup as if it were a normal PC.

    From here you can install games as you normally would. Just be aware sometimes important dialog boxes can be hidden behind the steam application.

    Game Compatibility

    It's important to understand many older titles are unlikely to work for multiple reasons such as:

    • The game is not Direct X 11 or Direct 12
    • AVX instructions which Rosetta
    • Anti-cheat Software
    • Unsual copy protection
    • Certain types of online features

    There isn't a comprehensive list of compatible titles, the best place to check is AppleGamingWiki and look under GPTK compatibility. Also, Whisky has a small Game Support Wiki for running particular titles.

    There's always Linux & Proton...

    I recently made a guide for installing Asahi Linux and running Proton on Apple Silicon Macs, you can read the article: Transform Your Apple Silicon Mac into a Steam Deck with Asahi Linux, A Tutorial or watch the video below


    Scenes from the Columbia Gorge Blizzard - 01/13/24


    When the winter weather gets terrible, instead of seeing it as execuse to curl up indoors, I find myself grabbing my gear and heading into the storm. At this point in my life, I've logged enough hours driving in pretty abysmal conditions of just about every imaginable stripe. As a PNWer, I've rarely experienced blizzards in my home state so I saw a 16F day with 65+ MPH wind gusts as an opportunity.

    Driving conditions started off not terrible, I84 was mostly clear of snow due to the winds. On my way on old Columbia Highway, I cleared a downed branch, and on the way up Multnomah Falls, I moved several logs off the trail.

    The visibility dropped during my hike (as seen in the video at the end), and rather than keep venturing further, I decided to drive back as visibility was so poor. It was comparable to the extreme fog often in the Redwoods on 101, where 25 mph seems like a big ask. I ended up driving with my emergency blinkers back into town and taking the advise of TLC even though I wanted to check out Horsetail Falls.

    On my drive back, I started seeing more evidences of the storm. Large swathes of Portland were without power and trees were downed. Each day during the snowpocalypse/icepocalypse I made my way out into Portland. I saw multiple trees on houses, downed power lines and houses without power. My neighborhood was relatively well off, despite lots of large branches falling and a few trees.


    Apple designed a modular computer that they do not want you to service

    Apple Suite

    Recently, Apple announced some pretty killer features for Final Cut Pro X, Motion, and Compressor, but they are Apple silicon only. The updates include machine learning based object tracking and faster exports for HEVC and H.264 by simultaneously processing video segments across available media engines but these aren't magical features that would be should be limited to Apple Silicon considering the GPU compute power that the Mac Pro 2019 offers and the ability to have multiple GPUs.

    Video version of this post is attached above.

    Apple wants to vector away from Intel Macs, which isn't news, but they're leaving the most dedicated Mac users or professionals in the lurch.

    The Mac Pro 2019 represents inconvenient truth about Apple Silicon. To this day, Apple has not produced a GPU competing with AMD's highest-tier offerings. The highest-end GPU supported macOS still from the previous generation, the 6900 XT.

    Apple geekbench 6 metal benchmarks Apple’s GPUs lag in comparison to the power-sipping dedicated GPU market…

    While Geekbench 6's metal benchmarks are not the only way to gauge a GPU performance, The 6900 XT in sheer compute is oodles above the current line up of integrated GPUs and almost certainly will outperform the M3 Ultra's GPU. Apple Silicon integrated GPUs have incredible TDPs (Thermal design power), which are fantastic for laptops but much less of an issue in the desktop space, where TDPs can be offset by power-consumption and arrays of fans.

    Apple thus far has opted not to support the AMD 7000 series GPUs, aka Navi 31 (released December 13th, 2022). While AMD is lagging behind Nvidia, they managed to make the transition to a 5 nm Chiplet technology.

    My wild speculation is Apple does not want to support these as it'd be an embarrassment for the Apple Silicon GPUs and Apple would like to move away from all things X86. For reference, the monstrous 7900 XTX is roughly 45-50% faster than the 6900 XT. Also, it supports hardware AV1 encoding.

    This in itself isn't worth a blog post as Apple's lack of extended support is disappointing but not surprising or novel considering Apple's long history of abandoning computer support fast, be it the poor souls who bought PowerMac G5s 2x Dual-Core CPUs or worse, the earliest adopters of the Intel Macs, with the Core Duos, each getting 3-4 years of support before Apple abandoned them.

    My absurdist Apple Store experience

    Mac Pro 2019 The Mac Pro 2019 is completely modular, but it doesn’t matter.

    The most curious thing about the Mac Pro 2019 is how much time and effort Apple spent making a modular computer, one that you cannot repair yourself. Replacing the PSU (Power Supply Unit) is a 5 minute affair, no more difficult than replacing an MPX GPU. This is wonderful... assuming you can actually buy one.

    The only way to service a Mac Pro 2019 is via an Apple Store. I discovered this after my Mac Pro 2019 reported a fan issue in diagnostic mode. After trekking to a local Apple Store lugging my 50+ pound computer, it took Apple roughly a week to reach the same conclusion as me: the diagnostic mode is reporting a fan error and that Apple would need to service my Mac Pro. I learned several things:

    • Apple will not sell you parts directly.
    • Apple requires a technician to install the part even if you're not covered by Apple Care.
    • Any parts removed become property of Apple. Under no circumstance will Apple give you your non-functioning part.
    • Apple will not replace missing parts.

    This is absolutely bonkers, considering the time and effort Apple took to make the Mac Pro 2019 serviceable by a novice, earning itself a 9 out of 10 from iFixit, as it requires only a Phillips and Torx screw driver. I was extra miffed that I couldn't keep my faulty fan array. It's functioning properly but may have a bad sensor. I wanted to see if I could fix it myself.

    Apple may have backed a right-to-repair bill, but Apple itself is rotten to its core.


    Encrypting USB Drives / External Media / External SSDs, a pictorial guide + troubleshooting

    I'm sure there are many tutorials on the web, but I was a bit surprised how a simple UI quirk makes this a lot more confusing than it needs to be. Encrypting external media like USB drives (thumb drives/USB sticks), Hard drives, and SSDs can be a bit cumbersome in macOS. This tutorial will walk through the steps needed to create encrypted APFS external media.

    Warning! This process will reformat the drive, thus losing all its contents. Be sure to have your data backed up on the drive you intend to encrypt.

    Step 1: Launch Disk Utility

    Step 1

    By default, disk utility doesn't present the options we need to properly reformat a drive to use encryption.

    Step 2: Select Show All Devices

    Step 2

    Show all devices will display the volume and not just it's partitions.

    Step 3: highlight the drive you wish to format and click erase

    Step 3

    Step 3

    Step 4: Set the scheme to "GUID partition map"

    Step 4

    On the lower menu make sure you have Apple Partition app selected.

    Step 5: Select an encryption option from the Format option

    Step 5

    Select APFS (Encrypted) or APFS (Case-sensitive, Encrypted). I personally recommend case sensitive, but macOS can use pathing to files and ignore the casing used in the words to the file. In a non-case sensitive context /path/to/file is the same as /PATH/To/File. With case-sensitive pathing, these would lead to different directories. Apple recommends using case sensitive.

    Step 6: Select password

    Step 6

    Be sure to remember this password, as you will not have the option to recover the password. You can save your password in your Apple Keychain so every time the drive is plugged in, you will not be prompted for a password. You can also look up the password in the keychain.




    Trouble shooting!

    You may have problems formatting some drives. the following:

    Troubleshooting

    Mounting disk
    Creating a new empty APFS Container
    Unmounting Volumes
    Couldn't unmount disk. : (-69888)

    Fixing this requires manually unmounting the volume before formatting by clicking the eject button next the format drive (not the parent).

    Troubleshooting

    Umount, and repeat from step 3.


    Gruber back on his BS

    If Apple says they support California’s SB 244, it probably just means they actually support it. - John Gruber, Daringfireball

    I've fallen out of reading Daringfireball daily (hence the delayed hot take), or even weekly when for years it was a must reads and I think these sort of defensive takes are probably why. When I penned my first line on my personal blog, I think I was trying to immitate Gruber's wit and quippiness. I even have a daringfireball shirt.

    That said, my desire to hear a defense of Apple corrolates directly to Apple's more and more egregious clownery when it comes to the right to repair. These days I'm more Louis Rossman than John Gruber, for better or worse.

    Also, I need to post more....


    Getting XEMU to work on macOS (Intel / Apple Silicon Xbox emulation)

    XEMU on macOS

    Getting XEMU on macOS running isn't super difficult but running games is as direct ripped Xbox ISOs will not work with XEMU. I've updated this guide with an Xemu video tutorial that dives deeper into Xbox emulation. I recommend using it in tandem with this guide. Terminal savvy users probably can follow the written guide but I'd recommend checking out the video if you encounter issues as there's a few quirks with the emulator.

    • Homebrew - (it is possible to do it without Homebrew but for sanity's sake I will be using it
    • Git. There are multiple ways to install git but I'd recommend using xcode-select --install
    • The XEMU emulator
    • System Support files
    • extract-xiso to make converted ISOs

    First, you need to download XEMU. It's updated frequently. Grab it from the official website here. It's a universal binary, so it runs natively on both Apple Silicon and Intel Macs.

    After you need a few files, these are, legally speaking, the parts of the emulator that are copyrighted. I stumbled across them on Reddit. I own an Xbox, so I'll just say I extracted them myself. Please do not ask me about where to get these files or games.. I'll ignore your request.

    The files are:

    • Flash (Bios) - Complex_4627v1.03.bin
    • MCPX Boot Rom File - mcpx_1.0.bin
    • Hard disk Image File - xbox_hdd.qcow2

    And the EEPROM, which will be created automatically. Leave the RAM at 64 MB.

    You'll have to go to settings and manually assign each of these files; I found that placing them in the same directory as the emulator is recommended for whatever reason. It got confused when I didn't. Also, be sure to quit, as you'll need to reboot the emulator for the changes to take.

    Next, it's running games. Games are generally in the ISO format. It's up to you to determine how your ethics work on this and please do not ask me for ISOs. There are places where people back up the games they own, like Archive.org.

    This is where Xbox emulation gets tricky. You cannot just play ISOs. You first need to repack them into an ISO format that XEMU will understand.

    For that, we have extract-iso, a command-line utility that is used to convert ISOs into playable ISOs.

    First, we need to download, cmake so we can compile extract-xiso to run on our Mac. You'll need Git and Homebrew installed for this to work.

    Open up a terminal window and do the following:

    Step 1: Dependencies

    Run the following, update brew and then install cmake, a utility to create the necessary files to build/compile the application.

    brew update
    brew install cmake

    Step 2: Clone The Repo

    From the terminal, you'll want to navigate or create a directory where you'd like XEMU to live, as by default, the terminal will open up into the ~/ (your user directory.)

    git clone https://github.com/XboxDev/extract-xiso.git

    Step 3: Go into the directory

    Now we enter the directory where extract-xiso was cloned to.

    cd extract-xiso

    Step 4: Create a build directory

    Next we need to create a build folder for camke as per the instructions for extract-xiso and run the cmake/make commands from the this directory.

    mkdir build
    cd build

    Step 5 Building the app

    Next, we're going to run cmake and after it completes and creates the makefiles, run make.

    cmake ..
    make

    Now we're ready to prep Xbox ISOs

    Using extract-xiso

    From the build folder, we can run the CLI utility.

    The utility has the ability to unpack Xbox ISOs and repack them into usable ISOs for XEMU.

    There are two ways to about converting the ISOs. The easier method, which I had mixed success with, is to use:

    ./extract-xiso -r path/to/.iso

    This will convert the ISO into the correct format. It'll rename the original iso to .iso.old and place in the build folder the converted ISO.

    The other is a two-step process.

    Step 1: extract the game contents

    ./extract-xiso -x /path/to/iso

    Step 2: repack the game contents

    ./extract-xiso -c /path/to/extracted-files

    A few tips:

    XEMU is a fickle beast; quitting it and reopening it after changing settings is best. If you try an ISO that does not work, you must quit and reopen the app with a working ISO. Don't expect perfect emulation, as Xemu is still actively being developed. I found NBA Street Vol. 2 playable, but there are annoying crackles in the audio.

    XEMU running NBA Street Vol 2

    Other Emulation Articles I've written


    Apple's secret OS and the Secure Enclave Processor


    Did you know Apple Silicon Macs run more than one operating system at once in order to function.... and this secretive secondary operating system is why you can't upgrade your SSDs on Apple Silicon Macs? But that's not the whole story.

    Apple silicon macs and also T2-equipped Macs, iPhones, iPads, and even the Apple watch use a dedicated hardware component known as the secure enclave, and it's more than just marketing.

    The secure enclave is a separate processor explicitly designed to handle sensitive operations related to security and privacy.

    One of the main operations for the secure enclave is to generate and store encryption keys and biometric data like Touch ID, and it needs to protect this data from various attacks like physical tampering and side-channel attacks. In order to do this, it needs it has its own memory and storage and needs to be isolated from the rest of the system.

    To do this all, it also needs its own stripped-down operating system, known as Secure Enclave OS or SEPOS, and can only be accessed by the computer via a few protected APIs.

    When a user's password is set up on an Apple Silicon Mac, the password is passed through a one-way hashing algorithm that produces a key used to encrypt the Secure enclave's key. This means that even if someone has access to the password, they cannot access the encryption keys stored in the Secure enclave without the Secure enclave's cooperation.

    This is important. This means any encrypted data must pass through the Secure enclave. The operating system and user never get to see this encryption key and can only use APIs to interact with the Secure Enclave.

    It also uses a unique identifier, a Root Cryptographic Key, called the Secure Enclave ID, which is used to identify the device. This is fused to the secure enclave during manufacturing without even Apple's ability to access it. This ensures that the encryption keys stored in the Secure enclave can only be used on the device they were generated on.

    So if you stole the physical NAND memory modules out of a MacBook and even had the encryption keys, It would not work because you would still need to match the encryption key to the Secure Enclave ID.

    It also helps thwart DMA attacks, where an attacker uses a device with direct memory access, like a Thunderbolt device. A Thunderbolt device uses a PCIe interconnect, and one of the main selling points of PCIe is direct memory access. macOS encrypts its memory and uses an I/O processor that manages communication between the main processor and Secure the Enclave. The memory needs to be encrypted and decrypted, and any device trying to attack memory will only get encrypted data. Apple refers to this as the Memory Protection Engine.

    Handling these tasks is SEPOS. The SEPOS is designed to be resistant to attacks, including physical tampering, and it has been certified under the Common Criteria security standard. It's based on the L4 Microkernel, which is popular for a secure embedded system as it has a minimal set of services and uses a highly privileged mode that is isolated from user-level code. This starts to get abstract, but the point is that there's a well-defined interface, and the kernel is small and focused. Thus, it is easy to analyze and verify by security analysts and has a design that allows for specialized isolated subsystems. Apple took this operating system and modified it for use in the secure enclave.

    This isn't everything that the secure enclave does, as it does quite a bit, like true random number generation, Secure Neural Engine, AES Engine, Secure Enclave Boot ROM, Secure Enclave Boot Monitor, and so on. I really suggest reading the Apple document on this. It's what I used to make this video.

    The end result is if you buy a used Apple Silicon Mac, and the user doesn't provide the firmware password, then there's no way for you to reset it.

    SSDs and the Secure Enclave

    SSDs generally consist of a controller, NAND memory modules, DRAM cache (found on quality SSDs), and an interface.

    Apple's Secure Enclave is tightly integrated for Apple, and the SSD controller itself resides within Apple Silicon. As we previously discussed, the secure enclave generates a hardware encryption key and is used to encrypt the contents of the NAND memory (storage). The key is stored in the Secure enclave, and the keys are derived from a combination of the secure enclave ID and characteristics of the NAND. When a new SSD is installed, it would have to generate a new key. If an attacker might be able to determine the original key by comparing the new key to the old key and identifying the differences between the two. If the new key had different characteristics than the old key, this could potentially reveal information about the old key and compromise security. Apple also uses its own implementation of the PCIe and not NVMe protocol, so Apple would have to also harden its security for NVMe.

    Now I'm confident Apple could arrive at a solution as Apple's Secure enclave has gone through multiple iterations now, with roughly 16 versions now at the time of making this video. Apple could arrive at giving users the ability to change NVMe SSDs requiring reduced security settings or perhaps an unlock that warns a user about the potential encryption key exposure.

    Secure Enclave is extremely powerful when it comes to security. In my OpenCore Explained video, I broke down Apple's many security innovations on the operating system side.

    I consider myself an informed user and I would gladly accept any risk for removable storage over being locked into zero upgrades as the NAND memory, which makes an SSD, has a finite shelf life. A memory cell on an SSD can only be written and overwritten so many times before it fails. SSD controllers identify bad blocks eventually they hit a critical mass and will fail. Apple preventing anyone from swapping these means that every Apple Silicon Mac has a time bomb built into it, and there's nothing end users can do to fix it.

    Despite the greenwash marketing, Apple has no qualms about generating eWaste. Also, Apple shipping bottom-tier Macs in RAM-starved configurations and with laughably small SSDs means that the OS will have to use the SSD for memory swap operations when the RAM is completely filled more frequently and with fewer bytes to rotate on very small SSDs like 256 GB. This also shortens the NAND shelf life.

    Apple chooses not to tackle this on any front as it knows that it generates money no matter how this plays out: A user has to pay upfront the Apple tax on overpriced upgrades and also has to deal with planned obsolescence baked into the hardware and software. Let's not forget Apple will stop supporting its Mac at some point. It gets to hide behind security as a smokescreen.

    So when you see right to repair legislation pop up, please support it. Apple makes wonderful products marred by their disdain for the users who use them.